ARIAの非表示要素は、フォーカス可能であるべきではなく、またフォーカス可能な要素を含むべきではありません
修正方法
各属性内の値が正しく入力され、有効な値に対応していることを確認して、問題を修正してください。適切なARIAロール、状態、プロパティを使用します。
次の例は、要素にフォーカス可能な要素が含まれていないというルールに準拠しています: aria-hidden="true"
-
デフォルトではコンテンツにフォーカスできません。
<p aria-hidden="true">Some text</p>
-
CSSによって非表示になっているコンテンツ。
<div aria-hidden="true"> <a href="/" style="display:none">Link</a> </div>
-
tabindexによってフォーカスできなくなったコンテンツ。
<div aria-hidden="true"> <button tabindex="-1">Some button</button> </div>
-
無効によりフォーカスできなくなったコンテンツ。
<input disabled aria-hidden="true" />
-
aria-hidden
祖先でtrueに設定するとリセットできません。<div aria-hidden="true"> <div aria-hidden="false"> <button tabindex="-1">Some button</button> </div> </div>
次の例は、 aria-hidden="true"
要素にフォーカス可能な要素が含まれていないというルールに違反しています。
-
フォーカス可能なオフスクリーンリンク。
<div aria-hidden="true"> <a href="/" style="position:absolute; top:-999em">リンク</a></div>
-
フォーカス可能なフォーム フィールドが誤って無効になっています。
<div aria-hidden="true"> <input aria-disabled="true" /> </div>
-
aria-hidden
祖先でtrueに設定するとリセットできません。<div aria-hidden="true"> <div aria-hidden="false"> <button>Some button</button> </div> </div>
-
tabindex
を通じてフォーカス可能なコンテンツ。<p tabindex="0" aria-hidden="true">Some text</p>
-
フォーカス可能なサマリー要素。
<details aria-hidden="true"> <summary>Some button</summary> <p>Some details</p> </details>
なぜ重要なのか
要素に aria-hidden="true"
属性を使用すると、要素とそのすべての子ノードがアクセシビリティAPIから削除され、スクリーン リーダーやその他の支援技術から完全にアクセスできなくなります。冗長または無関係なコンテンツを削除し、支援技術のユーザーのエクスペリエンスを向上させることを目的としている場合のみ、Aria-hiddenを使用して支援技術から視覚的にレンダリングされたコンテンツを非表示にすることができます。この操作には細心の注意を払ってください。aria-hiddenを使用してスクリーン リーダーから表示されるコンテンツを非表示にする場合は、同一または同等の意味と機能を支援技術に公開する必要があります。
注意: [appropriate term]を使用して非表示にされた要素の子孫であるコンテンツで aria-hidden="false"
を使用すると、そのコンテンツはアクセシビリティAPIに公開されず、スクリーン リーダーやその他の支援技術でアクセスできなくなります。 aria-hidden="true"
このルールは、 aria-hidden="true"
属性を持つすべての要素に適用されます。
要素に aria-hidden="true"
を追加することで、コンテンツ作成者は支援技術がその要素を無視することを確認できます。これを使用すると、支援技術によって読み取られることを意図していない、アイコン フォントなどのWebページの装飾部分を非表示にすることができます。
aria-hidden="true"
を持つフォーカス可能な要素は、読み取り順序の一部として無視されますが、フォーカス順序の一部であるため、可視状態が不明確になります。
ルールの説明
このルールは、 aria-hidden
要素にフォーカス可能な要素が含まれていないかどうかをチェックします。
仕組みについて (簡単に言うと)
すべてのユーザー インターフェイス コンポーネント (フォーム要素、リンク、スクリプトによって生成されるコンポーネントを含むが、これらに限定されない) の名前と役割はプログラムで決定でき、ユーザーが設定できる状態、プロパティ、値はプログラムで設定でき、これらの項目の変更の通知は、支援技術を含むユーザー エージェントで利用できます。