意図
この達成基準の意図は、訪問者がドキュメント内をナビゲートする際に、機能が予測可能であることを保証することである。フォーカスを受け取ったときにイベントを起動することのできるすべてのコンポーネントは、コンテキストを変化させてはならない。コンポーネントがフォーカスを受け取ったときにコンテキストを変更する例には、次のものがあるが、これに限定されない:
- コンポーネントがフォーカスを受け取るときにフォームが自動的に送信される。
- コンポーネントがフォーカスを受け取るときに新しいウィンドウを開く。
- コンポーネントがフォーカスを受け取るときにフォーカスが別のコンポーネントに変更される。
フォーカスはキーボード操作 (例: コントロールにタブ移動する) 又はマウス操作 (例: テキストフィールドをクリックする) のいずれかを介してコントロールに移動させてもよい。スクリプトがこの動作を実装しない限り、コントロール上にマウスを移動しても、フォーカスは移動しない。順番にコンテキストの変更を開始することのある一部の種類のコントロールでは、コントロールをクリックするとそのコントロール (例: ボタン) もアクティブにする場合があることに注意されたい。
ここでの "コンポーネント" が意味するものは "ユーザインタフェース 要素" や "ユーザインタフェース コンポーネント" と呼ばれる。
メリット
- この達成基準は、コンテキストの変化が予期せず起こる可能性を少なくすることによって、視覚障害、認知能力の低下、及び運動障害のある利用者に役立つ。
事例
事例 1: ドロップダウンメニュー
ページ上にあるドロップダウンメニューによって、利用者はジャンプ先を選択できる。その人がキーボードを用いて選択肢に移動し、それを (スペースキー又は Enter キーで) 実行すると、新しいページにジャンプする。しかし、その人が選択肢に移動して、Esc 又は Tab キーを押してプルダウンメニューから抜け出た場合には、フォーカスはドロップダウンから移動するので、新しいページにジャンプしない。
失敗例: ヘルプのダイアログ
フィールドがフォーカスを受け取ると、フィールドを説明し、オプションを提供するヘルプのダイアログウィンドウが開く。キーボードの利用者がウェブページの中をタブ移動すると、ダイアログが開いて、利用者がフィールドを過ぎてタブを移動しようとするたびにコントロールからキーボード フォーカスが離れる。
達成方法
この節にある番号付きの各項目は、WCAG ワーキンググループがこの達成基準を満たすのに十分であると判断する達成方法、又は複数の達成方法の組み合わせを表している。しかしながら、必ずしもこれらの達成方法を用いる必要はない。その他の達成方法についての詳細は、WCAG 達成基準の達成方法を理解するの「その他の達成方法」を参照のこと。
十分な達成方法
コンテンツの変化が、必ずコンテキストの変化になるとはかぎらない。コンテンツの変化がコンテキストの変化ではない場合、この達成基準は自動的に満たされていることになる。
参考達成方法
適合のために必須ではないが、コンテンツをよりアクセシブルにするために、次の追加の達成方法を検討することが望ましい。ただし、すべての状況において、すべての達成方法が使用可能、又は効果的であるとは限らない。
失敗例
以下に挙げるものは、WCAG ワーキンググループが達成基準の失敗例とみなした、よくある間違いである。
重要な用語
ウェブページのコンテンツにおける大きな変化で、利用者が気づかないと、ウェブページ全体を一度に見ることのできない利用者を混乱させる恐れのあるもの。
状況の変化には次に挙げるものの変化が含まれる:
コンテンツの変化が、必ずコンテキストの変化になるとはかぎらない。アウトラインの展開、動的なメニュー、又はタブの切替などのコンテンツの変化は、それが上記のいずれか (例: フォーカス) を変更しないかぎり、状況を変化させるとは限らない。
新しいウィンドウを開くこと、フォーカスを異なるコンポーネントへ移動させること、新しいウェブページへ移動すること (新しいウェブページへ移動したかのように思わせてしまうことも含む)、又はウェブページの内容を大きく再配置することなどは、コンテキストの変化の事例である。
コンテンツの一部分で、特定の機能を実現するための単一のコントロールとして利用者が知覚するもの。
複数のユーザインタフェース コンポーネントが、単一のプログラム要素で実装されることもある。ここでいうコンポーネントは、プログラムの手法と結びついたものではなく、利用者が別々のコントロールとして知覚するものを指す。
ユーザインタフェース コンポーネントには、フォーム要素、リンクだけでなく、スクリプトで生成されるコンポーネントが含まれる。
ここでの「コンポーネント」又は「ユーザインタフェース コンポーネント」は、「ユーザインターフェース要素」とも呼ばれる。
アプレットには、コンテンツ内を行単位、ページ単位、又はランダムアクセスで移動するために用いられる「コントロール」がある。これらには、いずれも名前 (name) を割り当て、個別に設定できるようにする必要があるため、それぞれが「ユーザインタフェース コンポーネント」となる。