Files
office_translator/.impeccable/critique/2026-08-30T21-23-40Z__frontend-src.md
sepehr 3f45ccdf50
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m58s
feat(ui): vague 4 — la zone de dépôt répond, l'or devient lisible, tarifs binaires, avant/après réel
Zone de dépôt : le contour s'allume en doré et la carte s'agrandit
quand on la survole avec un fichier (l'information existait, elle
n'était jamais affichée).

Or lisible : nouveau jeton « or encre » (#8B6F47) pour les textes,
l'or clair reste aux traits, fonds et au mode sombre ; 52 textes dorés
convertis, pastille comprises ; plus aucun texte sous 10 px
(8,5 px → 11 px dans le sélecteur de moteurs).

Tarifs : le choix redevient binaire — les trois abonnements payants en
grandes cartes, le gratuit en ligne discrète au-dessus, le sur mesure
en ligne dorée dessous. Le tableau comparatif complet reste dessous.

Accueil : le mur de six cartes génériques est remplacé par un vrai
avant/après — une page « Cahier des charges — Traitement d'air » à
côté de sa traduction anglaise, structure identique au mot près
(terme technique en gras des deux côtés), sceau « Même mise en page,
mot pour mot » entre les deux, et trois preuves précises (SmartArt
reconstruits, séries de graphiques traduites, tables des matières
régénérées) à la place des promesses vagues.
2026-08-30 23:27:53 +02:00

6.8 KiB
Raw Permalink Blame History

target, total_score, max_score, na_heuristics, p0_count, p1_count, timestamp, slug
target total_score max_score na_heuristics p0_count p1_count timestamp slug
frontend/src (UI complète Wordly.art) 28 40 0 2 2026-08-30T21-23-40Z frontend-src

Évaluation de design — Wordly.art (frontend/src) — 3ᵉ passage

Méthode : double agent isolé (A : agent_a56a818e · B : agent_fa9c4f90)

Score de santé (10 règles d'ergonomie, 0-4 chacune)

# Règle Note Problème principal
1 L'utilisateur sait toujours où il en est 3 Aucun retour visuel quand on survole la zone de dépôt avec un fichier (isDragOver calculé dans useFileUpload.ts:69-77 mais jamais affiché, translate/page.tsx:359-415) ; « Tout approuver » enchaîne les demandes sans progression (reviews/[jobId]/page.tsx:159-167).
2 Le produit parle la langue de ses utilisateurs 3 Restes de jargon : « Le job a été arrêté » (fr/translate.json:102), « Segments », « Moteur contextuel » — globalement bien vulgarisé (XLIFF expliqué).
3 L'utilisateur garde le contrôle 3 Retrait d'un membre d'équipe sans confirmation (teams/page.tsx:195-205) ; ailleurs excellent (annulation réelle, reprise après rafraîchissement).
4 Cohérence de l'ensemble 2 Page Glossaires en couleurs brutes hors système (glossaries/page.tsx:93,115,130), n'utilise pas l'en-tête commun page-header.tsx ; émojis ⚠️🎯🌐 dans les avertissements (GlossarySelector.tsx:342,352,379) ; achat de crédits sans confirmation alors que les abonnements en ont une.
5 Prévention des erreurs 3 Bouton bloqué sans explication quand langue source = langue cible (useTranslationConfig.ts:237, aides incomplètes translate/page.tsx:617-622).
6 Reconnaissance plutôt que mémoire 3 Récapitulatif pendant et après le traitement, historique récent avec liens de relecture.
7 Vitesse pour les utilisateurs intensifs 3 Ctrl+Entrée existe mais n'est jamais annoncé à l'écran ; pas de filtre « à relire uniquement » dans la table de relecture.
8 Sobriété visuelle 2 Micro-textes 8,5-10 px par centaines (ProviderSelector.tsx:201, landing-page.tsx:278,350) ; 5 plans × 5-10 fonctions par carte.
9 Récupération après erreur 3 Erreurs traduites en actions (translate/page.tsx:91-112), fichier conservé + Réessayer.
10 Aide disponible 3 Aides contextuelles réelles ; pas de centre d'aide.
Total 28/40 Palier « bonne interface » (28-35)

Verdict de spécificité

Revue : l'accueil devient « parfois précieux » — le dessin animé du hero (hero-visual.tsx) est jugé « la meilleure pièce du site » : la promesse produit est dessinée, pas photographiée, avec le balayage doré « détail d'auteur ». L'outil Traduire est « la surface la plus authentique » (pipeline dédié, avertissements de glossaire, garde source = cible) ; la relecture parle « le vocabulaire de la localisation, pas du SaaS générique ». Restent deux plaques de modèle tout fait : le mur de 6 cartes de fonctionnalités de l'accueil, et les « signaux de confiance » de la page tarifs.

Scan automatique : 3 constats inchangés — les 2 Inter (choix assumé « outil sobre ») et le faux positif du rond de chargement.

Ce qui marche

  1. L'état d'attente comme pièce maîtresse : progression, phases nommées, temps restant estimé honnêtement, annulation serveur réelle, survie au rafraîchissement. « Peu de produits d'IA assument l'attente avec cette précision. »
  2. Le langage du métier assumé : XLIFF expliqué, avertissements glossaire précis, garde anti source = cible.
  3. Les garde-fous des gestes irréversibles : approbation en deux clics, confirmation avant paiement, confirmation de purge.

Problèmes prioritaires

  1. [P1] La zone de dépôt est muette au survol. Le premier geste du produit n'a aucun retour. → Afficher un contour doré et un léger agrandissement pendant le survol (translate/page.tsx:361).
  2. [P1] L'or des petits textes est illisible. #C5A17A sur crème ≈ 2,3:1, et des textes à 8,5-10 px partout. → Assombrir l'or des textes à #8B6F47, plancher 11 px (globals.css:196, ProviderSelector.tsx:201).
  3. [P2] « Tout approuver » sans progression. Sur 500 segments : 500 demandes enchaînées sans compteur ni arrêt. → Compteur dans le bouton + arrêt possible (reviews/[jobId]/page.tsx:151-168).
  4. [P2] Bouton bloqué sans raison quand source = cible. → Ajouter l'explication manquante (translate/page.tsx:617-622).
  5. [P2] Page Glossaires hors système + sélecteur de glossaire trop chargé. Couleurs brutes, pas d'en-tête commun ; dans le flux de traduction, le sélecteur empile 6 décisions (choix, filtre, avertissements, aperçu, ajout de terme). → Migrer la page aux couleurs du système ; réduire le sélecteur au choix + avertissements, l'ajout de terme derrière un lien dépliable (glossaries/page.tsx:107, GlossarySelector.tsx:578-614).

Drapeaux rouges par persona

Alex (expert pressé) : le raccourci Ctrl+Entrée n'est annoncé nulle part ; pas de filtre « à relire uniquement » sur 800 segments ; les icônes du pipeline et les libellés d'étapes suivent deux seuils contradictoires (translate/page.tsx:660 vs :42). Sam (accessibilité) : or clair illisible + micro-textes ; sévérité des avertissements glossaire portée par des émojis et la seule couleur ; le bandeau d'annonce de la page tarifs n'est pas lu aux lecteurs d'écran (contrairement aux notifications). Jordan (premier usage) : la mention légale à l'inscription n'est pas cliquable ; l'annulation réussie d'une traduction s'affiche en rouge comme une erreur ; membres d'équipe en codes illisibles.

Observations mineures

Restes de replis français codés en dur (translate/page.tsx:861,868,881) ; le lien tarifs de l'accueil construit l'adresse avec le nom traduit du plan (cassera le jour où le nom est traduit) ; l'accueil montre 3 plans, la page tarifs 5 sans le gratuit en haut ; « document réservé libéré » formulation opaque ; double barre de défilement dans la liste des langues ; page « Réglages » sans aucun réglage ; bouton d'échange de langues mort mais visible ; titres par défaut en Inter alors que la charte repose sur le serif posé à la main ; clé dupliquée preserveLayout.

Questions à se poser

  1. La grille tarifaire doit-elle vraiment montrer les 5 plans en même temps ? Free et Enterprise en lignes secondaires rendraient la décision binaire.
  2. Pourquoi l'ajout de termes existe-t-il à la fois dans le sélecteur de traduction ET dans la page glossaires ? Laquelle est la vraie maison du geste ?
  3. Que gagnerait l'écran d'attente à montrer le document lui-même, comme le dessin animé de l'accueil — une continuité entre la promesse et l'exécution ?