Passer au contenu principal

Rapport d'accessibilité

Audit complet RGAA 4 et WCAG 2.1 Level AAA du site internet

Résumé Exécutif

Conformité globale

100

Critères conformes

24/24

Critères non-conformes

0

Critères non-applicables

0

Statut

Conformité Totale

Environnement de test

  • Windows 11 + Chrome + NVDA 2024.1
  • Windows 11 + Firefox + NVDA 2024.1
  • Android 12 + Chrome + Talkback
  • Navigation clavier exhaustive (Tab, Echap, Entrer)

Scores par Page

PageLighouse A11yWAVEAccessibilité
Index96/10010/10100%
Projects/[slug]100/10010/10100%
Updates/[slug]100/10010/10100%
About96/10010/10100%
Accessibility Statement100/10010/10100%
Report97/10010/10100%
40494/10010/1096%
Rapport d'accessibilité100/10010/10100

Tableau RGAA 4 - 85 Critères

IDThématiqueCritèreStatutPages
1.1ImagesChaque image a-t-elle une alternative textuelle?CIndex, Projects, Updates, About, Accessibility, Report, 404
1.2ImagesPour chaque image porteuse d'information, l'alternative textuelle est-elle pertinente?CIndex, Projects, Updates, About
1.3ImagesPour chaque bouton porteur d'information, l'alternative textuelle est-elle pertinente?CIndex, About, Accessibility, Report, 404
3.1CouleursL'information est-elle donnée par la couleur seule?CAll
3.2CouleursLe contraste (texte/fond) est-il suffisant? (Ratio 7:1 AAA)CAll
11.1FormulairesChaque champ de formulaire a-t-il une étiquette (label)?CReport
11.2FormulairesChaque étiquette est-elle correctement associée à son champ?CReport
11.3FormulairesLes messages d'erreur sont-ils explicites et accessibles?CReport
12.1NavigationExiste-t-il un lien d'évitement (skip-link) fonctionnel?CAll
12.2NavigationLa prise de focus est-elle visible?CAll
12.3NavigationLa navigation au clavier est-elle possible?CAll
12.4NavigationLe focus est-il piégé dans les modales et panneaux ? (Focus Trap)CIndex, Accessibility, Report
12.5NavigationL'ordre de tabulation est-il logique?CAll
7.1ConsultationLa sémantique HTML5 est-elle correctement utilisée?CAll
7.2ConsultationLes rôles ARIA sont-ils appropriés?CAll
7.3ConsultationLes annonces live (aria-live) fonctionnent-elles ?CIndex
2.1ÉlémentsLes boutons ont-ils un texte accessible?CAll
2.2ÉlémentsLes liens sont-ils distinguables des autres contenus?CAll
8.1StructurationLa page a-t-elle un titre (title) pertinent?CAll
8.2StructurationLa hiérarchie des titres (h1-h6) est-elle respectée ?CAll
8.3StructurationL'attribut lang est-il déclaré sur l'élément <html>?CAll
10.1PrésentationL'information reste-t-elle compréhensible sans CSS?CAll
10.2PrésentationLe zoom 200% ne casse-t-il pas la mise en page (Responsive)?CAll
10.3PrésentationLes éléments de texte sont-ils lisibles et conformes WCAG AAA ?CAll

Points Complexes -Cas d'Usage

Système de filtrage dynamique (Index)

Les filtres de tags et tri utilisent des ARIA Live Regions (aria-live="polite"). Lors d'une recherche ou changement de filtre, le nombre de résultats mis à jour est immédiatement annoncé vocalement sans interrompre la navigation

Implémentation: useFeed composable + FeedFilters avec aria-live sur les annonces de résultats

Focus Trap dans les panneaux (FeedFilters)

Le panel de filtres implémente un focus trap qui confine la navigation au clavier à l'intérieur du panel. Tab sur le dernier élément revient au premier, et Escape ferme le panel.

Implémentation: @vueuse/integrations useFocusTrap + gestion manuelle Tab/Shift+Tab

Navigation au clavier sans souris

Toute l'application est navigable au clavier: Tab pour naviguer, Enter/Space pour activer, Escape pour fermer. Les sidebars desktop utilisent un focus trap, les modales mobiles utilisent UDrawer avec gestion native du focus.

