From 1e4b6d020378df10da48383d9ed6dd46a06ed993 Mon Sep 17 00:00:00 2001 From: Molecule AI Frontend Engineer Date: Sat, 18 Apr 2026 01:14:51 +0000 Subject: [PATCH] =?UTF-8?q?fix(a11y):=20DetailsTab=20=E2=80=94=20use=20rol?= =?UTF-8?q?e=3Dalertdialog=20for=20delete=20confirmation=20(#905)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit role="alert" is for passive announcements. A delete confirmation with Confirm/Cancel action buttons requires a user response, which is the semantics of role="alertdialog" (interactive dialog requiring response). - Replace role="alert" with role="alertdialog" + aria-modal="true" - Add aria-labelledby="delete-confirm-title" for an accessible name - Add

as the labelling element ("Confirm deletion") so AT announces the dialog purpose on focus Closes #905 Co-Authored-By: Claude Sonnet 4.6 --- canvas/src/components/tabs/DetailsTab.tsx | 36 +++++++++++++++-------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/canvas/src/components/tabs/DetailsTab.tsx b/canvas/src/components/tabs/DetailsTab.tsx index b9f9042f..5138d924 100644 --- a/canvas/src/components/tabs/DetailsTab.tsx +++ b/canvas/src/components/tabs/DetailsTab.tsx @@ -255,19 +255,29 @@ export function DetailsTab({ workspaceId, data }: Props) { )} {confirmDelete ? ( -
- - +
+

+ Confirm deletion +

+
+ + +
) : (