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

87

Critères conformes

27/31

Critères non-conformes

1

Critères non-applicables

3

Statut

Conformité Partielle

Technologies utilisées pour le site

  • HTML5 / CSS3 / JavaScript / TypeScript
  • Framework: Nuxt 4.5, Pinia, i18n

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

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

Un titre
IDThématiqueCritèreStatutPages
1.1ImagesChaque image a-t-elle une alternative textuelle?CIndex, Feed, Projects, Updates, Clients, Landing, About, Accessibility, Accessibility-report, Report, Terms, Legal Notices
1.2ImagesPour chaque image porteuse d'information, l'alternative textuelle est-elle pertinente?CIndex, Feed, Projects, Updates, Clients, Landing, About, Accessibility, Accessibility-report, Report, Terms, Legal Notices
1.3ImagesPour chaque bouton porteur d'information, l'alternative textuelle est-elle pertinente?CAll
1.4ImagesChaque image texte porteuse d'informations a t-elle une alternative ?CAll
2.1Cadres & MultimédiaChaque cadre a-t-il un titre de cadre ?NA
2.2Cadres & MultimédiaLes liens sont-ils distinguables des autres contenus ?CAll
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
4.1Contenus temporelsChaque média temporel a t-il une transcription ou audiodescription ?NA
5.1ÉlémentsChaque tableau de données a-t-il un titre sémantique (caption) ?CAccessibility-report
5.2ÉlémentsChaque en-tête de tableau est-il correctement identifié via scope ?CAccessibility-report
6.1Liens et navigationChaque lien est-il explicite et structuré ?CAll
7.1ScriptsLa sémantique HTML5 est-elle correctement utilisée pour les scripts ?CAll
7.2ScriptsLes rôles ARIA appliqués aux scripts sont-ils appropriés ?CAll
7.3ScriptsLes annonces live (aria-live) fonctionnent-elles ?CFeed
8.1Éléments obligatoiresLa page a-t-elle un titre (title) pertinent ?CAll
8.2Éléments obligatoiresLa hiérarchie des titres (h1-h6) est-elle respectée ?CAll
8.3Éléments obligatoiresL'attribut lang est-il déclaré sur l'élément <html> ?CAll
9.1NavigationLes balises de structure HTML5 son-elles bien exploitées ?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) ?NCAll
10.3PrésentationLes éléments de texte sont-ils lisibles et conformes WCAG AAA ?CAll
11.1FormulairesChaque champ de formulaire a-t-il une étiquette (label)?CContact Modal, Report
11.2FormulairesChaque étiquette est-elle correctement associée à son champ ?CContact Modal, Report
11.3FormulairesLes messages d'erreur sont-ils explicites et accessibles ?CContact Modal, Report
12.1Navigation & LangueExiste-t-il un lien d'évitement (skip-link) fonctionnel ?CAll
12.2Navigation & LangueLa prise de focus est-elle visible ?CAll
12.3Navigation & LangueLa navigation au clavier est-elle possible ?CAll
12.4Navigation & LangueLe focus est-il piégé dans les modales et panneaux (Focus Trap) ?CIndex, Accessibility, Report
12.5Navigation & LangueL'ordre de tabulation est-il logique ?CAll
13.1ConsultationChaque document en téléchargement (PDF) est-il accessible ?NA

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

SidebarLeft mobile inutilisable sur desktop

Corrigé

Solution: Ajout d'une nouvelle sidebar nommé SidebarLeftDesktop utilisant un aside pour desktop et utilisant SidebarLeftMobile uniquement pour téléphone

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
  • Micosoft Accessibility Insights for Web
  • IBM Equal Access Accessibility Checker
  • Tanagaru Contrast Checker
  • W3C Contrast Checker

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.