ARIA の達成方法のためのユーザエージェントサポートノート

このページは、ARIA の達成方法のためのユーザエージェントサポートノートを記載する。

訳注: ユーザーエージェントサポートノートは記載内容が古く、また WCAG 2.0 の後続仕様である WCAG 2.1 の関連文書 Techniques for WCAG 2.1 から削除されている。そのため、WAIC ではこのページを現在メンテナンスしていない。

-

WAI-ARIA テクノロジーノート

WAI-ARIA は、アクセシビリティを向上させるために、ウェブページやリッチインターネットウィジェットに次のセマンティック情報を追加するオプションをウェブ開発者に提供する。その結果、そのセマンティック情報はブラウザに公開される。

これらの機能と DOM 構造によって伝えられる構造情報の組み合わせは、著者が支援技術に相互運用可能な解決策を作り出すことを可能にする。(出典: WAI-ARIA Overview)

WAI-ARIA に対するユーザエージェントのサポート

WAI-ARIA に対するユーザエージェントのサポートは変化するが、全般的な WAI-ARIA のサポートは改善している。WAI-ARIA をサポートするブラウザは、プラットフォームアクセシビリティ API に WAI-ARIA ロール及びプロパティを対応づける。

  • Firefox 1.5 と Firefox 2.0 は部分的に WAI-ARIA をサポートするが、名前空間を使用する必要があり、ライブ領域の使用をサポートしない。

  • Firefox 3 以上はライブ領域を含む、WAI-ARIAに対するより良いサポートを含む。

  • IE8 は、部分的に WAI-ARIA をサポートする。

  • JAWS 8 及び Window-Eyes 5.5 以上は、部分的に WAI-ARIA をサポートする。

  • Jaws 10 以上は WAI-ARIA をサポートする。

  • Firefox の音声拡張である FireVox はまた、直接の DOM アクセスを経由して WAI-ARIA をサポートする。

  • NVDA は、部分的に WAI-ARIA をサポートする。

WAI-ARIA に対するアクセシビリティサポート

アクセシビリティ サポーテッドな方法で技術を使用することは、適合性要求のために必要である。詳細は アクセシビリティサポートについてを参照のこと。 WCAG ワーキンググループは、Accessible Rich Internet Application 仕様が W3C 勧告の状態に到達する際に、WAI-ARIA 達成方法が十分であるかどうかの見直しをする予定である。 WAI-ARIA のステータスに関する最新情報については、WAI-ARIA Overviewを参照のこと。

ARIA1: ユーザインターフェース コントロールに対する説明ラベルを提供するために、aria-describedby プロパティを使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

IE 8 は一つの ID の値についてのみ aria-labelledby をサポートし、また、aria-describedby を部分的にサポートする。

ARIA2: aria-requiredプロパティによって必須項目を特定する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIA に対するユーザエージェントのサポートを参照のこと。

ARIA4: ユーザインターフェース コンポーネントの役割 (role) を明らかにするために、WAI-ARIA ロールを使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

ARIA5: ユーザインターフェース コンポーネントの状態 (state) を明らかにするために、WAI-ARIA ステート及びプロパティ属性を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

ARIA6: オブジェクトのラベルを提供するために aria-label を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

  • Jaws V.11 以降は、完全にサポートする。

  • ChromeVox V.1 以降は完全にサポートしている。

  • VoiceOver V.3 以降はサポートする。

  • NVDA 2 は Aria Describedby をサポートする。

  • Window Eyes V.7現在 (訳注: 原文のまま翻訳)

ARIA7: リンクの目的を示すために aria-labelledby を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

2012年10月現在のスクリーンリーダーテスト

  • サポートなし:

    • Win 7, IE 9, JAWS 13

    • Win 7, FF 13, NVDA 2012.2.1

    • Win XP, FF 15.0, NVDA 2011.3

    • Win XP, IE 8, SaToGo

  • 部分的サポート (リンクテキストと、aria-labeledby で参照された要素の双方が読み上げられる):

    • Win 7, IE9, NVDA 2012.2.1 (ただし、例 2 はサポートされていない)

    • Win XP, IE 8, NVDA 2011.3 (ただし、例 2 はサポートされていない)

  • サポート:

    • Win 7, FF 13, JAWS 13 (ただし、例 2 は部分的かつバグのあるサポート: "Sales report 2012" が 2 度読み上げられる)

    • Mac OS 10.5.8, VoiceOver

