達成基準 3.2.1: フォーカス時を理解する

達成基準 3.2.1 フォーカス時 (レベル A): いずれのユーザインターフェイス コンポーネントも、フォーカスを受け取ったときにコンテキストの変化を引き起こさない。

意図

この達成基準の意図は、訪問者がドキュメント内をナビゲートする際に、機能が予測可能であることを保証することである。フォーカスを受け取ったときにイベントを起動することのできるすべてのコンポーネントは、コンテキストを変化させてはならない。コンポーネントがフォーカスを受け取ったときにコンテキストを変更する例には、次のものがあるが、これに限定されない:

フォーカスはキーボード操作 (例: コントロールにタブ移動する) 又はマウス操作 (例: テキストフィールドをクリックする) のいずれかを介してコントロールに移動させてもよい。スクリプトがこの動作を実装しない限り、コントロール上にマウスを移動しても、フォーカスは移動しない。順番にコンテキストの変更を開始することのある一部の種類のコントロールでは、コントロールをクリックするとそのコントロール (例: ボタン) もアクティブにする場合があることに注意されたい。

注記

ここでの "コンポーネント" が意味するものは "ユーザインタフェース 要素" や "ユーザインタフェース コンポーネント" と呼ばれる。

メリット

事例

関連リソース

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

達成方法

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

十分な達成方法

  1. G107: コンテキストの変化に対するトリガーとして、"focus" ではなく、"activate" を使用する
注記

コンテンツの変化が、必ずコンテキストの変化になるとはかぎらない。コンテンツの変化がコンテキストの変化ではない場合、この達成基準は自動的に満たされていることになる。

参考達成方法

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

失敗例

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

重要な用語

コンテキストの変化 (changes of context)

ウェブページのコンテンツにおける大きな変化で、利用者が気づかないと、ウェブページ全体を一度に見ることのできない利用者を混乱させる恐れのあるもの。

状況の変化には次に挙げるものの変化が含まれる:

  1. ユーザエージェント
  2. ビューポート
  3. フォーカス
  4. ウェブページの意味を変えるコンテンツ
注記

コンテンツの変化が、必ずコンテキストの変化になるとはかぎらない。アウトラインの展開、動的なメニュー、又はタブの切替などのコンテンツの変化は、それが上記のいずれか (例: フォーカス) を変更しないかぎり、状況を変化させるとは限らない。

新しいウィンドウを開くこと、フォーカスを異なるコンポーネントへ移動させること、新しいウェブページへ移動すること (新しいウェブページへ移動したかのように思わせてしまうことも含む)、又はウェブページの内容を大きく再配置することなどは、コンテキストの変化の事例である。

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

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

注記

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

注記

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

注記

ここでの「コンポーネント」又は「ユーザインタフェース コンポーネント」は、「ユーザインターフェース要素」とも呼ばれる。

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