アクセシビリティ・見て分かる工夫

キーボードだけで使えるページ

マウスを使わず、Tabキーでページを操作する人がいます。その人の「いまどこ?」を示すフォーカスの輪を、消さずに、かっこよく整えます。

マウスが使えない人や、キーボード操作のほうが速い人は、Tabキーでリンクやボタンを順番に移動してページを使います。このとき「いまどこにいるか」を教えてくれるのが、要素を囲むフォーカスの輪(フォーカスリング)です。

体験してみよう

まず、Tabキーでの操作を体験してみましょう。

オレンジの輪が「いまここ」を教えてくれます。EnterかSpaceで、その場所を押せます。

やってはいけない:outline: none

フォーカスの輪の正体は、CSSのoutlineです。既定の見た目が野暮ったいからと、こう消してしまうサイトがあります。

button:focus {
  outline: none;   /* ❌ 絶対にやらない */
}

見た目はすっきりしますが、キーボードの人はカーソルを失います。「消す」のではなく、次のように「きれいに描き直す」のが正解です。

正解:focus-visibleで描き直す

button:focus-visible {
  outline: 3px solid #e5967a;
  outline-offset: 2px;
}
部分意味
:focus-visibleキーボード操作のときだけ輪を出すセレクタ
outline: 3px solid …輪の太さ・種類・色(ブランドカラーでOK)
outline-offset: 2px要素と輪の間にすきまを空けて見やすく

:focusではなく:focus-visibleを使うのがいまの定番。マウスでクリックしたときは輪が出ず、Tabで来たときだけ出る——両方の使い勝手が両立します。

Tabの順番はHTMLの順番

フォーカスはHTMLに書いた順に移動します。見た目の並びと書いた順がずれていると、輪が画面上を飛び回って混乱のもと。レイアウトはCSSで動かしても、HTMLは読む順・操作する順に書く——この原則を守れば自然に正しくなります。

このレッスンのまとめ

  1. フォーカスの輪はキーボードの人のカーソルoutline: noneで消さない
  2. 消すかわりに:focus-visibleoutlineきれいに描き直す
  3. Tabの移動順=HTMLの順。読む順に書くのが土台