Framework JS

Audit d'accessibilité RGAA pour applications Angular

Pourquoi Angular pose des problèmes d'accessibilité

Angular est le framework de choix pour les applications d'entreprise complexes, mais son architecture sophistiquée crée des problèmes d'accessibilité spécifiques. Le mécanisme de change detection d'Angular met à jour le DOM de manière invisible pour les lecteurs d'écran : le contenu change à l'écran sans que les technologies d'assistance soient notifiées. Angular Material, la librairie de composants officielle, fournit des composants avec un support ARIA partiel — les mat-select, mat-autocomplete et mat-datepicker ont des lacunes documentées dans la gestion du clavier et des annonces. Le système de routing Angular effectue des navigations côté client sans annonce aux lecteurs d'écran ni gestion du focus. Les directives structurelles (*ngIf, *ngFor) ajoutent et retirent des éléments du DOM, causant des pertes de focus. Les formulaires réactifs d'Angular gèrent la validation dans le code TypeScript mais n'associent pas automatiquement les messages d'erreur aux champs via aria-describedby. Ces problèmes touchent des applications critiques (banques, administrations, santé) où l'accessibilité est une obligation légale.

Problèmes fréquents sur Angular

Change detection invisible pour les lecteurs d'écran

RGAA 7.4

Le système de change detection d'Angular met à jour le DOM automatiquement lorsque les données du composant changent. Ces mises à jour ne sont pas encadrées par des régions aria-live et ne déclenchent pas d'annonce. Un compteur de notifications qui se met à jour, un tableau de données qui se rafraîchit, un message de statut qui apparaît : tout cela est invisible pour les lecteurs d'écran sans implémentation explicite d'aria-live.

Angular Material avec lacunes ARIA

RGAA 7.1

Les composants Angular Material (mat-select, mat-autocomplete, mat-datepicker, mat-table) ont un support ARIA incomplet. Le mat-select n'annonce pas toujours l'option sélectionnée. Le mat-datepicker a une navigation clavier complexe non conforme aux patterns APG. Le mat-autocomplete ne gère pas correctement aria-activedescendant. Ces lacunes sont documentées dans les issues GitHub du projet mais persistent dans les versions stables.

Routing sans annonce ni gestion de focus

RGAA 12.6

Le routeur Angular effectue des navigations côté client qui changent le contenu sans rechargement. Les lecteurs d'écran ne détectent pas le changement de page. Le focus reste sur le lien cliqué au lieu d'être déplacé vers le nouveau contenu. Le titre de la page n'est pas toujours mis à jour via Title service. L'utilisateur non-voyant ne sait pas que la navigation a fonctionné ni quel contenu est maintenant affiché.

Directives *ngIf causant des pertes de focus

RGAA 7.3

Les directives *ngIf et *ngFor ajoutent et retirent physiquement des éléments du DOM. Si l'élément qui a le focus est détruit par *ngIf, le focus revient au début du document. Ce problème est fréquent dans les formulaires conditionnels (afficher un champ selon une sélection), les listes dynamiques (supprimer un élément) et les interfaces à onglets construites avec *ngIf au lieu de CSS.

Testez votre site Angular

Découvrez les non-conformités RGAA de votre site Angular en 5 minutes. Gratuit, sans engagement.

Lancer l'audit gratuit

Ce que Scrutia détecte sur Angular

Scrutia exécute votre application Angular dans un navigateur réel et attend la fin du cycle de change detection avant de tester. Notre moteur détecte les mises à jour DOM non annoncées, les composants Angular Material avec ARIA incomplet, les navigations sans gestion de focus et les pertes de focus causées par les directives structurelles. Nous simulons des interactions clavier complètes incluant la navigation dans les mat-select, mat-datepicker et mat-table. Les corrections sont fournies en TypeScript/HTML Angular avec les attributs ARIA et les patterns recommandés.

Questions fréquentes — Angular

Scrutia détecte-t-il les problèmes spécifiques à Angular Material ?
Oui. Scrutia teste le HTML rendu par les composants Angular Material dans votre application. Nous détectons les lacunes ARIA des mat-select, mat-autocomplete, mat-datepicker et autres composants, et fournissons les attributs ARIA à ajouter ou les composants alternatifs à utiliser.
Les corrections sont-elles fournies en syntaxe Angular ?
Oui. Le rapport fournit les corrections en template Angular (HTML avec bindings) et en TypeScript pour la logique de gestion de focus et d'aria-live. Les corrections utilisent les patterns Angular recommandés (ViewChild, Renderer2, LiveAnnouncer du CDK).
Notre application Angular utilise le CDK a11y, est-ce suffisant ?
Le CDK a11y d'Angular fournit des outils (FocusTrap, LiveAnnouncer, FocusMonitor) mais ne les applique pas automatiquement. Scrutia vérifie que ces outils sont correctement utilisés dans votre application : les modales ont-elles un FocusTrap ? Les notifications utilisent-elles LiveAnnouncer ? Le rapport identifie les endroits où le CDK a11y devrait être utilisé.

Auditez votre site Angular maintenant

106 critères RGAA testés en 5 minutes. Score gratuit, rapport complet multi-pages avec corrections de code à partir de 149€.

Tester mon site Angular