aria-pressed
Indique si un bouton bascule est actuellement activé. Définissez "true" lorsque la bascule est activée, "false" lorsqu'elle est désactivée ; la technologie d'assistance annonce l'état avec l'étiquette.
Quand l’utiliser
Sur un bouton qui agit comme une bascule — couper/rétablir le son, suivre/ne plus suivre, gras/non-gras dans un éditeur de texte, barre latérale ouverte/fermée. Le bouton change d’état mais n’effectue pas de navigation ; l’étiquette reste la même et seul l’état activé communique le changement.
Trois valeurs sont valides :
aria-pressed="false"— la bascule est désactivée.aria-pressed="true"— la bascule est activée.aria-pressed="mixed"— utilisé lorsque la bascule contrôle plusieurs sous-éléments dans un état mixte (certains activés, d’autres non). Rare en pratique ; la plupart des auteurs préfèrent des contrôles séparés.
Si votre bouton ne bascule pas — il soumet simplement un formulaire ou ouvre une fenêtre modale — n’utilisez pas aria-pressed. Utilisez aria-expanded pour les contrôles de divulgation, ou aucun attribut d’état pour les boutons d’action simples.
Comment le maintenir synchronisé
aria-pressed est un état, ce qui signifie qu’il change lorsque l’utilisateur interagit. Le gestionnaire de clic qui met à jour l’apparence visuelle du bouton doit également mettre à jour l’attribut. Les deux ne doivent jamais diverger — si l’icône indique son coupé, aria-pressed doit afficher "true".
<button
type="button"
aria-pressed="false"
onclick="
const next = this.getAttribute('aria-pressed') === 'true' ? 'false' : 'true';
this.setAttribute('aria-pressed', next);
toggleMute(next === 'true');
"
>
Mute
</button>
Échecs courants
- Définir
aria-pressedsur un non-bouton (<div>ou<a>). Utilisezrole="button"ou, mieux encore, passez à<button>. - Basculer l’état visuel avec CSS sans jamais mettre à jour
aria-pressed. Les utilisateurs de lecteurs d’écran continuent d’entendre le même état. - Utiliser
aria-pressed="true"sur un bouton qui ne bascule pas (un bouton « Envoyer ») — dérouterait la technologie d’assistance en annonçant un état non pertinent. - Confondre
aria-pressedavecaria-selected(pour les éléments dans un widget mono-sélection comme un onglet ou une option) ouaria-checked(pour les cases à cocher et boutons radio). Chacun a une sémantique différente ; choisissez celui qui correspond au modèle du composant.