WAI-AREAについて
WAI-ARIAをかうと、HTMLだけでは不足している情報を補うことができます。
Web Accessibility Initiative - Accessible Rich Internet Applicationsの略となり、読み方はウェイアリアです。
WAI-ARIAの主な役割
障害を持つ人々へのサポート
視覚や聴覚、認知などを含めた障害を持つ人々がウェブコンテンツを理解し、操作できるように支援できます。スクリーンリーダーを使用したり、キーボードだけでウェブを操作したりする際などの操作性にも関わってきます。
一例として、重要な情報を含むアラートメッセージを画面読み上げソフトウェアが認識し、ユーザーに通知するために、role="alert"属性を使用することができます。
<div role="alert">新しいメッセージが届きました。</div>
役割と状態の定義
要素が何をするか、どのような状態にあるかを定義でき、ユーザーに正確な情報が提供されます。
<button>タグにrole="button"などは必要ありませんが、例えば、なんらかの理由で適切なHTMLを利用してマークアップできないときに、要素の定義を設定することができます。
<div role="button">クリックしてください</div>
インタラクションの改善
ドロップダウンメニューやモーダルダイアログなど、ユーザーが選択肢を表示および選択できるようにするために、role属性を使用できます。
<div role="combobox" aria-expanded="false" aria-haspopup="listbox" onclick="toggleDropdown()">
<span>選択してください</span>
<ul role="listbox" aria-hidden="true">
<li role="option">選択肢1</li>
<li role="option">選択肢2</li>
<li role="option">選択肢3</li>
</ul>
</div>
主要なWAI-ARIA属性
WAI-ARIA属性は数十種類以上あると言われています。
そのなかの一部を以下でまとめました。
role | ボタン、リスト、メニュー、アラートなど要素の役割を指定
|
---|---|
aria-label | 要素にテキストラベルを提供
|
aria-describedby | 要素に関連する説明テキストを指定
|
aria-labelledby | 複数の要素をラベルで関連付けるために使用され、他の要素のIDを参照する
|
aria-hidden | 要素がスクリーンリーダーに表示されないようにする(trueまたはfalseで設定)
|
aria-expanded | 折りたたみ要素の展開状態を示す(trueまたはfalseで設定)
|
aria-haspopup | 特定の要素がポップアップメニューやサブメニューを持つことを示す(trueまたはfalseで設定)
|
aria-controls | 制御対象属性
|
aria-selected | リスト内の選択状態を示す(trueまたはfalseで設定)
|
aria-live | 動的に変化するコンテンツ(例: エラーメッセージ)をリアルタイムで通知する
|