From 323f0c81c41b3d863b6c8b9f96c7996249f52bc6 Mon Sep 17 00:00:00 2001 From: Allison Date: Wed, 29 Apr 2026 11:03:37 -0400 Subject: [PATCH] =?UTF-8?q?fix(marketing):=20contraste/lisibilit=C3=A9=20'?= =?UTF-8?q?Comment=20=C3=A7a=20marche'=20=E2=80=94=20feature=20card=20+=20?= =?UTF-8?q?grid=20buttons=20WCAG=20AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Audit complet : 2 incohérences fond/texte critiques sur fond CLAIR `bg-brand-bg` (#f7f9fc) où des conteneurs `bg-white` à faible opacité rendaient le texte quasi-invisible. Fixes : 1. Bottom feature info card (sous le phone) — INVISIBLE `bg-white/[0.06] border-white/[0.10]` sur section claire = blanc 6%/10% sur near-white = card et bordure invisibles. Texte intérieur `text-white` et `text-white/65` aussi invisibles. → `bg-brand-navy` SOLIDE + `border-white/10` (extension visuelle naturelle du phone shell). Texte blanc maintenant lisible avec contraste WCAG AA. 2. Right panel feature grid 6 boutons — État ACTIF invisible Quand actif, fond `${color}14` (8% opacité du color sur section claire) = très light tint. Label `rgba(255,255,255,0.95)` sur fond clair tinté = quasi-invisible. Idem pour inactif text à 0.65 — bordure subtile. → Fond TOUJOURS dark `rgba(8,12,24,0.85-0.95)` (actif/inactif), avec différenciation via border + glow + scale + drop-shadow du color brand. Label porté à 0.98/0.70 pour AA garanti. Test adapté : assertion `bg-white/[0.06]` remplacée par `dictia-feature-card rounded-xl px-4 py-3 relative bg-brand-navy`. 29/29 tests pertinents passent ; 5 échecs pré-existants sur /conformite et /landing sans rapport avec /fonctionnalites. Co-Authored-By: Claude Opus 4.7 (1M context) --- static/css/marketing.css | 9 --------- templates/marketing/fonctionnalites.html | 10 +++++----- tests/test_marketing_secondary_pages.py | 5 +++-- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/static/css/marketing.css b/static/css/marketing.css index f4fe078..9821cfa 100644 --- a/static/css/marketing.css +++ b/static/css/marketing.css @@ -2893,21 +2893,12 @@ font-size: var(--text-xs); line-height: var(--tw-leading, var(--text-xs--line-height)); } - .text-\[6\.5px\] { - font-size: 6.5px; - } .text-\[6px\] { font-size: 6px; } - .text-\[7\.5px\] { - font-size: 7.5px; - } .text-\[7px\] { font-size: 7px; } - .text-\[8\.5px\] { - font-size: 8.5px; - } .text-\[8px\] { font-size: 8px; } diff --git a/templates/marketing/fonctionnalites.html b/templates/marketing/fonctionnalites.html index b02ff4e..457e006 100644 --- a/templates/marketing/fonctionnalites.html +++ b/templates/marketing/fonctionnalites.html @@ -999,9 +999,9 @@ {# /dictia-phone-shell #} {# /phone wrapper (glow ring) #} - {# Feature info card sous le phone — uniform bg-white/[0.06] + accent border-left tab indicator #} + {# Feature info card sous le phone — fond bg-brand-navy SOLIDE (extension visuelle du phone, contraste WCAG AA garanti sur section claire) + accent border-left tab indicator #}
-
{# Border-left 3px accent — style tab indicator #}
- {# Feature grid 3 cols × 6 buttons #} + {# Feature grid 3 cols × 6 buttons — fond TOUJOURS dark navy (actif/inactif) pour garantir contraste WCAG AA blanc-sur-dark sur section claire #}
diff --git a/tests/test_marketing_secondary_pages.py b/tests/test_marketing_secondary_pages.py index 4c908d3..a81eafa 100644 --- a/tests/test_marketing_secondary_pages.py +++ b/tests/test_marketing_secondary_pages.py @@ -266,8 +266,9 @@ def test_fonctionnalites_how_it_works_reactor_section(): # Inner screen seam (effet "écran encastré") assert 'dictia-phone-screen-seam' in body, "Missing inner screen seam (encastré effect)" - # Uniform feature info card — bg-white/[0.06] + accent border-left - assert 'bg-white/[0.06]' in body, "Missing uniform white/0.06 bg on feature card" + # Uniform feature info card — bg-brand-navy SOLIDE (extension visuelle du phone, WCAG AA garanti sur section claire) + accent border-left + assert 'dictia-feature-card rounded-xl px-4 py-3 relative bg-brand-navy' in body, \ + "Missing solid bg-brand-navy on feature info card (must be dark, not transparent on light bg)" # Sovereignty bullets : icon dans cercle 20×20 brand-b3/[0.15] assert 'bg-brand-b3/[0.15]' in body, "Missing brand-b3 circle bg on sovereignty bullets" # Performance metrics : 3 cells with grad-text for 0ms / 24/7