例 1 の全てのテスト結果を参照する (英語)

例 2 の全てのテスト結果を参照する (英語)

David は 2013 年 8 月 25 日にテストした...例 2 と 3 はまだ十分にサポートされていない。

  • 例1は、JAWS、VoiceOverでOK。 NVDAはアンカーに対する labelledby を無視する。

  • 例2: JAWS 14 は、FF と IE 10 において、各リンクの全てのパラグラフを読み上げるが、それはお喋りで紛らわしい。VoiceOver は、Mountain Lion の Safari 6 において、JAWS と同じ。 NVDA はアンカーに対する labelledby を無視する (失敗した実装)。

  • 例3: JAWS 14 は、FF と IE 10 において、 各リンクの全てのパラグラフを読み上げるが、それはお喋りで紛らわしい。VoiceOver は、Mountain Lion の Safari 6 においてOK。NVDA はアンカーに対する labelledby を無視する (失敗した実装)。

ARIA8: リンクの目的を示すために aria-label を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIA に対するユーザエージェントのサポートを参照のこと。

  • Jaws V.11 以降は、完全にサポートする。

  • ChromeVox V.1 以降は、完全にサポートする。

  • VoiceOver V.3 以降 (訳注: 原文のまま翻訳)

ARIA9: 複数の語句をつなげて一つのラベルにするために、aria-labelledby を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIA に対するユーザエージェントのサポートを参照のこと。

注記: IE をサポートするためには、aria-labelledby 要素で参照された非インタラクティブ要素に対して、属性 tabindex="-1" を付与する必要がある。詳細については、Using WAI-ARIA in HTML(英語) を参照のこと。

  • 完全サポート:

    • WIN7 / FF16 / NVDA 2012.2.1 (例 2: 列見出しも読み上げる)

    • WIN7 / FF16 / JAWS 13 (例2: 列見出しも読み上げる)

    • WIN7 / IE9 / JAWS 13

    • WIN XP /FF16 / NVDA 2011.3

    • iOS X / VoiceOver

  • 部分的サポート:

    • WIN7 / IE9 / NVDA 2012.2.1 (例 1: テキストフィールドのデフォルトのテキストが脱落する: "Extend time-out to minutes edit selected 20")

  • サポートなし:

    • WIN XP / IE8 / NVDA 2001.3 例1: aria-labelledby ('20','minutes') で参照されたテキストを読み上げない: "Extend time-out to edit selected 20"

    • System Access To Go (IE8)

ARIA10: 非テキストコンテンツに対してテキストによる代替を提供するために、aria-labelledby を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIA に対するユーザエージェントのサポートを参照のこと。

  • NVDA 2012.3 は FF との組み合わせで例 1 をサポートする。

2014 年 3 月現在、aria-labelledby に比べて、alt 属性の使用がより幅広くアクセシビリティ サポート (訳注: 原文においてリンク切れ)されている。alt 属性の使用がベストプラクティスであり、強く推奨される。特に、alt 属性をテキストによる代替の提供に使用できる要素については、制作者は H37: img 要素の alt 属性を使用するの代わりにこの達成方法に依存する前に aria-labelledby のアクセシビリティサポートを確認しなければならない。

ARIA11: ページの領域を特定するために ARIA ランドマークを使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIA に対するユーザエージェントのサポートを参照のこと。

  • Jaws V.11 以降は、完全にサポートする。

  • ChromeVox V.1 以降は、完全にサポートする。

  • VoiceOver V.3 以降は、“form”以外の全てのランドマークをサポートする。

  • NVDA 2 は、“application”に対するナビゲーションをサポートしないことを除いて、全てのランドマークをサポートする。

  • Window EyesはV.7現在、ARIAランドマークをサポートしない。

ARIA12: 見出しを特定するために role=heading を使用する

