WAI-ARIAの誕生と現状
フロントエンド・エンジニア 渡邉 卓WAI-ARIA(WAI Accessible Rich Internet Applications)という仕様が策定中であるのをご存知でしょうか? WAI-ARIAは、様々なWebコンテンツをよりアクセシブルにするためにW3CのWAI(Web Accessibility Initiative)が作成した技術仕様と関連文書の総称です。
本コラムでは、WAI-ARIAとは何か、について軽くご紹介します。
アクセシブルでないリッチコンテンツの台頭
現在、多くのWebサイトが(X)HTMLとCSSだけでは表現することができない様々な機能をJavaScript、Adobe Flash、Silverlightなどを用いて補完しています。例えば、MJLが提供している各種機能(特にタブインターフェイス)もそのひとつです。
しかしながら、(X)HTMLだけでは表現することができない様々な機能は、実現する方法如何によってはアクセシブルではなくなります。また、どう足掻いてもアクセシブルではなくなってしまうような機能もあります。
支援技術とリッチコンテンツ
スクリーンリーダなどの支援技術を経由してWebブラウザを使っているユーザにとって、コンテンツがアクセシブルでないとブラウジングに支障を来すことがあります。
例えばプログレスバーについて考えてみます。OSやウインドウマネージャが持つUI部品としてのプログレスバーは、それ自身が「プログレスバー」という役目を持っています。また、近年のOSや各種ウインドウマネージャにはアクセシビリティAPIと呼ばれる仕組みがあり、支援技術に対して「今何%まで進行しましたよ」といったような状態を返してくれます。支援技術はアクセシビリティAPIを経由して受けとった情報を様々な形式に変換・出力します。
しかし、(X)HTMLには「プログレスバー」を表現する要素も属性も定義されていません。そこで、全く異なる役目を持った要素を流用して、無理矢理「プログレスバーもどき」を実装せざるを得なくなります。
ただ、このままでは「プログレスバーもどき」が「プログレスバー」という役目を果たすことはできません。確かに、見た目は「プログレスバー」みたいにすることができます。しかし、アクセシビリティAPIはこの「プログレスバーもどき」を「プログレスバー」だとは認識できないのです。
結果的に、支援技術には「プログレスバー」に関連した情報は一切渡らず、ユーザは「プログレスバーもどき」を造るのに利用した(X)HTMLの要素が持つ本来の意味だけを情報として受けとることになります。もはや、何が何やらわからない……といった状況になるのです。
WAI-ARIAの登場
そこで登場したのがWAI-ARIAです。WAI-ARIAでは(X)HTML文書に特殊な属性(attribute)と属性値を追加することで、(X)HTMLが元々定義している要素に対して「役目」と「状態」の情報を追加できるようになります。
これにより、「×××という意味を持つ要素」を、「○○○という役割を持ち、現在の状態は△△△である、×××という意味を持つ要素」といった表現に拡張できるようになります。
また、Webブラウザが「役目」と「状態」の情報をアクセシビリティAPIに伝達することで、支援技術にも「役目」と「状態」の情報を渡すことができるようになります。
先に例として挙げた「プログレスバーもどき」も、WAI-ARIAを使えば立派な「プログレスバー」としての「役目」を果たし、かつ「今何%まで進行しましたよ」という「状態」まで支援技術に伝えられるようになります。
技術的な側面は解説しだすとキリがないため、別の機会に譲りますが、WAI-ARIAで「役目」はrole、「状態」はproperty及びstateと呼ばれる概念に相当する、という点は押さえておいてもよいでしょう。
各Webブラウザの対応状況
既に、Mozilla Firefox3やInternet Explorer8はWAI-ARIAをサポート済みであると表明しています。また、現在β版段階であるApple Safari 4でもWAI-ARIAをサポートしているようです。
Opera については9.6の時点である程度のサポートが行なわれているようです。
各JavaScriptライブラリの対応状況
現在、最も必要とされているのは、WAI-ARIAを実際にWebサイトへ組み込んだ実績や、各種JavaScriptライブラリでの実装です。
早くからWAI-ARIAの実装を試みているDojoでは、現時点での最新版(1.3.0)でかなりのWAI-ARIA対応を行なえています。しかし、いくつか古い仕様に準じた部分を残してしまっており、まだ実装がこなれていない状況にあるようです。
Yahoo! User Interface Libraryは、いくつかのUI部品をWAI-ARIAに対応させるプラグインが公開されているようで、実装は進んでいます。しかしデフォルトでWAI-ARIA対応が有効になるまでには、まだもう少し時間がかかるようです。
script.aclo.usやjQuery UIもWAI-ARIAに対応する予定はあるようですが、現在リリースされているバージョンでまだサポートされていません。
MJLとWAI-ARIA
MJLは、今のところWAI-ARIAに対応していません。しかし、将来的には対応させようと考えています。
今のところは、WAI-ARIA対応を含める実験を行なっている段階です。残念ながら、いつWAI-ARIA対応を完了できるか明言する段階には至っていませんが、プロトタイプの実装が着々と進んでいるのは確かです。
WAI-ARIAはまだまだ新しい仕様であり、技術です。しかし、徐々にではありますが対応・実装が行なわれたWebブラウザ、支援技術、JavaScriptライブラリが出始めています。
今後の動向に注目しておいて損はないでしょう。WAI-ARIAは世界中から注目され、期待されている仕様なのですから。
Newsletter
メールニュースでは、本サイトの更新情報や業界動向などをお伝えしています。ぜひご購読ください。