Fire Voxを用いたLive Regionのテスト

このページでは,Fire Voxを使って,WAI-ARIAの Live Regionを説明します.


Live Regionとは

:WAI-ARIAの解説は他のページでするつもりなので,Live Regionについてだけ,簡単に解説します.

JavaScriptを使ったページでは,JavaScriptがページの一部を書き換えることができます.特にAjaxを使ったサイトの場合,必ずと言って良いほど,ページの一部が書き換えられます.渡辺研究室の松田理沙の研究発表「JavaSciptを利用した動的なウェブのアクセシビリティー」にも書いてあるように,支援技術は,ページの一部の変化に気付かないこともあるし,変化に気付いてページの最初から読み直すこともあります.ページの変化を支援技術にどう通知すべきかを制御するのが,Live Regionです.

Live Regionは,どの要素にも適用できます.あるsection(要素)にLive Regionを指定することで,そのsectionが変化した(株価表示のように,そこだけが書き換わった)ときに,支援技術がそれを読み上げるべきか無視するべきかを指定できます.以下,Live Regionで使用されるpropertyのうち,atomicとliveを解説します.

Property: atomic

ある部分が変化したとき,(変化した)部分のどの範囲までユーザに通知するかを指定します.この値を”true”に指定すると,trueに指定された部分(DOMのsubtree)全部をユーザに通知しますが,”false”の場合は,変化した部分だけを通知します.このpropertyはオプションで,default値は”false”です.

Property: live

コンテンツの変化を,支援技術に(そしてユーザに)どう伝えるか,あるいは無視するかを指定するpropertyです.default値は”off”です.

off: 通知しない
polite: Live Regionに対して通常期待される動作.ユーザが今おこなっている作業を終えるまで,regionの変化を通知しない.
assertive: ユーザに変化を通知するが,ただちにユーザの作業を中断するほどの優先度は与えない.
rude: ユーザの作業を中断してでも,ユーザに変化を通知する.

Fire Voxを用いたLive Regionのテスト

Live Regionに対応した支援技術は今のところFire Voxだけですので,まず,Fire VoxのLive Region対応機能をまとめます.(参考:Fire Voxのサイトのチュートリアル「Working with Live Regions」

FireVoxは3種類のLive Region通知モード(live region announcements)を持っています.(各モードの切り替えは,Ctrl + Shift + Y):

  • Default:live regionを,heuristicsによって適切に扱おうと試みる.
  • Tagged:heuristicsを用いず,(上記に示した)W3Cの仕様に従って処理する.
  • No:live regionを通知しない.

なぜChen(Fire Voxの作者)は,W3C(WAI-ARIA)の仕様通りに実装しなかったのでしょうか.それは,W3Cの実装では実際の利用に耐えないと考えたからです.(Mozillaのサイトにある彼のレポート「Report on the WAI ARIA Markup for AJAX Live Regions」が参考になるかもしれません.)

以下,いくつかのテストファイルを使って,Live Regionがどう読み上げられるのかや,どんな問題があるのかを見ていきます.

Fire Voxのサイトにあるテストファイル

Live regionsの簡単な例
<span id="myLiveRegion1" aaa:live="polite" />の部分で数字が変化しますが,ユーザがコンテンツを読み上げている間はその変化は通知されません.読み上げが止まっているときに数字が変化したときだけ,「Change 1」のようにして変化が通知されます.
live属性が付いていない場合
<span id="myLiveRegion1" />なので,Live属性が付与されていません.したがって,Tagged通知モードでは数字の変化がユーザに通知されません.Deafult通知モードにすると,数字の変化が通知されます.WAI-ARIAの仕様ではLive Regionのdefault値は”off”なので,制作者がこの属性を付け忘れると,その領域の変化がユーザに通知されません.Chenはその危険性を考えて,Default通知モードを作成したのだと思います.
バスケットボールの試合中継を模した例
点が入るごとに,あるいは選手がリバウンドを取ったりするごとに,それが通知されます.(すべて live=”polite”)でも,誰が得点したかなどは,音声で聞いていると分からないですね.

テストスーツ「Accessible AJAX」

この次に時間が出来たときに書くので,ちょいとお待ちを.

HTML convert time: 0.428 sec. Powered by WordPress ME