注意
この文書は、W3C / WAI が公開している2008年2月4日付の「WAI-ARIA Primer」(原文は英語)を、W3Cの定めた事項に従い株式会社日立製作所がボランティアとして日本語に翻訳したものです。 正式な文書は、あくまで W3C のサイト上で公開されている英語版であり、この日本語訳文書には翻訳上の間違い、あるいは不適切な表現が含まれている可能性がありますのでご注意ください。また、リンク先が英語の場合、あるいはダミーのページである場合もあります。ご了承ください。 その他のWAI-ARIA関連文書の日本語訳をご覧になりたい場合はWAI-ARIA(日本語訳)をご覧ください。


W3C

WAI-ARIA入門書

W3Cワーキングドラフト 2008年2月4日

本バージョン:
http://www.w3.org/TR/2008/WD-wai-aria-primer-20080204/
最新のバージョン:
http://www.w3.org/TR/wai-aria-primer/
編集者:
リサ・パパス(Lisa Pappas)(SAS)
リチャード・シュワードフェジャー(Richard Schwerdtfeger)(IBM)
マイケル・クーパー(Michael Cooper)(W3C)

概要

WAI-ARIA入門書は、WAI-ARIA [ARIA] を使って障がいのある人のための動的なウェブコンテンツのアクセシビリティに対応することを、開発者に紹介するものである。DHTMLやAjaxなどのハイブリッドな技術によって引き起こされるアクセシビリティ問題を説明するほか、コントロールをマッピングする技術、Ajaxのライブリージョン、アクセシビリティAPIへのイベントを取り上げ、リッチ・インターネット・アプリケーションに使われるカスタムコントロールなども含めて紹介していく。また、この入門書では、メニュー、1次コンテンツ、2次コンテンツ、バナー情報、その他のウェブ構造タイプといった一般的なウェブ要素をマークする新しいナビゲーション方法も説明する。これらの新しい技術は、障がいのある人に対するウェブリソースのアクセシビリティとユーザビリティを高める目的で使え、またウェブリソースの既存ライブラリを大幅に変更する必要もない。この文書は、WAI-ARIA概要で説明されるWAI-ARIAの一部と位置付けられている。

この文書のステータス

このセクションは、この文書の発行時点でのステータスを説明したものであり、この文書に取って代わる他の文書がすでに存在している可能性もある。W3Cの現行の発行物およびこの技術報告書の最新改訂版は、W3C技術報告書の索引(http://www.w3.org/TR/)で見つけることができる。

この文書は、ウェブ・アクセシビリティ・イニシアティブ(WAI)プロトコル・フォーマット作業部会(PFWG)が作成した最初の公開ワーキングドラフトである。アクセシブル・リッチ・インターネット・アプリケーション(WAI-ARIA) [ARIA] 仕様をサポートして、WAI-ARIAが解決しようとしているアクセシビリティ問題について基本的な情報を提供するとともに、技術的アプローチを説明する。この文書のコンテンツの大半は、ARIAのためのロードマップ [ARIA-ROADMAP] から流用された。ロードマップは、動的なコンテンツにまつわるアクセシビリティ問題を解決するための計画に重点を置いているが、この入門書は、その問題に対するWAI-ARIAのソリューションを紹介するものである。

PFWGでは、この文書で説明された情報に対するフィードバックを受け付けている。

ぜひコメントをお寄せいただき、この文書の向上にお力を貸してほしい。この文書に対するコメントは、public-pfwg-comments@w3.orgアーカイブ)で受け付けている。締め切りは2008年3月3日だが、2008年2月20日までにお送りいただければ、予定された会合でコメントを議題にしやすくなる。とはいえ、それ以降に届いたコメントも、検討させていただく。

ワーキングドラフトとして発行された場合も、W3Cメンバーによって是認されたことを意味するものではない。この文書は、ドラフト文書であって、他の文書によって随時更新、置換されるか、また旧バージョンとなる可能性がある。この文書は、未完成の文書という扱いにおいてのみ、引用すべきである。

この文書は、2004年2月5日W3C特許方針に則って活動するグループによって作成された。このグループでは、この文書がW3C勧告になるとは考えていない。W3Cでは、このグループの作成物に関連する全開示特許の公開リストを作成しており、そのページには、特許開示にあたっての指示も含まれている。エッセンシャルクレイムを含んでいると思われる特許について実際の知識を持っている人は、W3C特許方針のセクション6に従ってその情報を開示しなければならない。

このグループの参加者に課される開示の義務は、グループの憲章で説明されている。

目次

  1. 1 はじめに
  2. 2 問題
  3. 3 要件
  4. 4 ソリューション
    1. 4.1 HTMLのアクセシビリティAPIサポートの分析
  5. 5 デスクトップブラウザに出力されるコンテンツのギャップへの対応
    1. 5.1 プラットフォームのアクセシビリティAPIをサポートするためのキーボードフォーカスおよびセマンティクスに関する新規定の使用
      1. 5.1.1 ロール(role)属性に関する規定:オブジェクトとは何か
      2. 5.1.2 アクセシビリティのステート(state)情報に関する規定:現在このオブジェクトが持っている意味のあるプロパティは何か
      3. 5.1.3 キーボードフォーカスまたは入力フォーカスに関する規定:自分はどのオブジェクトに対してインタラクトしているのか
      4. 5.1.4 XHTMLおよびHTML 4.01におけるARIAのサポート
    2. 5.2 文書ナビゲーションを向上するためのXHTMLロール(role)ランドマークの使用
    3. 5.3 WAI-ARIAのロール(role)タクソノミー ― RDF/OWLを使った拡張可能なセマンティクスのロール(role)モデル
    4. 5.4 アクセシビリティイベントとイベント処理
    5. 5.5 HTML 5 ― 将来に向けて
  6. 6 WAI-ARIAとWCAG 2.0を採用する事業上の理由
  7. 7 結論
  8. 8 補足資料
    1. 8.1 ギャップ分析 ― アクセシビリティAPIのサポートに関する(X)HTMLのギャップへの対応
    2. 8.2 参考文献
    3. 8.3 謝意
      1. 8.3.1 プロトコル・フォーマット作業部会のアクティブな参加者(発行時点)
      2. 8.3.2 プロトコル・フォーマット作業部会の過去のアクティブな参加者およびARIA仕様への協力者
      3. 8.3.3 資金援助

1 はじめに

SecuritySpaceが発行する技術普及報告書(Technology Penetration Report)によると、今日のウェブサイトの55%以上はJavaScriptを含んでいて、障がいのある人のウェブコンテンツへのアクセス能力に大きな影響を及ぼしている。新しいリッチ・インターネット・アプリケーションは、カスタムウィジェットをレンダリングして、リッチなデスクトップコンポーネントを模倣することによって、ページ全体をリロードしなくてもUIを更新できるという、GUIによく似た環境を実現している。レガシーGUIのアクセシビリティフレームワークは、包括的なアクセシビリティ・アプリケーション・プログラミング・インタフェース(API)とインフラストラクチャを介してこれらの問題に対応することで、支援技術との相互運用性を達成している。これらのAPIは、スクリーンリーダーなどの支援技術とアプリケーションとの間に規約を構成することで、必要とされる適切なセマンティクスを持ったリッチで動的なコンテンツに対し、支援技術がアクセスして使用可能な代替物を生成できるようにする。しかし現状では、リッチ・インターネット・アプリケーションと支援技術の間にこのような規約が存在しないために、障がいのある人にアクセシビリティギャップをもたらしている。

