Accordéon
Composant natif permettant d'afficher ou masquer des sections de contenu, sans JavaScript.
1. Démonstration
Pourquoi utiliser les balises natives ?
L'utilisation des balises <details> et <summary> garantit une accessibilité parfaite au clavier et aux lecteurs d'écran, sans avoir à gérer des attributs ARIA complexes ou du JavaScript.
Comment fonctionne l'éco-conception ici ?
Ce composant pèse 0 Ko de JavaScript. Le comportement exclusif (fermer un panneau quand on en ouvre un autre) est géré par le navigateur grâce à l'attribut HTML name.
Ce composant est-il personnalisable ?
Absolument ! Le CSS fourni est minimaliste et s'adaptera facilement aux variables de thème (clair/sombre) de votre site.
2. Accessibilité (Gérée par le navigateur)
En utilisant les balises sémantiques, le navigateur fait tout le travail :
| Interaction | Comportement natif |
|---|---|
Tab |
Place le focus sur l'en-tête de l'accordéon (summary). L'indicateur visuel est géré via :focus-visible. |
Entrée / Espace |
Bascule l'état ouvert/fermé de l'accordéon. |
| Lecteur d'écran | Annonce nativement le rôle de bouton et son état (développé/réduit). |
3. Code source
HTML
L'attribut name="mon-groupe" (optionnel) permet d'avoir un comportement « accordéon exclusif » (un seul panneau ouvert à la fois). Retirez cet attribut si vous souhaitez que plusieurs panneaux puissent être ouverts simultanément.
<div class="accordion-group">
<details name="faq-accordion">
<summary>Titre de la première section</summary>
<div class="accordion-content">
<p>Contenu détaillé de la première section...</p>
</div>
</details>
<details name="faq-accordion">
<summary>Titre de la seconde section</summary>
<div class="accordion-content">
<p>Contenu détaillé de la seconde section...</p>
</div>
</details>
</div>