RGAA & ARIA : L'Accessibilité en Nuggets

Votre guide didactique pour une meilleure accessibilité web.

Le Principe Fondamental : HTML Sémantique d'Abord

🏗️

Règle d'or : Utilisez toujours les éléments HTML natifs avant d'ajouter ARIA. Les éléments sémantiques HTML ont déjà une accessibilité intégrée.

Les 6 Catégories de Rôles ARIA

🗺️ Rôles de Repères (Landmark)

Structurent la page pour la navigation

✅ Bon <nav> ou <header>
❌ Éviter <div role="navigation">

📄 Rôles de Structure

Décrivent la structure du contenu

✅ Bon <article> ou <section>
❌ Éviter <div role="article">

🎛️ Rôles de Widgets

Éléments interactifs personnalisés

✅ Bon <button> ou <input>
❌ Éviter <div role="button">

📢 Régions Dynamiques

Contenu qui change dynamiquement

✅ Bon role="alert" aria-live="assertive"
❌ Éviter Changements silencieux

🪟 Rôles de Fenêtres

Sous-fenêtres et dialogues

✅ Bon <dialog> + role="dialog"
❌ Éviter Modale sans rôle

⚠️ Rôles Abstraits

À NE JAMAIS utiliser dans le code

❌ Interdit role="widget" role="command"

🎯 Bonnes Pratiques ARIA

1. HTML Sémantique d'Abord

✅ Recommandé

<button onclick="save()">
  Enregistrer
</button>

❌ À éviter

<div role="button" 
     onclick="save()"
     tabindex="0">
  Enregistrer
</div>

2. Utilisez ARIA avec Parcimonie

Trop d'ARIA peut créer de la confusion pour les utilisateurs de lecteurs d'écran

N'ajoutez ARIA que lorsque HTML natif ne peut pas exprimer la sémantique nécessaire.

3. Testez avec de Vrais Utilisateurs

L'accessibilité théorique ≠ accessibilité pratique. Testez avec des lecteurs d'écran réels.

🧪 Démonstration Interactive

Faux Bouton

Testez ces deux éléments avec un lecteur d'écran. Le premier utilise l'élément HTML natif <button>, le second est un <div> stylé.

Différences :

  • Navigation au clavier (Tab, Entrée, Espace)
  • Annonce par les lecteurs d'écran
  • Sémantique native vs artificielle