ひとことで言うと
キーボード操作(キーボードナビゲーション)とは、マウスやタッチパネルを使わずにキーボードだけでWebページの全機能を操作できる状態を指します。Tabキーでフォーカスをリンクやボタンへ移動し、Enterキーで決定、Escキーでモーダルを閉じるといった操作が基本です。
身体的な理由でマウスを使えないユーザー以外にも、パワーユーザーや企業のレビュアーがキーボード主体で操作するケースは多くあります。フォーカスが見えなかったり、Tabキーで到達できないボタンがあったりすると、その人にとってページが事実上壊れている状態になります。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
HTML共有で関係する場面
AIが生成したモーダルダイアログやドロップダウンメニューは、マウスで操作すると問題なく見えても、キーボードだけでは閉じられないことがあります。レビュアーがキーボード中心の作業環境だった場合、モーダルに「閉じるボタン」があっても到達できず、ブラウザを強制終了することになります。
プレビューURLをアクセシビリティ評価担当者に送る場面では、キーボード操作の網羅性が評価基準の一つになります。Tabキーで全インタラクション要素に順番に到達でき、かつ論理的な順序でフォーカスが移動することが確認ポイントです。
よくある誤解
「tabindex=0を全要素に付ければキーボード操作に対応できる」という誤解があります。tabindexをdivやspanに付けても、Enterキーでのアクティベーションやfocusvisibleのスタイリングは別途実装が必要です。ネイティブのbuttonやaタグを使う方が、ブラウザが適切な動作を自動提供するため確実です。
「キーボード操作対応はJavaScriptを大量に書く必要がある」も過大評価です。適切なHTMLタグを使うだけで多くの問題は解決します。たとえばdivのクリックイベントをbuttonに変えるだけで、キーボードのEnterキー対応とフォーカス管理が自動で得られます。
安全に使うための注意点
共有前の確認手順として、ページを開いてマウスを触らずTabキーだけを押し続けてください。すべてのリンク・ボタン・フォーム要素に順番にフォーカスが当たり、フォーカスリング(青い枠線等)が視認できれば合格です。フォーカスが消えたり、特定の要素が飛ばされたりしたら修正が必要です。
AIが出力したHTMLでキーボード操作が壊れている場合の最速の修正策は、インタラクティブな要素を`<div onclick>`から`<button>`に置き換えることです。CSSで見た目を維持しつつ、タグだけを変えることで多くのキーボードアクセシビリティ問題を一括解消できます。
よくある質問
フォーカス順序が視覚的な順序と異なっています。どう修正すればよいですか?
HTMLのDOM上の順序がTabキーの移動順序を決定します。CSSで見た目の配置を変えていても、DOM順序に従ってフォーカスが移動します。tabindex属性での順序指定は管理が複雑になるため、まずHTMLの要素順序を視覚レイアウトに合わせる方向で修正することを推奨します。
モーダルダイアログのキーボード対応で最低限必要なことは何ですか?
モーダルが開いたときに最初の操作可能要素へフォーカスを移動し、Escキーで閉じられるようにし、モーダルが開いている間は背景側にフォーカスが移動しないよう「フォーカストラップ」を実装することが最低限の要件です。
キーボード操作の確認をWindowsとMacで両方行う必要がありますか?
ブラウザとOSの組み合わせによって動作が変わることがあります。特にSafari(Mac)ではデフォルトでフォームコントロール以外のTabキー移動が無効の場合があります。MacとWindowsのChromeで確認するのが現実的な最低ラインです。