Primary tabs

誤操作を防ぐショートカットキー(2.1.4 A)

26 September 2025

適合レベル

A

※各レベルについては適合レベルとはをご覧ください


概要

単一の文字キーだけのショートカットは、オフにしたり、Ctrlキーなどと組み合わせたりできるようにし、意図しない動作を防ぐ。


具体的な実装方法

2.1.4 A

1. ⭕️良い例

単一文字キーのショートカットを実装する場合、以下のいずれかのメカニズムを提供します。

  • 無効化: ショートカットをオフにする設定項目を提供します。
  • 再マップ: ショートカットキーを、CtrlやAltなどの修飾キーと組み合わせたものに変更できる機能を提供します。
  • フォーカス時のみ有効: 特定のUIコンポーネントにフォーカスがあるときだけ、ショートカットが有効になるようにします(例: ドロップダウンリスト内で項目を選択するためにキーを押す)。

実装例 (コンセプト)

// 設定画面のイメージ
[チェックボックス] 単一キーのショートカットを有効にする

// JavaScriptのイメージ
document.addEventListener('keydown', function(e) {
  // ユーザーが設定でショートカットを有効にしている場合のみ実行
  if (shortcutsEnabled && e.key === 'm') {
    toggleMute();
  }
});

2. ❌悪い例

無効化できないショートカット

  • Gmailの旧バージョンなどで見られたように、単一キーのショートカットがデフォルトで有効になっており、それをオフにする手段が提供されていない。

説明のないショートカット

  • ショートカットの存在や、それを無効化する方法が利用者に知らされていない。

なぜ問題なのか

これらの実装は、特定の利用者層が意図しない操作を強いられる原因となり、アクセシビリティを著しく損ないます。

改善策

  • アプリケーションの設定画面などに、ショートカットを管理するための項目を設けます。
  • ショートカットキーの一覧と、その設定変更方法をヘルプページなどに明記します。

3. プラットフォーム別の実装

主にJavaScriptを用いてキーボードイベントを制御することで実装します。利用者の設定(ショートカットの有効/無効など)をクッキーやWeb Storageに保存し、それを参照してイベントリスナーの動作を切り替えるのが一般的です。

4. 特殊なケースへの対応

この達成基準の重要な例外は、「ショートカットが有効になるのは、そのショートカットを利用するユーザインタフェースコンポーネントにフォーカスがあるときだけ」というケースです。例えば、<select>要素のドロップダウンリストが開いているときに、文字キーを押して項目を検索・選択する機能は、この達成基準を満たしています。なぜなら、ショートカットが有効なのは、そのリストコンポーネントがアクティブな間だけだからです。


確認観点

2.1.4 A

1. 定量的な基準の担保

チェックリストによる確認

実装されている場合、以下のいずれかの条件を満たしているか?

2. 定性的な基準の担保

レビュー

  • JavaScriptのキーボードイベント処理のコードをレビューし、単一キーショートカットの実装が、無効化や再マップの仕組みと連携しているかを確認します。

専門家による監査

  • アクセシビリティ専門家が、実際に音声入力ソフトウェアなどを使用し、意図しないショートカットが作動しないかをテストします。
  • ショートカットを無効化・変更する機能が、利用者にとって見つけやすく、操作しやすいものであるかを評価します。

参考文献

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