# Audit images — Advance Manufacturers (branche `feature/home-best-practices-audit`)

## 0. Note de périmètre

Sur consigne du coordinateur, la **Home a été retirée de mon périmètre** (déjà couverte de façon exhaustive et vérifiée visuellement par les autres auditeurs — `audit-hero-stats`, `audit-process-gallery`, `audit-about-cert`, `audit-value-materials`). Je ne la refais pas. Pour mémoire, avant la réduction de périmètre j'avais moi-même vérifié visuellement 3 images Home (recoupement possible avec les autres rapports) :

| Image | Verdict | Constat |
|---|---|---|
| `public/home/white-gold-set-advance-manufacturer.webp` (hero) | ⚠️ | Alt EN "white gold **and silver**… crafted in the **workshop**" — l'image est un packshot studio fond blanc d'une parure (pendentif, bague, créoles) en or blanc texturé à améthystes ; aucune scène d'atelier, "silver" douteux. Proposé EN : "White gold jewelry set with amethyst accents — pendant, ring and hoop earrings" / FR : "Parure en or blanc sertie d'améthystes — pendentif, bague et créoles" |
| `public/production/craftspeople.webp` (About) | ❌ | Alt "artisans hand-setting stones at the workbench" — l'image réelle est une photo de groupe (cérémonie/offrande thaïe en extérieur, tables de nourriture, sanctuaire), aucun établi ni sertissage. Faux total. Proposé EN : "Advance Manufacturers staff at a company blessing ceremony outside the Bangkok workshop" / FR : "Équipe Advance Manufacturers lors d'une cérémonie d'entreprise devant l'atelier de Bangkok" |
| `public/home/rjc-certified-member.webp` (Certification) | ✅ | Alt exact, correspond au visuel (logo RJC, "Certified Member", COP 0000 7330, LGM 0000 7445) |

