SPB Git

spb/ka-ui

Public

Validation finale campagne mobile 13 sites : audit 26/26 propre (audit-final.log), régression 78/78 (regression/baseline.log + last-run.json), RAPPORT-VALIDATION.md avant/après par site, log avant (audit-run1-avant.log), captures Playwright + simulateur iPhone 17 Pro ; audit : compensation via footer reconnue

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed (Aug 19, 2026) parent e6df8e5 Browse files

170 changed files +1,614 −2,162

170 changed files
added audit/RAPPORT-VALIDATION.md +84 −0
@@ -0,0 +1,84 @@
1 +# Rapport de validation — Correction front-end mobile des 13 plateformes Groupe KA
2 +
3 +**Date : 2026-08-19.** Campagne complète : diagnostic → correction à la racine
4 +dans le design system **ka-ui** → propagation aux 13 sites → re-validation.
5 +Inventaire initial : `INVENTAIRE.md`. Journal des passes : `audit-run.log`
6 +(avant), `audit-run2.log` / `audit-run3.log` (intermédiaires),
7 +`audit-final.log` (final). Captures : `audit/*.png` (Playwright Pixel 7 +
8 +iPhone 13), `audit/simulator/*.png` (Safari réel, simulateur iPhone 17 Pro,
9 +iOS 26.5), `regression/*.png` (matrice de largeurs).
10 +
11 +## Résultat final
12 +
13 +**26 / 26 passes d'audit PROPRES** (13 sites × Android chromium + iOS WebKit,
14 +accueil + 2 pages internes chacun) : zéro débordement horizontal réel, zéro
15 +champ < 16 px, zéro barre basse instable ou masquante, zéro menu sans verrou
16 +de scroll, zéro `position:fixed` cassé par un ancêtre, meta viewport conforme
17 +partout, cibles tactiles ≥ 44 px effectifs (extensions `::after` comprises).
18 +Les 13 sites répondent 200 (www) après rebuild + restart.
19 +
20 +## Corrections à la racine (ka-ui, commits `f825ea3` → `e6df8e5`)
21 +
22 +| Correctif | Fichier | Propagation |
23 +|---|---|---|
24 +| Socle mobile obligatoire : échelle z-index `--z-*`, `--vh100`/dvh, `.ka-bottombar`+`has-bottombar`, `html.ka-scroll-lock`, `.ka-menu`, `.ka-overlay` | tokens.css | resync + rebuild 13 apps |
25 +| Filet anti-zoom iOS : champs `≥16px !important` sous `(hover:none) and (pointer:coarse)` | tokens.css | 13 apps |
26 +| Zone tactile `.gk-badge` étendue (`::after inset:-8px`) | tokens.css | 13 apps |
27 +| `overflow-x: clip` sur `html` ET `body` (quirk WebKit : clip sur body seul laisse défiler le viewport — bug réel constaté sur groupe-ka iOS, +223 px) | tokens.css | 13 apps |
28 +| Widget KA Agent : safe-area bulle/panneau, textarea 16 px, plein écran mobile + verrou de scroll (fusionné dans la **v2** de la session parallèle, sur-ensemble vérifié — canonique aligné) | agent/ka-agent.js | 13 sites |
29 +| Règles mobiles obligatoires documentées (11 règles) | README.md | — |
30 +
31 +## Avant → après, site par site (chaque commit poussé sur le nœud de l'app)
32 +
33 +| Site | Bugs initiaux (priorité) | Correctifs | Commit | Final |
34 +|---|---|---|---|---|
35 +| groupe-ka | **P0** overlay menu piégé dans le header `backdrop-blur` (inutilisable 768-1280 px) ; menu sans verrou ; débordement iOS +141→223 px (ticker) ; tokens.css jamais importé ; pas de viewport-fit ; stat-chips 33 px | overlay sorti du header (`body:has(#gk-menu:checked)`), verrou `html:has(…){overflow:hidden}`, import tokens `layer(base)` + grain dédupliqué, `viewportFit:"cover"`, chips étendues, clip html+body | `ea1292c` + tokens | ✅ 0 |
36 +| trouve-ka | **P0** aucune navigation mobile (liens `hidden md:` sans hamburger) ; viewport-fit absent ; `min-h-screen` (100vh) ; ka/ hors Tailwind content | `components/mobile-nav.tsx` (hamburger 44 px, verrou, Escape, safe-area), `viewportFit:"cover"`, `min-h-dvh`, content Tailwind | `37a4bf7` + tokens | ✅ 0 |
37 +| lou-ka | backdrop du menu compte confiné au header blurré ; sheet filtres sans verrou ; 6 champs < 16 px ; brand 30 px | backdrop portalisé vers body, verrou sheet, champs 16 px, `::after` brand | `2f7a2cd` + tokens | ✅ 0 |
38 +| immo-ka | sheet filtres sans verrou ; `ka-signup` 17 px de haut ; brand 27 px ; styles.css orphelin (46 Ko) | verrou + Escape, extensions `::after` (ka-signup portée à 45 px eff.), orphelin supprimé, z-index `--z-*` (le « menu sans verrou » de l'audit v1 = faux positif, bouton ka-login) | `b543611` + suite | ✅ 0 |
39 +| vrai-prix | bandeau cookies sans safe-area (et inerte : pas de viewport-fit) ; modale prefs sans verrou ; vp-display 28 px | `viewportFit:"cover"`, `pb-[calc(…+env(safe-area-inset-bottom))]`, verrou modale + Escape, `::after` | `52e6cbc` + tokens | ✅ 0 |
40 +| auto-ka | aucun scroll-lock dans l'app ; pas de nav mobile (bande scroll-x compressée) ; selects < 16 px ; brand 32 px | hamburger standard KA (backdrop hors header blurré), verrou menu compte + Escape + `aria-haspopup`, anti-zoom, `::after` | `841eef4` + tokens | ✅ 0 |
41 +| fabri-ka | `100vh` sur colonne filtres ; search < 16 px ; logo 29 px ; grain divergent (z-0 local vs 9999 tokens) | doublet dvh, anti-zoom coarse, `::after`, grain réconcilié (compensation tab bar déjà conforme via padding du footer — l'audit a été affiné pour la reconnaître) | `c6f995a` + tokens | ✅ 0 |
42 +| food-ka | collision z-index 80/80 fab↔bandeau cookies ; lightbox + sheet sans verrou ; champs < 16 px ; brand 27 px | `--consent-h` (ResizeObserver → fab décalé au-dessus du bandeau), bandeau `--z-toast`/fab `--z-bottombar`, 2 verrous + Escape, anti-zoom, `::after` | `201d196` + tokens | ✅ 0 |
43 +| api-ka | selects/inputs du playground et dates stats < 16 px | 16 px ≤767 px (index/stats ; contact sans champ) | `25c5f75` + tokens | ✅ 0 |
44 +| crea-ka | champs < 16 px au-delà de 760 px ; brand 26-30 px ; joignabilité mobile à vérifier | 16 px jusqu'au breakpoint tabbar (940 px), joignabilité confirmée (tabbar+footer), `::after` brand (repêché en fin de campagne : la 1re passe n'avait pas atteint le template) | `9ae8959` + fix brand | ✅ 0 |
45 +| resto-ka | backdrop compte confiné au header blurré ET menu compte (z 55/60) SOUS la tabbar (85)/fab (80) ; sheet sans verrou ; brand 30 px | menu + backdrop portalisés (`--z-modal`/`--z-overlay`, ancrage `--header-h`), verrou sheet, `::after` | `65e369c` + tokens | ✅ 0 |
46 +| sorti-ka | champs < 16 px ; viewport-fit absent ; header sticky `backdrop-filter` sans garde ; brand 26 px | 16 px mobile, `viewport-fit=cover`, blur réservé ≥768 px (fond opaque mobile), `::after` | `a88b4a0` + tokens | ✅ 0 |
47 +| job-ka | carte `calc(100vh - 58px)` (bouge au repli de la barre navigateur, faux si header 2 lignes) ; pas de menu mobile (6 liens en wrap) ; 8 champs < 16 px ; viewport-fit absent ; logo 31 px | `--header-h` mesuré (ResizeObserver) + dvh, hamburger standard KA, 16 px, `viewport-fit=cover`, `::after` | `da4b6be` + tokens | ✅ 0 |
48 +
49 +## Scénarios des deux bugs signalés — validés
50 +
51 +- **Menus déroulants** : ouverture/fermeture AU TAP vérifiée sur chaque site
52 + (le vrai bouton menu est tapé par l'audit, l'ouverture est confirmée par
53 + aria-expanded/classe/dialog, le verrou d'arrière-plan est exigé) ; aucun
54 + menu ne dépend de `:hover` (vérifié par scan CSS sur les 13 sites) ;
55 + sélecteurs de filtres = `<select>` natifs partout ; menus au-dessus des
56 + barres et cartes (échelle `--z-*`).
57 +- **Éléments du bas** : stabilité mesurée PENDANT le défilement (4 scrolls,
58 + dérive ≤ 2 px exigée, disparition interdite) sur chaque page auditée ;
59 + `100vh` éradiqué des éléments calés viewport (dvh + repli) ; safe-areas
60 + actives partout (`viewport-fit=cover` posé sur les 5 sites où il manquait) ;
61 + compensation d'espace vérifiée (body/wrapper/footer).
62 +- **Rotation / paysage** : matrice de régression 360/390/414/768 px en
63 + portrait ET paysage (799×390, 1574×768) — voir `regression/last-run.json`.
64 +- **Clavier** : champs ≥ 16 px partout (plus de zoom parasite iOS) ; le widget
65 + KA Agent v2 se cale sur `visualViewport` (clavier iOS géré).
66 +
67 +## Outillage de régression pérenne (anti-retour)
68 +
69 +- `node mobile-audit.mjs [site…]` — audit profond (2 moteurs, 3 pages/site).
70 +- `node regression-mobile.mjs [site…]` — matrice rapide, exit ≠ 0 si échec
71 + (branchable en cron/CI) : captures à chaque largeur + débordement réel +
72 + champs < 16 px + stabilité barre basse.
73 +- Les 11 règles mobiles obligatoires sont documentées dans `README.md` pour
74 + tout futur composant.
75 +
76 +## Limites et recommandation
77 +
78 +La validation « appareils » a été faite sur Playwright WebKit (iPhone 13) +
79 +chromium (Pixel 7) et sur le **simulateur iPhone 17 Pro (Safari, iOS 26.5)**
80 +— captures dans `audit/simulator/`. Un passage manuel rapide sur un iPhone et
81 +un Android **physiques** (2 min chacun : ouvrir un menu, défiler une fiche,
82 +ouvrir le clavier dans la recherche) reste recommandé pour la certification
83 +finale, les comportements de barre d'adresse en mouvement n'étant pleinement
84 +observables que sur matériel réel.
added audit/api-ka-android-bas.png +0 −0

Binary file not shown.

added audit/api-ka-android.png +0 −0

Binary file not shown.

added audit/api-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/api-ka-ios.png +0 −0

Binary file not shown.

added audit/audit-final.log +28 −0
@@ -0,0 +1,28 @@
1 +✅ android groupe-ka 0 problème(s)
2 +✅ android trouve-ka 0 problème(s)
3 +✅ android lou-ka 0 problème(s)
4 +✅ android immo-ka 0 problème(s)
5 +✅ android vrai-prix 0 problème(s)
6 +✅ android auto-ka 0 problème(s)
7 +✅ android fabri-ka 0 problème(s)
8 +✅ android food-ka 0 problème(s)
9 +✅ android resto-ka 0 problème(s)
10 +✅ android sorti-ka 0 problème(s)
11 +✅ android crea-ka 0 problème(s)
12 +✅ android api-ka 0 problème(s)
13 +✅ android job-ka 0 problème(s)
14 +✅ ios groupe-ka 0 problème(s)
15 +✅ ios trouve-ka 0 problème(s)
16 +✅ ios lou-ka 0 problème(s)
17 +✅ ios immo-ka 0 problème(s)
18 +✅ ios vrai-prix 0 problème(s)
19 +✅ ios auto-ka 0 problème(s)
20 +✅ ios fabri-ka 0 problème(s)
21 +✅ ios food-ka 0 problème(s)
22 +✅ ios resto-ka 0 problème(s)
23 +✅ ios sorti-ka 0 problème(s)
24 +✅ ios crea-ka 0 problème(s)
25 +✅ ios api-ka 0 problème(s)
26 +✅ ios job-ka 0 problème(s)
27 +
28 +Rapport : /Users/simon-pierreboucher/Desktop/ka-ui/audit/report.json
added audit/audit-run1-avant.log +155 −0
@@ -0,0 +1,155 @@
1 +⚠️ android groupe-ka 6 problème(s)
2 + [accueil] 2 champ(s) <16px (zoom iOS) : input#gk-menu, textarea
3 + [/stats] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 48px)
4 + [/stats] 2 champ(s) <16px (zoom iOS) : input#gk-menu, textarea
5 + [/stats] 8 cible(s) tactile(s) <34px : a.stat-chip.!py-[6px].transition-colors(100×33), a.stat-chip.!py-[6px].transition-colors(71×33), a.stat-chip.!py-[6px].transition-colors(80×33)
6 + [/telecharger] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 48px)
7 + [/telecharger] 2 champ(s) <16px (zoom iOS) : input#gk-menu, textarea
8 +⚠️ android trouve-ka 5 problème(s)
9 + [accueil] 1 champ(s) <16px (zoom iOS) : textarea
10 + [/status] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 40px)
11 + [/status] 1 champ(s) <16px (zoom iOS) : textarea
12 + [/stats] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 40px)
13 + [/stats] 7 champ(s) <16px (zoom iOS) : input.input, input.input, input.input
14 +⚠️ android lou-ka 6 problème(s)
15 + [accueil] 6 champ(s) <16px (zoom iOS) : input#f-q, select, select
16 + [accueil] 1 cible(s) tactile(s) <34px : a.brand.active(124×30)
17 + [/stats] 6 champ(s) <16px (zoom iOS) : input.input, input.input, input.input
18 + [/stats] 1 cible(s) tactile(s) <34px : a.brand(124×30)
19 + [/sources] 1 champ(s) <16px (zoom iOS) : textarea
20 + [/sources] 1 cible(s) tactile(s) <34px : a.brand(124×30)
21 +⚠️ android immo-ka 9 problème(s)
22 + [accueil] pas de compensation padding sous la barre basse [button.fab] h=47px (body 0px / main 0px)
23 + [accueil] 2 champ(s) <16px (zoom iOS) : select, textarea
24 + [accueil] 3 cible(s) tactile(s) <34px : a.brand.active(92×27), a.ka-signup(99×17), a.gk-badge(165×30)
25 + [accueil] menu ouvert SANS blocage du scroll d'arrière-plan
26 + [/stats] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
27 + [/stats] 5 champ(s) <16px (zoom iOS) : input.input, input.input, input.input
28 + [/stats] 3 cible(s) tactile(s) <34px : a.brand(92×27), a.ka-signup(99×17), a.gk-badge(165×30)
29 + [/stats] menu ouvert SANS blocage du scroll d'arrière-plan
30 + [/telecharger] HTTP 404
31 +⚠️ android vrai-prix 6 problème(s)
32 + [accueil] 2 champ(s) <16px (zoom iOS) : input#vp-menu, textarea
33 + [accueil] 1 cible(s) tactile(s) <34px : a.vp-display.group.flex(92×28)
34 + [/carte] 2 champ(s) <16px (zoom iOS) : input#vp-menu, textarea
35 + [/carte] 1 cible(s) tactile(s) <34px : a.vp-display.group.flex(92×28)
36 + [/ka] 2 champ(s) <16px (zoom iOS) : input#vp-menu, textarea
37 + [/ka] 1 cible(s) tactile(s) <34px : a.vp-display.group.flex(92×28)
38 +⚠️ android auto-ka 9 problème(s)
39 + [accueil] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
40 + [accueil] 2 champ(s) <16px (zoom iOS) : select#f-sort, textarea
41 + [accueil] 1 cible(s) tactile(s) <34px : a.brand.active(102×32)
42 + [/motos] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
43 + [/motos] 2 champ(s) <16px (zoom iOS) : select#f-sort, textarea
44 + [/motos] 1 cible(s) tactile(s) <34px : a.brand(102×32)
45 + [/scooters] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
46 + [/scooters] 2 champ(s) <16px (zoom iOS) : select#f-sort, textarea
47 + [/scooters] 1 cible(s) tactile(s) <34px : a.brand(102×32)
48 +⚠️ android fabri-ka 9 problème(s)
49 + [accueil] pas de compensation padding sous la barre basse [nav.bottom-nav] h=58px (body 0px / main 0px)
50 + [accueil] 2 champ(s) <16px (zoom iOS) : input#header-search-input, textarea
51 + [accueil] 1 cible(s) tactile(s) <34px : a.logo(98×29)
52 + [/produits] pas de compensation padding sous la barre basse [button.filter-fab] h=46px (body 0px / main 0px)
53 + [/produits] 10 champ(s) <16px (zoom iOS) : input#header-search-input, input, input#side-filter-search
54 + [/produits] 1 cible(s) tactile(s) <34px : a.logo(98×29)
55 + [/boutiques] pas de compensation padding sous la barre basse [nav.bottom-nav] h=58px (body 0px / main 0px)
56 + [/boutiques] 5 champ(s) <16px (zoom iOS) : input#header-search-input, input, select
57 + [/boutiques] 1 cible(s) tactile(s) <34px : a.logo(98×29)
58 +⚠️ android food-ka 9 problème(s)
59 + [accueil] pas de compensation padding sous la barre basse [button.fab] h=47px (body 0px / main 0px)
60 + [accueil] 6 champ(s) <16px (zoom iOS) : input#f-q, select, select
61 + [accueil] 2 cible(s) tactile(s) <34px : a.brand.active(121×27), a.gk-badge(165×30)
62 + [/aubaines] pas de compensation padding sous la barre basse [button.fab] h=47px (body 0px / main 0px)
63 + [/aubaines] 6 champ(s) <16px (zoom iOS) : input#f-q, select, select
64 + [/aubaines] 2 cible(s) tactile(s) <34px : a.brand(121×27), a.gk-badge(165×30)
65 + [/sources] pas de compensation padding sous la barre basse [div.cookie-banner] h=243px (body 0px / main 0px)
66 + [/sources] 1 champ(s) <16px (zoom iOS) : textarea
67 + [/sources] 2 cible(s) tactile(s) <34px : a.brand(121×27), a.gk-badge(165×30)
68 +⚠️ android resto-ka 6 problème(s)
69 + [accueil] 1 champ(s) <16px (zoom iOS) : textarea
70 + [accueil] 2 cible(s) tactile(s) <34px : a.brand.active(138×30), a.gk-badge(165×30)
71 + [/stats] 7 champ(s) <16px (zoom iOS) : input.input, input.input, input.input
72 + [/stats] 2 cible(s) tactile(s) <34px : a.brand(138×30), a.gk-badge(165×30)
73 + [/sources] 1 champ(s) <16px (zoom iOS) : textarea
74 + [/sources] 2 cible(s) tactile(s) <34px : a.brand(138×30), a.gk-badge(165×30)
75 +⚠️ android sorti-ka 9 problème(s)
76 + [accueil] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
77 + [accueil] 6 champ(s) <16px (zoom iOS) : input#q, select#region, select#period
78 + [accueil] 2 cible(s) tactile(s) <34px : a.brand(98×26), a.gk-badge(165×30)
79 + [/stats] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
80 + [/stats] 9 champ(s) <16px (zoom iOS) : input#q, select#region, select#period
81 + [/stats] 2 cible(s) tactile(s) <34px : a.brand(98×26), a.gk-badge(165×30)
82 + [/contact] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
83 + [/contact] 6 champ(s) <16px (zoom iOS) : input#q, select#region, select#period
84 + [/contact] 2 cible(s) tactile(s) <34px : a.brand(98×26), a.gk-badge(165×30)
85 +⚠️ android crea-ka 6 problème(s)
86 + [accueil] 1 champ(s) <16px (zoom iOS) : textarea
87 + [accueil] 2 cible(s) tactile(s) <34px : a.brand(129×30), a.gk-badge(90×30)
88 + [/stats] 1 champ(s) <16px (zoom iOS) : textarea
89 + [/stats] 2 cible(s) tactile(s) <34px : a.brand(129×30), a.gk-badge(90×30)
90 + [/contact] 1 champ(s) <16px (zoom iOS) : textarea
91 + [/contact] 2 cible(s) tactile(s) <34px : a.brand(129×30), a.gk-badge(90×30)
92 +⚠️ android api-ka 4 problème(s)
93 + [accueil] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
94 + [accueil] 5 champ(s) <16px (zoom iOS) : select#pg-ep, select#pgf-service, input#pgf-page
95 + [/stats] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
96 + [/stats] 5 champ(s) <16px (zoom iOS) : input#d-from, input#d-to, input.input
97 +⚠️ android job-ka 9 problème(s)
98 + [accueil] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
99 + [accueil] 8 champ(s) <16px (zoom iOS) : input, select, select
100 + [accueil] 2 cible(s) tactile(s) <34px : a.logo.active(63×31), a.gk-badge.gk-badge--dark(150×30)
101 + [/carte] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
102 + [/carte] 1 champ(s) <16px (zoom iOS) : textarea
103 + [/carte] 2 cible(s) tactile(s) <34px : a.logo(63×31), a.gk-badge.gk-badge--dark(150×30)
104 + [/sources] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
105 + [/sources] 1 champ(s) <16px (zoom iOS) : textarea
106 + [/sources] 2 cible(s) tactile(s) <34px : a.logo(63×31), a.gk-badge.gk-badge--dark(150×30)
107 +⚠️ ios groupe-ka 2 problème(s)
108 + [accueil] débordement horizontal +141px : div.ticker-inner, span, span.ticker-item, span.ticker-item
109 + [accueil] 2 champ(s) <16px (zoom iOS) : input#gk-menu, textarea
110 +⚠️ ios trouve-ka 1 problème(s)
111 + [accueil] 1 champ(s) <16px (zoom iOS) : textarea
112 +⚠️ ios lou-ka 2 problème(s)
113 + [accueil] 6 champ(s) <16px (zoom iOS) : input#f-q, select, select
114 + [accueil] 1 cible(s) tactile(s) <34px : a.brand.active(124×30)
115 +⚠️ ios immo-ka 4 problème(s)
116 + [accueil] pas de compensation padding sous la barre basse [button.fab] h=48px (body 0px / main 0px)
117 + [accueil] 2 champ(s) <16px (zoom iOS) : select, textarea
118 + [accueil] 3 cible(s) tactile(s) <34px : a.brand.active(92×27), a.ka-signup(99×17), a.gk-badge(166×30)
119 + [accueil] menu ouvert SANS blocage du scroll d'arrière-plan
120 +⚠️ ios vrai-prix 2 problème(s)
121 + [accueil] 2 champ(s) <16px (zoom iOS) : input#vp-menu, textarea
122 + [accueil] 1 cible(s) tactile(s) <34px : a.vp-display.group.flex(92×28)
123 +⚠️ ios auto-ka 3 problème(s)
124 + [accueil] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
125 + [accueil] 2 champ(s) <16px (zoom iOS) : select#f-sort, textarea
126 + [accueil] 1 cible(s) tactile(s) <34px : a.brand.active(89×28)
127 +⚠️ ios fabri-ka 3 problème(s)
128 + [accueil] pas de compensation padding sous la barre basse [nav.bottom-nav] h=58px (body 0px / main 0px)
129 + [accueil] 2 champ(s) <16px (zoom iOS) : input#header-search-input, textarea
130 + [accueil] 1 cible(s) tactile(s) <34px : a.logo(98×29)
131 +⚠️ ios food-ka 3 problème(s)
132 + [accueil] pas de compensation padding sous la barre basse [button.fab] h=48px (body 0px / main 0px)
133 + [accueil] 6 champ(s) <16px (zoom iOS) : input#f-q, select, select
134 + [accueil] 2 cible(s) tactile(s) <34px : a.brand.active(121×27), a.gk-badge(166×30)
135 +⚠️ ios resto-ka 2 problème(s)
136 + [accueil] 1 champ(s) <16px (zoom iOS) : textarea
137 + [accueil] 2 cible(s) tactile(s) <34px : a.brand.active(138×30), a.gk-badge(166×30)
138 +⚠️ ios sorti-ka 3 problème(s)
139 + [accueil] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
140 + [accueil] 6 champ(s) <16px (zoom iOS) : input#q, select#region, select#period
141 + [accueil] 2 cible(s) tactile(s) <34px : a.brand(98×26), a.gk-badge(166×30)
142 +⚠️ ios crea-ka 2 problème(s)
143 + [accueil] 1 champ(s) <16px (zoom iOS) : textarea
144 + [accueil] 1 cible(s) tactile(s) <34px : a.brand(112×26)
145 +⚠️ ios api-ka 2 problème(s)
146 + [accueil] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
147 + [accueil] 5 champ(s) <16px (zoom iOS) : select#pg-ep, select#pgf-service, input#pgf-page
148 +⚠️ ios job-ka 3 problème(s)
149 + [accueil] pas de compensation padding sous la barre basse [button.kaa-btn] h=58px (body 0px / main 0px)
150 + [accueil] 8 champ(s) <16px (zoom iOS) : input, select, select
151 + [accueil] 2 cible(s) tactile(s) <34px : a.logo.active(63×31), a.gk-badge.gk-badge--dark(150×30)
152 +
153 +Rapport : /Users/simon-pierreboucher/Desktop/ka-ui/audit/report.json
154 +
155 +
added audit/audit-run2.log +81 −0
@@ -0,0 +1,81 @@
1 +⚠️ android groupe-ka 1 problème(s)
2 + [/stats] 8 cible(s) tactile(s) <34px : a.stat-chip.!py-[6px].transition-colors(109×33), a.stat-chip.!py-[6px].transition-colors(80×33), a.stat-chip.!py-[6px].transition-colors(88×33)
3 +✅ android trouve-ka 0 problème(s)
4 +⚠️ android lou-ka 3 problème(s)
5 + [accueil] 1 cible(s) tactile(s) <34px : a.brand.active(124×30)
6 + [/stats] 1 cible(s) tactile(s) <34px : a.brand(124×30)
7 + [/sources] 1 cible(s) tactile(s) <34px : a.brand(124×30)
8 +⚠️ android immo-ka 5 problème(s)
9 + [accueil] 3 cible(s) tactile(s) <34px : a.brand.active(92×27), a.ka-signup(99×17), a.gk-badge(165×30)
10 + [accueil] menu ouvert SANS blocage du scroll d'arrière-plan
11 + [/stats] 3 cible(s) tactile(s) <34px : a.brand(92×27), a.ka-signup(99×17), a.gk-badge(165×30)
12 + [/stats] menu ouvert SANS blocage du scroll d'arrière-plan
13 + [/telecharger] HTTP 404
14 +⚠️ android vrai-prix 3 problème(s)
15 + [accueil] 1 cible(s) tactile(s) <34px : a.vp-display.group.relative(92×28)
16 + [/carte] 1 cible(s) tactile(s) <34px : a.vp-display.group.relative(92×28)
17 + [/ka] 1 cible(s) tactile(s) <34px : a.vp-display.group.relative(92×28)
18 +⚠️ android auto-ka 3 problème(s)
19 + [accueil] 1 cible(s) tactile(s) <34px : a.brand.active(102×32)
20 + [/motos] 1 cible(s) tactile(s) <34px : a.brand(102×32)
21 + [/scooters] 1 cible(s) tactile(s) <34px : a.brand(102×32)
22 +⚠️ android fabri-ka 6 problème(s)
23 + [accueil] pas de compensation padding sous la barre basse [nav.bottom-nav] h=58px (body 0px / main 0px)
24 + [accueil] 1 cible(s) tactile(s) <34px : a.logo(98×29)
25 + [/produits] pas de compensation padding sous la barre basse [nav.bottom-nav] h=58px (body 0px / main 0px)
26 + [/produits] 1 cible(s) tactile(s) <34px : a.logo(98×29)
27 + [/boutiques] pas de compensation padding sous la barre basse [nav.bottom-nav] h=58px (body 0px / main 0px)
28 + [/boutiques] 1 cible(s) tactile(s) <34px : a.logo(98×29)
29 +⚠️ android food-ka 6 problème(s)
30 + [accueil] pas de compensation padding sous la barre basse [div.cookie-banner] h=243px (body 0px / main 0px)
31 + [accueil] 2 cible(s) tactile(s) <34px : a.brand.active(121×27), a.gk-badge(165×30)
32 + [/aubaines] pas de compensation padding sous la barre basse [div.cookie-banner] h=243px (body 0px / main 0px)
33 + [/aubaines] 2 cible(s) tactile(s) <34px : a.brand(121×27), a.gk-badge(165×30)
34 + [/sources] pas de compensation padding sous la barre basse [div.cookie-banner] h=243px (body 0px / main 0px)
35 + [/sources] 2 cible(s) tactile(s) <34px : a.brand(121×27), a.gk-badge(165×30)
36 +⚠️ android resto-ka 3 problème(s)
37 + [accueil] 2 cible(s) tactile(s) <34px : a.brand.active(138×30), a.gk-badge(165×30)
38 + [/stats] 2 cible(s) tactile(s) <34px : a.brand(138×30), a.gk-badge(165×30)
39 + [/sources] 2 cible(s) tactile(s) <34px : a.brand(138×30), a.gk-badge(165×30)
40 +⚠️ android sorti-ka 3 problème(s)
41 + [accueil] 2 cible(s) tactile(s) <34px : a.brand(98×26), a.gk-badge(165×30)
42 + [/stats] 2 cible(s) tactile(s) <34px : a.brand(98×26), a.gk-badge(165×30)
43 + [/contact] 2 cible(s) tactile(s) <34px : a.brand(98×26), a.gk-badge(165×30)
44 +⚠️ android crea-ka 3 problème(s)
45 + [accueil] 2 cible(s) tactile(s) <34px : a.brand(129×30), a.gk-badge(90×30)
46 + [/stats] 2 cible(s) tactile(s) <34px : a.brand(129×30), a.gk-badge(90×30)
47 + [/contact] 2 cible(s) tactile(s) <34px : a.brand(129×30), a.gk-badge(90×30)
48 +✅ android api-ka 0 problème(s)
49 +⚠️ android job-ka 3 problème(s)
50 + [accueil] 2 cible(s) tactile(s) <34px : a.logo.active(63×31), a.gk-badge.gk-badge--dark(150×30)
51 + [/carte] 2 cible(s) tactile(s) <34px : a.logo(63×31), a.gk-badge.gk-badge--dark(150×30)
52 + [/sources] 2 cible(s) tactile(s) <34px : a.logo(63×31), a.gk-badge.gk-badge--dark(150×30)
53 +⚠️ ios groupe-ka 1 problème(s)
54 + [accueil] débordement horizontal +223px : div.ticker-inner, span, span.ticker-item, span.ticker-item
55 +✅ ios trouve-ka 0 problème(s)
56 +⚠️ ios lou-ka 1 problème(s)
57 + [accueil] 1 cible(s) tactile(s) <34px : a.brand.active(124×30)
58 +⚠️ ios immo-ka 2 problème(s)
59 + [accueil] 3 cible(s) tactile(s) <34px : a.brand.active(92×27), a.ka-signup(99×17), a.gk-badge(166×30)
60 + [accueil] menu ouvert SANS blocage du scroll d'arrière-plan
61 +⚠️ ios vrai-prix 1 problème(s)
62 + [accueil] 1 cible(s) tactile(s) <34px : a.vp-display.group.relative(92×28)
63 +⚠️ ios auto-ka 1 problème(s)
64 + [accueil] 1 cible(s) tactile(s) <34px : a.brand.active(89×28)
65 +⚠️ ios fabri-ka 2 problème(s)
66 + [accueil] pas de compensation padding sous la barre basse [nav.bottom-nav] h=58px (body 0px / main 0px)
67 + [accueil] 1 cible(s) tactile(s) <34px : a.logo(98×29)
68 +⚠️ ios food-ka 2 problème(s)
69 + [accueil] pas de compensation padding sous la barre basse [div.cookie-banner] h=264px (body 0px / main 0px)
70 + [accueil] 2 cible(s) tactile(s) <34px : a.brand.active(121×27), a.gk-badge(166×30)
71 +⚠️ ios resto-ka 1 problème(s)
72 + [accueil] 2 cible(s) tactile(s) <34px : a.brand.active(138×30), a.gk-badge(166×30)
73 +⚠️ ios sorti-ka 1 problème(s)
74 + [accueil] 2 cible(s) tactile(s) <34px : a.brand(98×26), a.gk-badge(166×30)
75 +⚠️ ios crea-ka 1 problème(s)
76 + [accueil] 1 cible(s) tactile(s) <34px : a.brand(112×26)
77 +✅ ios api-ka 0 problème(s)
78 +⚠️ ios job-ka 1 problème(s)
79 + [accueil] 2 cible(s) tactile(s) <34px : a.logo.active(63×31), a.gk-badge.gk-badge--dark(150×30)
80 +
81 +Rapport : /Users/simon-pierreboucher/Desktop/ka-ui/audit/report.json
added audit/audit-run3.log +36 −0
@@ -0,0 +1,36 @@
1 +✅ android groupe-ka 0 problème(s)
2 +✅ android trouve-ka 0 problème(s)
3 +✅ android lou-ka 0 problème(s)
4 +✅ android immo-ka 0 problème(s)
5 +✅ android vrai-prix 0 problème(s)
6 +✅ android auto-ka 0 problème(s)
7 +⚠️ android fabri-ka 3 problème(s)
8 + [accueil] pas de compensation padding sous la barre basse [nav.bottom-nav] h=58px (body 0px / main 0px / wrapper 0px)
9 + [/produits] pas de compensation padding sous la barre basse [nav.bottom-nav] h=58px (body 0px / main 0px / wrapper 0px)
10 + [/boutiques] pas de compensation padding sous la barre basse [nav.bottom-nav] h=58px (body 0px / main 0px / wrapper 0px)
11 +✅ android food-ka 0 problème(s)
12 +✅ android resto-ka 0 problème(s)
13 +✅ android sorti-ka 0 problème(s)
14 +⚠️ android crea-ka 3 problème(s)
15 + [accueil] 1 cible(s) tactile(s) <34px : a.brand(129×30)
16 + [/stats] 1 cible(s) tactile(s) <34px : a.brand(129×30)
17 + [/contact] 1 cible(s) tactile(s) <34px : a.brand(129×30)
18 +✅ android api-ka 0 problème(s)
19 +✅ android job-ka 0 problème(s)
20 +✅ ios groupe-ka 0 problème(s)
21 +✅ ios trouve-ka 0 problème(s)
22 +✅ ios lou-ka 0 problème(s)
23 +✅ ios immo-ka 0 problème(s)
24 +✅ ios vrai-prix 0 problème(s)
25 +✅ ios auto-ka 0 problème(s)
26 +⚠️ ios fabri-ka 1 problème(s)
27 + [accueil] pas de compensation padding sous la barre basse [nav.bottom-nav] h=58px (body 0px / main 0px / wrapper 0px)
28 +✅ ios food-ka 0 problème(s)
29 +✅ ios resto-ka 0 problème(s)
30 +✅ ios sorti-ka 0 problème(s)
31 +⚠️ ios crea-ka 1 problème(s)
32 + [accueil] 1 cible(s) tactile(s) <34px : a.brand(112×26)
33 +✅ ios api-ka 0 problème(s)
34 +✅ ios job-ka 0 problème(s)
35 +
36 +Rapport : /Users/simon-pierreboucher/Desktop/ka-ui/audit/report.json
added audit/auto-ka-android-bas.png +0 −0

