From 3886713b6d49ddaf2770769ee2d0bbd96b2a65ff Mon Sep 17 00:00:00 2001 From: Molecule AI Core-FE Date: Mon, 11 May 2026 03:46:35 +0000 Subject: [PATCH] fix(canvas/a11y): expose WsStatusPill status text to screen readers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removed aria-hidden="true" from the "Live" / "Reconnecting" / "Offline" text spans and the redundant aria-label from the container div. Previously the component used aria-label="Real-time updates: connected" on the outer div with aria-hidden on the inner text — screen readers announced the label but the visible text was hidden. Now the text itself is accessible: "Live", "Reconnecting", "Offline" are announced directly. The decorative dot keeps aria-hidden since it is purely decorative and the title attribute provides hover tooltip context. Co-Authored-By: Claude Opus 4.7 --- canvas/src/components/Toolbar.tsx | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/canvas/src/components/Toolbar.tsx b/canvas/src/components/Toolbar.tsx index 1dab7f36..c9b3f976 100644 --- a/canvas/src/components/Toolbar.tsx +++ b/canvas/src/components/Toolbar.tsx @@ -405,24 +405,30 @@ function StatusPill({ color, count, label }: { color: string; count: number; lab function WsStatusPill({ status }: { status: "connected" | "connecting" | "disconnected" }) { if (status === "connected") { return ( -
+
+ {/* Decorative dot — not meaningful content for screen readers */} ); } if (status === "connecting") { return ( -
+
+ {/* Decorative dot — not meaningful content for screen readers */} ); } return ( -
+
+ {/* Decorative dot — not meaningful content for screen readers */} ); }