意図
この達成基準の意図は、キーボードショートカットの誤った動作を減らすことである。文字キーのショートカットは、多くのキーボード利用者にはうまく機能するが、(入力手段がひとつずつの文字列である) 音声入力の利用者や、誤ってキーを押す傾向にあるキーボード利用者にとっては不適切かつ、いら立たしい。この問題を是正するためには、コンテンツ制作者は、利用者が文字キーのみで構成されるショートカットを解除する、又は再構成できるようにする必要がある。
この達成基準は、リストボックスやドロップダウンメニューなどのコンポーネントには影響しないことに注意すること。このコンポーネントは一つ以上の文字キーで選択されるかもしれない値 (単語) を含むが、ショートカットがコンポーネントにフォーカスされている時のみ有効となる。メニューなどの他のコンポーネントは、単一の文字キーを押して項目を選択する前に、単一の非文字のショートカット (例: ALT や ALT+F) でアクセス又は開くことができる。これにより、メニューを起動するための完全なパスが非印字文字を含む 2 段階ショートカットになる。 Accesskey は修飾キーを含んでいるため、影響を受けない。
音声入力の利用者は通常、口述と音声コマンドを組み合わせて使用できるよう、単一モードで作業する。これは、利用者がコマンドの前後で休止することを知っており、コマンドは通常少なくとも 2 語以上のため、うまく動作する。そのため、例えば、利用者は「小さい船」のような短い口述をしてから休止し、「行を削除」などのその口述を削除するコマンドを言う。一方で、利用者が休止せずに二つのフレーズを一緒に言うならば、フレーズ全体が口述として表現されるだろう (すなわち、「その小さい船行を削除」)。音声入力プログラムはよく口述のみを聞く又はコマンドのみを聞くモードを搭載しているが、ほとんどの音声入力の利用者は、包括的なモードのほうがはるかに効率的なワークフローであるため、常に利用している。仮に利用者が各コマンドの発行の前後にコマンドモードに変更して元に戻すならば、コマンドの効率は大幅に低下するだろう。
音声入力の利用者は、ほとんどのキーボードコマンド (例: 「Control Foxtrot を押す」) を問題なく話すことができる。ウェブサイト又はアプリがキーボードを有効化している場合、音声入力の利用者は Ctrl+P を実行するための「これを印刷」などのキーボードコマンドを呼び出すネイティブ音声マクロを作成することもできる。
単一キーのショートカットは例外である。単一文字キーをコントロールとして用いるのは多くのキーボード利用者にとって適切かつ効率的かもしれないが、音声入力の利用者にとって単一キーのショートカットは悲惨なものである。これは、単一キーのみがコマンドを実行するために使用されると、カーソルフォーカスが誤った位置にあると、発話された単語が単一キーコマンドの連発となる可能性があるためである。
例えば、Kim という名前の音声入力の利用者は、移動 ("k")、アーカイブ ("y")、メッセージをミュート ("m") するよくあるキーボードショートカットを使用しているウェブメールアプリケーションの主ウィンドウ内にカーソルフォーカスがある。Mike という名前の同僚が彼女のオフィスに入り、"Hey Kim" と言うと、彼女のマイクがそれを拾う。"hey" の Y は、現在のメッセージをアーカイブする。"Kim" の K は会話を一つ下に移動し、M はメッセージ又はスレッドをミュートする。そして、Kim がマイクをオフにすることを忘れ、顔を上げて "Hey Mike" と言った場合、同じ三つの出来事が異なる順序で発生する。
単一文字のショートカットを用いないウェブページ又はウェブアプリを操作している利用者にはこのような問題はない。修飾キーが必要な場合、音声アプリケーションからの不注意な文字列はショートカットとして解釈されない。テキスト入力フォームを記入している音声入力の利用者は音声マイクに偶然拾われたフレーズが、フィールドに入力されているテキストをもたらすが、これは簡単に確認及び元に戻すことに気づくかもしれない。このページの「リソース」のセクションには、これらの種類の問題を示す映像へのリンクが含まれている。
メリット
- 音声入力の利用者は、単一キーのショートカットを無効にすることができ、そして一度にそれらショートカットの一括処理を起動するのを回避することができる。これは、音声入力の利用者が、キーボードの利用者のために単一キーのショートカットを提供しているプログラムを十分に活用できるようにする。
- キーボードのみの利用者で巧緻性に課題がある場合、誤ってキーを押す可能性もある。これらの利用者は、問題のある単一文字のショートカットを無効にするか、又は最低でもひとつの非印字文字キーを含めるように変更することで避けることができる。
- 全てのショートカットキーを再割り当てできるようにすると、異なるアプリケーション間で同じ動作を実行するために同じショートカットを割り当てることができるため、一部の認知障害のある利用者に役立つ。
事例
ショートカットを無効にする
利用者が文字キーのショートカットを無効にできるようなメカニズムが提供されている。文字キーのショートカットはこれらのコマンドを実行する唯一の方法ではない。音声入力の利用者はショートカットを無効にし、マイクにより拾われた単語が単一キーのショートカットを動作させることを防げる。
代替コントロール
キーボードのみの利用者は、長い問題のスレッド内にいる。このスレッドを読んでいる間に、彼女は誤って「S」キーを押し、これによりこのドキュメントの上部にあるサーチバーにフォーカスを移動した。これは彼女の位置や一連の考えを失わせる。しかし、利用者が文字キーのショートカットを変更できるメカニズムが提供されている。彼女は、今後中断させられることを避けるため、ショートカットに別のキーを含めるように変更した。
関連リソース
リソースは、情報提供のみを目的としており、推奨を意味するものではない。
文字キーのショートカットを使用し、利用者がこれらのショートカットを無効及び/又は変更できるようにしているウェブアプリ:
- Gmail
- WordPress
単一文字キーのショートカットで困る音声入力の利用者の映像:
達成方法
この節にある番号付きの各項目は、WCAG ワーキンググループがこの達成基準を満たすのに十分であると判断する達成方法、又は複数の達成方法の組み合わせを表している。しかしながら、必ずしもこれらの達成方法を用いる必要はない。その他の達成方法についての詳細は、WCAG 達成基準の達成方法を理解するの「その他の達成方法」を参照のこと。
十分な達成方法
失敗例
以下に挙げるものは、WCAG ワーキンググループが達成基準の失敗例とみなした、よくある間違いである。
重要な用語
障害のある利用者の要件を満たすために、主流のユーザエージェントが提供する機能を超えた機能を提供するような、ユーザエージェントとして動作する、又は主流のユーザエージェントと共に動作するハードウェア及び/又はソフトウェア。
支援技術が提供する機能としては、代替の提示 (例: 合成音声や拡大表示したコンテンツ)、代替入力手法 (例: 音声認識)、付加的なナビゲーション又は位置確認のメカニズム、及びコンテンツ変換 (例: テーブルをよりアクセシブルにするもの) などを挙げることができる。
支援技術は、API を利用、監視することで、主流のユーザエージェントとデータやメッセージのやりとりをすることが多い。
主流のユーザエージェントと支援技術との区別は、絶対的なものではない。多くの主流のユーザエージェントは、障害のある個人を支援する機能を提供している。基本的な差異は、主流のユーザエージェントが障害のある人もない人も含めて、広く多様な利用者を対象にしているのに対し、支援技術は、特定の障害のある利用者という、より狭く限られた人たちを対象にしているということである。支援技術により提供される支援は、対象とする利用者に特化した、よりニーズに適したものである。主流のユーザエージェントは、プログラムオブジェクトからのウェブコンテンツの抽出、マークアップの識別可能な構造への解釈といった、重要な機能を支援技術に対して提供する場合がある。
この文書の文脈において重要な支援技術としては、以下のものが挙げられる:
- 画面拡大ソフト及びその他の視覚的な表示に関する支援技術。視覚障害、知覚障害、及び読書困難などの障害のある人が、レンダリング後のテキスト及び画像の視覚的な読みやすさを改善するために、テキストのフォント、サイズ、間隔、色、音声との同期などを変更するのに使用している。
- スクリーンリーダー。全盲の人がテキスト情報を合成音声あるいは点字で読み取るために使用している。
- 音声変換ソフトウェア。認知障害、言語障害、及び学習障害のある人が、テキストを合成音声に変換するために使用している。
- 音声認識ソフトウェア。何らかの身体障害のある利用者が使用することがある。
- 代替キーボード。特定の身体障害のある人がキーボード操作をシミュレートするのに使用している (ヘッドポインタ、シングルスイッチ、呼気・吸気スイッチ、及びその他の特別な入力デバイスを使った代替キーボードを含む)。
- 代替ポインティングデバイス。特定の身体障害のある人がマウスポインタとボタンの動きをシミュレートするのに使用している。
与えられた規格、ガイドライン、又は仕様のすべての要件を満たすこと。
一つ以上のキーを押すことによる、動作のトリガーの代替手段
結果を得るためのプロセス又は手法。
メカニズムは、宣言する適合レベルのすべての達成基準を満たさなければならない。
ある活動を完了させるために必要な利用者の一連の動作。
ショッピングサイト上の一連のウェブページで目的を果たすためには、利用者が選択肢となりうる製品、価格及び内容を閲覧した後、製品を選択して発注し、配送先情報及び支払情報を提供する必要がある。
アカウント登録ページでは、登録フォームにアクセスする前にチューリングテストに成功する必要がある。
ユーザエージェントがどのようにレンダリング、再生、又は実行するかを符号化するメカニズム。
このガイドラインで用いられている「ウェブ技術」及び (単独で用いられている) 「技術」という用語は、どちらもウェブコンテンツ技術を指す。
ウェブコンテンツ技術には、マークアップ言語、データ形式、及びプログラム言語などがあり、これらをコンテンツ制作者が単独で、又は組み合わせて用いることによって、静的なウェブページや同期したメディアによる提示、さらには動的なウェブアプリケーションに至るまでの様々なエンドユーザ体験を作ることができる。
ウェブコンテンツ技術のよくある事例としては、HTML、CSS、SVG、PNG、PDF、Flash、 JavaScript などがある。
ウェブコンテンツを取得して利用者に提示するあらゆるソフトウェア。
ウェブコンテンツの取得、レンダリング及びインタラクションを支援する、ウェブブラウザ、メディアプレーヤ、プラグイン、及びその他のプログラム (支援技術も含む)。
コンテンツの一部分で、特定の機能を実現するための単一のコントロールとして利用者が知覚するもの。
複数のユーザインタフェース コンポーネントが、単一のプログラム要素で実装されることもある。ここでいう「コンポーネント」は、プログラムの手法と結びついたものではなく、利用者が別々のコントロールとして知覚するものを指す。
ユーザインタフェース コンポーネントには、フォーム要素、リンクだけでなく、スクリプトで生成されるコンポーネントが含まれる。
ここでの「コンポーネント」又は「ユーザインタフェース コンポーネント」は、「ユーザインタフェース要素」とも呼ばれる。
アプレットには、コンテンツ内を行単位、ページ単位、又はランダムアクセスで移動するために用いられる「コントロール」がある。これらには、いずれも名前 (name) を割り当て、個別に設定できるようにする必要があるため、それぞれが「ユーザインタフェース コンポーネント」となる。