ユーザーエージェントによるサポートに関する全般的な情報は、 WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

  • Jaws 13 以降は、この達成方法をサポートする。

  • NVDA 2012.3 は、この達成方法をサポートする。

ARIA13: 領域とランドマークに名前 (name) を付けるために、aria-labelledby を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIA に対するユーザエージェントのサポートを参照のこと。

ARIA14: 可視ラベルが使用できない場合に不可視ラベルを提供するために、aria-label を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

スクリーンリーダーのサポートは、ブラウザによって変化する:

  • System Access To Go (IE8) は aria-label を認識しない。

  • NVDA を Firefox (FF) と用いた場合、aria-label はカスタムコントロール上でのみ読み上げられる。

  • NVDA を Internet Explorer (IE) と用いた場合、aria-label はネイティブコントロール上でのみ読み上げられる。

  • JAWS は aria-label を最も良くサポートしている。

詳細なテストの結果は以下の通り:

  • JAWS 13 (WIN7, FF13)

    • 例 1: JAWS は contentEditable がセットされた divaria-label を読み上げるが、div のコンテンツ (修正すべき単語) は読み上げない。

    • 例 2: JAWS は aria-label を読み上げる: "close button"

    • 例 3: JAWS は aria-label を読み上げず、単に "button" と読み上げる。

  • JAWS 13 (WIN7, IE9)

    • 例 1: JAWS は aria-label を読み上げるが、div ボックスは、div にタブ移動したときには読み上げられず、バーチャル PC カーソルモードの場合にのみ読み上げられる。

    • 例 2: JAWS は div ボックスのコンテンツを読み上げ (フォーカスはスキップリンクを介してその冒頭に移動する)、続けてaria-label: "close button" を読み上げる。

    • 例3: JAWS は aria-label を読み上げる。

  • NVDA 2011.3 (XP, FF13)

    • 例1: NVDA は contentEditable がセットされた div に指定された aria-label を読み上げ、続けて "section editable" および、スペルミスのある単語に対して "spelling error" と知らせる。

    • 例2: NVDA は aria-label を読み上げず、単に "X button" と読み上げる。

    • 例3: NVDA は aria-label を読み上げず、単に "button" と読み上げる。(- と + は脱落するが、これはスクリーンリーダーの設定でカスタマイズ可能である。)

  • NVDA 2011.3 (XP, IE8)

    • 例 1: ブラウザは div contentEditable をフォーカスするが、アクセシビリティAPIにそれらを明らかにしていないようだ。そのため、NVDA は aria-label に関連付けられたコンテンツを読み上げない。

    • 例 2: NVDA は、ボタンにに含まれているテキスト (X) の代わりに、aria-label の内容 "button close" を読み上げる。

    • 例 3: NVDA aria-label の内容を読み上げる。

  • NVDA 2012.2.1 (WIN7, IE9)

    • 例 1: (XP, IE8)と同様: div contentEditable はフォーカスを受け取るが、aria-label はアクセシビリティ API に公開されない。

    • 例 2: NVDA はブラウズモードでは "This is a div box button close"、フォーカスモードでは "close button" と、aria-label を読み上げる。

    • 例 3: aria-label の内容を読み上げる。

  • NVDA 2012.2.1 (WIN7, FF13)

    • 例 1: NVDA は contentEditable とセットされた div に指定された aria-label を読み上げ、続けて "section editable" と知らせる。(しかし、ここではスペルミスのある単語に対するアナウンスはない。)

    • 例 2: X ボタンの aria-label を読み上げない。(訳注: 原文では "Example:2" とされていたが、翻訳時に "例 2:" と訂正)

    • 例 3: NVDA は + と - のボタンに対する aria-label を読み上げない。(- と + は脱落するが、これはスクリーンリーダーの設定でカスタマイズ可能である。)

  • System Access To Go (XP, IE8): 三つの例の全てについて、 SAToGo は aria-label を認識しない。

    • 例 1: SAToGo は、"editable text" に続いて、div contentEditable の中のテキストを読み上げる。

    • 例 2: リンクをアクティベートした後、SAToGo はポップアップした div のコンテンツに続けて "button X" と読み上げる。(訳注: 原文では "button X とされていたが、翻訳時に " を補完。)

    • 例 3: デフォルトでは、SAToGo は aria-label の内容ではなく、"plus button"、"hyphen button" と読み上げる。

