Ajax開発の未来
Ajaxにおけるアクセシビリティ
急速に広まってきたAjaxテクノロジですが、大きな問題として3つのアクセシビリティの問題があります。
1つ目は、JavaScriptをオフにした状態では使えないということです。モダンなWebブラウザが増えてきた現在、必ずしも対応すべき問題ではないかもしれません。W3CのWeb Content Accessibility Guidelines(WCAG) 2.0では、Webサイトがアクセシブルであることを条件として、JavaScriptに対する規制を取り払っています(1.0ではJavaScriptがオフになった状態でもWebサイトが使えるようになっていることを義務づけています)。
2つ目は、キーボードだけで操作できないことです。実装次第ではキーボードのみで操作させることも可能なので、実装者の配慮にかかっていると思います。
3つ目は、音声ブラウザやスクリーンリーダで操作・理解ができないことです。これは一番問題となるのはないでしょうか。Ajaxは動的にHTMLの内容を書き替えますが、スクリーンリーダで読んでいる人にとってみれば、どこが更新されたのか判断する術がありません。もともと静的なドキュメントを読み上げるというのがスクリーンリーダの機能なので、仕方ないと言ええば仕方ないのですが、解決しなければならない問題の1つです。
AjaxをアクセシブルにするWAI-ARIA
この問題の具体的な実装提案としてWAI-ARIA(http://www.w3.org/TR/wai-aria/)(Accessible Rich Internet Applications)という仕様があり、現在ワーキングドラフトが公開されています。また、このARIAはドラフトが公開されているだけでなく、すでにFirefox 2以降でサポートされており、Firefox 3.0で完全にサポートされる予定です。またAjaxのライブラリの1つであるDojoは、すでにサポートしています。
具体的には図2のように、HTML上に決められたマークアップを行うことで、そのエレメントがどんな役割を持っていて、どんな状態にあるか分かるようにすることができます。参考としてこちらの記事(http://developer.mozilla.org/ja/docs/Accessible_DHTML)も参照ください。
ただし、ARIAでマークアップすれば解決するというわけではなく、当然スクリーンリーダも対応は必要ですし(Window Eyes、Jaws、ZoomTextが対応を表明)、OSの対応も必要になるので、業界全体で取り組んでいくべき課題です。
このアクセシビリティ問題の解決策としても、UI構築も含めた統合フレームワークは良いソリューションになると思います。フレームワーク上で開発すれば自動的にアクセシビリティ対策にもなっているというのが理想的です。