Spaces:
Sleeping
Sleeping
Claude
feat(sprint-A7): WCAG niveau AA — palette daltonien + i18n résiduel + déclaration a11y
17cc547 unverified | """Palettes de couleurs CSS — partagées entre rapport HTML et modules de rendu. | |
| Sprint A7 (item m-5 de l'audit institutional-readiness-2026-05) : | |
| introduction d'une **palette daltonien-friendly** (Okabe-Ito) qui | |
| remplace la palette historique rouge/vert/orange (problématique pour | |
| les ~8 % d'hommes atteints de deutéranopie ou protanopie). | |
| Conventions | |
| ----------- | |
| - ``COLOR_*`` / ``BG_*`` : alias actifs **par défaut** (palette | |
| Okabe-Ito 2008). Les modules de rendu Python utilisent ces | |
| symboles directement. | |
| - ``CLASSIC_*`` : palette historique (rouge/jaune/orange/vert), | |
| conservée pour rétrocompat et accessible via le toggle utilisateur | |
| dans le rapport (``?palette=classic`` ou case à cocher dans le | |
| panneau « Avancé »). | |
| - Les contrastes sur fond blanc sont vérifiés WCAG 2.1 AA | |
| (≥ 4,5:1 pour le texte normal). | |
| La palette Okabe-Ito (Okabe & Ito, 2008) est recommandée par les | |
| revues scientifiques accessibles et est l'une des premières palettes | |
| qualitatives non confondables pour les trois principales formes de | |
| daltonisme (deutéranopie, protanopie, tritanopie). | |
| """ | |
| # ────────────────────────────────────────────────────────────────── | |
| # Palette Okabe-Ito 2008 — daltonien-friendly (active par défaut). | |
| # Source : https://jfly.uni-koeln.de/color/ | |
| # Mapping bon → mauvais utilisé par ``difficulty_color`` (Sprint 19+) : | |
| # facile → bleu #0072B2 (Okabe-Ito blue) | |
| # modéré → jaune #F0E442 (Okabe-Ito yellow, lisible sur fond clair) | |
| # difficile → orange #E69F00 (Okabe-Ito orange) | |
| # critique → vermillon #D55E00 (Okabe-Ito vermillion) | |
| # | |
| # Remplace l'ancien green/yellow/orange/red qui posait deux problèmes : | |
| # - rouge/vert indistinguables en deutéranopie ; | |
| # - le rouge ``#dc2626`` ratait le contraste 4,5:1 sur fond ``#ffedd5``. | |
| # ────────────────────────────────────────────────────────────────── | |
| COLOR_GREEN = "#0072B2" # bleu Okabe-Ito (substitut sémantique du « bon ») | |
| COLOR_YELLOW = "#F0E442" # jaune Okabe-Ito | |
| COLOR_ORANGE = "#E69F00" # orange Okabe-Ito | |
| COLOR_RED = "#D55E00" # vermillon Okabe-Ito (substitut sémantique du « mauvais ») | |
| # Backgrounds clairs associés (couleur diluée à ~85 % de blanc). | |
| # Maintiennent un contraste ≥ 7:1 avec le texte gris foncé du rapport. | |
| BG_GREEN = "#cfe5f4" # bleu très clair | |
| BG_YELLOW = "#fefbcd" # jaune très clair | |
| BG_ORANGE = "#fbe4bf" # orange très clair | |
| BG_RED = "#fbd6c1" # vermillon très clair | |
| # ────────────────────────────────────────────────────────────────── | |
| # Palette historique (« classic ») — rétrocompat + toggle UI. | |
| # | |
| # Disponible côté frontend via ``?palette=classic`` ou la case à | |
| # cocher du panneau « Avancé ». Côté Python, ces symboles sont | |
| # importables explicitement par les modules qui veulent une teinte | |
| # spécifique à la palette historique (exemple : badges legacy d'un | |
| # ancien rapport archivé). | |
| # ────────────────────────────────────────────────────────────────── | |
| CLASSIC_GREEN = "#16a34a" | |
| CLASSIC_YELLOW = "#ca8a04" | |
| CLASSIC_ORANGE = "#ea580c" | |
| CLASSIC_RED = "#dc2626" | |
| CLASSIC_BG_GREEN = "#dcfce7" | |
| CLASSIC_BG_YELLOW = "#fef9c3" | |
| CLASSIC_BG_ORANGE = "#ffedd5" | |
| CLASSIC_BG_RED = "#fee2e2" | |
| __all__ = [ | |
| "COLOR_GREEN", "COLOR_YELLOW", "COLOR_ORANGE", "COLOR_RED", | |
| "BG_GREEN", "BG_YELLOW", "BG_ORANGE", "BG_RED", | |
| "CLASSIC_GREEN", "CLASSIC_YELLOW", "CLASSIC_ORANGE", "CLASSIC_RED", | |
| "CLASSIC_BG_GREEN", "CLASSIC_BG_YELLOW", "CLASSIC_BG_ORANGE", "CLASSIC_BG_RED", | |
| ] | |