aria-hidden要素にはフォーカス可能な要素が含まれていません
修正方法
各属性内の値を正しいスペリングにし、有効な値に一致させることで問題を修正します。適切な 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>
disabled を用いてフォーカス不可能にしたコンテンツ。
<input disabled aria-hidden="true" />
一度先祖で true に設定された
aria-hidden
は、リセットできません。<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">Link</a> </div>
間違って無効化されたフォーカス可能なフォーム欄。
<div aria-hidden="true"> <input aria-disabled="true" /> </div>
一度先祖で true に設定された
aria-hidden
は、リセットできません。<div aria-hidden="true"> <div aria-hidden="false"> <button>Some button</button> </div> </div>
tabindex
でフォーカス可能にしたコンテンツ。<p tabindex="0" aria-hidden="true">Some text</p>
フォーカス可能な summary 要素。
<details aria-hidden="true"> <summary>Some button</summary> <p>Some details</p> </details>
なぜ重要なのか
要素の aria-hidden="true"
属性を使用すると、要素とすべての子ノードをアクセシビリティ API から取り除き、スクリーン・リーダーや他の支援技術にとって完全にアクセシブルでなくします。冗長または無関係なコンテンツを取り除くことで支援技術のユーザーの体験を向上することを意図しているのであれば、見えるよう描画されたコンテンツを支援技術から隠すために細心の注意をはらって aria-hidden を使用しても良いでしょう。aria-hidden が可視のコンテンツをスクリーン・リーダーから隠すために使用されている場合、同一または同等の意味かつ機能は支援技術に提示しなければなりません。
注記: aria-hidden="true"
を使用して隠された要素の子孫であるコンテンツに aria-hidden="false"
使用しても、コンテンツはアクセシビリティ API に公開されず、スクリーン・リーダーや他の支援技術にとってアクセシブルになりません。
このルールは aria-hidden="true"
属性のついたあらゆる要素に適用されます。
aria-hidden="true"
を要素に追加することで、コンテンツ制作者は支援技術が要素を無視することを保証します。これはアイコンフォントなど、支援技術に読まれるべきではない web ページの装飾的な部分を隠すために使用できます。
aria-hidden="true"
がついたフォーカス可能な要素は読み上げ順序の一部からは無視されますが、フォーカス順序の一部ではあるため、可視なのか、隠されているのかという状態を不明瞭にします。
ルールの説明
このルールは aria-hidden
要素にフォーカス可能な要素が存在しないことを確認します。
仕組みについて (簡単に言うと)
すべてのユーザーインターフェースコンポーネント (フォーム要素、リンクそしてスクリプトにより生成されたコンポーネントを含むが、これに限らない) には、名前 (name) と役割 (role) がプログラムで解釈可能であり、ユーザーにより設定可能なステート、プロパティ、そして値は、プログラムでも設定可能であり、そしてこれらのアイテムへの変更の通知は支援技術を含むユーザーエージェントに提供されます。