逐次的な情報更新を識別するために role=log を使用する

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

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

適用 (対象)

Accessible Rich Internet Applications (WAI-ARIA) を用いたコンテンツ。

これは達成基準 4.1.3: ステータスメッセージ (十分な達成方法) に関する達成方法である。

解説

この達成方法の目的は、アプリケーションの履歴又はログに関する逐次的な情報にコンテンツが付加されたときに、支援技術に通知することである。log ロールの ARIA ライブライブリージョンは、暗黙的に aria-live の属性値 polite 及び aria-atomic の属性値 false を持っており、ログメッセージが追加されたときに、利用者は支援技術(スクリーンリーダーなど)を介して通知を受けることが可能になる。ARIA ライブライブリージョン内の新しいコンテンツは、テキストが表示されている箇所にフォーカスが当たっていなくても、支援技術が自動的に読み上げる。詳細は WAI-ARIA 1.1 log (role) を参照のこと。

事例

例 1: チャットの会話のコンテンツを更新する

利用者がチャットの入力フィールドにタイプ入力したコメントは、チャット履歴領域の末尾に追加される。この領域は log ロールでマークされており、新たな追加は支援技術によってアナウンスされるようになっている。新しいチャットメッセージが表示されるたび、スクリーンリーダーはその内容を読み上げる。(支援技術/ブラウザの互換性に依存する)。


	<div id="chatRegion" role="log" aria-labelledby="chatHeading">
		<h4 id="chatHeading">Chat History</h4>
		<ul id="conversation">
			<li>The latest chat message</li>
		</ul>
	</div>

動作例: chatlog.html

例 2: サーバのログを更新する

アプリケーションのログは、タイムスタンプ付きのアクティビティを記録する。ログはアプリ内でビューとして公開され、その領域は、新たな追加が支援技術によってアナウンスされるように、log ロールでマークされている。(aria-relevant 属性のデフォルト値は "additions" なので、ログサイズの制限による古いトップエントリーの削除はアナウンスされない)。新たなログのエントリーが追加されるたびに、スクリーンリーダーはそれを読み上げる。


	<div id="activityLog" role="log">
		<h4 id="logHeading">Recent activity</h4>
		<ul id="logentries"">
			<li>08:03 UserX logged off</li>
		</ul>
	</div>

動作例: serverlog.html

検証

手順

順次的に更新情報を掲載しているページに対して以下を確認する。

  1. その情報のためのコンテナに log ロールが付与されていること。

期待される結果

  • 1. の結果が真である。