WAI-ARIAの普及と検証における課題
RIAをアクセシブルにするための規格「WAI-ARIA」の策定が進み、またブラウザーやJavaScriptライブラリー側での実装も少しずつですが増えてきています。ARIAの基盤が固まり始めたことをうけて、W3CのWeb Accessibility Initiativeは、ARIAの普及に向けた取り組みについて検討しているようです。
WAI-ARIAはまだ草案段階ではありますが、WAI-ARIA FAQ(日本語訳)では、今から導入することの利点を挙げ、利用を促しています。
しかしながら、ARIAの導入には2つの大きな問題があります。ひとつは、ARIA仕様が追加する新しい属性が、既存のXHTMLやHTMLに組み込まれていないこと。もうひとつは、マークアップや挙動が正しいかを確認する検証環境がないことです。
WAI-ARIAと文法的妥当性
ARIAでは、role
や aria-checked
といった、役割や状態をマークアップするための新しい属性が導入されています。これらの属性はXHTML Role 属性モジュールやARIA属性モジュールとして定義されていますが、利用にはXHTML 1.1など、モジュール化されたXHTMLが対象となっています。
このため、既存のXHTML 1.0やHTML 4で制作されたWebアプリケーションに、ARIAで利用する属性を組み込んでしまうと、文法エラーとなってしまいます。
また、XHTMLにARIAを組み込んだプロファイルも現在は定義されていません。利用を促しているとはいえ、文法的に「正しく」ARIAを利用することはまだできないのです。
動的なHTML文書の検証
ARIAはWebアプリケーションなど、スクリプトにより動的にページの内容が書き換わる文書のアクセシビリティを確保するための技術です。この「スクリプトにより動的に書き換わる」という性質が、ARIAを組み込んだ文書の検証における、大きな課題なのです。
一般的なValidatorはページのHTMLのみを取得し、文法違反がないかを確認しています。このため、スクリプトなどはその内容が解析されず、スクリプトがもたらす文法違反をチェックすることができません。動的処理がほとんどの場合前提となるWebアプリケーションにおいては、ARIAに関わらずその検証を行うことができないのです。
また、ARIAの検証においては、文法に適合しているかよりも、本当に正しい挙動を行えているかが重要です。マウスをクリックしたときに、特定の要素の役割や状態が適切に書き換わっているかを検証するには、状態が変更したときに都度検証をかける必要があります。従来のURLを入力して結果を出力するといった流れではあまり意味がないのです。
このため、ARIAの検証にはブラウザーのプラグインなど、新しい形態のツールが必要ではないかという意見もでています。
ARIAは今利用できない技術?
だからといって、WAI-ARIAの導入が現実的でないかというと、そうではありません。ブラウザーだけではなく、内部的にARIAを導入しているJavaScriptライブラリーが増えてきています。一番実装が進んでいるのはDojo Toolkitですが、jQuery UIやYahoo! UI Libraryも実装に向けた取り組みを開始しています。
これらのライブラリーが持つウィジェットを利用することで、検証についてはある程度のカバーができるでしょう。XHTML 1.0やHTML 4で文法的に利用できないといった問題は残りますが、それだけを理由に採用を行わないという判断は、すこしもったいないように感じます。