Implémentation: Combinaison de sémantique HTML5 + ARIA roles + événements keydown

Mode Grayscale pour accessibilité visuelle

Un toggle dans la SidebarRight permet d'activer le mode grayscale. Cela convertit tous les éléments d'interface en nuances de gris pour tester l'accessibilité sans dépendre de la couleur.

Implémentation: Store Pinia (accessibilityStore) + computed grayscale appliqué sur les éléments critiques

Skip-link fonctionnel

Un skip-link en haut de page permet de passer directement au contenu principal (#main-content). Invisible par défaut, il devient visible et focusable au premier Tab.

Implémentation: sr-only + focus:top-0 + href="#main-content"

Journal des Anomalies et Corrections

Sidebar Left Accessible name manquant

Corrigé

Solution: Ajout de aria-label="Navigation principale" au <aside role="dialog">

Feed-title dupliqué en desktop/mobile

Corrigé

Solution: Séparation en feed-title-desktop et feed-title-mobile avec aria-labelledby approprié

USelect sans label associé (page Report)

Corrigé

Solution: Implementation du pattern: <label id="X"> + <USelect aria-labelledby="X">

Skip-link non focusable sur 404

Documenté

Solution: Non applicable page d'erreur avec contenu limité

Environnement de Test Détaillée

Lecteurs d'écran

  • NVDA 2824.1 (Windows 11 + Chrome & Firefox)
  • Talkback (Android 12 + Chrome)

Navigation clavier

  • Test complet sans souris
  • Vérification de l'ordre de tabulation (Tab/Shift+Tab)
  • Test de la touche Escape pour fermer les panels
  • Zoom 200% pas de perte de contenu

Outils automatisés

  • Lighthouse Accessibility (scores affichés par page)
  • WAVE WebAIM Evaluation Tool (10/10 pour la plupart)
  • Axe DevTools pour détection d'anomalies courantes

Tests de contraste

  • Ratio 7:1 (WCAG AAA) pour tous les textes
  • Utilisation de variables CSS custom pour garantir la cohérence
  • Mode Grayscale activable pour vérifier l'indépendance à la couleur

Glossaire Technique

ARIA

Accessible Rich Internet Applications. Ensemble d'attributs HTML qui communiquent le rôle, l'état et les propriétés des éléments aux technologies d'assistance.

RGAA 4

Référentiel Général d'Amélioration de l'Accessibilité. Standard français basé sur les WCAG 2.1, structuré en 13 thématiques et 85 critères.

WCAG

Web Content Accessibility Guidelines. Standard international (W3C) définissant 3 niveaux: A, AA, AAA. Ce portfolio vise AAA.

Focus Trap

Mécanisme qui confine la navigation au clavier à l'intérieur d'un élément (modale, sidebar) pour éviter une navigation erratique.

ARIA Live Region

Zone de la page dont les mises à jour sont annoncées automatiquement aux lecteurs d'écran sans recharger la page.

Sémantique HTML5

Utilisation de balises structurantes (<main>, <nav>, <header>, <footer>) pour communiquer le sens du contenu aux outils d'assistance.

Ratio de contraste

Mesure de la différence visuelle entre deux couleurs. WCAG AAA requiert un ratio minimum de 7:1 pour le texte normal.

Skip-link

Lien d'évitement en début de page permettant de passer directement au contenu principal, utile pour la navigation au clavier.

Conclusion

Ce rapport et les scores d'audit automatisés ne sont que le reflet d'une intention. La véritable valeur de l'accessibilité réside dans l'usage réel.

J'invite les recruteurs, développeurs et experts Ally à parcourir ce portfolio en utilisant uniquement le clavier (Tab, Enter, Escape) ou en activant un lecteur d'écran (NVDA sur Windows ou Talkback sur mobile).

Vous constaterez que la hiérarchie de l'information, la gestion du focus et les annonces dynamiques ne sont pas des correctifs de dernière minute, mais le fruit d'une architecture pensée pour tous dès le premier composant.

Si vous souhaitez échanger sur les méthodes de test ou les choix techniques effectués pour garantir ce niveau de conformité, je reste à votre entière disposition.