【CSS】:focus-visibleでフォーカスがキーボード操作で発生した場合にのみスタイルを適用する方法

Webデザインにおけるアクセシビリティは、すべてのユーザーが快適にサイトを利用できるようにするための重要な要素です。今回は、アクセシビリティとユーザー体験を向上させるためのCSS擬似クラス、:focus-visibleについて詳しく解説します。

:focus-visibleとは?

:focus-visibleは、要素に対してキーボードや他の非マウスデバイスでフォーカスを当てた際にのみ適用されるCSS擬似クラスです。これにより、ユーザーがタブキーなどでナビゲートした際にフォーカスが視覚的に示されますが、マウスでクリックした場合には表示されないため、不要な視覚的な要素を避けることができます。

具体的な使用例

実際に:focus-visibleを使ってみましょう。次のCSSコードは、ボタン要素に対してフォーカスがキーボード操作で発生した場合にのみスタイルを適用します。

button:focus {
  outline: none; /* マウスでクリックした場合、フォーカスのリングを非表示に */
}

button:focus-visible {
  outline: 2px solid blue; /* キーボードでフォーカスした場合にリングを表示 */
}

この例では、ボタン要素に対してマウスでクリックした場合にはフォーカスのリングが表示されず、キーボードでタブキーを使用してフォーカスを当てた場合には青いフォーカスリングが表示されます。

:focus-visibleの利点

アクセシビリティの向上

キーボードユーザーに対して、どの要素がフォーカスされているかを明確に示すことができます。これにより、視覚的な手がかりが提供され、ナビゲーションが容易になります。

視覚的な混乱の回避

マウス操作ではフォーカスリングが表示されないため、不要な視覚的な要素を減らすことができます。これにより、クリーンでユーザーフレンドリーなデザインが実現します。

ブラウザサポートとフォールバック

:focus-visibleは比較的新しい擬似クラスのため、古いブラウザではサポートされていない可能性があります。しかし、最新のブラウザでは広くサポートされています。必要に応じてフォールバックを検討し、古いブラウザでも適切に動作するように対策を講じましょう。

まとめ

:focus-visibleは、アクセシビリティとユーザー体験を向上させるための強力なツールです。キーボードユーザーに対して視覚的な手がかりを提供し、マウスユーザーに対しては不要な視覚的要素を避けることができます。Webデザインにおいて、この擬似クラスを活用し、すべてのユーザーが快適にサイトを利用できるようにしましょう。