役割 (role) 又はプロパティを通してプログラムによる解釈が可能でないステータスメッセージを提供する

達成方法に関する重要な情報

この達成方法 (参考) の使用法と、この達成方法が WCAG 2.1 達成基準 (規定) とどのように関係するのかに関する重要な情報については、WCAG 達成基準の達成方法を理解するを参照のこと。適用 (対象) のセクションは、その達成方法の範囲について説明しており、特定の技術に関する達成方法の存在は、その技術があらゆる状況で WCAG 2.1 を満たすコンテンツを作成するために使用できることを意味するものではない。

適用 (対象)

Accessible Rich Internet Applications (WAI-ARIA) をサポートする技術。

この達成方法は、達成基準 4.1.3: ステータスメッセージ (失敗) に関連する。

解説

この達成方法の目的は、ステータスメッセージがコンテンツで使用されているが、適切な役割 (role) 又はプロパティがないために利用者に伝達されない失敗を説明することである。

ステータスメッセージの失敗を確認する最初のステップは、新しい動的コンテンツがステータスメッセージの定義を満たしていることを確認することである。ページ上の変更されたコンテンツがステータスメッセージを表すかどうかを決定する二つの基準がある:

  1. 新しいコンテンツがフォーカスされない (コンテキストを変更しない)。
  2. 新しいコンテンツが、動作の結果、アプリケーションの状態、プロセスの進行状況、又はエラーの存在に関する情報を利用者に提供する。
更新されたコンテンツがステータスメッセージの定義に適合していない場合、4.1.3 の失敗は発生しない。

この失敗例の 2 番目のステップでは、コードの検査を行う。動的コンテンツがステータスメッセージの定義を満たしている場合、そのコンテナは、ステータスメッセージとしてプログラムによる解釈が可能となる、適切な WAI-ARIA の役割 (role) 又はプロパティを調べることができる。現在、支援技術にステータスメッセージを示すために利用できる技術はごくわずかである。それらは以下のとおり:

これらの技術のすべてが存在しない場合、ステータスメッセージが利用者に通知されないことが予測される。さらに、動的コンテンツが追加される前に役割 (role) 又はプロパティが設定されていない場合、これも失敗を予測する。

支援技術に警告するための追加の技術が存在することがあるため、この失敗例の最後のステップは、支援技術 (スクリーンリーダーなど) が動的コンテンツを検出し、利用者に情報を公開しているかどうかを確認することである。ステータスメッセージが存在するが支援技術によって表示されない場合、失敗が発生したことの確認となる。

事例

事例 1: status の役割 (role) のない検索結果メッセージを含める

利用者が検索ボタンを押して検索を実行するとき、ページのコンテンツは検索結果で更新され、検索ボタンの下のセクションに表示される。検索結果がないため、コンテンツを変更すると「0 件の結果が返されました」というステータスメッセージが表示される。このテキストはステータスメッセージの適切な役割 (role) が与えられていないため、利用者がそのテキストに再びフォーカスしない限り、スクリーンリーダーは「0 件の結果が返されました」とアナウンスしない。ステータスメッセージは利用者に自動的に表示されないため(つまり、人間が手動で検出しなければならない)、4.1.3 の達成に失敗する。

動作例: 適切な役割 (role) のない検索結果メッセージ

検証

手順

ページに動的に追加されるコンテンツの場合:

  1. 更新されたコンテンツを含む要素がフォーカスを持たないことを確認する
  2. 新しいコンテンツが次のいずれかの情報を利用者に提供していることを確認する:
    • 動作の成功又は結果
    • アプリケーションの待機状態
    • プロセスの進行状況
    • エラーの存在
  3. 新しいコンテンツを含む要素に、statusalertlog、もしくは progressbar という既存の ARIA の役割 (role)、又は aria-live 属性がないことを確認する
  4. 支援技術によってステータスメッセージが表示されていない (つまり、アナウンスされていない) ことを確認する

期待される結果

  • 1. から 4. がすべて真である場合、コンテンツは達成基準に失敗する。