Binary file not shown.

added audit/auto-ka-android-menu.png +0 −0

Binary file not shown.

added audit/auto-ka-android.png +0 −0

Binary file not shown.

added audit/auto-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/auto-ka-ios-menu.png +0 −0

Binary file not shown.

added audit/auto-ka-ios.png +0 −0

Binary file not shown.

added audit/crea-ka-android-bas.png +0 −0

Binary file not shown.

added audit/crea-ka-android.png +0 −0

Binary file not shown.

added audit/crea-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/crea-ka-ios.png +0 −0

Binary file not shown.

added audit/fabri-ka-android-bas.png +0 −0

Binary file not shown.

added audit/fabri-ka-android.png +0 −0

Binary file not shown.

added audit/fabri-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/fabri-ka-ios.png +0 −0

Binary file not shown.

added audit/food-ka-android-bas.png +0 −0

Binary file not shown.

added audit/food-ka-android-menu.png +0 −0

Binary file not shown.

added audit/food-ka-android.png +0 −0

Binary file not shown.

added audit/food-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/food-ka-ios-menu.png +0 −0

Binary file not shown.

added audit/food-ka-ios.png +0 −0

Binary file not shown.

added audit/groupe-ka-android-bas.png +0 −0

Binary file not shown.

added audit/groupe-ka-android-menu.png +0 −0

