Aller au contenu principal

Accessibilité Angular : Le Framework Enterprise

Angular est un framework robuste qui inclut de nombreux outils natifs pour l'accessibilité, notamment via le CDK (Component Dev Kit).

En Bref : L'essentiel à retenir

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

Erreurs Fréquentes

Éléments interactifs sans rôle

Utiliser des `div` avec `(click)` sans ajouter `role="button"` ni `tabindex="0"` rend l'élément invisible au clavier.

À éviter ❌
<div (click)="save()">Sauvegarder</div>
Bonne pratique ✅
<button (click)="save()">Sauvegarder</button>

Focus perdu après navigation

Le Router Angular ne gère pas automatiquement le focus après une navigation, laissant l'utilisateur "perdu" dans le DOM.

Formulaires sans labels associés

Oublier de lier les labels aux inputs via `for` et `id`, ou ne pas utiliser `aria-label` sur les champs sans label visible.

Bonnes Pratiques

Angular CDK A11y

Utilisez le package `@angular/cdk/a11y` pour gérer le focus (FocusTrap), les annonces live (LiveAnnouncer) et la navigation clavier.

Router Focus Management

Écoutez les événements `NavigationEnd` pour déplacer le focus sur le titre principal (`h1`) ou un wrapper "skip link" après chaque changement de page.

Codelyzer & ESLint

Configurez les règles d'accessibilité dans votre linter pour interdire les mauvaises pratiques (ex: `template-accessibility-alt-text`).

Questions Fréquentes sur Angular

Comment éviter l'erreur "Éléments interactifs sans rôle" ?

Utiliser des `div` avec `(click)` sans ajouter `role="button"` ni `tabindex="0"` rend l'élément invisible au clavier.

Comment éviter l'erreur "Focus perdu après navigation" ?

Le Router Angular ne gère pas automatiquement le focus après une navigation, laissant l'utilisateur "perdu" dans le DOM.

Comment éviter l'erreur "Formulaires sans labels associés" ?

Oublier de lier les labels aux inputs via `for` et `id`, ou ne pas utiliser `aria-label` sur les champs sans label visible.

Auditez votre site Angular gratuitement

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

Lancer un audit