RGAA Audit Report - SocialGouv/egapro GitHub Wiki
Dernier audit : 2026-04-15 | Commit : 940034d | URL : https://egapro-alpha.ovh.fabrique.social.gouv.fr | Pages : 12
| Sévérité | Violations |
|---|---|
| 🔴 Critique | 0 |
| 🟠 Sérieuse | 0 |
| 🟡 Modérée | 10 |
| 🔵 Mineure | 4 |
| Total | 14 |
2 pages sans aucune violation : Accueil (/) et Connexion (/login).
Règle axe-core : region | Impact : Modéré | WCAG : 2.4.1 | RGAA : Thème 12 (Navigation)
Pages concernées :
- Déclaration — Introduction (
/declaration-remuneration/etape/1) - Déclaration — Étape 1 (
/declaration-remuneration/etape/1) - Déclaration — Étape 2 (
/declaration-remuneration/etape/2) - Déclaration — Étape 3 (
/declaration-remuneration/etape/3) - Déclaration — Étape 4 (
/declaration-remuneration/etape/4) - Déclaration — Étape 5 (
/declaration-remuneration/etape/5) - Déclaration — Étape 6 (
/declaration-remuneration/etape/6)
Élément CSS ciblé :
.fr-py-3w > .fr-container > .fr-grid-row--middle.fr-grid-row--gutters.fr-grid-row
Description : La grille de contenu principal du formulaire de déclaration n'est pas encapsulée dans un landmark ARIA (<main>, <nav>, <section aria-label="...">, etc.). Les lecteurs d'écran ne peuvent pas naviguer directement vers ce contenu.
Correction suggérée : S'assurer que le contenu de chaque étape est bien enfant d'un <main id="content"> (cible du lien d'évitement DSFR). Le DSFR génère automatiquement un lien "Aller au contenu" (#content) dans le layout — il faut s'assurer que l'élément .fr-py-3w est à l'intérieur du <main id="content"> et non dans un <div> non sémantique.
<!-- Avant (problématique) -->
<div class="fr-py-3w">
<div class="fr-container">
<div class="fr-grid-row fr-grid-row--middle fr-grid-row--gutters">
<!-- contenu de l'étape -->
</div>
</div>
</div>
<!-- Après (conforme) -->
<main id="content" class="fr-py-3w">
<div class="fr-container">
<div class="fr-grid-row fr-grid-row--middle fr-grid-row--gutters">
<!-- contenu de l'étape -->
</div>
</div>
</main>Règle axe-core : empty-table-header | Impact : Mineur | WCAG : 1.3.1 | RGAA : Thème 5 (Tableaux)
Pages concernées :
- Déclaration — Introduction (
/declaration-remuneration/etape/1) —th:nth-child(1) - Déclaration — Étape 1 (
/declaration-remuneration/etape/1) —th:nth-child(1) - Déclaration — Étape 4 (
/declaration-remuneration/etape/4) — 2 tableaux de quartiles (Step4QuartileDistribution) - Déclaration — Étape 5 (
/declaration-remuneration/etape/5) —.Step5EmployeeCategories-module-scss-module__-_Cola__nameColumnHeader
Description : Des éléments <th> dans les tableaux de l'application ne contiennent pas de texte perceptible par les lecteurs d'écran.
Correction suggérée : Selon la documentation DSFR Tableau, utiliser un <span class="fr-sr-only"> pour fournir un texte accessible hors-écran :
<thead>
<tr>
<th scope="col">
<span class="fr-sr-only">Catégorie</span>
</th>
<th scope="col">Valeur 1</th>
<th scope="col">Valeur 2</th>
</tr>
</thead>Règle axe-core : page-has-heading-one | Impact : Modéré | WCAG : 2.4.6 | RGAA : Thème 9 (Structure de l'information)
Pages concernées :
- Mon espace (
/mon-espace) - Mes entreprises (
/mon-espace/mes-entreprises)
Description : Ces pages ne contiennent pas de titre de niveau 1 (<h1>).
Correction suggérée :
// Mon espace
<h1 className="fr-h1">Mon espace</h1>
// Mes entreprises
<h1 className="fr-h1">Mes entreprises</h1>Règle axe-core : heading-order | Impact : Modéré | WCAG : 2.4.6 | RGAA : Thème 9 (Structure de l'information)
Pages concernées :
- 404 Not Found (
/page-inexistante)
Élément ciblé :
.fr-col-md-4.fr-col-12:nth-child(1) > .fr-tile.fr-tile--horizontal.fr-tile--sm > .fr-tile__body > .fr-tile__content > h3
Description : Un <h3> apparaît dans les tuiles de la page 404 sans <h2> précédent (saut h1 → h3).
Correction suggérée :
// Ajouter un h2 intermédiaire ou utiliser titleAs="h2" sur les tuiles DSFR
<Tile titleAs="h2" ... />✅ 44 règles passées |
Aucune violation détectée.
✅ 40 règles passées |
Aucune violation détectée.
✅ 40 règles passées |
| Règle | Sévérité | WCAG | RGAA | Élément | Description | Correction suggérée |
|---|---|---|---|---|---|---|
heading-order |
🟡 Modérée | 2.4.6 | Thème 9 | .fr-tile__content > h3 |
Saut de niveau h1→h3 |
titleAs="h2" sur les tuiles DSFR |
✅ 47 règles passées |
| Règle | Sévérité | WCAG | RGAA | Élément | Description | Correction suggérée |
|---|---|---|---|---|---|---|
empty-table-header |
🔵 Mineure | 1.3.1 | Thème 5 | th:nth-child(1) |
En-tête sans texte accessible |
<span class="fr-sr-only">Label</span> dans le <th>
|
region |
🟡 Modérée | 2.4.1 | Thème 12 | .fr-grid-row--middle.fr-grid-row--gutters |
Contenu hors landmark | Encapsuler dans <main id="content">
|
✅ 47 règles passées |
| Règle | Sévérité | WCAG | RGAA | Élément | Description | Correction suggérée |
|---|---|---|---|---|---|---|
empty-table-header |
🔵 Mineure | 1.3.1 | Thème 5 | th:nth-child(1) |
En-tête sans texte accessible |
<span class="fr-sr-only">Label</span> dans le <th>
|
region |
🟡 Modérée | 2.4.1 | Thème 12 | .fr-grid-row--middle.fr-grid-row--gutters |
Contenu hors landmark | Encapsuler dans <main id="content">
|
✅ 47 règles passées |
| Règle | Sévérité | WCAG | RGAA | Élément | Description | Correction suggérée |
|---|---|---|---|---|---|---|
region |
🟡 Modérée | 2.4.1 | Thème 12 | .fr-grid-row--middle.fr-grid-row--gutters |
Contenu hors landmark | Encapsuler dans <main id="content">
|
✅ 47 règles passées |
| Règle | Sévérité | WCAG | RGAA | Élément | Description | Correction suggérée |
|---|---|---|---|---|---|---|
region |
🟡 Modérée | 2.4.1 | Thème 12 | .fr-grid-row--middle.fr-grid-row--gutters |
Contenu hors landmark | Encapsuler dans <main id="content">
|
✅ 47 règles passées |
| Règle | Sévérité | WCAG | RGAA | Élément | Description | Correction suggérée |
|---|---|---|---|---|---|---|
empty-table-header |
🔵 Mineure | 1.3.1 | Thème 5 |
Step4QuartileDistribution … th:nth-child(1) (×2) |
En-têtes vides tableaux quartiles | <span class="fr-sr-only">Catégorie</span> |
region |
🟡 Modérée | 2.4.1 | Thème 12 | .fr-grid-row--middle.fr-grid-row--gutters |
Contenu hors landmark | Encapsuler dans <main id="content">
|
✅ 48 règles passées |
| Règle | Sévérité | WCAG | RGAA | Élément | Description | Correction suggérée |
|---|---|---|---|---|---|---|
empty-table-header |
🔵 Mineure | 1.3.1 | Thème 5 | .Step5EmployeeCategories…__nameColumnHeader |
En-tête colonne nom sans texte | <span class="fr-sr-only">Nom de la catégorie</span> |
region |
🟡 Modérée | 2.4.1 | Thème 12 | .fr-grid-row--middle.fr-grid-row--gutters |
Contenu hors landmark | Encapsuler dans <main id="content">
|
✅ 39 règles passées |
| Règle | Sévérité | WCAG | RGAA | Élément | Description | Correction suggérée |
|---|---|---|---|---|---|---|
region |
🟡 Modérée | 2.4.1 | Thème 12 | .fr-grid-row--gutters.fr-grid-row--middle |
Contenu hors landmark | Encapsuler dans <main id="content">
|
✅ 43 règles passées |
| Règle | Sévérité | WCAG | RGAA | Élément | Description | Correction suggérée |
|---|---|---|---|---|---|---|
page-has-heading-one |
🟡 Modérée | 2.4.6 | Thème 9 | html |
Page sans <h1>
|
Ajouter <h1 className="fr-h1">Mon espace</h1>
|
✅ 41 règles passées |
| Règle | Sévérité | WCAG | RGAA | Élément | Description | Correction suggérée |
|---|---|---|---|---|---|---|
page-has-heading-one |
🟡 Modérée | 2.4.6 | Thème 9 | html |
Page sans <h1>
|
Ajouter <h1 className="fr-h1">Mes entreprises</h1>
|
- Outil : axe-core 4.11 via Playwright
- Moteur : Playwright 1.59.1
- Pages auditées : 12 (3 publiques + 9 authentifiées)
- Norme de référence : RGAA 4.1 / WCAG 2.1 AA
- Incomplètes : 1 règle incomplète par page (vérification manuelle requise pour les contrastes de couleur dynamiques)
Rapport généré automatiquement le 2026-04-15 depuis le commit 940034d.