enum Valeurs : true,false

aria-expanded

Indique si un élément de contrôle est actuellement développé (ouvert) ou réduit (fermé).

Description

aria-expanded est utilisé sur un élément de contrôle (bouton, lien…) qui commande l’affichage/masquage d’un autre élément. La valeur true indique que le contenu contrôlé est visible ; false qu’il est masqué.

Syntaxe

<button aria-expanded="false" aria-controls="menu">Menu</button>
<ul id="menu" hidden>…</ul>

Exemples

Accordéon :

<button aria-expanded="true" aria-controls="section-1">
  Section 1
</button>
<div id="section-1">
  <p>Contenu de la section 1.</p>
</div>

Menu de navigation déroulant :

<button aria-expanded="false" aria-haspopup="true" aria-controls="sous-menu">
  Produits
</button>
<ul id="sous-menu" hidden role="menu">
  <li role="menuitem"><a href="/logiciels">Logiciels</a></li>
  <li role="menuitem"><a href="/services">Services</a></li>
</ul>

Mise à jour JavaScript :

btn.addEventListener('click', () => {
  const expanded = btn.getAttribute('aria-expanded') === 'true';
  btn.setAttribute('aria-expanded', String(!expanded));
  panel.hidden = expanded;
});

Notes

Sur le contrôle, pas sur le contenu : aria-expanded se pose sur l’élément qui déclenche l’ouverture (le bouton), pas sur le panneau ouvert.

Combiner avec aria-controls : pour indiquer explicitement quel élément est contrôlé.

Pas d’état intermédiaire : contrairement à aria-checked, aria-expanded ne supporte pas mixed.

Support navigateurs