WCAG 2.0 解説書

本文へジャンプ

-

名前 (name) ・役割 (role) 及び値 (value) :
達成基準 4.1.2 を理解する

4.1.2 名前 (name) ・役割 (role) 及び値 (value) : すべてのユーザインタフェース コンポーネント (フォームを構成する要素、リンク、スクリプトが生成するコンポーネントなど) では、名前 (name) 及び役割 (role) は、プログラムによる解釈が可能である。又、状態、プロパティ、利用者が設定可能な値はプログラムによる設定が可能である。そして、支援技術を含むユーザエージェントが、これらの項目に対する変更通知を利用できる。 (レベル A)

注記: この達成基準は、主に独自のユーザインタフェース コンポーネントを開発、又はスクリプトで実装するコンテンツ制作者に向けたものである。例えば、標準的な HTML のコントロールを仕様に沿って使用していれば、既にこの達成基準を満たしていることになる。

この達成基準の意図

この達成基準の意図は、支援技術がコンテンツにあるユーザインタフェース コントロールの状態に関する情報を収集し、有効化 (又は設定) 及び最新の状態を保つように保証することである。

アクセシブルなウェブコンテンツ技術の標準コントロールを使用する場合、このプロセスは簡単である。ユーザインタフェース要素が仕様に準じて使用される場合、この条件に条項は満たされる。(下記の達成基準 4.1.2 の事例を参照のこと)

しかし、カスタムコントロールが作成される、又はインタフェース要素が通常とは異なる役割及び/又は機能を持つように (ソースコード又はスクリプトで) プログラミングされている場合、コントロールが支援技術に重要な情報を提供し、支援技術によってコントロールされることを、それら自身ができるように保証する追加の手段を取る必要がある。

特に重要なユーザインタフェース コントロールの状態は、フォーカスを持つかどうかである。コントロールのフォーカス状態は、プログラムによる解釈が可能であり、フォーカスの変化に関する通知は、ユーザエージェント及び支援技術に送られる。ユーザインタフェース コントロールのステータスの他の例としては、チェックボックス又はラジオボタンが選択されているかどうか、折り畳み可能なツリーやリストが展開されている又は折り畳まれているかどうかである。

注記: 達成基準 4.1.2 は、すべてのユーザインタフェース コンポーネントに対して、プログラムによる解釈が可能な名前を要求する。名前は、可視であっても、不可視であってもよい。往々にして、名前がラベルとして識別される場合、名前は可視でなければならない。より詳しい情報については、用語集にある名前及びラベルの定義を参照のこと。

達成基準 4.1.2 の具体的なメリット:

  • すべてのユーザインタフェース コンポーネントに、役割、状態、及び値の情報を提供することで、例えば、スクリーンリーダー、画面拡大ソフトウェア、及び音声認識ソフトウェアなどの、障害のある利用者が使用する支援技術との互換性を保つことが可能になる。

達成基準 4.1.2 の事例

関連リソース

リソースは、情報提供のみを目的としており、推奨を意味するものではない。

達成基準 4.1.2 の達成方法及び失敗例 - 名前 (name) ・役割 (role) 及び値 (value)

この節にある番号付きの各項目は、WCAG ワーキンググループがこの達成基準を満たすのに十分であると判断する達成方法、又は複数の達成方法の組み合わせを表している。しかしながら、必ずしもこれらの達成方法を用いる必要はない。その他の達成方法についての詳細は、WCAG 達成基準の達成方法を理解するの「その他の達成方法」を参照のこと。

十分な達成方法

使用法: そのコンテンツに合致する状況を以下から選択すること。それぞれの状況には、WCAG ワーキンググループがその状況において十分であると判断する、番号付の達成方法 (又は、達成方法の組み合わせ) がある。

状況 A: マークアップ言語 (例えば HTML) で標準的なユーザインタフェース コンポーネントを使用している場合:

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

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

  3. 下記の技術固有の達成方法を用いて、G108: マークアップを用いて、名前及び役割をユーザエージェントに提供し、利用者が設定可能なプロパティを直接設定可能にし、変化を通知する:

状況 B: スクリプト又はコードを用いて、マークアップ言語の標準的なユーザインタフェース コンポーネント再定義する場合:

  1. 名前及び役割をユーザエージェントに提供し、利用者が設定可能なプロパティを直接設定可能にし、変化を通知する

状況 C: プログラミング技術で標準的なユーザインタフェース コンポーネントを用いる場合:

  1. 下記の技術固有の達成方法を用いて、G135: 名前及び役割をユーザエージェントに提供し、利用者が設定可能なプロパティを直接設定可能にし、変化を通知するために、ウェブコンテンツ技術のアクセシビリティ API を使用する:

状況 D: プログラミング言語で独自のインタフェースコンポーネントを作成する場合:

  1. 下記の技術固有の達成方法を用いて、G10: 識別名及び役割を取得し、利用者が設定可能なプロパティを直接設定可能にし、変化を通知するためにユーザエージェントが動作する、プラットフォームのアクセシビリティ API 機能をサポートするウェブコンテンツ技術を用いて、コンポーネントを作成する:

4.1.2 でさらに対応が望まれる達成方法 (参考)

適合のために必須ではないが、コンテンツをよりアクセシブルにするために、次の追加の達成方法を検討することが望ましい。ただし、すべての状況において、すべての達成方法が使用可能、又は効果的であるとは限らない。

  • 暗黙のラベルを持たないすべてのフォーム コントロールにラベルを付加する (リンク追加予定)

