【ワイアリア】

WAI-ARIA とは?

最終更新:
💡 役割や状態を支援技術へ伝える、HTMLの補助情報

Webの要素の役割・名前・状態などを、スクリーンリーダーなどの支援技術へ伝えるための仕様。HTMLの意味を補うが、属性を付けるだけで操作機能やキーボード対応が完成するわけではない。

📌 このページのポイント
HTMLの意味に、必要な状態を補う画面とHTML支援技術へ詳細表示詳細button要素閉じた状態aria-expanded役割:ボタン名前:詳細状態:閉じているexpanded=false状態を更新するbuttonの役割はHTMLから、開閉状態はARIAで属性だけでは操作機能は付かないキーボード操作・フォーカスも確認ブラウザと支援技術の組み合わせで検証
詳細を開閉するbuttonの概念例。実際の属性はaria-expanded="false"です。開閉処理と状態の更新を実装し、役割・名前・状態が実際のUIと一致するようにします。これは読み上げ結果を実測した図ではありません。
ひよこ ひよこ
WAI-ARIAは何のためにあるの?
ペンギン先生 ペンギン先生
HTMLだけでは十分に表せない役割や状態を、支援技術へ伝えるための仕様だよ。たとえば独自のUIにroleを付けると、どんな部品なのか伝えられる。ただしroleだけでは動作は付かないので、必要なキーボード操作やフォーカスの扱いも実装するんだ。
ひよこ ひよこ
どんな属性を使うの?
ペンギン先生 ペンギン先生
roleは役割、aria-labelは名前、aria-expandedやaria-selectedは状態を表す例だよ。aria-expanded="false"は閉じている状態を伝えるけれど、自動で閉じる機能ではないんだ。開閉処理に合わせて値を更新し、使う役割に合う属性を選ぼう。
ひよこ ひよこ
全部の要素にARIAを付ければいい?
ペンギン先生 ペンギン先生
まずbuttonなど、必要な意味や操作を持つHTML要素を活用しよう。通常のbuttonへrole="button"を重ねる必要はないよ。一方、押された状態を伝えるトグルボタンにaria-pressedを追加する例もある。ネイティブHTMLにはARIAを一切使えない、という意味ではないんだ。
ひよこ ひよこ
aria-hiddenは画面から消す属性?
ペンギン先生 ペンギン先生
aria-hidden="true"は要素とその子孫を支援技術へ公開する情報から除くもので、画面を非表示にする機能ではないよ。重複した装飾などを除く用途があるけれど、必要な内容や操作できる部品を隠すと利用を妨げる。親に付けると子にも影響するので注意しよう。
ひよこ ひよこ
ライブリージョンはどう使うの?
ペンギン先生 ペンギン先生
aria-liveで更新情報を伝える優先度を示すよ。politeは今の作業を邪魔しにくいタイミング、assertiveは優先して知らせる指定。実際の通知は支援技術やユーザー設定にもよるので、必ず即座に同じ読み上げになるとは限らないよ。緊急でない更新を次々割り込ませず、実際の操作と読み上げで確かめよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「WAI-ARIA」って出てきたら「HTMLの意味を補強して支援技術に伝える仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Web Accessibility Initiative - Accessible Rich Internet Applications」 = Webアクセシビリティ推進のためのリッチインターネットアプリケーション仕様
💬 W3CのWAI(ウェブアクセシビリティ・イニシアティブ)が策定した仕様で、ARIAは「リッチなWebアプリをアクセシブルに」という意味が込められているよ

参考資料

← 用語集にもどる