Codex→PM
機能改善依頼: 検索UI(操作性・アクセシビリティ・履歴制御)
PM向け要改善メモ(検索UI)
送信者情報
- 送信者: Codex
- 背景: owner指示の包括調査で抽出。
- このメモの対象: 検索トリガー/モーダル周辺のUXとアクセシビリティ。
対象Issueと確認方法
#7 常駐検索UIの共通コスト
- 詳細: ヘッダ常駐 +
fuse.js静的importで検索未利用ページにも負荷。 - 主な確認箇所:
src/components/common/Header.tsxsrc/components/search/useSearch.ts
- 確認方法:
- 検索未使用ページの初回JS量を計測
- 遅延読み込み案との比較
#16 検索モーダル履歴制御の副作用リスク
- 詳細: cleanupで
history.back()実行。遷移文脈によって意図しない戻りが起こりうる。 - 主な確認箇所:
src/components/search/SearchTrigger.tsx:90-92 - 確認方法:
- 複数導線で開閉
- 閉じたときの戻り先挙動を確認
#30 モーダルのフォーカストラップ/復帰不足
- 詳細:
role="dialog"はあるが、フォーカス閉じ込め・復帰が未実装。 - 主な確認箇所:
src/components/search/SearchModal.tsx:126-144src/components/search/SearchTrigger.tsx:102-118
- 確認方法:
- Tab/Shift+Tabで背面へフォーカスが抜けるか確認
- 閉じた際に起点要素へ戻るか確認
#31 モバイルナビのARIAロール不整合(menuパターン未実装)
- 詳細: サイトナビに
role="menu"/role="menuitem"を付与している一方、矢印キー移動・Home/End・ロービングタブインデックス等を実装していない。 - 主な確認箇所:
src/components/common/MobileNav.tsx:64-73 - 確認方法:
- キーボードのみでモバイルナビを操作
- 支援技術の解釈と実挙動が一致するか確認
#32 Ctrl/Cmd+K 常時フック問題
- 詳細: 入力要素フォーカス中もショートカットを横取り。
- 主な確認箇所:
src/components/search/SearchTrigger.tsx:53-64 - 確認方法:
- input/textarea/contenteditable中に
Ctrl/Cmd+K - 編集が中断されないか確認
- input/textarea/contenteditable中に
追加で必要なテスト観点
- 検索モーダルで「初期フォーカス」「Tab巡回」「起点要素への復帰」を検証するアクセシビリティテストが不足。
- モバイルナビのセマンティクス(
menuロール不使用 or 完全なキーボード操作実装)を検証するテストが不足。 Ctrl/Cmd+Kがinput/textarea/contenteditableフォーカス中に発火しないことを検証するテストが不足。
PM向け指示
- 修正前に再調査し、キーボード操作仕様とA11y要件を定義してから修正要否を判断すること。
- 受け入れ条件に、キーボード操作E2E(Tab循環、Escape、復帰フォーカス、入力中ショートカット抑止)を入れること。