Aller au contenu principal

Accessibilité React : Le Guide Complet 2025

React est la librairie UI la plus populaire, mais son modèle de composants peut parfois compliquer l'accessibilité. Ce guide vous aide à éviter les pièges courants des SPA (Single Page Applications) et à construire des composants inclusifs.

En Bref : L'essentiel à retenir

  • Framework : React nécessite une attention particulière à la sémantique HTML.
  • Point Critique : Gestion du focus lors de la navigation (SPA).
  • Outil Recommandé : eslint-plugin-jsx-a11y.
  • Impact RGAA : Élevé sur les critères interactifs (modales, menus).

Erreurs Fréquentes

Événements sur des éléments non-interactifs

Ajouter un `onClick` sur une `div` ou un `span` rend l'élément inaccessible au clavier et aux lecteurs d'écran.

À éviter ❌
<div onClick={handleClick}>Cliquez-moi</div>
Bonne pratique ✅
<button onClick={handleClick}>Cliquez-moi</button>

Gestion du focus dans les modales

Oublier de piéger le focus à l'intérieur d'une modale permet à l'utilisateur de naviguer en arrière-plan, ce qui est désorientant.

Titres de page statiques

Dans une SPA, le titre de la page (`document.title`) doit changer à chaque navigation pour informer les utilisateurs de lecteurs d'écran.

Fragments oubliés

Remplacer des éléments sémantiques par des `div` inutiles casse la structure du document. Utilisez `<React.Fragment>` ou `<>`.

Bonnes Pratiques

HTML Sémantique avant tout

Utilisez toujours les éléments natifs (`<button>`, `<input>`, `<nav>`) avant de créer des composants custom. Ils gèrent nativement le focus et les interactions clavier.

Gestion du Focus (useRef)

Utilisez `useRef` pour déplacer programmatiquement le focus lors de l'ouverture d'une modale ou d'un changement de route (ex: focus sur le titre h1).

Annonces dynamiques (Live Regions)

Pour les notifications ou chargements, utilisez `aria-live="polite"` afin que le lecteur d'écran annonce le changement sans interrompre l'utilisateur.

Tests automatisés (Jest/RTL)

Intégrez `jest-axe` dans vos tests unitaires pour empêcher les régressions d'accessibilité avant même le déploiement.

Questions Fréquentes sur React

Comment éviter l'erreur "Événements sur des éléments non-interactifs" ?

Ajouter un `onClick` sur une `div` ou un `span` rend l'élément inaccessible au clavier et aux lecteurs d'écran.

Comment éviter l'erreur "Gestion du focus dans les modales" ?

Oublier de piéger le focus à l'intérieur d'une modale permet à l'utilisateur de naviguer en arrière-plan, ce qui est désorientant.

Comment éviter l'erreur "Titres de page statiques" ?

Dans une SPA, le titre de la page (`document.title`) doit changer à chaque navigation pour informer les utilisateurs de lecteurs d'écran.

Comment éviter l'erreur "Fragments oubliés" ?

Remplacer des éléments sémantiques par des `div` inutiles casse la structure du document. Utilisez `<React.Fragment>` ou `<>`.

Auditez votre site React gratuitement

Vérifiez si votre application respecte les normes RGAA et WCAG en moins de 30 secondes.

Lancer un audit