残念ながら、HTMLとその他のマークアップ言語は、アクセシブルな動的コンテンツに適切なサポートを提供していない。これまでのところ、W3CWAIでは、JavaScriptを使用しないよう呼びかけ、それをウェブ・コンテンツ・アクセシビリティ・ガイドライン(WCAG)1.0([WCAG1] 、チェックポイント6.1)にも盛り込んできた。W3Cでは、数々のイニシアティブを立ち上げて、宣言的マークアップのアプローチを使ってこの問題に対応しようとしている。この入門書では、現行のHTMLとXHTMLのマークアップに適切なメタデータを組み込んで現在のアクセシビリティAPIをサポートすることによって、現在の支援技術が抱える相互運用性の問題に対応する手段を説明していく。さらに、ARIAの概念的な理解をウェブ開発者にもたらすことによって、WAI-ARIA仕様 [ARIA] への準備とすることを意図している。WAI-ARIAは、(X)HTMLの開発者がマークアップ内で使える幅広い技術を作ることによって、デスクトップの高度なアクセシビリティ機能をウェブにもたらすものだ。これらの技術がもたらすメタデータは、GUIウィジェットや文書構造を記述し、支援技術のベンダーがアクセシブルでユーザブルなソリューションを提供するのを助ける。W3CWAI内に作られたPFWGでは、ユーザーエージェントのメーカーや支援技術のベンダー、さらにはアクセシビリティツールのプロバイダなどと協力して、エンド・トゥ・エンドの実用ソリューションを確立する作業に取り組んでいる。

WAI-ARIAの導入としては、アクセシブル・リッチ・インターネット・アプリケーション・スイート(WAI-ARIA)概要を参照できる。このWAI-ARIA入門書は、WAI-ARIA仕様をサポートする一連のリソースの1つであり、ARIAの背後にある概念と理由について基本的な説明を加えることを目的としている。一方、WAI-ARIAベストプラクティス [ARIA-PRACTICES] では、ウェブコンテンツ開発者のための推奨使用パターンを説明する。WAI-ARIAスイートは、ARIAのためのロードマップ(WAI-ARIAロードマップ) [ARIA-ROADMAP] で指摘されたギャップを埋めるものである。これらの文書は、明確な定義や説明がないと思われるトピック分野において、それを明確にするという重要な役割を担っている。

2 問題

伝統的なHTMLは、複数の側面において、動的なコンテンツのアクセシブルなサポートを難しくしている。例えば、以下の点が挙げられる。

  1. アクセシビリティが、コンテンツと表現的な情報の両方から得られる抽象的なセマンティクスに依存している。現行のHTMLコンテンツからセマンティクスのキューを抽出する過程では、そのキューがタグ要素の名前に限定されているため、抽出結果の信頼性が一般に低い。
  2. セマンティクス情報を伝える手段を提供しないままコンテンツを表現的にフォーマット化することを、HTMLが認めてしまっている。よくある例としては、スタイルシートではなくテーブルを使ってコンテンツをフォーマット化している例がある。
  3. HTMLでは、スクリプトとCSSを併用することによって、動的なカスタムコンポーネントを作ることができてしまい、GUIコンテンツをサポートするために作られたネイティブのアクセシビリティアーキテクチャに対して、セマンティクス情報を伝える手段が提供されないことがある。
  4. 文書構造について意味のあるメタデータを追加する機能が、HTMLにはない。
  5. HTML要素を本来の目的以外の用途に使ってカスタムコンポーネントを作ることによって、キーボードではアクセスできないコンポーネントができてしまう。

JavaScriptで生成されるコンテンツを開発する開発者は、テーブルや順序の決まったリストのように実際のユーザーインタフェースを定義する標準的なタグ要素だけに縛られることを好まない。DIVタグのような要素を幅広く使って、スタイルシートや動的なコンテンツ変化も利用しながら、UIを動的に実現させている。しかし、HTMLのDIVタグは、セマンティクス情報を提供するものではない。例えば、ポップアップメニューや順序の決まったリストなどの開始を定義するために、DIVが使われるかもしれない。が、HTMLには、以下の点を達成するメカニズムが存在しない。

つまり、JavaScriptには、ネイティブプラットフォーム上のアクセシビリティフレームワークに対してユーザーエージェントがソリューションをマッピングするためのアクセシビリティアーキテクチャが必要ということだ。

DOM内のDOM要素に対してマッピングされたアクセシビリティ情報
図1.0:JavaScriptを伴わないDOMノードのアクセシビリティ相互運用性

図1.0は、モデル・ビュー・コントローラ(MVC)のアーキテクチャにおける典型的なDOMノードを示している。このノードでは、データ、つまり「モデル」にセマンティクス情報が含まれていて、これはユーザーインタフェースの表現、つまり「ビュー」とは分離されている。ここでは、文書要素がユーザーエージェントによって管理されていて、それは要素のデフォルト動作に基づいている。文書要素におけるユーザーエージェントのデフォルト動作は、コントローラを形成する。DOMノードと支援技術の間に置かれているのが、ユーザーエージェントから支援技術に提供される規約を含んだボックスだ。このデータには、アクセシブルなGUIプラットフォームの多くに対応するアクセシビリティAPIに見られる典型的なアクセシビリティ情報(ロール(role)、ステート(state)、キャレット、選択、テキスト、ハイパーテキスト、名前記述、親/子情報、関係)が含まれている。HTMLと他のW3Cのマークアップでは、要素のタグ名とそのタグにマッピングされるアクセシビリティ属性だけに基づいて、アクセシビリティ情報が提供される。例えば、テーブルのアクセシブルなロール(role)はtableだ。そして、開発者は、title属性を割り当てることによって、アクセシブルな記述を提供する。

JavaScriptコントローラを伴ったDOM要素
図2.0:JavaScriptを伴ったDOMノードのアクセシビリティ相互運用性

図2.0は、図1.0と同じDOMノードだが、新しいコントローラとして機能するJavaScriptを伴っている。JavaScriptは、このDOMノードにおいて、ユーザーエージェントのデフォルト動作を上書きする。ユーザーによるインタラクションの結果として起きるイベントに応答して、JavaScriptがデータ、コンテンツ、スタイルを操作し、カスタムウィジェットを作り出す。この状況では、デフォルトのアクセシビリティ情報は有効ではなくなり、規約も無効となる。図2.0では、規約内のロール(role)、ステート(state)、アクション、値、イベント変更、関係にアスタリスクが付いているが、これは、アクセシビリティにエラーが起きる可能性があること、ベースマークアップにギャップが生じる可能性があることを示している。これらのギャップは、規約をサポートするのに必要な新しいセマンティクスデータを開発者が提供しなかった結果として起きている。

3 要件

アクセシブルなリッチ・インターネット・アプリケーションの作成を支援するソリューションはすべて、以下の要件を満たさなければならない。

