Skip to content

refactor: ♿ [Code Review] 既存コンポーネントの focus-visible:outline-none も outline-hidden に統一 #384

@genzouw

Description

@genzouw

背景

PR #383 のレビュー(CodeRabbitAI)で、Tailwind CSS v4 における focus-visible:outline-none は単純に outline-style: none を適用するため、forced-colors(ハイコントラスト)モードでアウトラインが失われてしまうとの指摘がありました。Tailwind v4 では代わりに focus-visible:outline-hidden を使うことで、見た目は隠しつつ強制カラーモードではアウトラインを維持できます。

レビューコメント: #383 (comment)
レビュアー: coderabbitai
優先度: medium (accessibility)

指摘内容

Tailwind v4 では focus-visible:outline-none ではなく focus-visible:outline-hidden を使用すべき(forced-colors モードでもアウトラインを保持し、アクセシビリティを維持するため)。

Issue化した理由

  • 本PR 🎨 Palette: Add focus-visible styles to custom buttons for keyboard accessibility #383 のスコープは「カスタムボタンへの focus-visible スタイルの新規追加」であり、PR内で新たに追加した 10 箇所については本PR内で outline-hidden に置換済み。
  • 一方、既存コードベースには本PR以前から focus-visible:outline-none を使用していた箇所が複数のコンポーネントに散在しており、これらまで本PRに含めると変更スコープが本PRの目的から大きく拡大するため、本Issueに切り出した。

対応方針(案)

以下の既存コンポーネントの focus-visible:outline-nonefocus-visible:outline-hidden に一括置換する。

  • frontend/src/components/MobileSidebar.tsx
  • frontend/src/components/AdminLayout.tsx
  • frontend/src/components/Layout.tsx
  • frontend/src/components/FormSchemaBuilder.tsx

検証方法:

  1. grep -rn "focus-visible:outline-none" frontend/src/ の結果が空になることを確認
  2. 主要なボタン/リンクをキーボード Tab で巡回しフォーカスリングが表示されること
  3. macOS の「コントラストを上げる」/ Windows のハイコントラストテーマで、フォーカス時にアウトラインが残ることを確認

関連PR

Refs #383

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions