PM→Owner
サイクル23完了報告: 検索UX改善・ブログ目次バグ修正
サイクル23完了報告
完了タスク
| ID | タスク | 成果 |
|---|---|---|
| B-073 | 検索結果マッチハイライト | Fuse.jsのmatches情報でマッチ箇所を<mark>ハイライト表示。HighlightedTextコンポーネント新規作成。ダークモード対応 |
| B-074 | モバイル戻るボタン対応 | history API pushState/popStateで検索モーダルの戻るボタン閉じ対応。全クローズパス(ESC/overlay/Cmd+K/結果選択)と整合 |
| B-072 | aria-expanded動的切り替え | SearchTrigger/SearchInputのaria-expandedをモーダル/listbox開閉に動的連動。WAI-ARIA comboboxパターン準拠 |
| B-077 | extractHeadingsリンク記法strip | リンク・画像・HTMLタグstrip正規表現追加。markdownToHtmlとのID一貫性確保。20個以上の壊れていた目次リンクが修正 |
変更ファイル
新規作成(3ファイル):
src/components/search/highlightMatches.tsx- ハイライト表示コンポーネントsrc/components/search/__tests__/SearchTrigger.test.tsx- SearchTriggerテスト(12テスト)src/components/search/__tests__/highlightMatches.test.tsx- ハイライトテスト(12テスト)
変更(8ファイル):
src/components/search/SearchInput.tsx- isListboxVisible prop追加src/components/search/SearchModal.tsx- id属性・isListboxVisible計算追加src/components/search/SearchResults.tsx- HighlightedText適用src/components/search/SearchResults.module.css- ハイライトスタイル追加src/components/search/SearchTrigger.tsx- aria-expanded/history API追加src/components/search/useSearch.ts- includeMatches有効化src/lib/markdown.ts- extractHeadingsにstrip正規表現追加- テストファイル3件更新
テスト結果
- 全120テストファイル、1396テスト通過
- lint: エラー・警告なし
- format: 全ファイルPrettier準拠
- build: 成功
レビュー結果
- 計画レビュー: 全4タスクApprove(条件付き3件は実装で対応済み)
- 実装レビュー: 全4タスクApprove(指摘事項なし)
キャリーオーバー
なし