達成基準 2.1.4: 文字キーのショートカットを理解する

達成基準 2.1.4 文字キーのショートカット (レベル A): 文字 (大文字と小文字を含む)、句読点、数字、又は記号のみを使用したキーボードショートカットがコンテンツに実装されている場合、少なくとも次のいずれかを満たしている:

解除
ショートカットを解除するメカニズムが利用できる
再割り当て
一つ以上の非印字文字 (例えば Ctrl や Alt など) を使用するようにショートカットを再割り当てするメカニズムが利用できる
フォーカス中にのみ有効化
ユーザインタフェース コンポーネントのキーボードショートカットは、そのコンポーネントがフォーカスをもっているときのみ有効になる。

意図

文字キーのショートカットは、多くのキーボード利用者にはうまく機能するが、(入力手段がひとつずつの文字列である) 音声入力の利用者や、誤ってキーを押す傾向にあるキーボード利用者にとっては不適切かつ、いら立たしい。その結果、利用者は単一の文字キー又は二つ以上の連続した文字キーで構成されたショートカットを解除又は再設定できるようにしなければならない。

この達成基準は、より完全にキーボード制御が可能になるアプリの数が増えるにつれて、モバイルの分野でますます重要になってきている。

この達成基準は、ショートカットがコンポーネントにフォーカスされている時のみ有効であるため、リストボックスやドロップダウンメニューなどの一つ以上の文字キーで選択可能な単語を含むコンポーネントには影響しないことに注意すること。同様に、メニューなどのコンポーネントはイニシャル、単一ではない文字のショートカット (例:「ALT」又は「ALT+F」) でアクセス又は開くことができる。これにより、メニューを起動するための完全なパスが非印字文字を含む 2 段階ショートカットになる。

accesskeys は修飾キーを含んでいるため、影響を受けないことに注意すること。

音声入力の利用者は通常、口述と音声コマンドを組み合わせて使用できるよう、単一モードで作業する。これは、利用者がコマンドの前後で休止することを知っており、コマンドは通常少なくとも 2 語以上のため、うまく動作する。そのため、例えば、利用者は「小さい船」のような短い口述をしてから休止し、「行を削除」などのその口述を削除するコマンドを言う。一方で、利用者が休止せずに二つのフレーズを一緒に言うならば、フレーズ全体が口述として表現されるだろう (すなわち、「その小さい船行を削除」)。音声入力プログラムはよく口述のみを聞く又はコマンドのみを聞くモードを搭載しているが、ほとんどの音声入力の利用者は、包括的なモードのほうがはるかに効率的なワークフローであるため、常に利用している。もし利用者がコマンド指示を出した前後にコマンドモードを切り替え無ければならない場合、利用者のコマンド非効率性は 300% 増加する可能性があるだろう。

音声入力の利用者は、ほとんどのキーボードコマンド (例 : 「Control Foxtrot を押す」) を問題なく話すことができる。ウェブサイト又はアプリがキーボードを有効化している場合、音声入力の利用者は Ctrl+P を実行するための「これを印刷」などのキーボードコマンドを呼び出すネイティブ音声マクロを作成することもできる。

単一キーのショートカットは例外である。単一文字キーをコントロールとして用いるのは多くのキーボード利用者にとって適切かつ効率的かもしれないが、音声入力の利用者にとって単一キーのショートカットは悲惨なものである。これは、単一キーのみがコマンドを実行するために使用されると、カーソルフォーカスが誤った位置にあると、発話された単語が単一キーコマンドの連発となる可能性があるためである。

例えば、移動 ("k")、アーカイブ ("y")、メッセージをミュート ("m") する一般的なキーボードショートカットを使用しているウェブメールアプリケーションの主ウィンドウ内にカーソルフォーカスがあり、他の人がオフィスに入室して "Hey Kim" と言ったのを音声入力の利用者のマイクが拾った場合、「y」は現在のメッセージをアーカイブする。「k」はひとつ下の会話に移動し、「m」はメッセージ又はスレッドをミュートする。又は、音声入力の利用者がマイクをオフにすることを忘れ、顔を上げて "Hey Mike" と言った場合、同じような三つの出来事が異なる順序で発生する。単一文字のショートカットを用いないウェブページ又はウェブアプリを操作している利用者にはこのような問題はない。テキスト入力フォームを記入している音声入力の利用者は音声マイクに偶然拾われたフレーズが、フィールドに入力されているテキストをもたらすが、これは簡単に確認及び元に戻すことに気づくかもしれない。このような種類の問題の映像を見るには、このページの関連リソースセクションを確認すること。

訳注

音声入力のコマンドは日本語にせず、英語のままにしている。

メリット

事例

事例 1: ショートカットを無効にする

利用者が文字キーのショートカットを無効にできるようなメカニズムが提供されている。文字キーのショートカットはこれらのコマンドを実行する唯一の方法ではない。音声入力の利用者はショートカットを無効にし、マイクにより拾われた単語が単一キーのショートカットを動作させることを防げる。

事例 2: 代替コントロール

文字キーのショートカットを変更するメカニズムが利用者に提供されている

キーボードのみの利用者は、長い問題のスレッド内にいる。このスレッドを読んでいる間に、彼女は誤って「s」キーを押し、これによりこのドキュメントの上部にあるサーチバーにフォーカスを移動した。これは彼女の位置や一連の考えを失わせる。彼女は、今後中断させられることを避けるため、ショートカットに別のキーを含めるように変更した。

事例 3: 共有の代替コントロール

利用者が文字キーのショートカットを変更し、その変更を保存して他の利用者と共有できるようなメカニズムが提供されている。

関連リソース

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

文字キーのショートカットを使用し、利用者がこれらのショートカットを無効及び/又は変更できるようにしているウェブアプリ:

単一文字キーのショートカットで困る音声入力の利用者の映像:

達成方法

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

十分な達成方法

  • 利用者が単一キーのショートカットを無効にする方法がある
  • 利用者が文字キーのショートカットを変更できるメカニズムが提供されている。再割り当てのメカニズムには非印字文字が含まれる。代替のショートカットは、どの音声エンジンに対してもネイティブ音声コマンドとして直接機能する最大 25 文字のより長い文字列にできる。

参考達成方法

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

失敗例

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

  • 達成基準 2.1.4 の失敗例 - 利用者がショートカットを無効にできるコントロール、又は利用者が大文字もしくは小文字、句読点、数字、もしくは記号文字でないキーを含むキーの組み合わせに変更できるコントロールを含まない、単一キーのショートカットを含むウェブページ又はウェブアプリ

重要な用語

キーボードショートカット (keyboard shortcut)

New

一つ以上のキーを押すことによる、動作のトリガーの代替手段

メカニズム (mechanism)

結果を得るためのプロセス又は手法。

注記

メカニズムは、コンテンツ内で明示的に提供されることもあれば、プラットフォーム又は支援技術を含むユーザエージェントで提供されるものに依存することもある。

注記

メカニズムは、宣言する適合レベルのすべての達成基準を満たさなければならない。

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

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

注記

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

注記

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

注記

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

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