Skip to Content
AccessibilitéPartie 16 — Cookbook & Annexes16.2 — Cheat sheet ARIA & clavier

Chapitre 16.2 — Cheat sheet ARIA & clavier

⏱️ TL;DR — La feuille de triche à garder ouverte : les rôles, états et propriétés ARIA les plus utiles (quand les employer), le clavier attendu par pattern APG (modale, onglets, menu, accordéon, combobox), le CSS sr-only complet, et la règle d’or. Rien ici ne remplace les Parties 6 et 10 — c’est un rappel condensé pour quand tu codes.

La règle d’or

La première règle d’ARIA : ne pas utiliser ARIA. Si un élément HTML natif (<button>, <nav>, <label>, <dialog>…) fait le travail, utilise-le. ARIA ne modifie que la sémantique exposée — jamais le comportement, le focus ou le style, qui restent à ta charge.

États & propriétés ARIA courants

AttributRôleSur quoi
aria-labelNom accessible (quand pas de texte visible)Bouton icône, champ de recherche
aria-labelledbyNom accessible via l’id d’un autre élémentDialogue titré, section
aria-describedbyDescription complémentaireChamp avec aide/erreur, tooltip
aria-expandedOuvert/ferméDisclosure, menu, accordéon, combobox
aria-selectedSélectionnéOnglet, option de listbox
aria-checkedCochéCase/switch custom
aria-currentÉlément courantLien de page active, étape
aria-invalidChamp en erreurFormulaire
aria-hidden="true"Retirer de l’arbre d’accessibilitéIcône décorative (jamais sur un focusable)
aria-liveAnnoncer un changementpolite (statut) / assertive (alerte)
aria-controlsLie un déclencheur à sa cibleBouton → panneau

⚠️ Ne mets jamais aria-hidden="true" sur un élément focusable ni sur un conteneur qui en contient : tu crées un « fantôme » que le clavier atteint mais que le lecteur d’écran ignore. Voir 6.5.

Clavier attendu par pattern (APG)

PatternTouches
BoutonEntrée et Espace activent
LienEntrée active
Modale (dialog)Échap ferme ; focus piégé ; focus rendu au déclencheur
Onglets (tabs)Flèches gauche/droite changent d’onglet ; Tab va au panneau
Menu buttonEntrée/Espace/Flèche bas ouvre ; Flèches naviguent ; Échap ferme
AccordéonEntrée/Espace déplient/replient l’en-tête
ComboboxFlèche bas ouvre/descend ; Entrée sélectionne ; Échap ferme
Case / switchEspace bascule
RadiosFlèches déplacent la sélection dans le groupe

Le CSS sr-only (visually-hidden)

Cache visuellement un texte tout en le laissant lisible par le lecteur d’écran (libellé d’un bouton icône, contexte d’un lien) :

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

À l’inverse, aria-hidden="true" masque pour le lecteur d’écran un contenu visible (icône décorative). Ne confonds pas les deux — voir 5.5.

Nom / rôle / valeur : l’ordre de calcul du nom

Le nom accessible d’un élément se calcule par priorité décroissante :

1. aria-labelledby (gagne sur tout) 2. aria-label 3. contenu / <label> associé / alt / <legend> 4. title / placeholder (dernier recours, à éviter)

Contrastes à retenir

CasRatio minimum (AA)
Texte normal4,5:1
Grand texte (≥ 24px, ou ≥ 18,66px gras)3:1
Éléments non textuels (bordures, icônes utiles, focus)3:1

🧭 Sur A11yLearn — Ce chapitre est épinglé dans le wiki de l’équipe A11yLearn. Quand un dev code un onglet ou une modale, il vérifie la ligne « clavier attendu » et la colonne « états ARIA » avant d’ouvrir la PR. La cheat sheet transforme des connaissances éparses en réflexes vérifiables.


Chapitre suivant : Snippets prêts à copier — le code réutilisable des patterns les plus fréquents.

Last updated on