ボタンには識別可能なテキストが必要です
修正方法
正しいマークアップソリューション
button-name
Theルールには、テスト基準を満たす5つのマークアップ パターンがあります。
<button id="text">Name</button>
<button id="al" aria-label="Name"></button>
<button id="alb" aria-labelledby="labeldiv"></button>
<div id="labeldiv">Button label</div>
<button id="combo" aria-label="Aria Name">Name</button>
<button id="buttonTitle" title="Title"></button>
-
各
button
要素とrole="button"
を含む要素が次のいずれかの特性を持つことを確認します。- スクリーン リーダー ユーザーが認識できる内部テキスト。
- 空でない
aria-label
属性。 -
aria-labelledby
を、スクリーン リーダーのユーザーが認識できるテキストを含む要素を指します。 -
role="presentation"
またはrole="none"
ARIA (ARIA 1.1)であり、タブ順序ではありません(tabindex="-1"
)。
誤ったマークアップソリューション
button-name
Theルールには、テスト基準を満たさない6つのマークアップ パターンがあります。
<button id="empty"></button>
<button id="val" value="Button Name"></button>
<button id="alempty" aria-label=""></button>
<button id="albmissing" aria-labelledby="nonexistent"></button>
<button id="albempty" aria-labelledby="emptydiv"></button>
<div id="emptydiv"></div>
<button id="buttonvalue" value="foo" tabindex="-1"></button>
なぜ重要なのか
スクリーン リーダーのユーザーは、アクセシブルな名前を持たない role="link"
、 role="button"
、または role="menuitem"
の要素の目的を判別できません。
ルールの説明
ボタンには、スクリーン リーダー ユーザー向けに目的地、目的、機能、またはアクションを明確に説明する識別可能なテキストが必要です。
input-button-name
規則は機能を button-name
規則から分離し、入力ボタンに識別可能なテキストが含まれるようにします。入力ボタンの名前に関するアドバイスは、ボタン要素には適していませんでした。
仕組みについて (簡単に言うと)
すべてのボタンをチェックして、識別可能でアクセスしやすい名前が付けられていることを確認します。