適用 (対象)
Accessible Rich Internet Applications (WAI-ARIA) をサポートする技術。
この達成方法は、達成基準 4.1.3: ステータスメッセージ (失敗) に関連する。
解説
この達成方法の目的は、ステータスメッセージがコンテンツで使用されているが、適切な役割 (role) 又はプロパティがないために利用者に伝達されない失敗を説明することである。
ステータスメッセージの失敗を確認する最初のステップは、新しい動的コンテンツがステータスメッセージの定義を満たしていることを確認することである。ページ上の変更されたコンテンツがステータスメッセージを表すかどうかを決定する二つの基準がある:
- 新しいコンテンツがフォーカスされない (コンテキストを変更しない)。
- 新しいコンテンツが、動作の結果、アプリケーションの状態、プロセスの進行状況、又はエラーの存在に関する情報を利用者に提供する。
この失敗例の 2 番目のステップでは、コードの検査を行う。動的コンテンツがステータスメッセージの定義を満たしている場合、そのコンテナは、ステータスメッセージとしてプログラムによる解釈が可能となる、適切な WAI-ARIA の役割 (role) 又はプロパティを調べることができる。現在、支援技術にステータスメッセージを示すために利用できる技術はごくわずかである。それらは以下のとおり:
role="status"
role="alert"
- 要素に
aria-live
属性を使用し、"polite" か "assertive" のいずれかを設定する role="log"
role="progressbar"
支援技術に警告するための追加の技術が存在することがあるため、この失敗例の最後のステップは、支援技術 (スクリーンリーダーなど) が動的コンテンツを検出し、利用者に情報を公開しているかどうかを確認することである。ステータスメッセージが存在するが支援技術によって表示されない場合、失敗が発生したことの確認となる。
事例
事例 1: status の役割 (role) のない検索結果メッセージを含める
利用者が検索ボタンを押して検索を実行するとき、ページのコンテンツは検索結果で更新され、検索ボタンの下のセクションに表示される。検索結果がないため、コンテンツを変更すると「0 件の結果が返されました」というステータスメッセージが表示される。このテキストはステータスメッセージの適切な役割 (role) が与えられていないため、利用者がそのテキストに再びフォーカスしない限り、スクリーンリーダーは「0 件の結果が返されました」とアナウンスしない。ステータスメッセージは利用者に自動的に表示されないため(つまり、人間が手動で検出しなければならない)、4.1.3 の達成に失敗する。
検証
手順
ページに動的に追加されるコンテンツの場合:
- 更新されたコンテンツを含む要素がフォーカスを持たないことを確認する
- 新しいコンテンツが次のいずれかの情報を利用者に提供していることを確認する:
- 動作の成功又は結果
- アプリケーションの待機状態
- プロセスの進行状況
- エラーの存在
- 新しいコンテンツを含む要素に、
status
、alert
、log
、もしくはprogressbar
という既存の ARIA の役割 (role)、又はaria-live
属性がないことを確認する - 支援技術によってステータスメッセージが表示されていない (つまり、アナウンスされていない) ことを確認する
期待される結果
- 1. から 4. がすべて真である場合、コンテンツは達成基準に失敗する。