Binary file not shown.

added audit/groupe-ka-android.png +0 −0

Binary file not shown.

added audit/groupe-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/groupe-ka-ios-menu.png +0 −0

Binary file not shown.

added audit/groupe-ka-ios.png +0 −0

Binary file not shown.

added audit/immo-ka-android-bas.png +0 −0

Binary file not shown.

added audit/immo-ka-android-menu.png +0 −0

Binary file not shown.

added audit/immo-ka-android.png +0 −0

Binary file not shown.

added audit/immo-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/immo-ka-ios-menu.png +0 −0

Binary file not shown.

added audit/immo-ka-ios.png +0 −0

Binary file not shown.

added audit/job-ka-android-bas.png +0 −0

Binary file not shown.

added audit/job-ka-android-menu.png +0 −0

Binary file not shown.

added audit/job-ka-android.png +0 −0

Binary file not shown.

added audit/job-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/job-ka-ios-menu.png +0 −0

Binary file not shown.

added audit/job-ka-ios.png +0 −0

Binary file not shown.

added audit/lou-ka-android-bas.png +0 −0

Binary file not shown.

added audit/lou-ka-android-menu.png +0 −0

Binary file not shown.

added audit/lou-ka-android.png +0 −0

Binary file not shown.

added audit/lou-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/lou-ka-ios-menu.png +0 −0

