解説書 達成基準 3.2.1:フォーカス時 (レベル A)
要約
- 目標
- コンテンツをより予測可能な方法で操作できる。
- 何をすればよいか
- 項目にフォーカスが当たったときに、利用者のコンテキストを変更しない。
- なぜそれが重要か
- 予測可能な動作をするコンテンツは、障害のある人にとって特に重要である。
意図
この達成基準の意図は、訪問者がドキュメント内をナビゲートする際に、機能が予測可能であることを保証することである。フォーカスを受け取ったときにイベントを起動することのできるすべてのコンポーネントは、コンテキストを変化させてはならない。コンポーネントがフォーカスを受け取ったときにコンテキストを変更する例には、次のものがあるが、これに限定されない:
- コンポーネントがフォーカスを受け取るときにフォームが自動的に送信される。
- コンポーネントがフォーカスを受け取るときに新しいウィンドウを開く。
- コンポーネントがフォーカスを受け取るときにフォーカスが別のコンポーネントに変更される。
フォーカスはキーボード操作 (例: コントロールにタブ移動する) 又はマウス操作 (例: テキストフィールドをクリックする) のいずれかを介してコントロールに移動させてもよい。スクリプトがこの動作を実装しない限り、コントロール上にマウスを移動しても、フォーカスは移動しない。ある種のコントロールにおいては、コントロールをクリックすることが、そのコントロールをアクティブにする効果も持つことがあり (例: ボタン)、その結果として、コンテキストの変化が始まるかもしれないことに注意されたい。
注記
ここでの "コンポーネント" が意味するものは "ユーザインタフェース 要素" や "ユーザインタフェース コンポーネント" と呼ばれる。
利点
- この達成基準は、コンテキストの変化が予期せず起こる可能性を少なくすることによって、視覚障害、認知能力の低下、及び運動障害のある利用者に役立つ。
事例
- 事例 1: ドロップダウンメニュー
- ページ上にあるドロップダウンメニューによって、利用者はジャンプ先を選択できる。その人がキーボードを用いて選択肢に移動し、それを (スペースキー又は Enter キーで) 実行すると、新しいページにジャンプする。しかし、その人が選択肢に移動して、Esc 又は Tab キーを押してプルダウンメニューから抜け出た場合には、フォーカスはドロップダウンから移動するので、新しいページにジャンプしない。
- 失敗例: ヘルプのダイアログ
- フィールドがフォーカスを受け取ると、そのフィールドを説明し、オプションを提供するヘルプのダイアログウィンドウが開く。キーボードの利用者がウェブページ内をタブで移動すると、利用者がそのフィールドをタブ移動で通過しようとするたびに毎回、そのダイアログが開いて、キーボードのフォーカスがコントロールから離れる。
テクニック
この節にある番号付きの各項目は、WCAG ワーキンググループがこの達成基準を満たすのに十分であると判断するテクニック、又は複数のテクニックの組み合わせを表している。しかしながら、必ずしもこれらのテクニックを用いる必要はない。その他のテクニックについての詳細は、WCAG 達成基準のテクニックを理解するの「その他のテクニック」を参照のこと。
十分なテクニック
注記
コンテンツの変化が、必ずコンテキストの変化になるとはかぎらない。コンテンツの変化がコンテキストの変化ではない場合、この達成基準は自動的に満たされていることになる。
参考テクニック
適合のために必須ではないが、コンテンツをよりアクセシブルにするために、次の追加のテクニックを検討することが望ましい。ただし、すべての状況において、すべてのテクニックが使用可能、又は効果的であるとは限らない
失敗例
以下に挙げるものは、WCAG ワーキンググループが達成基準の失敗例とみなした、よくある間違いである。
重要な用語
障害のある利用者の要件を満たすために、主流のユーザエージェントが提供する機能を超えた機能を提供するような、ユーザエージェントとして動作する、又は主流のユーザエージェントと共に動作するハードウェア及び/又はソフトウェア。
注記
支援技術が提供する機能としては、代替の提示 (例: 合成音声や拡大表示したコンテンツ)、代替入力手法 (例: 音声認識)、付加的なナビゲーション又は位置確認のメカニズム、及びコンテンツ変換 (例: テーブルをよりアクセシブルにするもの) などを挙げることができる。
注記
支援技術は、API を利用、監視することで、主流のユーザエージェントとデータやメッセージのやりとりをすることが多い。
注記
主流のユーザエージェントと支援技術との区別は、絶対的なものではない。多くの主流のユーザエージェントは、障害のある個人を支援する機能を提供している。基本的な差異は、主流のユーザエージェントが障害のある人もない人も含めて、広く多様な利用者を対象にしているのに対し、支援技術は、特定の障害のある利用者という、より狭く限られた人たちを対象にしているということである。支援技術により提供される支援は、対象とする利用者に特化した、よりニーズに適したものである。主流のユーザエージェントは、プログラムオブジェクトからのウェブコンテンツの抽出、マークアップの識別可能な構造への解釈といった、重要な機能を支援技術に対して提供する場合がある。
大きな変化で、利用者が気づかないと、ウェブページ全体を一度に見ることのできない利用者を混乱させる恐れのあるもの。
コンテキストの変化には次に挙げるものの変化が含まれる:
注記
コンテンツの変化が、必ずコンテキストの変化になるとはかぎらない。アウトラインの展開、動的なメニュー、又はタブの切替などのコンテンツの変化は、それが上記のいずれか (例: フォーカス) を変更しないかぎり、コンテキストを変化させるとは限らない。
コンテンツの 構造、提示、及びインタラクションを定義するコード又はマークアップも含めて、ユーザエージェントによって利用者に伝達される情報及び感覚的な体験。
利用者が知覚できる形式でコンテンツをレンダリングすること。
ウェブコンテンツを取得して利用者に提示するあらゆるソフトウェア。
コンテンツの一部分で、特定の機能を実現するための単一のコントロールとして利用者が知覚するもの。
注記
複数のユーザインタフェース コンポーネントが、単一のプログラム要素で実装されることもある。ここでいう「コンポーネント」は、プログラムの手法と結びついたものではなく、利用者が別々のコントロールとして知覚するものを指す。
注記
ユーザインタフェース コンポーネントには、フォーム要素、リンクだけでなく、スクリプトで生成されるコンポーネントが含まれる。
注記
ここでの「コンポーネント」又は「ユーザインタフェース コンポーネント」は、「ユーザインタフェース要素」とも呼ばれる。
ユーザエージェントがコンテンツを提示するオブジェクト。
注記
ユーザエージェントは、一つ以上のビューポートでコンテンツを提示する。ビューポートには、ウィンドウ、フレーム、スピーカー、拡大鏡ソフトなどがある。ビューポートは、他のビューポートを含んでいることがある (例えば、入れ子のフレーム)。プロンプト、メニュー、アラートのように、ユーザエージェントが作成するインタフェース コンポーネントは、ビューポートではない。
注記
この定義は、User Agent Accessibility Guidelines 1.0 Glossary [[UAAG10]] をもとにしている。
単一の URI から HTTP で得た埋め込まれていないリソースに加え、レンダリングに使われる、又はユーザエージェントがこのリソースと一緒にレンダリングすることを意図しているその他のあらゆるリソースを合わせたもの。
注記
どのような「その他のリソース」も主たるリソースと一緒にレンダリングされるであろうが、これらのリソースが同時にレンダリングされるとは限らない。
注記
このガイドラインの適合範囲に含まれる対象となるウェブページとみなされるためには、リソースが「埋め込まれていない」リソースでなければならない。