ARIA: list ロール
ARIA の list ロールは、アイテムのリストを識別するために使用できます。 これは通常、リスト内に含まれるリストアイテムを識別するために使用する listitem ロールと組み合わせて使用します。
<div role="list">
<div role="listitem">リストアイテム 1</div>
<div role="listitem">リストアイテム 2</div>
<div role="listitem">リストアイテム 3</div>
</div>
解説
外側のコンテナーと、その中に含まれる要素のリストで構成されるコンテンツは、それぞれ list および listitem コンテナーを使用することで、支援技術に識別させることができます。list には、0 個以上の listitem 子要素のみを含めることができます。
リストやリストアイテムをマークアップする際にどの要素を使うべきかについて、鉄則はありませんが、リストアイテムがリストというコンテキストにおいて意味をなすものであることを確認する必要があります。例えば、買い物リスト、レシピの手順、道順などが挙げられます。
関連する WAI-ARIA のロール、ステート、プロパティ
listitem-
リスト内の単一のアイテムです。
listitemロールを持つ要素は、listロールを持つ要素内にのみ存在します。
ベストプラクティス
role="list" と role="listitem" は必要な場合のみ使用してください。 例えば、HTML を制御できなくても、JavaScript で事後に動的にアクセシビリティを向上させることができる場合です。
HTML の <ol> と <ul> とは異なり、ARIA のリスト (list) ロールは順序付きリストと順序無しリストを区別しません。 可能な場合は、リスト (<ol> と <ul>) とリストアイテム (<li>) をマークアップするのに適切な意味論の HTML 要素を使用するべきです。 例えば、上記の例は次のように書き直すべきです。
<ul>
<li>リストアイテム 1</li>
<li>リストアイテム 2</li>
<li>リストアイテム 3</li>
</ul>
また、リストアイテムの順序が重要な場合は、順序付きリストを使用します。
<ol>
<li>リストアイテム 1</li>
<li>リストアイテム 2</li>
<li>リストアイテム 3</li>
</ol>
メモ:
ARIA の list ロールと listitem ロールでは、順序付きリストと順序無しリストを区別しません。
余談ですが、意味論的な HTML 要素である ol または ul を使用してプレゼンテーション (presentation) ロールを適用する場合、ARIA では listitem 要素に親の list 要素が必須であるため、各子 <li> 要素は presentation ロールを継承することに注意してください。 そのため、<li> 要素は支援技術には公開されませんが、ネストされたリストを含め、これらの <li> 要素の内部に含まれる要素は、支援技術からは見えることになります。
仕様書
| 仕様書 |
|---|
| Accessible Rich Internet Applications (WAI-ARIA)> # list> |
関連情報
<ul><ol><li>- ARIA: listitem ロール
- ARIA Lists examples — by Scott O'Hara
- Accessibility Object Model
- ARIA in HTML