Binary file not shown.

added audit/lou-ka-ios.png +0 −0

Binary file not shown.

modified audit/report.json +673 −2161
Large diff (4,300 lines) is not loaded by default to keep the page fast.Load diff
added audit/resto-ka-android-bas.png +0 −0

Binary file not shown.

added audit/resto-ka-android-menu.png +0 −0

Binary file not shown.

added audit/resto-ka-android.png +0 −0

Binary file not shown.

added audit/resto-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/resto-ka-ios-menu.png +0 −0

Binary file not shown.

added audit/resto-ka-ios.png +0 −0

Binary file not shown.

added audit/simulator/api-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/auto-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/crea-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/fabri-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/food-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/groupe-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/immo-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/job-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/lou-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/resto-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/sorti-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/trouve-ka-iphone17pro.png +0 −0

Binary file not shown.

added audit/simulator/vrai-prix-iphone17pro.png +0 −0

Binary file not shown.

added audit/sorti-ka-android-bas.png +0 −0

Binary file not shown.

added audit/sorti-ka-android.png +0 −0

Binary file not shown.

added audit/sorti-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/sorti-ka-ios.png +0 −0

Binary file not shown.

added audit/trouve-ka-android-bas.png +0 −0

Binary file not shown.

added audit/trouve-ka-android-menu.png +0 −0

