フォーカス順の要素には、インタラクティブコンテンツに適した役割が必要です
修正方法
フォーカス順序内のすべての要素が適切な role
属性値を持っていて、要素がカスタムウィジェットである場合、それに対応する有効な ARIA role 属性値が指定されていることを確認します。
フォームコンテンツとのやりとりを可能にするため、すべてのデバイスに依存しないユーザーの入力方法が適切なロールを持っていることを確認します。
ロールが全く存在しない場合、要素にフォーカスしたとき、スクリーン・リーダーは何も読み上げません。
インタラクティブ要素に段落のような適切ではないロールが用いられた場合、要素はフォーカスを受け取らず、スクリーン・リーダーは何も読み上げません。
もし特定のロールがインタラクティブ要素 (例えばボタン、テキスト入力欄、ラジオボタン、チェックボックスなど) になりうるロールの一覧に一致する場合、既存の HTML には追加のロールは不要です。ただし、カスタムウィジェットの場合は、role=button
など意図に沿ったロールが必要です。
スクリーン・リーダーのユーザーが要素に到達し、その要素にテキストがある場合、スクリーン・リーダーはテキストを読み上げますが、適切なロールがなければユーザーはその要素がどういうものなのかを把握できません。
提供されているタイプ別ロールは以下の通りです:
- ランドマーク: article, banner, complementary, main, navigation, region, search, contentinfo
- ウィジェット: alert, alertdialog, application, dialog, group, log, marquee, menu, menubar, menuitem, menuitemcheckbox, menuitemradio, progressbar, separator, slider, spinbutton, status, tab, tablist, tabpanel, timer, toolbar, tooltip, tree, treegrid, treeitem
- 疑似 HTML: button, button, checkbox, columnheader, combobox, contentinfo, form, grid, gridcell, heading, img, link, listbox, listitem, option, radio, radiogroup, row, rowgroup, rowheader, scrollbar, textbox, checkbox, columnheader, combobox, contentinfo, form, grid, gridcell, heading, img, link, listbox, listitem, option, radio, radiogroup, row, rowgroup, rowheader, scrollbar, textbox
- 文書: document (document リージョンを他のタイプのリージョンの中で作成する場合)
- アプリケーション: application (ページ内のコンテンツに通常のキーボードショートカットを有効にするため、ウィジェットにのみ)
- プレゼンテーション: presentation (要素の従来のロールをキャンセルするため)
- その他セマンティック: math, definition, note, directory
- 抽象: command, composite, input, landmark, range, section, sectionhead, select, structure, widget
なぜ重要なのか
フォーカス順序に含まれる要素は、スクリーン・リーダー技術がユーザーにその情報を伝えられるよう、インタラクティブコンテンツに適したロールが必要です。
もしインタラクティブコンテンツ要素が適切なロールを持っていない場合、そのロールは開発者が意図したアクセシビリティ機能を実行できません。
スクリーン・リーダーや他の支援技術が web ページ上の各要素の適切なロールを把握できない場合、それらは要素と高度なやりとりをすることも、要素をユーザーに伝えることもできません。ロールの値が妥当ではない場合、HTML 要素の一連の機能、プロパティ、そしてユーザーへもしくはユーザーから情報を伝える方法を支援技術を通してやりとりすることができません。
ルールの説明
ユーザーが操作する要素は、既存の HTML もしくはカスタムウィジェットであろうと、要素に到達したときあるいはフォーカスが移動した際、スクリーン・リーダーのユーザーに要素の意味を伝えるため、適切なロールを持つ必要があります。カスタムウィジェットの場合、要素の目的を正確に表すため、抽象ロールの代わりに適切な ARIA role
値を使用しなければなりません。
仕組みについて (簡単に言うと)
フォーカス順序に含まれるすべてのインタラクティブ要素を確認し、既存の HTML かカスタム ARIA ウィジェットかに関わらず、role 属性値が妥当かつ適切であることを確認します。