FAQ

検索付きFAQアコーディオン

キーワード検索でリアルタイムに絞り込めるFAQアコーディオンです。各質問は details と summary 要素で組まれており、JavaScriptなしでも開閉が成立する堅牢な構造になっています。

プレビュー

このパーツの使いどころと実装ポイント

キーワード検索でリアルタイムに絞り込めるFAQアコーディオンです。各質問は detailssummary 要素で組まれており、JavaScriptなしでも開閉が成立する堅牢な構造になっています。各項目には data-q 属性でキーワードを持たせ、上部の type="search" 入力欄に文字を打つと、一致しない項目を即座に非表示にする仕組みです。

向いている場面

項目数の多いサポートページ、ECの購入前疑問の解消、サービスサイトのよくある質問など、ユーザーが目的の答えに早くたどり着きたい場面に適します。質問が10件を超えるような長いFAQで、検索による絞り込みが特に効果を発揮します。

カスタマイズと注意点

  • 項目を増やすときは details ブロックを複製し、summary に質問、本文に回答を入れ、data-q に検索に引っかけたい同義語(例:費用 料金 見積もり)を並べておくと検索精度が上がります。
  • details ベースなのでJSが無効でも開閉できるのが利点です。検索機能だけがJSに依存します。
  • 質問文をそのまま見出しに使うと検索エンジンにも内容が伝わりやすく、構造化データ(FAQ)にも転用しやすくなります。回答は簡潔にまとめましょう。

このパーツは JavaScript が含まれます。HTML の最後に <script> タグで読み込むか、外部 JS ファイルに切り出してください。

よくある質問

検索フィルターはどうやって質問を絞り込んでいますか?
各FAQ項目にdata-q属性で関連キーワード(同義語を含む)を持たせており、入力欄に打った文字がそのキーワードや質問文に含まれるかを判定して、一致しない項目を非表示にします。data-qに言い換え語を足すほど、ヒット率が上がります。
JavaScriptが無効でもFAQは使えますか?
開閉はdetailsとsummary要素で実現しているため、JavaScriptが無効でも各質問をクリックして回答を開けます。リアルタイム検索の絞り込み機能だけがJavaScriptに依存し、無効時は全項目がそのまま表示されます。