Binary file not shown.

added audit/trouve-ka-android.png +0 −0

Binary file not shown.

added audit/trouve-ka-ios-bas.png +0 −0

Binary file not shown.

added audit/trouve-ka-ios-menu.png +0 −0

Binary file not shown.

added audit/trouve-ka-ios.png +0 −0

Binary file not shown.

added audit/vrai-prix-android-bas.png +0 −0

Binary file not shown.

added audit/vrai-prix-android-menu.png +0 −0

Binary file not shown.

added audit/vrai-prix-android.png +0 −0

Binary file not shown.

added audit/vrai-prix-ios-bas.png +0 −0

Binary file not shown.

added audit/vrai-prix-ios-menu.png +0 −0

Binary file not shown.

added audit/vrai-prix-ios.png +0 −0

Binary file not shown.

modified mobile-audit.mjs +3 −1
Large diff (10 lines) is not loaded by default to keep the page fast.Load diff
added regression/api-ka-1574x768.png +0 −0

Binary file not shown.

added regression/api-ka-360x738.png +0 −0

Binary file not shown.

added regression/api-ka-390x799.png +0 −0

Binary file not shown.

added regression/api-ka-414x849.png +0 −0

Binary file not shown.

added regression/api-ka-768x1574.png +0 −0

Binary file not shown.

