Audit d'accessibilité RGAA pour applications Vue.js
Pourquoi Vue.js pose des problèmes d'accessibilité
Vue.js est réputé pour sa simplicité et sa progressivité, mais les applications Vue présentent des problèmes d'accessibilité subtils que les développeurs ignorent souvent. Les transitions et animations Vue (transition, transition-group) modifient la visibilité des éléments d'une façon que les lecteurs d'écran interprètent mal : un élément en cours d'animation de sortie reste dans l'arbre d'accessibilité alors qu'il n'est plus pertinent. La directive v-if retire complètement les éléments du DOM, les supprimant de l'arbre d'accessibilité sans annonce — contrairement à v-show qui cache visuellement mais préserve l'élément. Vue Router effectue des navigations côté client sans annonce aux lecteurs d'écran. Les composants Vue communiquent via des events personnalisés ($emit) qui n'ont pas de correspondance dans les technologies d'assistance. Les slots et les composants dynamiques (<component :is>) rendent le HTML final imprévisible et difficile à auditer en amont. Le rendu conditionnel avec v-if, combiné aux transitions, crée des situations où le focus est perdu et le contenu disparaît de l'arbre d'accessibilité sans alternative.
Problèmes fréquents sur Vue.js
Transitions brisant le focus et l'arbre d'accessibilité
RGAA 7.3Les composants transition et transition-group de Vue animent l'entrée et la sortie d'éléments. Pendant l'animation de sortie, l'élément est encore présent dans le DOM et l'arbre d'accessibilité, mais il n'est plus visuellement pertinent. Les lecteurs d'écran peuvent annoncer un contenu qui est en train de disparaître. À la fin de l'animation, l'élément est retiré du DOM, causant potentiellement une perte de focus si cet élément ou un de ses enfants avait le focus.
v-if retirant des éléments sans annonce
RGAA 7.4La directive v-if supprime physiquement les éléments du DOM quand la condition est fausse. Les lecteurs d'écran ne sont pas notifiés de cette disparition. Si un message d'erreur, une notification ou un contenu important est géré par v-if, il apparaît et disparaît silencieusement pour les technologies d'assistance. Ce problème est absent avec v-show (qui utilise display:none) mais les développeurs préfèrent v-if pour des raisons de performance.
Vue Router sans gestion de focus ni annonce de page
RGAA 12.6Vue Router change le contenu de la page sans rechargement du navigateur. Le focus clavier n'est pas déplacé vers le nouveau contenu. Le titre de la page n'est pas automatiquement mis à jour. Les lecteurs d'écran n'annoncent pas le changement de page. L'utilisateur non-voyant reste focalisé sur le lien dans la barre de navigation, sans savoir que le contenu principal a changé.
Composants UI sans sémantique HTML native
RGAA 7.1Les librairies de composants Vue (Vuetify, Quasar, Element Plus, PrimeVue) construisent des interfaces complexes mais n'utilisent pas toujours les éléments HTML natifs. Les sélecteurs sont des div avec des listes déroulantes custom. Les onglets sont des div avec des click handlers. Les modales ne sont pas des dialog. Sans les rôles et attributs ARIA corrects, ces composants sont inutilisables pour les technologies d'assistance.
Testez votre site Vue.js
Découvrez les non-conformités RGAA de votre site Vue.js en 5 minutes. Gratuit, sans engagement.
Lancer l'audit gratuitCe que Scrutia détecte sur Vue.js
Scrutia exécute votre application Vue.js dans un navigateur réel et teste les interactions dynamiques incluant les transitions et le rendu conditionnel. Notre moteur détecte les pertes de focus causées par les transitions, les contenus gérés par v-if sans annonce, les navigations Vue Router sans gestion de focus et les composants UI sans ARIA. Nous simulons un parcours utilisateur complet au clavier en attendant la fin de chaque animation avant de vérifier l'état de l'arbre d'accessibilité. Les corrections sont fournies en syntaxe Vue (template + script) avec les directives et composables recommandés.
Questions fréquentes — Vue.js
Scrutia détecte-t-il les problèmes liés aux transitions Vue ?
Les corrections sont-elles compatibles avec Vue 3 et la Composition API ?
Scrutia teste-t-il les composants Vuetify ou Quasar ?
Auditer d'autres technologies
Auditez votre site Vue.js 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 Vue.js