要素には、アクセシブルな名前の一部として表示テキストが含まれている必要があります。
修正方法
表示されるラベルのテキストが表示と同じ順序でアクセス可能な名前 — ( aria-label
— など)に含まれていることを確認し、この問題を解決します。表示ラベルとアクセス可能な名前が完全に一致する必要はありませんが、アクセス可能な名前を表示テキストで始めるのがベストプラクティスです。
次の例は、ラベルとコンテンツの不一致ルールに合格します。
-
末尾の空白を削除すると、表示ラベルとアクセス可能な名前が一致します。
<div role="link" aria-label="next page ">next page</div>
-
表示ラベルとアクセス可能な名前の間の文字の区別はありません。
<div role="link" aria-label="Next Page">next page</div>
-
完全な表示ラベルはアクセス可能な名前に含まれます。
<button name="link" aria-label="Next Page in the list">Next Page</button>
次の例は、ラベルとコンテンツの名前の不一致ルールに 失敗 します。
-
表示されるラベルがアクセス可能な名前と一致しません。
<div role="link" aria-label="OK">Next</div>
-
表示ラベルの全てがアクセス可能名に含まれていない。
<button name="link" aria-label="the full">The full label</button>
なぜ重要なのか
このルールは、以下の特性を持つ任意の要素に適用されます:
-
コンテンツから名前をサポートするウィジェットのセマンティックロール、および
表示されるテキストコンテンツ、および
-
aria-label
またはaria-labelledby
の属性。
注: コンテンツからの名前をサポートするウィジェット ロールは、button、checkbox、gridcell、link、menuitem、menuitemcheckbox、menuitemradio、option、radio、searchbox、switch、tab、treeitemです。
期待結果
ターゲット要素の完全な表示テキスト コンテンツは、そのアクセス可能な名前と一致するか、またはその名前に含まれています。
注: 先頭と末尾の空白、および大文字と小文字の区別の違いは無視されます。
音声入力ユーザーは、画面に表示されるメニュー、リンク、ボタンの可視テキスト ラベルを音声で発話することにより、Webページと対話できます。音声入力ユーザーが見えるテキストラベルを発声しても音声コマンドが機能しないとき、それは混乱を招きます。これは、コンポーネントのアクセス可能な (プログラムによる) 名が表示されているラベルと一致しないためです。ユーザー インターフェイス コンポーネントに可視テキスト ラベル — がある場合、それが実際のテキストであるかテキストの画像であるかに関係なく — 、そのテキストはコンポーネントのアクセス可能な (プログラムによる) 名にも含まれている必要があります。インタラクティブ コンポーネントの表示ラベルとアクセス可能な (プログラムによる) 名が同期している場合、音声入力ユーザーはそれらのコンポーネントを効果的に操作できます。
ルールの説明
コンテンツを通じてラベル付けされたインタラクティブな要素には、アクセシブルな名前の一部として可視ラベルが必要です。
仕組みについて (簡単に言うと)
表示可能なテキスト ラベルを含む各ユーザー インターフェイス コンポーネントでは、アクセス可能な名前がラベルの表示可能なテキストと一致する (またはラベルに含まれる) 必要があります。