aria-prohibited-attr
名前付けを禁止するロールにARIAの名前付け属性を使ってはいけません
仕様で明示的にARIAによる名前付けが禁止されているWAI-ARIAロール(例:generic、emphasis、strong、paragraph)に、aria-label/aria-labelledbyが指定されていないことを確認します。
適用範囲:次の要素に適用されます。(a) 明示的で有効なロールが、名前付け属性について「Prohibited ARIA States and Properties」の一覧が定められたARIA 1.2のロール(純粋にテキストの意味を表すロール、または名前を付けない構造ロール:caption、code、deletion、emphasis、generic、insertion、mark、none、paragraph、presentation、strong、subscript、suggestion、superscript、time)である要素と、有効な明示的ロールを持たず暗黙のロールがcaptionであるネイティブの<caption>。(b) ロールをまったく持たない要素。暗黙のロールを持たないことを確認済みのネイティブHTMLタグ(<div>、<span>、<p>、<strong>、<em>、<code>、<time>など)、または任意の自律カスタム要素(Custom Elements仕様に基づく、作成者定義のハイフン付きタグ)が該当します。いずれの場合も、aria-labelまたはaria-labelledbyを持つ要素だけが対象です。ElementInternalsによってロールを与えられたカスタム要素(this.attachInternals().role)は、そのロール、つまり既定のロールで判定します。上記のロールのいずれかであれば(a)に含まれ、それ以外のロールであれば(b)から外れます。
期待される結果:(a) では禁止された属性があってはいけません。(b) では名前付け属性はよくて不確実(アクセシブルな名前を扱う仕組みがない)、悪ければ支援技術に何の通知もなく無視されます。自身のコンテンツからすでに名前が得られるロールのない要素は、属性が意図的な上書きである可能性があるためcantTellとして報告し、名前の元がほかにない要素はfailになります。
検出結果が報告する内容:
attr:見つかった名前付け属性で、aria-labelまたはaria-labelledbyです。role:その属性を禁止しているロールです。ロールのない要素ではnullです。
これらのdata.detailsのフィールドは、検出結果を読み解き、再現するのに役立ちます。reasonCodeと、出力スキーマで安定と明記された一部のフィールドを除き、安定した契約ではありません。マイナーリリースで名前が変わったり、なくなったりすることがあるため、これらに依存した実装はしないでください。
例
<div role="generic"></div>
role="generic"には名前を付けられませんが、名前付け属性はどれも指定されていません。
<div role="generic" aria-label="Something"></div>
WAI-ARIAで名前付けが禁止されているロールにaria-labelが指定されています。
確認方法
このルールが判断できない場合はcantTellを報告し、判断を人に委ねます。ルールが投げかける各質問を、理由コードごとに、答えるための手順とともにここに示します。検出結果にも同じ手順がhowToCheckとして、スキャンの言語で含まれます。出力スキーマを参照してください。
ARIA_ATTR_PROHIBITED_ROLELESS_NEEDS_REVIEW
- レポートに示された要素を調べ、aria-labelまたはaria-labelledbyのテキストと、表示されているテキストを控えてください。
- 両者を比べ、ラベルに表示テキストにない内容が含まれていないか確認してください。
- そうであれば、その情報が、セルの上の表見出しや要素の隣のテキストなど、スクリーンリーダーも読み上げる別の方法で示されているか確認してください。
- スクリーンリーダーのブラウズモードで要素を読み、ラベルが読み上げられるか無視されるかを控えてください。
満たす場合:見えるテキスト、または表見出しのようにスクリーンリーダーが一緒に読み上げるテキストが、ラベルの内容をすべて伝えているため、ラベルが無視されても何も失われません。
満たさない場合:ラベルが他のどこにもない情報(見出しのない「12」に付いた「価格(ユーロ)」など)を持っており、ロールのない要素では名前付けがサポートされないため失われます(WCAG 4.1.2、ACT kb1m8s)。