From 8b54f48afd26c3d2ece3ae1031c1acb34cfd68b2 Mon Sep 17 00:00:00 2001 From: Simone Cavalli Date: Sat, 22 Aug 2026 14:27:39 +0200 Subject: [PATCH] a11y(portale): la pill di stato non ripete quello che lo screen reader ha gia' sentito MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit L'icona porta gia' uno sr-only con lo stato esteso, su tutti e quattro gli stati. Senza aria-hidden sulla pill, i due che ce l'hanno venivano annunciati due volte: "In corso — ci stiamo lavorando noi", titolo, "In corso". La pill e' ridondanza *visiva*, che e' esattamente cio' che chiede il design system; per l'assistive tech e' rumore. Co-Authored-By: Claude Opus 5 --- src/components/client/TaskStatusIndicator.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/client/TaskStatusIndicator.tsx b/src/components/client/TaskStatusIndicator.tsx index 5c18137..2ebdd46 100644 --- a/src/components/client/TaskStatusIndicator.tsx +++ b/src/components/client/TaskStatusIndicator.tsx @@ -111,13 +111,20 @@ export function TaskStatusIcon({ status }: { status: TaskStatus }) { ); } -/** Etichetta di testo. Nulla per "da fare" e "fatto", che si leggono da soli. */ +/** + * Etichetta di testo. Nulla per "da fare" e "fatto", che si leggono da soli. + * + * `aria-hidden` perché è ridondanza *visiva*: allo screen reader lo stato lo dice già + * lo `sr-only` dell'icona, su tutti e quattro gli stati. Senza questo, i due che hanno + * la pill verrebbero annunciati due volte. + */ export function TaskStatusPill({ status }: { status: TaskStatus }) { const v = TASK_STATUS_VISUALS[status]; if (!v.pill) return null; return (