egui/crates
Lucas Meurer 3fdc5641aa
Group AccessKit nodes by `Ui` (#7386)
* closes https://github.com/emilk/egui/issues/5674

This changes egui to create an AccessKit node for each `Ui`. I'm not
sure if this alone will directly improve accessibility, but it should
make it easier to create the correct parent / child relations (e.g.
grouping menus as children of menu buttons).
Instead of having a global stack of parent ids, they are now passed via
a parent_id field in `UiBuilder`.

If having all these `GenericContainer` nodes somehow is bad for
accessibility, the PR could also be changed to only create nodes if
there is actually some accessibility info with it (the relevant is
currently commented-out in the PR). But I think screen readers should
just ignore these nodes, so it should be fine? We could also use this as
motivation to git red of some unnecessary wrapped `Ui`s, e.g.
CentralPanel creates 3 Uis when 2 should be enough (the initial Ui and a
Frame, maybe we could even only show the `Frame` if we can give it an
UiBuilder and somehow show the Frame with `Ui::new`).

Here is a screenshot from the accessibility inspector
(https://github.com/emilk/egui/pull/7368) with this PR:

<img width="431" height="744" alt="Screenshot 2025-07-24 at 12 09 55"
src="https://github.com/user-attachments/assets/6c4e5ff6-5c38-450e-9500-0776c9018d8c"
/>

Without this PR:


https://github.com/user-attachments/assets/270e32fc-9c7a-4dad-8c90-7638c487a602
2025-10-08 11:30:32 +02:00
..
ecolor Use more workspace dependencies (#7596) 2025-10-07 15:07:16 +02:00
eframe Create `egui_wgpu::RendererOptions` (#7601) 2025-10-07 17:06:23 +02:00
egui Group AccessKit nodes by `Ui` (#7386) 2025-10-08 11:30:32 +02:00
egui-wgpu Create `egui_wgpu::RendererOptions` (#7601) 2025-10-07 17:06:23 +02:00
egui-winit Inline log format args (#7600) 2025-10-07 16:14:43 +02:00
egui_demo_app Group AccessKit nodes by `Ui` (#7386) 2025-10-08 11:30:32 +02:00
egui_demo_lib Add kittest snapshot test of italics (#7603) 2025-10-07 17:22:31 +02:00
egui_extras Use more workspace dependencies (#7596) 2025-10-07 15:07:16 +02:00
egui_glow Inline log format args (#7600) 2025-10-07 16:14:43 +02:00
egui_kittest Group AccessKit nodes by `Ui` (#7386) 2025-10-08 11:30:32 +02:00
egui_plot Move `egui_plot` to its own repo (#4828) 2024-07-15 18:45:19 +02:00
egui_web Rename `master` branch to `main` (#7034) 2025-05-08 09:15:42 +02:00
emath Use more workspace dependencies (#7596) 2025-10-07 15:07:16 +02:00
epaint Use more workspace dependencies (#7596) 2025-10-07 15:07:16 +02:00
epaint_default_fonts 0.32.3 release: Bump version numbers and update changelog (#7536) 2025-09-12 08:18:19 +02:00