【アクセシビリティツリー】

アクセシビリティツリー とは?

最終更新:
💡 要素の役割や名前を支援技術へ伝えるツリー

ブラウザがDOMなどをもとに作る、支援技術に伝えるためのツリー構造。要素の役割・名前・状態などを表し、プラットフォームのアクセシビリティAPIを通じてスクリーンリーダーなどに利用される。

📌 このページのポイント
DOMから支援技術向けの情報へ ★ 送信画面に見えるボタン★は装飾として扱うDOMの一部支援技術向けdocumentbutton★送信documentrole: buttonname: 送信装飾の★は含めない★の要素にaria-hidden="true"を指定画面の表示は残し、支援技術への情報から除く
送信ボタンの概念図。青はDOMの情報、緑は役割と名前、橙はaria-hiddenで除外する装飾。実際のツリーの一部を簡略化した図で、ボタン自体を隠す例ではない。
ひよこ ひよこ
DOMツリーとは別のものなの?
ペンギン先生 ペンギン先生
DOMにはHTMLの要素や属性、テキストなどが表されるよ。ブラウザはそれをもとに、支援技術向けのツリーを作る。表示状態やARIA属性も関わるので、単にDOMから見た目を取り除くだけとは言えないんだ。
ひよこ ひよこ
どんな情報が入っているの?
ペンギン先生 ペンギン先生
ボタンやリンクといったrole、送信などのname、チェック済みや展開中といった状態、説明などだよ。スクリーンリーダーはこうした情報を利用する。すべての要素が同じプロパティを持つわけではないんだ。
ひよこ ひよこ
画面に見えるものが全部入るの?
ペンギン先生 ペンギン先生
たとえばaria-hidden="true"を付けた装飾は、画面には見えていてもアクセシビリティツリーから除外されるよ。逆にdivやspanというタグだけで、その内容まで必ず消えるわけではない。タグ名だけで判断しないことが大切なんだ。
ひよこ ひよこ
ボタンの中の飾りも読み上げられる?
ペンギン先生 ペンギン先生
図の例では、送信ボタンに付けた星をaria-hidden="true"で除外し、名前を「送信」にするよ。ボタン自体やフォーカスできる要素を隠すために使う属性ではないんだ。必要な意味を伝えながら、重複した飾りを省く使い方だね。
ひよこ ひよこ
ツリーを確認する方法はある?
ペンギン先生 ペンギン先生
Chrome DevToolsのElementsで要素を選び、Accessibilityタブを見ると役割や名前などを確認できる。Show accessibility treeを切り替えると全体のツリーも見られるよ。操作しやすさまで確認するには、キーボードやスクリーンリーダーで実際に使って確かめよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「アクセシビリティツリー」って出てきたら「ブラウザが支援技術のために作る意味のツリー」と思えばだいたいOK!
📖 おまけ:英語の意味
「Accessibility Tree」 = アクセシビリティのためのツリー構造
💬 Accessibilityは利用しやすさ、Treeは木構造のこと。要素の役割などを親子関係のある構造で表し、支援技術が利用できるようにするんだ。

参考資料

← 用語集にもどる