ARIA15: 画像の説明を提供するために aria-describedby を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

2013 年 7 月 16 日更新

  • Jaws V.11 以降は、完全にサポートする。IE10 JAWS 14。alt を読み上げた後、"press JAWS key + alt +r to hear descriptive text" と読み上げる。IE 10 は断続的なサポート、ある時は動作し、ある時は JAWS にそれを正しく読みあげさせるためにページのリロードが必要。(訳注: 原文では JAWS が "JAWs" と記載されていた点を修正。文章の区切り等は原文のまま。)

  • ChromeVox V.1 以降は、完全にサポートする?

  • VoiceOver V.3 以降はサポートしているが、双方が存在している場合には ALT テキストを置き換える。

  • NVDA 2 は双方が存在している場合は ALT テキストを読み上げるが、単独でない限り Describedby は読み上げない。

  • Window Eyes V.7 現在 ???.

(訳注: 疑問符 "?" 等の記載は原文のまま。)

ARIA16: ユーザインターフェース コントロールの名前 (name) を提供するために、aria-labelledby を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

  • Jaws V.11 以降は、完全にサポートする

  • ChromeVox V.1 以降は、完全にサポートする

  • VoiceOver V.3 以降は、サポートする ???

  • NVDA 2 は Aria Describedby をサポートする ???

  • Window Eyes V.7現在 ???.

(訳注: 疑問符 "?" 等の記載は原文のまま。)

ARIA17: 関連するフォームコントロールを特定するために、グループ化するロールを使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

この達成方法は、以下との組み合わせで動作する:

  • JAWS 13 / 14 と Internet Explorer 8 / 9、 Firefox

  • NVDA 2012 / 2013 と Firefox

  • VoiceOver と MacBook Pro の OSX 10.7.4 上の Safari、しかし、OSX 10.8 等の、それ以降のバージョンでは動作しない。(これは、HTMLの "title" 属性のサポートが壊れていることと併せて Apple に報告されている。)

ARIA18: エラーを特定するために aria-alertdialog を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

  • Jaws 13 以降はこの達成方法をサポートする。

ARIA19: エラーを特定するために、ARIA role=alert 又はライブ領域 (Live Regions) を使用する

ユーザエージェントによるサポートに関する全般的な情報は、WAI-ARIAに対するユーザエージェントのサポートを参照のこと。

この達成方法をサポートする:

  • OS X 10.8.4 + Safari + VoiceOver

  • iOS 6 & 7 + Mobile Safari + VoiceOver

  • Windows 7 + Firefox 20 + NVDA 2013.1

  • Windows 7 + Firefox 20 + JAWS 14

  • Windows 7 + IE 8 + JAWS 14 (aria-live=assertive のみ)

  • Windows 7 + IE 7 + JAWS 14 (aria-live=assertive のみ)

この達成方法をサポートしない:

  • Windows 7 + IE 8 + NVDA 2013.1 (サポートなし)

サポートに関する注記:

Internet Explorer バージョン 7 から 11 は、role="alert" を用いた場合は、この達成方法に記載されている通知をサポートしない。しかし、例 1 に記載されている aria-live="assertive" は正しく機能する。

Firefox を JAWS もしくは NVDA と用いた場合、 role=alert は "Alert" と通知され、aria-live=assertive は追加のテキストを含めない。NVDA 2013.1 + IE 8 はサポートなし。幅広いユーザーエージェント (UA)/ 支援技術 (AT) のサポートのために role=alert と aria-live=assertive の双方を用いている3個目の例は、列挙された全ての組み合わせで動作している。

alert や assertive のライブ領域をページ上に表示するには様々な方法があり、どの様にエラーコンテナを作成するか、もしくはエラーメッセージを挿入するかによって、IE 8 + JAWS 14 や VoiceOver + Safari のような難しいブラウザとスクリーンリーダーの組み合わせで動作するかどうかが決まる。