WAI-ARIA 1.2
関係 ARIA 属性
要素間の関係性をアクセシビリティツリー上で表現するための属性です。DOM構造だけでは表現できない論理的な関係を定義します。
属性一覧
| 属性 | 型 | 説明 | 使用例 |
|---|---|---|---|
aria-controls | ID参照 | 要素が制御する対象要素を指定します。ボタンがパネルの開閉を制御する場合などに使用します。 | <button aria-controls="panel-1">開く</button> <div id="panel-1">...</div> |
aria-owns | ID参照リスト | DOM上では親子関係にない要素を、アクセシビリティツリー上で子要素として関連付けます。 | <ul aria-owns="external-item"> <li>項目1</li> </ul> <li id="external-item">項目2</li> |
aria-flowto | ID参照リスト | 読み上げ順序のカスタマイズに使用します。DOMの順序とは異なる論理的な読み順を指定します。 | <div aria-flowto="next-section">...</div> |
aria-activedescendant | ID参照 | 複合ウィジェット内でフォーカスを管理します。DOMフォーカスは親要素に保持しつつ、論理的にアクティブな子要素を示します。 | <ul role="listbox" aria-activedescendant="opt-2"> <li id="opt-2">選択肢2</li> </ul> |
aria-posinset | integer | セット内での要素の位置を示します。仮想スクロールなどで全アイテムがDOMにない場合に使用します。 | <li aria-posinset="5" aria-setsize="100"> |
aria-setsize | integer | セット内の総アイテム数を示します。aria-posinset と組み合わせて使用します。 | <li aria-setsize="100" aria-posinset="5"> |
aria-colcount | integer | テーブルやグリッドの全列数を指定します。一部の列のみ表示している場合に使用します。 | <table aria-colcount="15"> |
aria-rowcount | integer | テーブルやグリッドの全行数を指定します。仮想スクロールで一部の行のみ表示している場合に使用します。 | <table aria-rowcount="500"> |
ライブデモ
aria-controls のデモ
ボタンが制御するパネルをaria-controlsで関連付けます。支援技術はこの関係を利用してナビゲーションを提供します。
このパネルはボタンによって制御されています。aria-controls="controlled-panel"でボタンとこのパネルが関連付けられています。
<button aria-expanded="false"
aria-controls="controlled-panel">
パネルを開く
</button>
<div id="controlled-panel" role="region">
...制御対象のコンテンツ...
</div>aria-owns のデモ
aria-ownsは、DOM上では親子関係にない要素を、アクセシビリティツリー上で親子として関連付けます。
DOM 構造(視覚的)
リスト親要素
項目 1
項目 2
項目 3(DOM上は別の親)
アクセシビリティツリー
リスト親要素
項目 1
項目 2
項目 3(リストの外)
<ul> <li>項目 1</li> <li>項目 2</li> </ul> <!-- 別の場所にある要素 --> <li>項目 3</li> <!-- ATではリストに含まれない -->
aria-activedescendantはコンボボックスやリストボックスなどの複合ウィジェットで、フォーカスを親要素に保ちつつ 論理的にアクティブな子要素を示す重要なパターンです。aria-ownsは強力な属性ですが、DOMの親子関係を上書きするため、支援技術の動作に予期しない影響を与える可能性があります。 本当に必要な場合にのみ使用してください。