暗黙のネイティヴロールセマンティックスがアクセシビリティAPIに対応づけされない要素。類義語presentation
を参照のこと。
注
ARIA 1.1
none
ロールに関する注。
ARIA 1.1において、ワーキンググループは、単語"presentation"または"presentational"の意図された意味をめぐる著者の混乱のために、presentation
のロールに同義語としてnone
を導入した。多くの人はrole="presentation"
をaria-hidden="true"
と同義であると誤って考え、我々はrole="none"
がより明確に実際の意味を伝えると考える。
使用目的は、要素がページの外観を変更するために使用されるが、要素型によって暗黙的な、機能的な、インタラクティブな、もしくは構造の関連性を一切持たない場合、またはWAI-ARIAをサポートしない古いブラウザーでアクセシブルなフォールバックを提供するために使用できる場合である。
ユースケースの例:
- コンテンツが完全にプレゼンテーショナルな(スペーサー画像、装飾的なグラフィック、または要素をクリアするような)要素。
- 完全な代替テキストが使用可能であり
aria-labelledby
と(必要な場合)aria-describedby
でマークアップされるimg
ロールをもつコンテナーにおける画像。
- CSSの追加のマークアップ"フック"として使用される要素。または
- レイアウトテーブルおよび/またはその関連する行、セル、その他のいずれか。
none
/presentation
のロールをもち、かつフォーカス可能でないすべての要素に対して、ユーザーエージェントは、アクセシビリティAPIに要素の暗黙のネイティヴセマンティックス(ロールならびにそのステートおよびプロパティ)を公開してはならない。しかし、ユーザーエージェントは、none
/presentation
の明示的または継承されたロールを持たないコンテンツまたは子孫要素を公開しなければならない。したがって、none
/presentation
ロールは与えられた要素に何のロールも持たないものとして扱わさせる、またはアクセシビリティツリーから削除させるが、要素内に含まれているコンテンツにアクセシビリティツリーから除去させることはない。
たとえば、次の2つのマークアップ断片は、アクセシビリティAPIと同様に公開される。
<h1 role="none"> Sample Content <a href="...">let's go!</a> </h1>
<span> Sample Content <a href="...">let's go!</a> </span>
HTMLにおいて、<img>
要素は、画像ファイルのタイプにかかわらず単一の実態として扱う。したがって、HTML img
のrole="none"
またはrole="presentation"
を使用することは、aria-hidden="true"
を使用することと同じである。画像コンテンツをアクセシブルにするために、著者は、<object>
または<iframe>
要素を使用してオブジェクトを埋め込む、またはインラインSVGコードを使用して、画像コンテンツのアクセシビリティガイドラインに従うことができる。
none
/presentation
ロールを画像に適用する場合、著者は(たとえばHTMLのalt=""
を使用するなど)意味のある代替テキストを提供すべきでない。
次のコードサンプルにおいて、img
を含むものは、キャプションの段落によって適切に分類される。ロールおよび代替テキストが包含する要素によって提供されるため、この例においてimg
要素はnone
/presentation
としてマークアップできる。
<div role="img" aria-labelledby="caption">
<img src="example.png" role="none" alt="">
<p id="caption">A visible text caption labeling the image.</p>
</div>
次のコード例において、アンカー(HTMLのa
要素)はtreeitemとしてふるまうため、リスト項目(HTMLのli
要素)は、リスト項目に対するユーザーエージェントの暗黙のネイティヴセマンティックスを上書きするために明示的なWAI-ARIA none
/presentation
ロールが割り当てられる。
<ul role="tree">
<li role="none">
<a role="treeitem" aria-expanded="true">An expanded tree node</a>
</li>
…
</ul>
none
/presentation
ロールは、暗黙のネイティヴセマンティックスを持つ要素で使用され、その要素に対するデフォルトのアクセシビリティAPIロールが存在することを意味する。一部の要素は、追加の子孫要素が与えられた場合にのみ完結する。たとえば、HTMLにおいて、(table
ロールと一致する)テーブル要素にはtr
の子孫(暗黙のrow
ロールをもつ)を必要とし、この子孫にはth
またはtd
の子(それぞれcolumnheader
またはrowheader
およびcell
ロール)を必要とする。同様に、リストはリスト項目の子を必要とする。要素のセマンティックスを完全なものにする子孫要素は、許可されるアクセシビリティの子ロールとしてWAI-ARIAで記載されている。
none
/presentation
の明示的または継承されるロールが、許可されるアクセシビリティの子ロールを持つWAI-ARIAロールの暗黙のセマンティックをもつ要素に適用され、さらにnone
/presentation
の明示的なロールをもつ要素である場合、ユーザーエージェントは、定義された明示的なロールを持たないすべてのアクセシビリティの子孫にnone
の継承されたロールを適用しなければならない。また、none
/presentation
の明示的または継承されたロールは、ホスト言語仕様によって定義されるような特別に許可される子を持つホスト言語要素に適用され、さらにnone
/presentation
の明示的なロールをもつ要素である場合、ユーザーエージェントは、定義された明示的なロールを持たないすべての特別に許可される子にnone
の継承されたロールを適用しなければならない。
none
/presentation
の明示的または継承されるロールをもち、かつフォーカス可能でない任意の要素に対して、ユーザーエージェントは、その要素に対するロール固有のWAI-ARIAステートおよびプロパティを無視しなければならない。たとえばHTMLにおいて、none
/presentation
のロールをもつul
またはol
要素は、li
要素の暗黙のネイティヴセマンティックスを除去させる。これはul
またはol
に対応するlist
がlistitem
の許可されるアクセシビリティの子ロールを持つためである。同様に、HTML table
要素のthead
/tbody
/tfoot
/tr
/th
/td
の子孫の暗黙のネイティヴセマンティックスも削除される。なぜなら、HTML仕様はこれらがtable
要素の構造的な子孫である必要があることが示されているためである。
たとえば、アクセシビリティAPIによれば、次のマークアップ要素は、同一または非常に類似したロールセマンティックス(genericまたはnoneロール)および同一のコンテンツを持つかもしれない。
<ul role="none">
<li> Sample Content </li>
<li> More Sample Content </li>
</ul>
<foo>
<foo> Sample Content </foo>
<foo> More Sample Content </foo>
</foo>
注
この状況が適用可能である特定の許可される子をもつ他のWAI-ARIAロールが存在する(たとえば、radiogroupおよびlistbox)が、テーブルおよびリストは、プレゼンテーションの継承を適用する可能性がある最も一般的な実世界のケースである。
none
/presentation
の明示的または継承されるロールをもつすべての要素に対して、ユーザーエージェントは、プレゼンテーショナル要素に対するすべてのホスト言語固有の分類要素に、継承されるnone
のロールを適用しなければならない。たとえば、captionは単なるプレゼンテーショナルテーブルのラベルであるため、none
/presentation
のロールをもつtable
要素は、caption
要素の暗黙のネイティヴセマンティックスを取り除かせる。