逐次的な情報更新を識別するために 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. の結果が真である。