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.
6.8 KiB
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
- 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. »
- Le langage du métier assumé : XLIFF expliqué, avertissements glossaire précis, garde anti source = cible.
- Les garde-fous des gestes irréversibles : approbation en deux clics, confirmation avant paiement, confirmation de purge.
Problèmes prioritaires
- [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). - [P1] L'or des petits textes est illisible.
#C5A17Asur 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). - [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). - [P2] Bouton bloqué sans raison quand source = cible. → Ajouter l'explication manquante (
translate/page.tsx:617-622). - [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
- 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.
- 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 ?
- 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 ?