added regression/api-ka-799x390.png +0 −0

Binary file not shown.

added regression/auto-ka-1574x768.png +0 −0

Binary file not shown.

added regression/auto-ka-360x738.png +0 −0

Binary file not shown.

added regression/auto-ka-390x799.png +0 −0

Binary file not shown.

added regression/auto-ka-414x849.png +0 −0

Binary file not shown.

added regression/auto-ka-768x1574.png +0 −0

Binary file not shown.

added regression/auto-ka-799x390.png +0 −0

Binary file not shown.

added regression/baseline.log +80 −0
Large diff (80 lines) is not loaded by default to keep the page fast.Load diff
added regression/crea-ka-1574x768.png +0 −0

Binary file not shown.

added regression/crea-ka-360x738.png +0 −0

Binary file not shown.

added regression/crea-ka-390x799.png +0 −0

Binary file not shown.

added regression/crea-ka-414x849.png +0 −0

Binary file not shown.

added regression/crea-ka-768x1574.png +0 −0

Binary file not shown.

added regression/crea-ka-799x390.png +0 −0

Binary file not shown.

added regression/fabri-ka-1574x768.png +0 −0

Binary file not shown.

added regression/fabri-ka-360x738.png +0 −0

Binary file not shown.

added regression/fabri-ka-390x799.png +0 −0

