FAQ

プラス開閉 FAQ

プラス記号と×記号で開閉する FAQ アコーディオンです。JavaScript を使わず、HTML 標準の details 要素と summary 要素だけで開閉を実現しているのが特徴です。 summary::after の擬似要素で「+」を表示し、開いた状態( [open] )では「×」に切り替わるため、最小限の…

プレビュー

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

プラス記号と×記号で開閉する FAQ アコーディオンです。JavaScript を使わず、HTML 標準の details 要素と summary 要素だけで開閉を実現しているのが特徴です。summary::after の擬似要素で「+」を表示し、開いた状態([open])では「×」に切り替わるため、最小限のコードで状態が直感的に伝わります。

向いている場面

  • 料金や納期などのよくある質問をまとめるページ
  • サービス説明の末尾に置く疑問解消セクション
  • サポート・ヘルプの簡易な Q&A

質問が増えても details を追加するだけで済み、保守が容易です。回答が長くなる場合は div の中にリストや段落を入れても崩れません。

実装上の注意

details 要素はキーボード操作や読み上げに標準で対応しているため、アクセシビリティ面で扱いやすいのが利点です。デフォルトの三角マーカーは list-style:none で消していますが、Safari など一部ブラウザでは別途 ::-webkit-details-marker の非表示が必要な場合があります。検索エンジンに FAQ として認識させたいときは、表示内容と一致する FAQPage の構造化データを併記すると効果的です。

よくある質問

details要素はJavaScriptなしで本当に動きますか。
動きます。details/summaryはブラウザ標準の開閉機能で、クリックやキーボード操作にも標準対応しています。JSが不要な分だけ軽く、読み上げ環境でも開閉状態が伝わるため、シンプルなFAQには最適です。
最初から1つだけ開いた状態にできますか。
できます。開いておきたいdetailsタグにopen属性を付けるだけです。ただし同時に複数を開いたままにするか1つずつ開くかは標準では制御できないため、排他開閉にしたい場合は少量のJSが必要です。