aria-live
グローバルな aria-live
属性は、要素が更新されることを示し、ユーザーエージェント、支援技術、ユーザーがライブリージョンから期待できる更新の種類を記述します。
解説
コンテンツが最初に読み込まれた後に変更されると、支援技術 (AT) ユーザーはその変更を「見る」ことができない場合があります。変更の中には重要なものもあります。また、重要でないものもあります。 aria-live
属性は、ユーザーに更新情報を通知し、重要性と緊急性に基づいて、AT ユーザーにコンテンツの変更を即座に通知するか、積極的に通知するか、受動的な通知をするかを開発者が選ぶことができます。
画面の一部が更新された場合、それが目立つようにスタイル設定されていれば、ほとんどの目の見えるユーザーは一般的に更新に気づきます。一方、スクリーンリーダーは一度にページの一部分にしか注目せず、その部分が更新された場所とは限りません。aria-live
属性は、ユーザーが開始した操作ではなく、開発者が設定したイベントをトリガーとして、AT にそのような変更を通知する方法を提供します。
<div id="announce" aria-live="polite"></div>
aria-live
属性は空の要素に設定します。ページが更新されると、aria-live
属性を持つ空の要素が更新され、ユーザーに更新があったことを知らせる簡単なアナウンスが流れるはずです。
<div id="announce" aria-live="polite">
<p>このメッセージがアナウンスされます。</p>
</div>
アクセシビリティ API が上記のライブリージョンへの変更を認識すると、属性の値に基づいてそのライブリージョンのコンテンツをアナウンスします。要素にはフォーカスが与えられません。
ライブリージョンのコンテンツをすべて読み込ませたい場合は、aria-atomic
を使用してください。ユーザーに再読み込みが必要な更新の部分だけを定義するには、aria-relevant
を使用してください。更新中にアナウンスを行わないようにするには、aria-busy
を使用してください。
aria-live
値の選び方
一部の支援技術ユーザーはライブ更新を「見る」ことができないので、aria-live
属性を使用して、ユーザーがどのような更新情報を得るべきかを定義します。
- 直ちに知ることができるようにする
- 利用できる機会があれば情報を提供する
- 更新された領域に集中することを選べば、積極的に情報を知ることができるようにする
aria-live
の値は、ユーザーエージェント、支援技術、ユーザーがライブ領域から期待できる更新の種類を記述し、重要度を表現するために使用することができます。
aria-live
の属性が polite
に設定されている場合、支援技術は更新をユーザーに通知しますが、通常、現在のタスクを中断せず、更新の優先度は低くなります。assertive
に設定すると、支援する技術はすぐにユーザーに更新を通知しますが、以前の更新のスピーチキューをクリアする可能性があります。
スクリーンリーダーは、ページが読み込まれるとコンテンツをバッファーに入れます。このため、最初のアクセシビリティツリーが構築された後に追加されたコンテンツは、動的なウィジェットが読み込まれる前に AT ユーザーがコンテンツを読み始めるので、気づかないかもしれません。このような場合、aria-live="polite"
を設定することで、ページが更新されたことをユーザーに知らせることができます。
完全に生成されるページも更新を行うことができます。例えば、リアルタイムのスポーツスコア、ニュースクローラー、株式市場のティッカーのようなコンテンツです。このような更新がページの主な機能でない限り、更新のたびにユーザーに通知する必要はありませんが、ウィジェットが更新されたことを通知したいでしょう。この場合、aria-live="off"
を設定します。これらのシナリオでは、ユーザーがライブリージョンに集中していない限り、更新を通知する理由はありません。
ライブ更新の中には、重要で時間に敏感なものがあります。例えば、コンサートのチケットを販売しており、ユーザーが購入できる時間が限られている場合、アクティビティが小康状態になるまで待って、時間が迫っている(または既に経過している)ことを指示したくありません。可能な限り早く情報を伝える必要がある場合は、aria-live="assertive"
を設定します。更新された情報がalert
である場合、aria-live
属性は必要ありません。
この制限時間シナリオでは、アクセシビリティを確保するために、ユーザーが利用できる時刻を延長したり、タイマーを完全にオフにする方法を提供する必要もあります。
aria-live
の使用
ライブリージョンは要素とそのすべての子孫を含みます。コンテンツの更新時に設定されていなかった場合、aria-live
の値は有効な aria-live
属性の値が設定されている最も近い祖先から決まります。off
に設定されている場合、または更新された要素と DOM ツリー内のすべての祖先ノードで属性が完全に除外されている場合、ユーザーには通知されません。しかし、ライブリージョンに移動した場合、ユーザーは更新を聞くことができます。
警告:
中断はユーザーを混乱させたり、現在の課題を完了させなくさせる可能性があるため、assertive
の値は緊急でない限り使用しないでください。
値
関連するインターフェイス
Element.ariaLive
-
ariaLive
プロパティは、Element
インターフェイスの一部で、このaria-live
属性の値を反映します。 ElementInternals.aria-live
-
ariaLive
プロパティは、ElementInternals
インターフェイスの一部で、このaria-live
属性の値を反映します。
関連するロール
すべてのロールで使用されます。
仕様書
Specification |
---|
Accessible Rich Internet Applications (WAI-ARIA) # aria-live |