ARIA : accessibilité web avec labels et rôles essentiels

🏷️ Intégration HTML & CSS 📅 06/04/2026 10:00:00 👤 Mezgani said
Aria Accessibilité Web
ARIA : accessibilité web avec labels et rôles essentiels

Maîtrisez les attributs ARIA essentiels pour améliorer l'accessibilité web. Apprenez à implémenter aria-label, aria-describedby, aria-hidden, et les rôles ARIA pour les lecteurs d'écran.

Introduction à ARIA

ARIA (Accessible Rich Internet Applications) est un ensemble de standards W3C qui permet d'améliorer l'accessibilité des applications web pour les personnes en situation de handicap, notamment les utilisateurs de lecteurs d'écran. ARIA fournit des attributs HTML qui décrivent le rôle, l'état et les propriétés des éléments dynamiques.

À retenir : ARIA complète le HTML sémantique mais ne le remplace jamais. Utilisez toujours les éléments HTML natifs en premier lieu.

L'accessibilité web n'est pas optionnelle : c'est un droit. En France, l'article 47 de la loi Handicap de 2005 oblige les sites web publics à être accessibles. De plus, une meilleure accessibilité améliore le SEO et l'expérience utilisateur pour tous.

Les attributs ARIA essentiels

Les attributs ARIA les plus importants à connaître sont aria-label, aria-describedby, aria-hidden, aria-live, aria-expanded et aria-selected. Chacun joue un rôle spécifique dans la communication avec les lecteurs d'écran.

aria-label

Fournit un label invisible pour les lecteurs d'écran. Utile quand il n'y a pas de texte visible.

<button aria-label="Fermer la fenêtre">✕</button>
<a href="#" aria-label="Partager sur LinkedIn">
    <svg>...</svg>
</a>

aria-describedby

Lie un élément à une description plus longue. Référence l'ID d'un autre élément.

<input type="password" aria-describedby="pwd-hint" />
<span id="pwd-hint">Minimum 12 caractères avec majuscules et chiffres</span>

aria-hidden

Cache un élément des lecteurs d'écran. À utiliser avec parcimonie pour les éléments purement visuels.

<span aria-hidden="true">⚠️</span>
<span class="decorative" aria-hidden="true"></span>

aria-live

Annonce les mises à jour dynamiques aux lecteurs d'écran. Valeurs : polite, assertive ou off.

<div aria-live="polite" aria-atomic="true">
    <!-- Les mises à jour ici seront annoncées -->
</div>

aria-expanded

Indique si un élément est agrandi ou réduit. Idéal pour les accordéons et menus déroulants.

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

Les rôles ARIA

Les rôles ARIA définissent le type d'élément. Il existe trois catégories : les rôles de document, les rôles de widget et les rôles de structure. Voici les plus utilisés :

Rôle Cas d'usage Exemple
button Un bouton personnalisé <div role="button">
tab Un onglet dans une interface à onglets <div role="tab">
dialog Une boîte de dialogue modale <div role="dialog">
alert Un message d'alerte <div role="alert">
navigation Une section de navigation <nav role="navigation">

Exemples pratiques

Voici comment implémenter ARIA dans des situations courantes :

Modal accessible

<div role="dialog" aria-modal="true" aria-labelledby="modal-title">
    <h2 id="modal-title">Confirmer votre action</h2>
    <p>Êtes-vous sûr de vouloir continuer ?</p>
    <button>Annuler</button>
    <button>Confirmer</button>
</div>

Navigation accessible

<nav role="navigation" aria-label="Navigation principale">
    <ul>
        <li><a href="/" aria-current="page">Accueil</a></li>
        <li><a href="/about">À propos</a></li>
        <li><a href="/contact">Contact</a></li>
    </ul>
</nav>

Bouton personnalisé avec icône

<div role="button" tabindex="0" aria-label="Ajouter au panier">
    <svg aria-hidden="true">...</svg>
    <span aria-hidden="true">+</span>
</div>

Bonnes pratiques et erreurs à éviter

À retenir : Ne pas utiliser ARIA pour corriger un mauvais HTML. Utilisez d'abord les éléments sémantiques natifs.

✅ Bonnes pratiques

  • Privilégier les éléments HTML natifs (<button>, <input>, <nav>)
  • Tester avec un vrai lecteur d'écran (NVDA, JAWS, VoiceOver)
  • Utiliser aria-label uniquement si pas de texte visible
  • Maintenir la cohérence entre le visuel et ARIA
  • Ajouter aria-label à tous les boutons sans texte

❌ Erreurs à éviter

  • Utiliser ARIA sur des éléments non interactifs
  • Cacher du contenu important avec aria-hidden="true"
  • Oublier aria-label sur les icônes seules
  • Utiliser role="button" sur un <div> sans keyboard support
  • Donner des labels génériques ("Cliquez ici", "En savoir plus")

Tester l'accessibilité

Il existe plusieurs outils pour tester l'accessibilité de votre site :

Outils automatisés

  • Axe DevTools : Extension Chrome/Firefox gratuite pour audits d'accessibilité
  • Wave : Outil en ligne pour vérifier les problèmes d'accessibilité
  • Lighthouse : Audit intégré dans Chrome DevTools
  • Pa11y : Outil CLI pour tester l'accessibilité

Tests manuels

  • Tester au clavier : Naviguer avec Tab et Shift+Tab seulement
  • NVDA (gratuit) : Lecteur d'écran pour Windows
  • JAWS (payant) : Lecteur d'écran professionnel
  • VoiceOver (Mac/iOS) : Lecteur d'écran natif Apple
Conseil : Testez toujours avec un vrai utilisateur en situation de handicap si possible. Les outils automatisés ne détectent que 30-40% des problèmes.