aria-deprecated-role
role属性には、非推奨のARIAロールや作成者が使うべきでないARIAロールを指定しないことを推奨します
明示的なrole=""属性に、WAI-ARIA仕様で非推奨とされたロールや、ユーザーエージェントの内部用に予約されたロール(例:role="generic")が使われていないことを確認します。
適用範囲:role属性の最初の(実際に使われる)トークンが、有効で抽象的でないARIAロールのうち、作成者が明示的に宣言すべきでないものである要素に適用されます。WAI-ARIAで非推奨とされたロール(例:role="list"に置き換えられた"directory")や、ユーザーエージェントの内部用に予約されたロール(role="generic"。ARIA 1.2 §5.4では作成者がコンテンツで使うべきではない(SHOULD NOT)とされている)が該当します。
期待される結果:使われているロールは非推奨でも予約済みでもありません。ARIAが定める規定の強さに応じて判定します。
- SHOULD NOTの場合はCANTTELL。使用自体は適合のままなので、問題になるかどうかは作成者が判断します。非推奨のロール("directory")やユーザーエージェント用に予約されたロール("generic")が該当します。
- MUST NOTの場合はFAIL。ARIA 1.2と1.3では、抽象ロールを除いて作成者向けのMUST NOTが定められたロールはないため、この判定結果は将来の改訂でいずれかのロールがその強さに引き上げられた場合のために確保されています。
aria-roles-valid(ロールの存在と抽象性)とは別の、独立した判定です。ロールは有効かつ抽象的でなくても、作成者が明示的に使うことは推奨されない場合があります。
検出結果が報告する内容:
role:使われている非推奨または予約済みのロールです。guidance:代わりに何を使うべきかの助言で、英語のテキストです。
これらのdata.detailsのフィールドは、検出結果を読み解き、再現するのに役立ちます。reasonCodeと、出力スキーマで安定と明記された一部のフィールドを除き、安定した契約ではありません。マイナーリリースで名前が変わったり、なくなったりすることがあるため、これらに依存した実装はしないでください。
例
<ul role="list"><li>Item</li></ul>
role="list"は現行の、非推奨でないARIAロールです。
<div role="directory"><a href="/a">Item</a></div>
role="directory"はWAI-ARIAで非推奨となり、role="list"が推奨されています。マークアップとしては有効ですが、使用は推奨されません。
確認方法
このルールが判断できない場合はcantTellを報告し、判断を人に委ねます。ルールが投げかける各質問を、理由コードごとに、答えるための手順とともにここに示します。検出結果にも同じ手順がhowToCheckとして、スキャンの言語で含まれます。出力スキーマを参照してください。
ARIA_ROLE_AUTHOR_DISCOURAGED
- レポートに示された要素を調べ、そのタグとrole="generic"を控えてください。
- タグが単なるコンテナー(div、span、b、i)であれば、このロールは何も変えないため、整理として削除してください。
- それ以外の場合は、ブラウザーの開発者ツールでアクセシビリティペインを開き、要素本来の意味(ボタン、リンク、見出し、リスト項目、ナビゲーション)が失われていないか確認してください。
- スクリーンリーダーで要素に移動し、フォーカス可能であればTabキーで移動して、読み上げられる内容を聞いてください。
満たす場合:要素はもともと汎用のコンテナーであるか、ネイティブのロールが引き続き表示され、読み上げられています。
満たさない場合:role="generic"によって本来の意味が失われています。たとえば、リンクや見出しがそのように読み上げられなくなり、WCAG 4.1.2(構造については1.3.1も)を満たしません。
ARIA_ROLE_DEPRECATED
- レポートに示された要素を調べ、非推奨のロール(directoryなど)を控えてください。
- ブラウザーの開発者ツールでアクセシビリティペインを開き、公開されているロールを確認してください(directoryは通常listに対応付けられます)。
- スクリーンリーダーで要素とその項目に移動し、構造が読み上げられるか聞いて確認してください。
- 推奨される代替ロール(directoryならlist)と、それが適切かどうかを検討してください。
満たす場合:構造が正しく読み上げられる(たとえば項目数とともにリストとして)か、ロールが推奨されるものに置き換えられています。
満たさない場合:非推奨のロールに依存しているため、構造が支援技術に伝わらず、WCAG 4.1.2を満たさない場合があります。