達成基準 4.1.2 のよくある失敗例

以下に挙げるものは、WCAG ワーキンググループが達成基準 4.1.2 の失敗例とみなした、よくある間違いである。

重要な用語

(この文書で用いられている) 支援技術 (assistive technology (as used in this document))

ユーザエージェントとして機能する、又は主流のユーザエージェントと一緒に機能するハードウェア及び/あるいはソフトウェアで、主流のユーザエージェントで提供されている機能以上の機能を、障害のある利用者の要求を満たすために提供するもの。

注記 1: 支援技術が提供する機能としては、代替の提示 (例: 合成音声や拡大表示したコンテンツ)、代替入力手法 (例: 音声認識)、付加的なナビゲーション又は位置確認のメカニズム、及びコンテンツ変換 (例: テーブルをよりアクセシブルにするもの) などを挙げることができる。

注記 2: 支援技術は、API を利用、監視することで、主流のユーザエージェントとデータやメッセージのやりとりをすることが多い。

注記 3: 主流のユーザエージェントと支援技術との区別は、絶対的なものではない。多くの主流のユーザエージェントは、障害者を支援する機能を提供している。基本的な差異は、主流のユーザエージェントが障害のある人もない人も含めて、広く多様な利用者を対象にしているのに対し、支援技術は、特定の障害のある利用者という、より狭く限られた人たちを対象にしているということである。支援技術により提供される支援は、対象とする利用者に特化した、よりニーズに適したものである。主流のユーザエージェントは、プログラムオブジェクトからのウェブコンテンツの抽出、マークアップの識別可能な構造への解釈といった、重要な機能を支援技術に対して提供する場合がある。

事例: この文書の文脈において重要な支援技術としては、以下のものが挙げられる:

  • 画面拡大ソフト及びその他の視覚的な表示に関する支援技術。視覚障害、知覚障害、及び読書困難などの障害のある人が、レンダリング後のテキスト及び画像の視覚的な読みやすさを改善するために、テキストのフォント、サイズ、間隔、色、音声との同期などを変更するのに使用している。

  • スクリーンリーダー。全盲の人がテキスト情報を合成音声あるいは点字で読み取るために使用している。

  • 音声変換ソフトウェア。認知障害、言語障害、及び学習障害のある人が、テキストを合成音声に変換するために使用している。

  • 音声認識ソフトウェア。何らかの身体障害のある利用者が使用することがある。

  • 代替キーボード。特定の身体障害のある人がキーボード操作をシミュレートするのに使用している (ヘッドポインタ、シングルスイッチ、呼気・吸気スイッチ、及びその他の特別な入力デバイスを使った代替キーボードを含む)。

  • 代替ポインティングデバイス。特定の身体障害のある人がマウスポインタとボタンの動きをシミュレートするのに使用している。

プログラムによる解釈 (プログラムによる解釈が可能) (programmatically determined (programmatically determinable))

支援技術 を含む様々なユーザエージェントが抽出でき、利用者に様々な感覚モダリティで提示できるような形のデータがコンテンツ制作者によって提供されたとき、そのデータがソフトウェアによって解釈されること。

事例 1: マークアップ言語で、一般に入手可能な支援技術が直接アクセスできる要素と属性から解釈される。

事例 2: 非マークアップ言語の技術特有のデータ構造から解釈され、一般に入手可能な支援技術がサポートするアクセシビリティ API を通じて支援技術に提供される。

プログラムによる設定 (programmatically set)

支援技術を含むユーザエージェントがサポートしている手法を用いて、ソフトウェアによって設定されること。

ユーザインタフェース コンポーネント (user interface component)

コンテンツの一部分で、特定の機能を実現するための単一のコントロールとして利用者が知覚するもの。

注記 1: 複数のユーザインタフェース コンポーネントが、単一のプログラム要素で実装されることもある。ここでいうコンポーネントは、プログラムの手法と結びついたものではなく、利用者が別々のコントロールとして知覚するものを指す。

注記 2: ユーザインタフェース コンポーネントには、フォーム要素、リンクだけでなく、スクリプトで生成されるコンポーネントが含まれる。

事例: アプレットには、コンテンツ内を行単位、ページ単位、又はランダムアクセスで移動するために用いられる「コントロール」がある。これらには、いずれも名前 (name) を割り当て、個別に設定できるようにする必要があるため、それぞれが「ユーザインタフェース コンポーネント」となる。

ユーザエージェント (user agent)

ウェブコンテンツを取得して利用者に提示するあらゆるソフトウェア。

事例: ウェブブラウザ、メディアプレーヤ、プラグイン、及びその他のプログラム。その他のプログラムには、ウェブコンテンツの取得、レンダリング、やり取りを支援する支援技術を含む。

名前 (name)

ソフトウェアが、ウェブコンテンツのコンポーネントを利用者に識別させることができるテキスト。

注記 1: ラベルはすべての利用者に提示される一方で、名前 (name) は隠されていて、支援技術に対してだけ明らかにされる場合もある。多くの場合 (すべてではないが)、ラベルと名前 (name) は同じである。

注記 2: これは、HTML の name 属性とは関係がない。

役割 (role)

ウェブコンテンツに含まれるコンポーネントの機能を、ソフトウェアが識別するために用いることができるテキストや数字。

事例: 画像の機能が、ハイパーリンク、コマンドボタン、又はチェックボックスのどれなのかを示している数字。