From 8bccbf2f356e4bb2a55e07f1eb3aa9ef9d214d09 Mon Sep 17 00:00:00 2001 From: dotCooCoo Date: Sat, 31 Oct 2026 23:01:22 -0700 Subject: [PATCH] Accessibility: Tab no longer stops on the Simplify and Smooth sliders' backdrop The backdrop that takes a click outside the slider strip sensed clicks with Sense::click(), which egui makes focusable, so Tab stopped on an invisible full-screen widget. It now uses Sense::CLICK, as the modal dialog backdrop does; a click outside the strip still keeps the result. --- crates/ui-egui/src/dialogs/simplify_slider.rs | 3 ++- crates/ui-egui/src/dialogs/tests_modal.rs | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/crates/ui-egui/src/dialogs/simplify_slider.rs b/crates/ui-egui/src/dialogs/simplify_slider.rs index cf3866018..820ab9af9 100644 --- a/crates/ui-egui/src/dialogs/simplify_slider.rs +++ b/crates/ui-egui/src/dialogs/simplify_slider.rs @@ -103,9 +103,10 @@ impl Strip { let b = bounds(app, &mut d); let pos = place(app, ctx, id, b); // A click anywhere else keeps the result, and the rest of the app doesn't take it. + // Not focusable (`Sense::click()` is): Tab goes through the strip's controls, not the backdrop. let dim = modal::backdrop(); let outside = - egui::Area::new(dim.id).order(dim.order).fixed_pos(Pos2::ZERO).show(ctx, |ui| ui.allocate_rect(ctx.content_rect(), Sense::click())).inner; + egui::Area::new(dim.id).order(dim.order).fixed_pos(Pos2::ZERO).show(ctx, |ui| ui.allocate_rect(ctx.content_rect(), Sense::CLICK)).inner; let mut action: Option