ひとことで言うと
フォーカスリングとは、キーボード操作でTabキーを押して要素を選択したとき、そのフォーカス位置を視覚的に示す輪郭線です。ブラウザのデフォルトはChromeであれば青い枠線、Firefoxであればオレンジ色のアウトラインです。この表示によってキーボードユーザーは「今どこを操作しているか」を把握できます。
WCAGではフォーカスが視認できることを成功基準として定めており、`outline: none`でフォーカスリングを消すだけでは要件を満たしません。代替のフォーカスインジケーターをCSSで実装するか、ブラウザデフォルトをそのまま残す必要があります。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
HTML共有で関係する場面
AI生成HTMLでは「デザインをすっきり見せる」ためにCSSリセットで`*:focus { outline: none; }`が書かれているケースが非常に多いです。プレビューURLを確認したキーボードユーザーは、Tabキーを押しても現在地がわからず、操作を諦めることになります。
デザインレビューをキーボードで行うディレクターや、スクリーンリーダーと組み合わせてキーボード操作する視覚障害者がレビュアーに含まれる場合、フォーカスリングがないだけで「このHTMLは使えない」という評価になります。送る前にTabキーを一度押すだけで発覚する問題です。
よくある誤解
「フォーカスリングはダサいのでデザインに合わせて消すべき」という考えは、ユーザビリティとアクセシビリティの観点から誤りです。代替案として、`:focus-visible`擬似クラスを使えば、マウスクリックではフォーカスリングを表示せず、キーボード操作時だけ表示する実装が可能です。デザインと機能を両立できます。
「フォーカスリングを消しても誰も困らない」も誤解です。日本では視覚障害者だけでなく、手の震えや関節炎でマウス操作が難しい人がキーボードに頼っています。また、テレビやゲーム機のリモコンでブラウジングする場合もフォーカス表示が必須になります。
安全に使うための注意点
共有前にHTMLのCSSを検索して`outline: none`または`outline: 0`の記述を探してください。もし見つかったら、その行を削除するか`:focus-visible`への変更を検討します。代替スタイルとして`outline: 2px solid #0066cc; outline-offset: 2px;`のように色とオフセットを指定すると、ブランドカラーに合わせた視認性の高いフォーカスリングを実現できます。
改修したHTMLを共有する前に、ブラウザでTabキーを押して全インタラクティブ要素のフォーカスリングが表示されることを確認します。その際、フォーカスリングと背景色のコントラスト比も確認してください。白背景に黄色のフォーカスリングは見えにくく、コントラスト不足になるケースがあります。
よくある質問
:focus-visibleを使うとき、古いブラウザのサポートはどうなりますか?
Chrome 86・Firefox 85・Safari 15.4以降でサポートされています。それ以前のブラウザでは`:focus`にフォールバックされます。ビジネス向けHTMLを共有する場面では古いブラウザを使うユーザーも一定数いるため、`:focus`のアウトラインスタイルも設定しておくことを推奨します。
カスタムフォーカスリングのデザインで気をつける点はありますか?
フォーカスリングと背景色のコントラスト比を3:1以上にすること、フォーカスリングの面積が4×4px以上あること(WCAG 2.2の新基準)が求められます。細い1pxの点線は認識しにくいため、2px以上のソリッドラインを使うのが安全です。
AI生成ツールが出力したCSSにフォーカスリング削除が含まれているかどうか、素早く確認する方法はありますか?
テキストエディタで`outline: none`と`outline: 0`を検索するのが最速です。VSCodeなら「検索」パネルでHTMLファイル全体を横断検索できます。見つかった箇所を`:focus-visible`への変更リストとして手元にメモして一括修正するのが効率的です。