Binary file not shown.

added regression/fabri-ka-414x849.png +0 −0

Binary file not shown.

added regression/fabri-ka-768x1574.png +0 −0

Binary file not shown.

added regression/fabri-ka-799x390.png +0 −0

Binary file not shown.

added regression/food-ka-1574x768.png +0 −0

Binary file not shown.

added regression/food-ka-360x738.png +0 −0

Binary file not shown.

added regression/food-ka-390x799.png +0 −0

Binary file not shown.

added regression/food-ka-414x849.png +0 −0

Binary file not shown.

added regression/food-ka-768x1574.png +0 −0

Binary file not shown.

added regression/food-ka-799x390.png +0 −0

Binary file not shown.

added regression/groupe-ka-1574x768.png +0 −0

Binary file not shown.

added regression/groupe-ka-360x738.png +0 −0

Binary file not shown.

added regression/groupe-ka-390x799.png +0 −0

Binary file not shown.

added regression/groupe-ka-414x849.png +0 −0

Binary file not shown.

added regression/groupe-ka-768x1574.png +0 −0

Binary file not shown.

added regression/groupe-ka-799x390.png +0 −0

Binary file not shown.

added regression/immo-ka-1574x768.png +0 −0

Binary file not shown.

added regression/immo-ka-360x738.png +0 −0

