本文へ移動
ご相談

独自デザインのボタンでフォーカスが見えない

CSSリセットでフォーカスの枠を消したまま、代わりの表示を用意していません。

問題あり フォーカス中。でも分からない。
修正後 フォーカス中。枠で分かる。
同じ操作部品の、修正前と修正後。
01

問題

キーボード利用者が、ページ上の現在位置を確認できません。

02

試してみる

Tabキーを押して、ボタンを見てください。

Tabキーで、両方の背景のボタンを順に移動してください。

再現デモです。「問題あり」は意図的にアクセシブルでない状態にしています。

03

修正方法

リセットを削除し、背景ごとに見えるフォーカス枠を加えます。

  1. 1:focus-visibleを使い、キーボード操作のときだけ枠を表示する。
  2. 2背景とのコントラスト比を3:1以上にする。
  3. 3影だけに頼らず、強制配色でも輪郭線を残す。
修正前 代わりのないリセット
*:focus {  outline: none;}.brand-button:hover {  background: var(--brand-dark);}
修正後 背景ごとのフォーカス表示
.brand-button:focus-visible {  outline: 3px solid var(--focus-ring);  outline-offset: 3px;}/* 暗いバナーの上では、背景と区別できる色に切り替えます。 */.banner .brand-button:focus-visible {  outline-color: var(--focus-ring-on-dark);}@media (forced-colors: active) {  .brand-button:focus-visible {    outline-color: Highlight;  }}

04

修正の確認

マウスを使わない4つの確認

確認方法: キーボード、スクリーンリーダー、ズーム、強制配色

4件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。共通のテーマやコンポーネントのスタイルを変更した際は、再度確認します。

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。コード内のトークン名は、実際のデザイントークンに置き換えてください。実際の背景で、操作全体を確認してください。

よくある問題を再現した学習用のサンプルです。実在のクライアントの診断結果ではありません。コードは出発点となる実装例のため、実際の製品でも確認してください。ここでは支援技術でのテスト結果は報告していません。

コードを更新しても、使いやすさを保つために

ガイドの内容を、コーディングエージェントやCIで使える開発ルールにまとめます。更新後は、キーボードとスクリーンリーダーで再テストし、問題が再発していないか確認します。

再テストの進め方