セマンティックウェブ技術を使って、カスタムUIコンポーネントの発見を可能にすること。
ウェブオントロジーによって、オブジェクトに関するセマンティクス情報と、オブジェクトがオントロジー内で他のオブジェクトとどのようにかかわるかに関する情報が、保存できるようになる。
現在のアクセシビリティアーキテクチャをサポートすること。
現在のアクセシビリティアーキテクチャは、オブジェクト技術を中心に成り立っている。アプリケーションまたは文書内の各オブジェクトが、そのアクセシブルなプロパティを支援技術に対して開示する。
コンテンツと表現の分離を可能にすること。
動的なコンテンツの開発者は、その文書がどのようにレンダリングされるかに依存しない方法で、アクセシブルなメタデータを文書内に保存できなければならない。
支援技術によるアプリケーションの受動的なモニタリングを許可すること。
アクセシビリティ情報の変化に対応するアプリケーションを、支援技術のベンダーが要求されるべきではない。
W3Cが進めている問題解決のための新たな活動を利用すること。
この問題は、すぐにも解決されなければならない。最小限の変更で必要なレベルに到達することを目指して、数々の活動が行われている。
軽量であること。
ソリューションは、ウェブ開発者による採用を促すため、軽量でなければならない。
スケーラブルであること。
ソリューションは、スケーラブルでなければならない。複雑なことを可能にする一方で、シンプルなことを簡単にしなければならない。
国際化が可能であること。
他のウェブソリューションと同様、私たちのソリューションも国際化が可能でなければならない。
ユーザーエージェントのサポートを最初に保証すること。
ユーザーエージェントのメーカーが最初から介入して、仕様が完成した暁には、ソリューションのサポートを確実にしなければならない。
支援技術のベンダーを最初から介入させること。
相互運用性を確立するため、支援技術のベンダーが最初から参加しなければならない。開発過程では、支援技術ベンダーからのサポートを生かして、仕様が完成した暁には、トータルなソリューションが作られるようにする。
その過程で開発者ガイドラインを作成すること。
これは、新しいアクセシビリティモデルの作成に携わる人が犯す重大な間違いだ。開発者が早い段階から介入して、フィードバックを出せるようにし、実用に適したソリューションを早くから作り始められるようにしなければならない。

4 ソリューション

問題点の説明から明らかに分かるのは、適切なアクセシビリティ情報をマークアップで提供し、それによってターゲットとするプラットフォーム上のアクセシビリティAPIをサポートする手段が、開発者にはないという点だ。この問題は、HTMLだけに限ったことではなく、スケーラブル・ベクター・グラフィックス [SVG] などの他のマークアップにも及んでいる。この入門書では、デスクトップブラウザに出力されるウェブコンテンツの問題に対応して、HTMLとXHTMLの両方に使える共通の拡張機能を紹介する。それが、アクセシブル・リッチ・インターネット・アプリケーション(WAI-ARIA)バージョン1.0 [ARIA] だ。目標は、これをHTML 5の標準機能とすることにある。

4.1 HTMLのアクセシビリティAPIサポートの分析

この問題に対応するためのテンプレートとして図1.0を使用し、また米国リハビリテーション法第508条のアクセシビリティ標準に則って、表1.0を作成した。この表では、インフラストラクチャに見られるギャップが明らかにされているほか、その問題への対応として使われるべきW3Cの標準も示されている。右側の列で空白になっているセルや制限が記載されているセルは、HTMLとXHTMLにアクセシビリティギャップがあることを示している。

表1.0:HTMLとXHTMLのアクセシブルな動的ウェブコンテンツに関するプラットフォームギャップの分析
必須のコンポーネント 現状でどれが何をするのか(HTML)
イベント:  
フォーカスの変更 DOM 2、3のイベント
有効化 ユーザーエージェントのAPI
キャレットの変更 ユーザーエージェントのAPI
値の変更  
ステート(state)の変更  
選択の変更 ユーザーエージェントのAPI
ミューテーション(変異) DOMのイベント
アクセシブルなアクション:  
アクションにラベル付けするイベントハンドラの機能情報  
アクション列挙のために使用できるイベントハンドラへのアクセス  
ステート(state)情報:  
ロール(role)情報: 標準のHTMLタグ名に限られる(コンテンツと表現の両方)
関係:親/子 DOM(スタイルに影響される)に限られる(コンテンツと表現の両方)
関係:(Label、MemberOf - Group、ControllerFor) HTMLに限られる(Title, alt, label)
テキスト パースしたHTMLからのコアDOM
コンテンツ選択: ブラウザ依存(不完全)
フォント/フォントスタイル情報: 設定できるが最終のフォーマットは得られない
記述/ヘルプ: HTML 4.0(Alt Text, title text)に限られる
アクセシブルな値: form要素に限られる
座標(矩形範囲など): ユーザーエージェント、プラットフォームのアクセシビリティAPI
アクセシブルな名前:  
応答デスクトップフォント/カラーの変更: 部分的(CSSおよびJavaScriptに競合)
機器に依存しないナビゲーション:  
アクセシビリティAPIへのマッピング: 部分的 ― ユーザーエージェント
アクティブな要素すべてに対するフォーカスの提供(デスクトップ上の等価キーボードアクセスにとって重要) formおよびanchorに限られる

5 デスクトップブラウザに出力されるコンテンツのギャップへの対応

W3C WAIのPFWGによる現在の取り組みは、W3C ARIAをHTML 5への移行パスとともに提供し、ホスト言語を拡張することによって、HTML 4.01とXHTML 1.xに拡張機能をもたらすことに、主な焦点を置いている。この成果は、アクセシブル・リッチ・インターネット・アプリケーション [WAI-ARIA] 仕様に盛り込まれるだろう。WAI-ARIAが提供する拡張機能によって、アクセシビリティAPIのインフラストラクチャと動的な(X)HTMLコンテンツをサポートするために埋めなければならないギャップのほとんどは埋められるだろう。WAI-ARIAの策定に使われた(X)HTMLの総合的なギャップ分析、およびWAI-ARIAがこれらのギャップをどのように埋めるかは、表1.0に示したとおりだ。将来的には、ARIAを多くのホスト言語に統合して、アクセシビリティを向上させたいと考えている。支援技術との高い相互運用性を通じて動的なウェブコンテンツをアクセシブルにするのに必要とされる重要な拡張機能は、以下のように要約できる。

ステート(state)およびプロパティ属性 ― これは、完全なキーボードフォーカスを提供するために必要な(X)HTMLの属性変更だ。ステート(state)とプロパティがプラットフォームのアクセシビリティAPIに直接的または間接的にマッピングされることによって、ARIAに対する支援技術の完全な相互運用性が実現する。

ロール(role)属性 ― ロール(role)属性は、XHTML Role属性モジュール [XHTML-ROLES] から借用された概念で、これにより開発者は、要素の目的に関するセマンティクス情報を機械的に抽出できるかたちで、ホスト言語に注釈として付けられるようになる。アクセシビリティ、機器適応、サーバーサイド処理、複雑なデータ記述などを目的としている。図2:JavaScriptを伴ったDOMノードのアクセシビリティ相互運用性に見られるように、ARIAでは、支援技術に対してロール(role)情報をもたらす目的でロール(role)属性を使っている。

文書ランドマークのロール(role)値 ― これらの値も、やはりXHTML Role属性モジュール [XHTML-ROLES] から借用されていて、ロール(role)属性の標準値を提供する。これにより、文書の適切な部分(ランドマーク)がアクセシビリティ目的で定義される。ユーザーエージェントは、例えばデスクトップのユーザーエージェントであればキーマッピングなどによって、文書内のこれらのセクションをナビゲートできるかもしれない。

ARIAのロール(role)値のタクソノミー ― このタクソノミー(系統的な階層分類)には、WindowsおよびLinuxのアクセシビリティAPIに見られる中心的な必須のロール(role)と、文書構造を表現するロール(role)が含まれる。文書構造を使用することは、支援技術が複雑な文書をナビゲートし、ウェブページ内のアクティブなエリア、例えばスクリプトで動的に生成されたウェブアプリケーションなどに入った場合にそれを理解するために必要だ。このタクソノミーは、ロール(role)がサポートしているプロパティをユーザーエージェントやオーサリングツールが判断するのを助け、これらのプロパティのアクセシビリティAPIへのマッピングを支援する。タクソノミーは、クラスの階層構造に似ていて、セマンティクスと構造を伝えるのに使われ、また各ロール(role)に関する情報を説明する。現時点では、このタクソノミーは、RDF/OWLをモデルとして作られている。

