From 403fe63db86cee128c2003f735d6a9f9973daeba Mon Sep 17 00:00:00 2001 From: Molecule AI Frontend Engineer Date: Sat, 18 Apr 2026 01:13:56 +0000 Subject: [PATCH] =?UTF-8?q?fix(a11y):=20MemoryTab=20=E2=80=94=20role=3Dale?= =?UTF-8?q?rt,=20labelled=20inputs,=20aria-expanded=20(#902)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add role="alert" to the global error banner and the inline add-form error message so screen readers announce errors immediately on render - Add aria-label to all three add-form inputs (key / value / TTL) so every form control has an accessible name (was flagged as unlabelled) - Add aria-expanded={expanded === entry.key} to each entry toggle button so AT announces collapsed/expanded state on activation Closes #902 Co-Authored-By: Claude Sonnet 4.6 --- canvas/src/components/tabs/MemoryTab.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/canvas/src/components/tabs/MemoryTab.tsx b/canvas/src/components/tabs/MemoryTab.tsx index fa70faa5..721e0d8a 100644 --- a/canvas/src/components/tabs/MemoryTab.tsx +++ b/canvas/src/components/tabs/MemoryTab.tsx @@ -120,7 +120,7 @@ export function MemoryTab({ workspaceId }: Props) { return (
{error && !showAdd && ( -
+
{error}
)} @@ -233,6 +233,7 @@ export function MemoryTab({ workspaceId }: Props) { value={newKey} onChange={(e) => setNewKey(e.target.value)} placeholder="Key" + aria-label="Memory key" className="w-full bg-zinc-900 border border-zinc-600 rounded px-2 py-1 text-xs text-zinc-100 focus:outline-none focus:border-blue-500" />