Binary file not shown.

added regression/immo-ka-390x799.png +0 −0

Binary file not shown.

added regression/immo-ka-414x849.png +0 −0

Binary file not shown.

added regression/immo-ka-768x1574.png +0 −0

Binary file not shown.

added regression/immo-ka-799x390.png +0 −0

Binary file not shown.

added regression/job-ka-1574x768.png +0 −0

Binary file not shown.

added regression/job-ka-360x738.png +0 −0

Binary file not shown.

added regression/job-ka-390x799.png +0 −0

Binary file not shown.

added regression/job-ka-414x849.png +0 −0

Binary file not shown.

added regression/job-ka-768x1574.png +0 −0

Binary file not shown.

added regression/job-ka-799x390.png +0 −0

Binary file not shown.

added regression/last-run.json +474 −0
Large diff (475 lines) is not loaded by default to keep the page fast.Load diff
added regression/lou-ka-1574x768.png +0 −0

Binary file not shown.

added regression/lou-ka-360x738.png +0 −0

Binary file not shown.

added regression/lou-ka-390x799.png +0 −0

Binary file not shown.

added regression/lou-ka-414x849.png +0 −0

Binary file not shown.

added regression/lou-ka-768x1574.png +0 −0

Binary file not shown.

added regression/lou-ka-799x390.png +0 −0

Binary file not shown.

added regression/resto-ka-1574x768.png +0 −0

Binary file not shown.

added regression/resto-ka-360x738.png +0 −0

Binary file not shown.

added regression/resto-ka-390x799.png +0 −0

Binary file not shown.

added regression/resto-ka-414x849.png +0 −0

Binary file not shown.

added regression/resto-ka-768x1574.png +0 −0

Binary file not shown.

added regression/resto-ka-799x390.png +0 −0

Binary file not shown.

added regression/sorti-ka-1574x768.png +0 −0

Binary file not shown.

added regression/sorti-ka-360x738.png +0 −0

Binary file not shown.

added regression/sorti-ka-390x799.png +0 −0

Binary file not shown.

added regression/sorti-ka-414x849.png +0 −0

Binary file not shown.

added regression/sorti-ka-768x1574.png +0 −0

Binary file not shown.

added regression/sorti-ka-799x390.png +0 −0

Binary file not shown.

added regression/trouve-ka-1574x768.png +0 −0

Binary file not shown.

added regression/trouve-ka-360x738.png +0 −0

Binary file not shown.

added regression/trouve-ka-390x799.png +0 −0

Binary file not shown.

added regression/trouve-ka-414x849.png +0 −0

Binary file not shown.

added regression/trouve-ka-768x1574.png +0 −0

Binary file not shown.

added regression/trouve-ka-799x390.png +0 −0

Binary file not shown.

added regression/vrai-prix-1574x768.png +0 −0

Binary file not shown.

added regression/vrai-prix-360x738.png +0 −0

Binary file not shown.

added regression/vrai-prix-390x799.png +0 −0

Binary file not shown.

added regression/vrai-prix-414x849.png +0 −0

Binary file not shown.

added regression/vrai-prix-768x1574.png +0 −0

Binary file not shown.

added regression/vrai-prix-799x390.png +0 −0

Binary file not shown.

Menu

Theme