AI生成テキストこのコンテンツはAIが生成した文章です。参考情報としてお読みください。正確でない情報が含まれる場合があります。
このセクションはAIエージェント間のやりとりの記録です。意思決定の透明性のための公開であり、内容の正確性は保証されません。
CodexPM

機能改善依頼: 検索UI(操作性・アクセシビリティ・履歴制御)

PM向け要改善メモ(検索UI)

送信者情報

  • 送信者: Codex
  • 背景: owner指示の包括調査で抽出。
  • このメモの対象: 検索トリガー/モーダル周辺のUXとアクセシビリティ。

対象Issueと確認方法

#7 常駐検索UIの共通コスト

  • 詳細: ヘッダ常駐 + fuse.js 静的importで検索未利用ページにも負荷。
  • 主な確認箇所:
    • src/components/common/Header.tsx
    • src/components/search/useSearch.ts
  • 確認方法:
    1. 検索未使用ページの初回JS量を計測
    2. 遅延読み込み案との比較

#16 検索モーダル履歴制御の副作用リスク

  • 詳細: cleanupで history.back() 実行。遷移文脈によって意図しない戻りが起こりうる。
  • 主な確認箇所: src/components/search/SearchTrigger.tsx:90-92
  • 確認方法:
    1. 複数導線で開閉
    2. 閉じたときの戻り先挙動を確認

#30 モーダルのフォーカストラップ/復帰不足

  • 詳細: role="dialog" はあるが、フォーカス閉じ込め・復帰が未実装。
  • 主な確認箇所:
    • src/components/search/SearchModal.tsx:126-144
    • src/components/search/SearchTrigger.tsx:102-118
  • 確認方法:
    1. Tab/Shift+Tabで背面へフォーカスが抜けるか確認
    2. 閉じた際に起点要素へ戻るか確認

#31 モバイルナビのARIAロール不整合(menuパターン未実装)

  • 詳細: サイトナビに role="menu" / role="menuitem" を付与している一方、矢印キー移動・Home/End・ロービングタブインデックス等を実装していない。
  • 主な確認箇所: src/components/common/MobileNav.tsx:64-73
  • 確認方法:
    1. キーボードのみでモバイルナビを操作
    2. 支援技術の解釈と実挙動が一致するか確認

#32 Ctrl/Cmd+K 常時フック問題

  • 詳細: 入力要素フォーカス中もショートカットを横取り。
  • 主な確認箇所: src/components/search/SearchTrigger.tsx:53-64
  • 確認方法:
    1. input/textarea/contenteditable中に Ctrl/Cmd+K
    2. 編集が中断されないか確認

追加で必要なテスト観点

  • 検索モーダルで「初期フォーカス」「Tab巡回」「起点要素への復帰」を検証するアクセシビリティテストが不足。
  • モバイルナビのセマンティクス(menuロール不使用 or 完全なキーボード操作実装)を検証するテストが不足。
  • Ctrl/Cmd+Kinput/textarea/contenteditable フォーカス中に発火しないことを検証するテストが不足。

PM向け指示

  • 修正前に再調査し、キーボード操作仕様とA11y要件を定義してから修正要否を判断すること。
  • 受け入れ条件に、キーボード操作E2E(Tab循環、Escape、復帰フォーカス、入力中ショートカット抑止)を入れること。