つまり、WAI-ARIAは、スクリプトで生成される動的なウェブコンテンツ、特に(X)HTMLマークアップにJavaScriptを使ったウェブコンテンツのアクセシビリティを修正するのに使われるだろう。幅広い用途を意図しており、SVGなどの他のマークアップにも適用できるはずだ。また、(X)HTMLのアクセシビリティにとっての重要性という点ではやや低いものの、やはり有益なものとして、XMLイベントへの記述拡張と新しいAccess要素が挙げられる(リンクを入手するには、この文書が公開ワーキングドラフトに組み込まれなければならない)ウェブ・コンテンツ・アクセシビリティ・ガイドライン2.0では、ARIAのプロパティを要求しており、これに関連した記述が、ガイドライン4.1「現行および未来の支援技術を含むエージェントとの互換性を最大化する」(ロール(role)、ステート(state)、プロパティ、値)、およびガイドライン1.3「情報や構造を失うことなく、様々な形式(音声読み上げやシンプルなレイアウトなど)で表現できるコンテンツを作成する」(関係)に見られる。

次のセクションでは、どのようにしてこれらの仕様を一緒に使うのか、またHTML 4に実装するのかを説明する。

5.1 プラットフォームのアクセシビリティAPIをサポートするためのキーボードフォーカスおよびセマンティクスに関する新規定の使用

HTMLで書かれた複雑なユーザーインタフェースに対して代替アクセスをもたらす必要がある適応技術は、しばしば、HTML文書の特定部分に込められたセマンティクスを推測で判断せざるを得ない状況に置かれている。例えば、XHTMLの文書が、多数のDIVなど特定のHTML構造を使って、ナビゲーションバー、サイトナビゲーションメニュー、その他のGUIのようなインタフェースウィジェットを作っている場合がある。この問題に対応するため、私たちは、ロール(role)属性を導入して、アクセシブルなステート(state)のプロパティを割り当て、新しいTABINDEXの機能を使ってオブジェクトに対するフォーカスを与えた。この情報を加えたことで、開発者は、適応技術がアクセスするアクセシビリティAPIをユーザーエージェントがサポートするにあたって必要な情報を提供できるようになった。

5.1.1 ロール(role)属性に関する規定:オブジェクトは何か

プラットフォームのアクセシビリティAPIは、GUIオブジェクトに対する「ロール(role)」という概念をそれぞれに持っている。このことは、Java Accessibility API [JAPI] 、Microsoft Active Accessibility [MSAA] 、Apple Accessibility for COCOA [AAC] 、Gnome Accessibility Toolkit (ATK) [ATK] 、 UI Automation for Longhorn [UIAUTOMATION] (UI自動化におけるコンテンツタイプと呼ばれている)に当てはまる。W3CのARIA仕様は、XHTML 1.xを基本として、ロール(role)属性を含んでいる。「ロール(role)」属性は、QNameを取ることによって、開発者が ARIA のロール(role)からロール(role)属性を参照できるようにしている。以下の例では、QNameを使って、WAI-ARIA仕様にあるmenuのロール(role)を参照している。

例:ネームスペースを使って、ロール(role)情報をXHTML 1.xに加えている

<?xml version="1.1" encoding="us-ascii"?>
<!DOCTYPE html PUBLIC "Accessible Adaptive Applications//EN" 
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
>
    <body>
        <div role="menu">
            File
        </div>
    </body>
</html>

HTML作業部会では、ロール(role)をQNameにすることで、他者による一連の標準ロール(role)の定義を可能にすることを選んだ。また、これらのロール(role)は拡張可能であるべきだ。HTML作業部会の意図は、要素を定義するRDFをこれらのQNameが参照するようにすることにある。最終的には、RDFがオブジェクトを定義すべきだ。WAI-ARIA仕様では、このタクソノミーの目的に加えて、どのようにRDFを使ってこれらのロール(role)を記述できるかについても、説明している。

5.1.2 アクセシビリティのステート(state)情報に関する規定:現在このオブジェクトが持っている意味のあるプロパティは何か

新しく定義されたこれらのオブジェクトは、動的なコンテンツであるため、ステート(state)が変化する。WAI-ARIA仕様は、すでに定義されたプラットフォームのアクセシビリティAPIから提供されるアクセシブルなステート(state)とプロパティをサポートするために必要となるアクセシブルな共通プロパティを提供するだろう。この仕様は、MSAAとASKで定義されたアクセシビリティプロパティの分析に基づいて策定された。この情報を取り込むため、やはりここでもネームスペースを使って、XHTMLを拡張している。以下の例では、haspopupのアクセシビリティプロパティを追加することで、これまでのアプローチを拡張した例が示されている。

例:ネームスペースを使って、アクセシブルなステート(state)情報をXHTML 1.xに加えている

<?xml version="1.1" encoding="us-ascii"?>
<!DOCTYPE html PUBLIC "Accessible Adaptive Applications//EN" 
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">



>
        <body>
            <div role="menu" aria-haspopup="true">
                File
        </div>         
    </body>
</html>

Windowsのユーザーエージェントでは、現在、このプロパティをMSAAのSTATE_SYSTEM_HASPOPUPのステート(state)にマッピングすることができる。このステート(state)を追加または削除すれば、Windowsのユーザーエージェントは、EVENT_OBJECT_STATECHANGEのイベントを支援技術に送るだろう。この結果、JavaScriptページで開発者がすべきタスクは、このステート(state)の属性を維持することになる。それは、DOMコールを使うことによって簡単に達成可能だ。

5.1.3 キーボードフォーカスまたは入力フォーカスに関する規定:自分はどのオブジェクトに対してインタラクトしているのか

スクリーンリーダーやオンスクリーンキーボードなど、事実上すべての適応技術ソリューションが、現在フォーカスの置かれているオブジェクトを把握しなければならない。例えば、開発者は、現在フォーカスが置かれているオブジェクトにテキストを挿入したり、そのオブジェクトに関する情報を提示したりしたいと考えるかもしれない。現在のHTML 4.01とXHTML 1.xでは、スクリプト開発者がフォーカスを置けるのはformおよびanchor要素に限られているが、DOM仕様ではすべての要素がキーボードイベントを含む様々なイベントを受けられるようになっている。つまり、スクリプト開発者がすべてのHTML要素をキーボードでアクセスできるようにしたいと考えたとしても、HTMLが本来的にそれをできなくしている。この問題があることによって、デスクトップブラウザ上のTabキーを使って要素にアクセスするタイプのウェブページは、ユーザビリティに影響を来している。遅くて非生産的なこのアプローチによって、ポータルのナビゲーションは困難になる。すべてのアクティブな要素が、Tabキーで移動して、文書内の最後のポートレットにあるアクティブな要素にフォーカスできなければならないためだ。この問題をXHTML 1.xで解決するために、私たちは、FirefoxとIEの機能を統合して、「-1」に対するタブインデックスを定義した。これにより、スクリプト開発者は、タブ順序(Tabキーでフォーカスが移動する順序)内に要素を置かなくても、要素にフォーカスできるようになる。以下の表は、新しいアクセシブル・アダプティブ・アプリケーション仕様に盛り込まれる予定のこれらの変更を示している。

