# Déclaration d'accessibilité — Picarones
> Déclaration d'engagement Picarones vis-à-vis du standard WCAG 2.1
> AA et de la norme française RGAA 4.1. Contexte historique :
> [`docs/archive/2026-audits/remediation-plan.md`](../archive/2026-audits/remediation-plan.md).
>
> **Statut au 2 mai 2026** : audit interne validé ; audit externe
> RGAA / WCAG **en cours**. Cette déclaration est **provisoire**
> jusqu'à validation par un cabinet d'audit indépendant.
## Engagement
Picarones s'engage à rendre son interface web et le rapport HTML
qu'elle génère accessibles conformément à :
- **WCAG 2.1** (Web Content Accessibility Guidelines, W3C) niveau **AA**,
- **RGAA 4.1** (Référentiel général d'amélioration de l'accessibilité,
France, art. 47 de la loi 2005-102),
- **EN 301 549** (norme européenne d'accessibilité des produits TIC).
## Périmètre couvert
- L'application web FastAPI servie sur ``picarones serve``
(configuration, lancement de benchmarks, suivi en temps réel).
- Le rapport HTML interactif généré par ``picarones report``
(tableau de classement, galerie, vue document, vues d'analyses,
panneau Avancé, glossaire contextuel).
## État de conformité
### Critères WCAG 2.1 niveau A — **conforme**
| Critère | Statut | Mécanisme |
|---|---|---|
| 1.1.1 Non-text Content | ✓ | Tous les graphiques Chart.js ont `aria-label` + `
` jumelle accessible via bouton « Voir les données ». |
| 1.3.1 Info and Relationships | ✓ | `scope="col"` sur tous les `` rendus. `` avec `id` et `role`. |
| 2.1.1 Keyboard | ✓ | Toute interaction utilise ``, ``, ` ` natifs — accessible au clavier. |
| 2.4.1 Bypass Blocks | ✓ | Skip-link ` ` premier enfant focusable du ``. |
| 3.1.1 Language of Page | ✓ | `` dynamique selon le rendu. |
| 4.1.2 Name, Role, Value | ✓ | Contrôles natifs, labels ARIA appropriés. |
### Critères WCAG 2.1 niveau AA — **conforme**
| Critère | Statut | Mécanisme |
|---|---|---|
| 1.4.3 Contrast (Minimum) | ✓ | Palette par défaut Okabe-Ito, contraste ≥ 4,5:1 sur fond blanc et fond de tableaux. |
| 1.4.5 Images of Text | ✓ | Aucun texte rendu en image — tout est HTML/SVG sélectionnable. |
| 1.4.10 Reflow | ✓ | Layout responsive ; pas de scroll horizontal forcé jusqu'à 320 px de large. |
| 1.4.11 Non-text Contrast | ✓ | Bordures de boutons, focus rings ≥ 3:1 contre l'environnement. |
| 2.4.6 Headings and Labels | ✓ | Hiérarchie h1/h2/h3 respectée, labels descriptifs. |
| 3.1.2 Language of Parts | ✓ | Termes techniques marqués si la langue diffère du rapport. |
| 4.1.3 Status Messages | ✓ | Messages d'état (« Chargement… », « Aucune donnée ») dans des régions `role="status"` ou `aria-live`. |
### Critères WCAG 2.1 niveau AAA — **partiellement conforme**
Le niveau AAA est un objectif d'amélioration continue, non une exigence
légale. Sont actuellement non conformes par décision éditoriale :
| Critère | Décision | Justification |
|---|---|---|
| 1.4.6 Contrast (Enhanced) — 7:1 | Reporté | La palette Okabe-Ito tient 4,5:1 mais pas systématiquement 7:1. Un thème AAA dédié pourra être ajouté à la demande institutionnelle. |
| 2.3.2 Three Flashes | N/A | Aucun contenu clignotant produit par le rapport. |
## Mécanismes d'accessibilité notables
### Palette daltonien-friendly (par défaut)
La palette par défaut est **Okabe-Ito 2008**
(palette qualitative recommandée pour la déficience de la vision
des couleurs : deutéranopie, protanopie, tritanopie). L'ancienne
palette rouge/vert/jaune reste accessible via :
- la case « Mode daltonien-friendly » du panneau « ⚙ Avancé »,
- le paramètre URL ``?palette=classic`` (état partageable).
### Tableau de données pour graphiques
Chaque graphique Chart.js du rapport propose un bouton « Voir les
données » qui révèle un ` ` avec les valeurs sources. Cette
table est rendue à la demande (lazy) pour ne pas alourdir le DOM
initial mais reste annoncée par les lecteurs d'écran via
`aria-describedby`.
### Skip-to-content
Un lien « Aller au contenu » apparaît au focus en haut de la page
(Tab depuis la URL bar y mène en 1 tabulation) et permet d'éviter
la navigation principale et les bandeaux contextuels.
### Bilinguisme intégral
Le rapport est livré en français ou en anglais (paramètre
``--lang``). Les libellés a11y (skip-link, boutons, ARIA labels,
captions de tableaux jumeaux) sont localisés dans les deux langues.
## Dérogations connues et plan de remédiation
| Item | Statut | Échéance |
|---|---|---|
| Matrice de confusion Unicode (vue Caractères) | Densité visuelle élevée — la table jumelle accessible reste l'alternative principale. | Refonte UX planifiée (cf. backlog). |
| Génération PDF du rapport | Non livrée (cf. [`../reference/specification.md`](../reference/specification.md) « Promesses non tenues »). | Pas de plan d'ajout, le HTML couvre les usages observés. |
| Audit RGAA externe | En cours, prestataire à contractualiser. | Prochain trimestre. |
## Tests automatisés
Le contrat d'accessibilité est verrouillé par deux suites de tests :
- ``tests/report/test_a11y_level_a.py`` — 13 cas, valident le niveau A
bloquant (skip-link, canvas a11y, scope=col, i18n du Reset).
- ``tests/report/test_a11y_level_aa.py`` — 12+ cas, valident le niveau
AA (palette par défaut, locale FR/EN, toggle daltonien, fallback
i18n des messages d'erreur charts).
Toute régression sur ces tests bloque le merge en CI.
## Agents utilisateurs supportés
L'accessibilité est validée sur :
- **Lecteurs d'écran** : NVDA 2024.x (Windows), VoiceOver (macOS),
TalkBack (Android). Test JAWS prévu lors de l'audit externe.
- **Navigateurs** : Firefox ESR, Chrome stable, Safari récent, Edge
stable. Aucune dépendance à une fonctionnalité non standard.
- **Agrandissements** : confort visuel jusqu'à zoom 200 %.
## Voies de recours
Si une difficulté d'accès vous empêche d'utiliser Picarones, vous
pouvez :
1. ouvrir une issue GitHub étiquetée ``a11y`` :
,
2. contacter le mainteneur référent accessibilité (canal défini dans
``GOVERNANCE.md``).
En cas de discrimination caractérisée, le défenseur des droits
(France) peut être saisi : .
## Calendrier de réaudit
- Audit interne automatisé : à chaque PR via la CI.
- Audit interne manuel (NVDA / VoiceOver) : à chaque release majeure.
- **Audit externe RGAA / WCAG complet** : annuel, premier audit
prévu mi-2026.
## Remerciements
La palette Okabe-Ito (Okabe & Ito, 2008,
) est utilisée avec leur
permission de diffusion ouverte.
---
*Dernière mise à jour : 2 mai 2026.*