Recoupement `audit-process-gallery` (vérification visuelle des 6 photos "How We Work", à prendre telle quelle) : `predesign.webp` ⚠️ (1 personne dessine, pas une "team"), `cadcam.webp` ✅, `sampling.webp` ❌ (photo studio produit fini, pas des "prototype rings"), `wax-injection.webp` ✅ (mais marque "Yasui" visible = logo incrusté interdit par `photo-requirements.md`), `polishing.webp` ⚠️ (portrait 2:3 recadré violemment dans un cadre 4:3, alt "quality control" ne colle qu'à moitié au polissage montré), `advance-manufacture-building.webp` ❌ (façade d'usine statique, aucune activité d'expédition visible).

---

## 1. Tableau — reste du site (hors Home)

| Page | Composant:ligne | Image | Alt EN | Alt FR | Verdict |
|---|---|---|---|---|---|
| About Us | `AboutHero.tsx:29` | `public/about/about-hero.webp` | "The Advance Manufacturers family and team gathered at the Bangkok workshop" | "La famille et l'équipe … réunies dans l'atelier de Bangkok" | ⚠️ quasi-doublon avec la photo suivante |
| About Us | `AboutTeam.tsx:51` (photo `a`) | `public/about/about-team-1.webp` | "The Advance Manufacturers family gathered together at the Bangkok factory" | "La famille Advance Manufacturers réunie à l'usine de Bangkok" | ⚠️ texte quasi identique à AboutHero, sur un **fichier différent** — non distinctif |
| About Us | `AboutTeam.tsx:64` (photo `b`) | `about-team-2.webp` | "Team members at work on the production floor" | "Des collaborateurs au travail sur la ligne de production" | ✅ plausible, non vérifié visuellement |
| About Us | `AboutTeam.tsx:64` (photo `c`) | `about-team-3.webp` | "A craftsperson focused at the workshop bench" | "Un artisan concentré à l'établi de l'atelier" | ✅ plausible |
| About Us | `AboutTeam.tsx:64` (photo `d`) | `about-team-4.webp` | "Advance Manufacturers employees together during a company gathering" | "Les collaborateurs … réunis lors d'un événement d'entreprise" | ✅ plausible |
| About Us | `AboutVision.tsx:16` | `about-team-work.webp` | "Advance Manufacturers team collaborating in the Bangkok workshop" | idem FR | ✅ plausible mais générique |
| Blog | `JrPostCard.tsx:49` | `post.coverAlt` (dynamique CMS) | variable selon l'article | variable | ➖ non vérifiable en masse — process correct (alt piloté par le contenu) |
| Blog | `JrPostCard.tsx:102` | avatar auteur | `alt=""` | `alt=""` | ✅ décoratif justifié — nom de l'auteur affiché juste à côté en texte (`t("byAuthor")`) |
| Blog | `PostLayout.tsx:84` | avatar auteur (header article) | `alt=""` | `alt=""` | ✅ idem, texte adjacent |
| Blog | `PostLayout.tsx:100` | `post.coverAlt` (dynamique) | variable | variable | ➖ non vérifiable en masse |
| Blog | `PostLayout.tsx:128` | avatar auteur (bio bloc) | `alt=""` | `alt=""` | ✅ idem, nom+bio adjacents |
| Blog | `BlogSubNav.tsx:378` | vignette article (dropdown recherche) | `alt=""` | `alt=""` | ✅ décoratif justifié — titre en texte + `aria-label` sur le `<li>` |
| Blog | `mdx-components.tsx:96` | images inline markdown | `alt={alt}` (passthrough) | idem | ➖ dépend du contenu rédactionnel, non auditable en masse |
| Design & Dev | `DesignHero.tsx:31` | `public/design/hero-sketches.webp` | "Hand-drawn technical sketches of jewelry designs on the drafting table" | "Croquis techniques de bijoux dessinés à la main…" | ✅ plausible |
| Design & Dev | `DesignSteps.tsx:82` (predesign) | `public/design/predesign.webp` **(même fichier que Home ProcessSection "review")** | "A design mood board with color schemes and stone selections for pre-design" | "Un mood board de design avec palettes de couleurs…" | ❌ — image réelle vérifiée par un pair : **une seule personne dessinant au crayon un pendentif**, pas un "mood board couleurs/pierres". Les 2 alts (Home + ici) décrivent chacun un contenu différent et faux |
| Design & Dev | `DesignSteps.tsx:82` (design) | `public/design/render.webp` | "A jewelry designer refining a hand sketch with illustration software" | idem FR | ✅ plausible, non vérifié |
| Design & Dev | `DesignSteps.tsx:82` (cadcam) | `public/design/cadcam.webp` **(même fichier que Home ProcessSection "cad")** | "A photo-realistic 3D CAD render of a jewelry piece on screen" | idem FR | ⚠️ imprécis — image réelle (vérifiée par pair) montre une opératrice **de dos devant un écran Asus** avec 4 vues CAO, pas juste un "render" plein cadre |
| Design & Dev | `DesignSteps.tsx:82` (printing) | `public/design/printing.webp` | "A 3D printer producing a castable resin master model of a jewelry piece" | idem FR | ✅ plausible |
| Design & Dev | `DesignFinal.tsx:29` | `public/home/slider/az5056_mbtvks.webp` **(= slide 5 de la galerie Home)** | "A finished jewelry piece from the sampling department, ready for approval" | "Une pièce de bijouterie finie … prête à être validée" | ⚠️ générique — le fichier réel est une parure or bicolore à maillons entrelacés sertie de diamants pavés (alt Home connu), non repris ici |
| Gallery | `CollectionSlider.tsx:108` × 18 (6 collections × 3) | `public/gallery/collections/*.webp` (déjà nommés `18k-gold-diamond-jewelry.webp`, `rainbow-cz-…` etc.) | riches en mots-clés (ex. "18k gold and diamond set with ring, pendant and earrings") | non vérifié en détail (FR non extrait) | ✅ bon niveau, fichiers déjà bien nommés — aucune action requise |
| News & Events | `NewsHero.tsx:14` | `public/news/bangkok_gems.webp` **(réutilisé 3×, voir Top 5)** | "Advance Manufacturers booth at an international jewellery exhibition" | idem FR | ⚠️ générique, 1ère des 3 réutilisations |
| News & Events | `NewsTimeline.tsx:79` (vicenzaJan) | `vicenza_jan.webp` | "Advance Manufacturers display cases at VicenzaOro, the January jewellery trade fair" | idem FR | ✅ précis |
| News & Events | `NewsTimeline.tsx:79` (bangkokGemsFeb) | `asean_bangkok.webp` | "Advance Manufacturers booth at a jewellery trade fair in Bangkok, Thailand" | idem FR | ⚠️ nom de fichier (`asean_bangkok`) et sujet (`bangkokGemsFeb`) incohérents — à vérifier visuellement |
| News & Events | `NewsTimeline.tsx:79` (hongKongMarch) | `hongkong_march.webp` | "Advance Manufacturers booth at the Hong Kong International Jewellery Show" | idem FR | ✅ précis |
| News & Events | `NewsTimeline.tsx:79` (jckVegas) | `bangkok_gems.webp` **(2ᵉ réutilisation, commentaire TODO dans le code)** | "Advance Manufacturers booth at an international jewellery trade show" | idem FR | ❌ photo de substitution (commentaire source : "TODO: replace with a JCK Las Vegas photo from the client"), alt volontairement vague pour masquer le décalage |
| News & Events | `NewsTimeline.tsx:79` (vicenzaSept) | `vicenza_sept.webp` | "Outdoor view of the VicenzaOro September jewellery exhibition in Vicenza, Italy" | idem FR | ✅ précis |
| News & Events | `NewsTimeline.tsx:79` (bangkokGemsSept) | `bangkok_gems.webp` **(3ᵉ réutilisation)** | "Advance Manufacturers stand at the September Bangkok Gems & Jewelry Fair in Thailand" | idem FR | ✅ précis — c'est la légende correcte pour ce fichier |
| News & Events | `NewsTimeline.tsx:79` (hongKongWorld) | `hongkong_world.webp` | "Advance Manufacturers booth at Jewellery & Gem WORLD Hong Kong" | idem FR | ✅ précis |
| Production | `ProcessHero.tsx:13` | `public/production/hero.webp` | "A master jeweler's workbench with tools and a piece in progress" | idem FR | ✅ plausible |
| Production | `ProcessEngines.tsx:41` (sales) | `engine-sales-team.webp` | "The Advance Manufacturers sales and customer service team at work" | idem FR | ✅ plausible |
| Production | `ProcessEngines.tsx:41` (it) | `engine-it-team.webp` | "The Advance Manufacturers IT and software engineering team at work" | idem FR | ✅ plausible |
| Production | `ProcessMemberships.tsx:26` | `member-ditp.webp` (logo) | "Department of International Trade Promotion" | identique (nom propre, non traduit) | ✅ correct — nom d'organisme, pas de traduction attendue |
| Production | `ProcessMemberships.tsx:31` | `member-thai-silver.webp` (logo) | "Thai Silver Exporters Association" | identique | ✅ idem |
| Production | `ProcessSteps.tsx:124` × 12 | `public/production/steps/step-01…12-*.webp` (déjà bien nommés) | 12 alts distincts, détaillés par étape (development, cad, model, casting, wax, laser, filing, setting, plating, enamel, quality, packaging) | 12 alts FR distincts correspondants | ✅ bon niveau, fichiers déjà bien nommés — non vérifié visuellement (budget) |
| Sustainability | `SustainabilityMaterials.tsx:24` | `production/stone-setting.webp` | "Stones being set by hand at the Advance Manufacturers bench" | idem FR | ✅ plausible |
| Sustainability | `SustainabilityPeople.tsx:23` | `sustainability/community-fair-work.webp` | "Members of the Advance Manufacturers workforce at the atelier in Bangkok" | idem FR | ⚠️ très proche d'`AboutVision.imageAlt` ("team collaborating in the Bangkok workshop") — vérifier si ce n'est pas la même scène réutilisée sous 2 angles narratifs |
| Sustainability | `SustainabilityWaste.tsx:21` | `sustainability/responsible-sourcing.webp` | "Raw precious metals and materials prepared for responsible sourcing" | idem FR | ✅ plausible |

**Alt vides recensés (5 au total dans `src/`)** : 4 hors-Home listés ci-dessus (tous ✅ décoratifs justifiés, texte adjacent présent), + 1 dans `StatsSection.tsx` (Home, hors périmètre ici, déjà couvert par `audit-hero-stats`).

**Alts identiques/quasi-identiques entre fichiers différents** :
- `AboutHero.tsx` ↔ `AboutTeam.tsx` (photo `a`) — "family gathered … Bangkok workshop/factory"
- `AboutVision.tsx` ↔ `SustainabilityPeople.tsx` — "team collaborating"/"workforce … at the atelier in Bangkok"
- `NewsHero.tsx`, `NewsTimeline.tsx` (jckVegas), `NewsTimeline.tsx` (bangkokGemsSept) — même fichier `bangkok_gems.webp`, 3 alts différents (2 génériques, 1 précis)

---

## 2. Schéma de renommage proposé

**Convention** : `<page>-<section>-<nn>-<sujet-descriptif>-advance-manufacturers.webp` (minuscules, tirets, mots-clés matière/type de bijou en premier).

### `public/home/slider/*.webp` (12 utilisés dans `GallerySection.tsx`, + 2 orphelins signalés par `audit-process-gallery`)

| Fichier actuel | Nom proposé |
|---|---|
| `az4393_r1wq6o.webp` (s1) | `home-gallery-01-two-tone-gold-diamond-pendant-set-advance-manufacturers.webp` |
| `az4457_w95x9m.webp` (s2) | `home-gallery-02-white-gold-rose-gold-disc-set-advance-manufacturers.webp` |
| `az4949_bt7ulw.webp` (s3) | `home-gallery-03-rose-gold-cabochon-openwork-set-advance-manufacturers.webp` |
| `az4964_lnak4t.webp` (s4) | `home-gallery-04-yellow-gold-wave-pearl-pendant-advance-manufacturers.webp` |
| `az5056_mbtvks.webp` (s5) | `home-gallery-05-two-tone-gold-diamond-link-set-advance-manufacturers.webp` — **attention** : aussi importé par `DesignFinal.tsx`, mettre à jour les 2 imports |
| `az5274_qlx7ak.webp` (s6) | `home-gallery-06-rose-gold-turquoise-enamel-amethyst-set-advance-manufacturers.webp` |
| `az4431_ihz5qv.webp` (s7) | `home-gallery-07-white-gold-fingerprint-amethyst-set-advance-manufacturers.webp` |
| `az4948_ggpzcg.webp` (s8) | `home-gallery-08-white-gold-daisy-mother-of-pearl-set-advance-manufacturers.webp` — aussi importé par `StatsSection.tsx` (fond décoratif), mettre à jour les 2 imports |
| `az4967_yyiicy.webp` (s9) | `home-gallery-09-rose-gold-disc-pearl-set-advance-manufacturers.webp` |
| `az5276_ctkxqq.webp` (s10) | `home-gallery-10-rose-gold-mint-enamel-triangle-set-advance-manufacturers.webp` |
| `az5279_upcjmf.webp` (s11) | `home-gallery-11-white-gold-blue-enamel-cushion-set-advance-manufacturers.webp` |
| `az5327_rd74kd.webp` (s12) | `home-gallery-12-yellow-gold-diamond-oval-set-advance-manufacturers.webp` |
| `az4951_wpqknt.webp` (267 Ko, **non importé**) | à supprimer, ou si réutilisable : `home-gallery-13-tbd-review-advance-manufacturers.webp` (contenu non vérifié) |
| `az5332_i9vpn2.webp` (199 Ko, **non importé**) | idem, à trancher avec le client avant renommage |

### `public/gallery/collections/*.webp`
Déjà conformes à la convention (`18k-gold-diamond-jewelry.webp`, `rainbow-cz-eternal-heart-set.webp`, etc.) — **aucun renommage nécessaire**.

### `public/news/*.webp` (hors périmètre initial mais même défaut de nommage)
`asean_bangkok.webp`, `bangkok_gems.webp`, `hongkong_march.webp`, `hongkong_world.webp`, `vicenza_jan.webp`, `vicenza_sept.webp` → snake_case, pas de mention "advance-manufacturers", pas de tirets. À traiter avec la même convention lors d'une prochaine livraison photo (ex. `news-events-01-vicenzaoro-january-booth-advance-manufacturers.webp`), non urgent.

---

## 3. Statistiques

- **81** imports statiques d'images distincts (`import … from "…/public/…"`) dans `src/`.
- **27** fichiers composants contenant au moins un `alt=`.
- **32** occurrences de `alt=` dans le code source (lignes ; ne compte pas les instances runtime des boucles — ex. 12 slides Home, 12 étapes Production, 18 images Gallery Collections, 7 events News sont chacune **une seule ligne de code** générant plusieurs images).
- **5** occurrences `alt=""` — toutes vérifiées correctement justifiées (image décorative/redondante avec un texte adjacent visible).
- **0** balise `<img>` brute — 100 % passe par `next/image`.
- **5** fichiers avec `<svg>` inline (dont `LogoMonogram.tsx`, correctement `aria-hidden` + décoratif).
- Verdicts reste du site (lignes du tableau §1, hors alts dynamiques ➖) : **✅ 14** · **⚠️ 8** · **❌ 2** · **➖ 6** (dynamiques CMS/markdown, non notés).
- Fichiers image réutilisés sur plusieurs pages avec alts divergents : **3** (`bangkok_gems.webp` ×3, `predesign.webp` ×2, `cadcam.webp` ×2, `az5056_mbtvks.webp`/slide 5 ×2, `az4948_ggpzcg.webp`/slide 8 ×2 — total 5 fichiers concernés).

---

## 4. Top 5 des corrections (hors Home)

1. **`public/design/predesign.webp` réutilisé sur 2 pages avec 2 alts, tous les deux faux** (Home `ProcessSection` "review team reviewing sketches" / Design & Dev "mood board with color schemes and stone selections") — l'image réelle (vérifiée visuellement par un pair) montre une seule personne dessinant au crayon un pendentif. Réécrire les 2 alts sur le contenu réel : dessin main/crayons de couleur, une personne, pas une "team" ni un "mood board".
2. **`NewsTimeline.tsx` — événement `jckVegas` sur photo de substitution** : `bangkok_gems.webp` réutilisé avec un commentaire source `TODO: replace with a JCK Las Vegas photo from the client`, alt rendu volontairement vague pour masquer le décalage. Le même fichier sert aussi de légende exacte pour `bangkokGemsSept`. Bloquer/masquer cet événement tant que la vraie photo n'est pas livrée, plutôt que d'afficher une légende trompeuse.
3. **`public/design/cadcam.webp` réutilisé (Home + Design & Dev) avec un alt imprécis côté Design & Dev** ("photo-realistic 3D CAD render") alors que la scène montre une opératrice de dos devant un écran avec le logiciel CAO — décrire la scène complète, pas seulement le rendu à l'écran.
4. **Near-doublon d'alt entre `AboutHero.tsx` et `AboutTeam.tsx` (photo `a`)** — deux fichiers différents, texte quasi identique ("family gathered … Bangkok workshop/factory") ; réécrire l'un des deux pour qu'il soit distinctif et décrive ce qui différencie réellement les deux clichés.
5. **Nommage `public/home/slider/*.webp`** (14 fichiers en `azNNNN_xxxxxx.webp`, hash Cloudinary, 0 valeur SEO, dont 2 orphelins non importés) — appliquer le schéma de renommage §2 à la prochaine livraison photo client, et statuer sur les 2 fichiers orphelins (`az4951_wpqknt.webp`, `az5332_i9vpn2.webp`) avec le client avant de les intégrer ou de les supprimer.