tabindexの使用をサポートして要素にフォーカスを置くためのアクセシブル・アダプティブ・アプリケーションの変更
tabindex属性 マウスまたはJavaScriptのelement.focus()でフォーカス可能かどうか タブがナビゲートできるかどうか
存在しない 要素のデフォルト動作に従う(フォームコントロール、リンクなどでは可) 要素のデフォルト動作に従う
負(例:tabindex="-1" 不可、矢印キーまたはその他のキーを押した結果として、開発者がelement.focus()でフォーカスしなければならない
ゼロ(例:tabindex="0" 文書内の要素の位置に対する相対的なタブ順序となる
正(例:tabindex="33" この要素がタブ順序内でどこに位置すべきかを、tabindexの値が直接的に指定する。これらの要素は、タブ順序内でtabindex="0"の要素の前に置かれるか、タブ順序に自然に包含される(form要素およびリンク)

以下の例は、TABINDEXを使って、新しいアクセシビリティのメタデータを持ったDIVにフォーカスを与えた例を示している。

例:XTHML 1.xでtabindexを使用して、formまたはanchorではない要素にフォーカスを与えている

<?xml version="1.1" encoding="us-ascii"?>
   <!DOCTYPE html PUBLIC "Accessible Adaptive Applications//EN" 
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">



>
    <body>
        <div role="menu" aria-haspopup="true" tabindex=-1>
            File
        </div>
    </body>
</html>

5.1.4 XHTMLおよびHTML 4.01におけるARIAのサポート

XHTMLとは異なり、HTML 4.01は拡張性がない。これはつまり、ネームスペースの使用を通じてHTML 4を拡張できないということだ。しかし、PFWGのメンバーは、HTML作業部会とも協力して、ネームスペースを使わない手法で合意した。現時点ではXHTMLとHTMLからサポートされていて、HTML 5が勧告になった暁にはHTML 5からもサポートされる予定だ。この手法の実装という点では、Firefox 3が最も進んでいるが、他のブラウザメーカーもサポート努力に取り組んでいる。このテクニックは、ARIAで定義されたロール(role)の値すべてを(XHTML Role属性モジュールによって定義されたものも含めて)、ネームスペースの接頭辞なしに指定できるようにするものだ。さらに、ARIAのステート(state)とプロパティは、「aria-」に続いてそのARIAのステート(state)またはプロパティを記すことで表現される。

例:セクション5.1.3のtabindexの例を、ブラウザによってサポートされたHTMLで表すテクニック


<html lang="en">
  <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head> <body> <div role="menu" aria-haspopup="true" tabindex=-1> File </div> </body> </html>

HTMLとXHTMLに対して拡張されたこれらの属性を確認するため、WAIのPFWGでは今後、各ホスト言語に対して高度なスキーマまたはDTDを作成することを検討していく予定だ。

5.2 文書ナビゲーションを向上するためのXHTMLロール(role)ランドマークの使用

ARIA のロール(role)に含まれる共通ロール(role)に加えて、XHTML 2.0とXHTML Role属性モジュール([XHTML-ROLES] 、セクション4)では、文書の適切な部分をアクセシビリティ目的で定義する共通ロール、リージョナル、ランドマークを定義している。ユーザーエージェントは、例えばデスクトップのユーザーエージェントであればキーマッピングなどの機器等価物を統合することによって、文書内のこれらのセクションをウェブサイトに依存せずナビゲートできるかもしれない。これらのセマンティクスが追加されることによって、ユーザーエージェントは、一般的な文書セクションに対して標準化されたナビゲーションを提供できるようになる。これは、ポータルのユーザビリティを向上するうえで、特に重要だ。これらは、以下の例で示されているように、文書内のセクションに適用することによって、XHTML 1.xで属性として使用できる。注:これらのロール(role)は、XHTMLの一部になっていることから、ネームスペースに入れる必要はない。

例:XHTML 1.x文書のナビゲーションセクションに対して、XHTMLのナビゲーションロール(role)を使ってランドマークを定義している

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">    
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>    
  <title>application/xhtml+xml: Navigation Roles Example 1</title>        
  <link rel="stylesheet" href="css/nav1_xhtml.css"  type="text/css" ></link>    
  <script type="text/javascript" src="../js/globals.js"></script>    
  <script type="text/javascript" src="../js/widgets_xhtml.js"></script>  <link rel="icon" href="http://www.cites.uiuc.edu/favicon.ico" type="image/x-icon" />    
  <link rel="shortcut icon" href="http://www.cites.uiuc.edu/favicon.ico" type="image/x-icon" />    
</head>    
<body onload="widgets.init()">
.
.
.    
<div id="leftnav">         
<h2 class="nav" id="leftnav_label">Career Center Services</h2>         
 <ul title="Career Center Services" role="navigation" aria-labelledby="leftnav_label">        
   <li><a href="http://www.uiuc.edu/">Career Home</a></li>  
   <li><a href="http://www.uiuc.edu/">Career Counseling</a></li>        
   <li><a href="http://www.uiuc.edu/">Pre-Health Advising</a></li>        
   <li><a href="http://www.uiuc.edu/">Services</a></li>        
   <li><a href="http://www.uiuc.edu/">Workshops</a></li>        
   <li><a href="http://www.uiuc.edu/">Resource Center</a></li>        
   <li><a href="http://www.uiuc.edu/">Question Board/FAQ</a></li>  
 </ul>

...

</body>

上記の例は、イリノイ大学アーバナ・シャンペン校のキャリアセンターのウェブサイトのヘッダーから引用した。この大学の学生は、ジョン・ガンダーソン氏の教えに従って、Mozilla/Firefoxのためのアクセシビリティエクステンションを開発した。ページ開発者やユーザーがナビゲーションランドマークのリストを見られるようにするのが、開発目的の1つだった。このツールは、図3.0のとおり、ページ上のナビゲーションセクションをリストアップする。このナビゲーションバーのリストをキーボードでナビゲーションすれば、対応する文書のセクションがハイライトされる。リストでは、各ナビゲーションリージョンのタイトルが表示されている。

ランドマークから作成されたコンテンツの目次
図3.0:ヘッダー内にあるナビゲーションランドマークから作成されたコンテンツの目次

図3.0は、イリノイ大学アーバナ・シャンペン校が開発したMozilla/Firefoxのためのアクセシビリティエクステンションによって文書のランドマークがレンダリングされた例を示している。イリノイ大学キャリアセンターのホームページをFirefoxブラウザで表示した様子だ。この例では、ツールバーのエクステンションによって起動した「List of Navigation Bars」というビューアーが表示されている。そして、このビューアーでは、2次コンテンツである「Career Center Services」が選択されていて、結果として文書内の該当セクションが黄色でハイライトされている。このビューアーには、ナビゲーションセクションに対応する以下のタイトルがリスト表示されている。

5.3 WAI-ARIAのロール(role)タクソノミー ― RDF/OWLを使った拡張可能なセマンティクスのロール(role)モデル

WAI-ARIAのロール(role)タクソノミーは、セマンティックウェブ技術を使って、リソース記述フレームワーク(RDF) [RDF] およびウェブオントロジー言語(OWL) [OWL] の形式で策定された。知識ベースのクラス階層構造をロール(role)に定義するための手段だ。このモデルは、タクソノミー内の各ロール(role)がどのステート(state)とプロパティをサポートしているかを示している。クラスの階層構造に含まれているロール(role)は、その先祖からプロパティを継承し、また独自のプロパティを定義する。必要に応じてセマンティックウェブ技術が使われて、関連する概念が他のネームスペース内で定義される。この情報は、ロール(role)をどのように選び、ロール(role)とどうインタラクトするかを見極めるにあたって重要だ。ロール(role)のタクソノミーでは、データを使ってデータを記述し、W3Cの標準に基づくアプローチでこの情報を表現するために、RDFを使用している。

タクソノミーのセマンティクスマップのサンプル
図4.0:ARIAに拡張されたロール(role)としてのButtonUndoロール(role)の可能性を示した部分的なRDFマップの例

図4.0は、オブジェクトを定義している一連の用語と関係について定義する、基本的なRDFマッピングを示している。中央にあるのは、すべてのGUIウィジェットに共通するステート(state)とプロパティを定義するウィジェットオブジェクトだ。このButtonオブジェクトは、ウィジェットを拡張し、定義されたアクセシビリティプロパティをスーパークラスウィジェットから継承する。また、Linkオブジェクトに対してrelatedConceptのプロパティも定義する。ButtonUndoのロール(role)は、Buttonを拡張する。HTMLのinputオブジェクトのrelatedConceptを持っていて、さらに、オブジェクト記述などのダブリン・コア・メタデータを導入する。relatedConceptとrequiredStateは、対応するRDFスキーマの一部として定義される用語である。ロール(role)のインスタンスは、それぞれがWindowsやGnomeのようなプラットフォームのアクセシビリティAPI、およびコンテンツ構造に見られる標準のロール(role)を表現する。そして、これらのロール(role)が、タクソノミーを形成する。ホスト言語のブラウザ実装は、ネームスペースなしにARIAのロール(role)を参照するかもしれないが、ロール(role)に対するRDFの表現は、ホストXMLマークアップ言語からのQNameを使って参照されるかもしれない。以下の例では、XHTMLが、ARIAタクソノミーのRDF表現においてgridのロール(role)を参照している。

<div role="wairole:grid"> whereby wairole:grid expands to: http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#grid in the button markup.

このデザインによって、ウェブオーサリングツールは、対応するRDF/OWLのマークアップに戻り、どのプロパティがアクセシビリティAPIのマッピングにサポートされているのかを判断できるようになる。そして、付加的なミドルウェアソリューションは、リッチブラウザ、および構造化されたリッチなフレームワークの背後にあるセマンティクスを処理して、ウェブコンテンツをインテリジェントに変化させられるようになる。PFWGの当面の目標は、スクリプトで生成されるウェブコンテンツのアクセシビリティ問題を解決することだ。支援技術は、標準的なロール(role)を使って、ほとんどのコンテンツをどのようにレンダリングするかを決定するだろう。PFWGでは、将来的には、RDFを必要とせず、QNameを提供しないHTMLにもっと適したARIAのロール(role)タクソノミーをモデル化するための追加的な手段を定義するつもりだ。

データグリッドを伴ったGUIのようなノートブックタブのDHTMLの例
図5.0:DHTMLの例

図5.0は、XHTML、JavaScript、CSSを使ってGUIのようなアプリケーションを作成したDHTMLの例を示している。このDHTMLのウェブページの例は、IBMが開発したもので、伝統的なデスクトップGUIのように動作するデータグリッドを含んだノートブックタブを示している。このデータグリッド内のキーボードナビゲーションは、矢印キーで行われる。ページタブ間のナビゲーションにも、やはり矢印キーを使う。ノートブックタブ、編集フィールド、ボタン、データグリッド間のナビゲーションは、Tabキーで可能だ。WAI-ARIA のロール(role)、ステート(state)、プロパティ仕様からのアクセシブルなロール(role)およびステート(state)のメタデータが、GUIウィジェットとして動的に使われたXHTML要素それぞれに対して、属性として追加されている。ここではFirefoxになっているが、ユーザーエージェントが、この情報をプラットフォームのアクセシビリティAPIにマッピングする。図6.0は、フォーカスが置かれた「DataGrid」ページタブ上に新しく提供されたアクセシビリティマークアップをMicrosoft Active Accessibilityでレンダリングした様子を示している。

MSAA Inspectツールによるノートブックページタブの診断
図6.0:Microsoft Inspectツールによる「DataGrid」ページタブのレンダリング

図6.0は、図5.0で示した「DataGrid」ページタブをMicrosoftのInspect 32でレンダリングしたものだ。Inspect32は、Microsoft Active Accessibility情報を提供するもので、ここでは、「page tab」のアクセシブルなロール(role)とアクセシブルなステート(state)、つまり「focused(フォーカスされた)」「focusable(フォーカス可能)」「linked(リンクされた)」の情報を示している。XHTMLには、ページタブ要素はない。このため、ここではXHTMLのDIV要素が使われて、JavaScriptコントローラによってノートブックタブのように見えるようにされている。こうすることによって、標準的なXHTML 1.xとは異なり、フォーカスを受けることができるようになり、しかもTabキー操作の必要もない。スクリプト開発者は、これらの仕様を使うことで、アクセシビリティプロパティを追加してプラットフォームのアクセシビリティAPIをサポートできるようになる。「DataGrid」ページタブのアクセシブルなステート(state)プロパティは、「focused(フォーカスされた)」「focusable(フォーカス可能)」「linked(リンクされた)」と示されている。GUIアプリケーションとは異なり、開発者がアプリケーションを一度だけ作成すれば、複数のオペレーティングシステムプラットフォームで動作するようになる。

PFWGでは、スクリプトで生成されるウェブコンテンツを超えて、ロール(role)の使用を拡張し、他の使用ケースでも動作するようにしたいと考えている。これには、以下のものが含まれる可能性がある。

5.4 アクセシビリティイベントとイベント処理

アプリケーションと支援技術の間の相互運用性を達成するには、アクセシビリティを目的としたイベント通知が必要となる。表2.0に示したイベントは、ユーザーエージェントを介して起動されるだろう。そのアクセシブルな値とステート(state)プロパティの変更は、DOM属性の変更に応答するかたちで、AAA仕様の定義に従って生成される。プラットフォームのアクセシビリティAPIをサポートするユーザーエージェントは、ステート(state)の変更値の変更といったイベント通知をサポートする。

5.5 HTML 5 ― 将来に向けて

HTML 5とその「シリアル化」されたXHTMLバージョンは、標準化されるまでにまだ何年もかかると見られている。WAI-ARIAのステート(state)、プロパティ、ロール(role)、さらにセクション5.1.4で説明したARIAで必要とされるtabindexの変更を、HTML 5に追加することについては、すでに予備的な合意が成されている。詳細については、HTML 5仕様が勧告になるまでの間に変更される可能性がある。HTML 5では、さらに多くの標準コントロールが含まれ、ARIAの機能の設定としてどれを使うかを開発者が選べるようになるだろう。PFWGでは、今後もWAI-ARIAの使用と業界での採用を促進し、新しいタイプのコントロールに引き続きアクセシビリティのサポート能力が盛り込まれるよう、確認していくつもりだ。これから埋めなければならないギャップは数多くあり、例えば、名前を付けたイベントハンドラやアクセスキーの向上などに取り組む必要がある。私たちの作業は、まだ決して終わったわけではない。

6 WAI-ARIAとWCAG 2.0を採用する事業上の理由

リッチ・インターネット・アプリケーションの開発者が、1999年のWCAG 1.0標準に基づくアクセシビリティ順守条項をサポートしようとして、アプリケーションをディグレードさせ、ARIAの使用を避けることが多々ある。まずこれは、HTML 4またはXHTML 1.xを使って、ウェブページをキーボードでアクセスできるようにすることを意味する。WCAG 1.0では、キーボードでアクセスできるようにしなければならないと言っているが、使えるようにしなければならないと言っているわけではない。これをHTMLで行うには、アクティブな要素がリンクになるか、form要素がキーボードでアクセスできるようにならなければならない。また、これは、ホスト言語が提供する以上のセマンティクスが必要というわけではないことも意味する。さらに、ブラウザのCSSをオフにした状態でも使うことができなければならない。このことは、以下のようなユーザビリティ問題を引き起こす。

ARIAのツリーウィジェットのユーザビリティ比較

図7.0:ツリーウィジェットのユーザビリティについて、WAI-ARIAのセマンティクスを実装したWCAG 2.0ガイドラインとWAI-ARIAを使わないWCAG 1.0を比較したモデル

図7.0は、ツリーウィジェット内のツリー項目のための「アクセシブル」なウィジェットを示している。WCAG 1.0をARIAなしで使っていて、スクリーンリーダーに送られた段階では、「link folder PJ111」と読み上げられる可能性がある。このフォルダが閉じられている(expandedが「false」になっている)ことを示す情報は提供されていない。また、階層の深さ(aria-levelが「2」)、セット内のポジション、このレベルでのセットの大きさを示す情報もない。これらはすべて、目の見えるユーザーには当然と思われがちな文脈をもたらすものだ。これがツリー項目であることは、ロール(role)を使って示されていて、これにより、この項目がツリー項目のように動作し、キーボードでナビゲートできるべきであることが分かる。一方、ARIAのバージョンを使っているスクリーンリーダーは、「Closed Folder PJ111, Closed Folder one of four, Depth 2, unchecked」と読み上げる可能性がある。さらに、ARIAのバージョンでは、ツリー項目が矢印キーでナビゲートでき、ウェブページ全体を統制するTabキー送りのスキームの一部としてナビゲートすることは要求しない。これはそもそも、ツリーウィジェットに対してユーザーが期待することではないだろう。さらに、ウェブページ上のすべてのウィジェットがリンクだと言われたら、いったいどれほどのユーザビリティだろうか。

ここで問わなければならないのは、次の質問だ。「なぜアクセシビリティに投資が必要なのか、なぜ非生産的なユーザーを作り出す必要があるのか」。デスクトップのユーザー全員が、ARIAから恩恵を受けるだろう。

7 結論

この入門書は、スクリプトで生成される動的なウェブコンテンツを今日のブラウザでレンダリングする際のアクセシビリティに対応するとともに、W3Cが策定するXHTML 2のような宣言的な標準の未来に対して効果的な架け橋を築くために作られている。XHTML 1.xのために作られた拡張機能は、幅広い対象を視野に入れている。この入門書では、WCAG、ATAG、UAAGが共通戦略の中核を成すべきだと、明らかに述べている。すべての作業部会が、互いに依存していて、影響を受け合っている。さらに、HTML、CSS、機器非依存などメインストリームの作業部会と密接に協力することで、実用的なソリューションというのみならず、XHTMLだけに留まらない幅広い影響力のある実用的なソリューションができるだろう。

8 補足資料

8.1 ギャップ分析 ― アクセシビリティAPIのサポートに関する(X)HTMLのギャップへの対応

表2.0:ギャップ分析 ― アクセシビリティAPIのサポートに関する(X)HTMLのギャップへの漸進的対応
必須のコンポーネント 現状でどれが何をするのか(X)HTML HTML 4.01とXHTML 1.xのギャップを埋めるテクニック
イベント:    
フォーカスの変更 DOM 2 UI イベント([EVENTS] 、セクション1.6.1) DOM 2 UI イベント([EVENTS] 、セクション1.6.1)
有効化 DOMレベル2の機器に依存しないUIイベント([EVENTS] 、 セクション1.6.1、UIイベント)  
キャレットの変更 ユーザーエージェントのAPI ユーザーエージェントのAPI
* 値の変更   (X)HTMLのWAI-ARIAのロール(role)、ステート(state)、プロパティ内にあるvaluenow、valuemax、valueminのステート(state)を、ユーザーエージェントがモニターする。ロール(role)によって指定されたプラットフォームのアクセシビリティAPIの値を表現するプロパティについては、アクセシブルな値の変更イベントを生成する(下記のステート(state)の変更イベントを参照)
* ステート(state)の変更  

(X)HTMLのWAI-ARIAのロール(role)、ステート(state)、プロパティ内にある特定のアクセシビリティのステート(state)を、ユーザーエージェントがモニターする。ロール(role)によって指定されたプラットフォームのアクセシビリティAPIのステート(state)またはプロパティを表現するステート(state)およびプロパティについては、アクセシブルなステート(state)またはプロパティの変更イベントを生成する(下記のステート(state)の変更イベントを参照)

選択の変更 ユーザーエージェントのAPI ユーザーエージェントのAPI
ミューテーション(変異) DOMのイベント DOMのイベントのマッピング
アクセシブルなアクション:    
* イベントハンドラの機能情報および記述ショートカット    
* アクション列挙のために使用できるイベントハンドラへのアクセス DOM 3のイベント  
* ステート(state)情報:   WAI-ARIAのロール(role)、ステート(state)、プロパティ仕様からのステート(state)およびプロパティ
* ロール(role)情報: 標準のHTMLタグ名に限られる(コンテンツと表現の両方)

WAI-ARIAのロール(role)、ステート(state)、プロパティ仕様が定義するロール(role)とそれに対応する値

関係:親/子 DOM(スタイルに影響される)に限られる(コンテンツと表現の両方)  
関係:(Label、MemberOf - Group、ControllerFor) HTMLに限られる(Title, alt, label)  
テキスト: パースしたHTMLからのコアDOM 1  
コンテンツ選択: ユーザーエージェント  
フォント/フォントスタイル情報: 設定できるが最終のフォーマットは得られない CSS2 APIまたはプラットフォームのアクセシビリティAPIを使って、ユーザーエージェントが最終的にフォーマットをスタイリングする
* 記述/ヘルプ: HTML 4.0(Alt Text, title text)に限られる WAI-ARIAのロール(role)、ステート(state)、プロパティ仕様が定義するdescribedbyのプロパティ
* アクセシブルな値: form要素に限られる WAI-ARIAのロール(role)、ステート(state)、プロパティ仕様が定義するvaluenow、valuemax、valueminのプロパティ
座標(矩形範囲など): ユーザーエージェント、プラットフォームのアクセシビリティAPI  
アクセシブルな名前: HTMLタグからユーザーエージェントが決定する  
* 応答デスクトップフォント/カラーの変更 部分的(CSSおよびJavaScriptに競合)  
* 機器に依存しないナビゲーション: <link rel"">を介してXHTMLのランドマークを使用  
* アクセシビリティAPIへのマッピング: 部分的 ― ユーザーエージェント  
アクティブな要素すべてに対するフォーカスの提供 ベストプラクティスはTABINDEX=-1  

表2.0は、(X)HTMLの表1.0のギャップを埋めるためのロードマップを示している。この取り組みでは、HTML文書にロール(role)およびステート(state)属性を組み込むためのW3Cのテクニックを使って、HTMLコンテンツのギャップを埋めることを目指している。必須のコンポーネントでアスタリスクが付いているものは、ロードマップで埋めるべきギャップを示している。

8.2 参考文献

[AAC]
Apple Accessibility for Cocoa、参照アドレス:http://developer.apple.com/documentation/Cocoa/Conceptual/Accessibility/index.html
[ARIA]
Accessible Rich Internet Applications (WAI-ARIA) Version 1.0、L. Seeman、M. Cooper、R. Schwerdtfeger、L. Pappas編集、W3Cワーキングドラフト(作業中)、2008年2月4日、WAI-ARIAの本バージョンの参照アドレス:http://www.w3.org/TR/2008/WD-wai-aria-20080204/、WAI-ARIAの最新バージョンの参照アドレス:http://www.w3.org/TR/wai-aria/
[ARIA-PRACTICES]
WAI-ARIA Best Practices、L. Pappas、R. Schwerdtfeger、M. Cooper編集、W3Cワーキングドラフト(作業中)、2008年2月4日、WAI-ARIA Best Practicesの本バージョンの参照アドレス:http://www.w3.org/TR/2008/WD-wai-aria-practices-20080204/、WAI-ARIA Best Practicesの最新バージョンの参照アドレス:http://www.w3.org/TR/wai-aria-practices/
[ARIA-ROADMAP]
Roadmap for Accessible Rich Internet Applications (WAI-ARIA Roadmap)、R. Schwerdtfeger編集、W3Cワーキングドラフト(作業中)、2008年2月4日、WAI-ARIA Roadmapの本バージョンの参照アドレス:http://www.w3.org/TR/2008/WD-wai-aria-roadmap-20080204/、WAI-ARIA Roadmapの最新バージョンの参照アドレス:http://www.w3.org/TR/wai-aria-roadmap/
[ATK]
Gnome Accessibility Toolkit、参照アドレス:http://library.gnome.org/devel/atk/unstable/
[DOM-EVENTS]
Document Object Model (DOM) Level 2 Events Specification、T. Pixley編集、W3C勧告、2000年11月13日、参照アドレス:http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/、DOM Eventsの最新バージョンの参照アドレス:http://www.w3.org/TR/DOM-Level-2-Events/
[JAPI]
Java Accessibility API (JAPI)、参照アドレス:http://java.sun.com/javase/technologies/accessibility/index.jsp
[MSAA]
Microsoft Active Accessibility (MSAA)、参照アドレス:http://msdn2.microsoft.com/en-us/library/ms697707.aspx
[OWL]
OWL Web Ontology Language Overview、D. L. McGuinness、F. van Harmelen編集、W3C勧告、2004年2月10日、参照アドレス:http://www.w3.org/TR/2004/REC-owl-features-20040210/、OWL Overviewの最新バージョンの参照アドレス:http://www.w3.org/TR/owl-features/
[RDF]
Resource Description Framework (RDF): Concepts and Abstract Syntax、G. Klyne、J. J. Carroll編集、W3C勧告、2004年2月10日、参照アドレス:http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/、RDF Conceptsの最新バージョンの参照アドレス:http://www.w3.org/TR/rdf-concepts/
[UIAUTOMATION]
Microsoft Accessibility Model (UI Automation)、参照アドレス:http://msdn2.microsoft.com/en-us/accessibility/bb892133.aspx
[WCAG1]
Web Content Accessibility Guidelines 1.0、W. Chisholm、G. Vanderheiden、I. Jacobs編集、W3C勧告、1999年5月5日、参照アドレス:http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/、WCAG 1.0の最新バージョンの参照アドレス:http://www.w3.org/TR/WAI-WEBCONTENT/
[XHTML-ROLES]
XHTML Role Attribute Module、T. V. Raman、M. Birbeck、R. Schwerdtfeger、S. McCarron、S. Pemberton編集、W3Cワーキングドラフト(作業中)、2007年10月4日、参照アドレス:http://www.w3.org/TR/2007/WD-xhtml-role-20071004/、XML Role Attribute Moduleの最新バージョンの参照アドレス:http://www.w3.org/TR/xhtml-role/

8.3 謝意

このセクションの目的は、一般情報を提供することにある。

この文書の策定にあたっては、以下の方々からの協力を仰いだ。

8.3.1 プロトコル・フォーマット作業部会のアクティブな参加者(発行時点)

  • クリス・ブラウチ(Chris Blouch)(AOL)
  • チャールズ・チェン(Charles Chen)(Google)
  • マイケル・クーパー(Michael Cooper)(W3C/マサチューセッツ工科大学)
  • ディミタール・デネブ(Dimitar Denev)(FIT)
  • ドナルド・エバンズ(Donald Evans)(AOL)
  • ケンタロウ・フクダ(Kentarou Fukuda)(IBM)
  • アルフレッド・S・ギルマン(Alfred S. Gilman)(W3C客員専門家)
  • ジョン・ガンダーソン(Jon Gunderson)(UIUC)
  • ケニー・ジョハー(Kenny Johar)(Vision Australia)
  • ディエゴ・ラ・モニカ(Diego La Monica)(IWA/HWG)
  • アーロン・レベンサール(Aaron Leventhal)(IBM)
  • トーマス・ローガン(Thomas Logan)(客員専門家、BayFirst Solutions)
  • マット・メイ(Matt May)(Adobe)
  • チャールズ・マックキャシーネビル(Charles McCathieNevile)(Opera)
  • リサ・パパス(Lisa Pappas)(客員専門家、SAS)
  • デイブ・ポーソン(Dave Pawson)(RNIB)
  • デイビッド・ポーエルマン(David Poehlman)(客員専門家、メリーランド州)
  • グレゴリー・ロスマイタ(Gregory Rosmaita)(客員専門家、The Linux Foundation)
  • ジャニナ・サジカ(Janina Sajka)(客員専門家、The Linux Foundation)
  • ステファン・シュナベル(Stefan Schnabel)(SAP)
  • リチャード・シュワードフェジャー(Richard Schwerdtfeger)(IBM)
  • リサ・シーマン(Lisa Seeman)(UB Access)
  • マーク・シルビー(Marc Silbey)(Microsoft)
  • マイク・スキラス(Mike Squillace)(IBM)
  • ゴットフリード・ジマーマン(Gottfried Zimmermann)(Access Technologies Group)

8.3.2 プロトコル・フォーマット作業部会の過去のアクティブな参加者およびARIA仕様への協力者

アーロン・レベンサール(Aaron Leventhal)に特別な謝意を表明したい。彼の尽力と見識があったからこそ、アクセシビリティAPIバインディングの実践的なプロトタイプが実装された。

また、ジム・アラン(Jim Allan)(TSBVI)、サイモン・ベイツ(Simon Bates)、ジュディ・ブリューワー(Judy Brewer)(W3C/マサチューセッツ工科大学)、クリスチャン・コース(Christian Cohrs)、ベッキー・ギブソン(Becky Gibson)(IBM)、アンドレ・ゴンザレス(Andres Gonzalez)(Adobe)、ジョルジオ・グリゴリアディ(Georgios Grigoriadis)(SAP AG)、ジェフ・グライムズ(Jeff Grimes)(Oracle)、バーバラ・ハーテル(Barbara Hartel)、ショーン・ヘイズ(Sean Hayes)(Microsoft)、ジョン・フバティン(John Hrvatin)(Microsoft)、アール・ジョンソン(Earl Johnson)(Sun)、マサヒコ・カネコ(Masahiko Kaneko)(Microsoft)、ジャエル・クルツ(Jael Kurz)、アレックス・リー(Alex Li)(SAP AG)、ウィリアム・ローバラ(William Loughborough)、リンダ・マオ(Linda Mao)(Microsoft)、アンダース・マークッセン(Anders Markussen)(Opera)、デイブ・ポーソン(Dave Pawson)(RNIB)、T・V・ラマン(T.V. Raman)(Google)、ビタリー・スリコフ(Vitaly Sourikov)、ライアン・ウィリアムズ(Ryan Williams)(Oracle)、トム・ウロドコウスキ(Tom Wlodkowski)の各位にもお礼を申しあげる。

8.3.3 資金援助

この発行物は、米国教育省が歳出した政府資金によって一部賄われている(契約番号:ED05CO0039)。この発行物の内容は、必ずしも米国教育省の見方または方針を反映したものではなく、また、商号、商用製品、組織についての言及も、必ずしも米国政府による是認を意味するものではない。