From 7380afb41965d32f83b44f7e5c84e5639afd8286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Fri, 2 Oct 2026 19:28:01 -0400 Subject: [PATCH] =?UTF-8?q?Dialogs=20=C2=B7=20a=20confirm=20or=20alert=20m?= =?UTF-8?q?essage=20names=20itself=20to=20assistive=20technology?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/overlays/dialogs.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/overlays/dialogs.rs b/src/overlays/dialogs.rs index b412fbe..a1f35f8 100644 --- a/src/overlays/dialogs.rs +++ b/src/overlays/dialogs.rs @@ -15,10 +15,18 @@ use crate::{ }; /// The row a message sits in: its severity's icon on a quiet disc, then the text. -fn said(severity: Option, message: SharedString, cx: &App) -> impl IntoElement { +fn said( + id: &ElementId, + severity: Option, + message: SharedString, + cx: &App, +) -> impl IntoElement { let theme = cx.theme(); let colors = &theme.colors; div() + .id((id.clone(), "said")) + .role(Role::Label) + .aria_label(message.clone()) .flex() .items_start() .gap_3() @@ -87,10 +95,11 @@ impl AlertDialog { impl RenderOnce for AlertDialog { fn render(self, _: &mut Window, cx: &mut App) -> impl IntoElement { let (ok, label) = ((self.id.clone(), "ok"), self.label); + let id = self.id.clone(); let on_close = self.on_close; Dialog::new(self.id, self.title, move |window, cx| on_close(window, cx)) .held() - .child(said(Some(self.severity), self.message, cx)) + .child(said(&id, Some(self.severity), self.message, cx)) .action(move |close| { Button::new(ok, label) .primary() @@ -159,7 +168,7 @@ impl RenderOnce for ConfirmDialog { let on_close = self.on_close; let cancel = i18n::text(cx, "dialog.cancel", &[]); Dialog::new(self.id, self.title, move |window, cx| on_close(window, cx)) - .child(said(None, self.message, cx)) + .child(said(&id, None, self.message, cx)) .action(move |close| { Button::new(cancel_id, cancel) .variant(ButtonVariant::Ghost)