fix(ui): design critique overhaul — a11y, honest metrics, i18n repair (critique 2026-08-30)
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m51s
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m51s
P0 a11y: keyboard-accessible dropzone (role/tabIndex/Enter-Space), ARIA combobox + listbox pattern for language selector, role=switch on glossary toggle, role=status live region on notifications, aria-labels on password toggles, visible-on-focus close buttons, RTL logical positioning (start-*). Trust: third-party Memento promo removed from translate page, sidebar and all 13 locales; fabricated stats (99.9%, Turbo, computed layout-integrity bars) replaced with real measurements incl. API estimated remaining time; silent download failure now surfaces an error notification. Honesty: fake 100-byte file injections removed (format chips are now informational); cancel-that-doesn't renamed 'Back to start' with hint; Enterprise contact placeholder replaced with contact@wordly.art. i18n: t() no longer returns raw keys (empty string + defaultValue support, ~30 dead || fallbacks now work); ~170 new keys EN+FR across new reviews/ teams namespaces, glossaries context tab, translate monitor, settings, services, pricing, landing, fileUploader; split-key italic titles replace lastIndexOf() surgery (zh/ja-safe); key-audit script added 0 missing. Flow: active job persisted across refresh with polling resume (24h TTL); client-side recent-jobs history with review links; review page linked from complete state; settings/services added to dashboard nav; Business/ Enterprise regain glossary access (tier gate unified). Typeset (sober-tool direction): 7.5-9px labels raised to 10-12px, /30 opacity to /45-/55, uppercase tracking reduced, trust footer legible, country flags removed from language switcher, localized dates. Cleanup: 5 orphaned translate components, dead site header/footer, fossil tailwind.config.js, PipelineStepper, duplicate pill+H1 titles, two-step confirm for cache clear, dead landing footer links. Verified: next build exit 0, vitest 9/9, eslint 64 errors = HEAD (no regression, -3 warnings), detector 4 -> 3 findings.
This commit is contained in:
@@ -89,5 +89,25 @@
|
||||
"translate.preserveLayoutDesc": "Conserver la mise en page",
|
||||
"translate.textOnly": "Texte brut",
|
||||
"translate.textOnlyDesc": "Traduction rapide du texte uniquement",
|
||||
"translate.unavailableStandard": "Indisponible en mode Standard (IA uniquement)"
|
||||
"translate.unavailableStandard": "Indisponible en mode Standard (IA uniquement)",
|
||||
"translate.header.aiActiveTitle": "Analyse IA",
|
||||
"translate.header.aiActiveAccent": "active",
|
||||
"translate.header.completedTitleBase": "Traduction",
|
||||
"translate.header.completedTitleAccent": "terminée",
|
||||
"translate.header.translateDocBase": "Traduire",
|
||||
"translate.header.translateDocAccent": "un document",
|
||||
"translate.header.workspace": "Espace de traduction",
|
||||
"translate.monitor.source": "Source",
|
||||
"translate.monitor.target": "Cible",
|
||||
"translate.monitor.engine": "Moteur",
|
||||
"translate.stat.progress": "progression",
|
||||
"translate.stat.remaining": "temps restant",
|
||||
"translate.stat.elapsed": "temps écoulé",
|
||||
"translate.leaveScreen": "Revenir à l'accueil",
|
||||
"translate.leaveScreenHint": "La traduction continue en arrière-plan.",
|
||||
"translate.reviewCta": "Relire segment par segment",
|
||||
"translate.downloadFailed": "Le téléchargement a échoué. Réessayez.",
|
||||
"translate.recent.title": "Traductions récentes",
|
||||
"translate.recent.review": "Relire",
|
||||
"translate.upload.ariaDropzone": "Déposer un document : glisser-déposer ou appuyer sur Entrée pour parcourir"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user