authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-10-03 00:28:37-07:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-10-03 05:19:31-07:00
log0849ff574906dff021315179ffdd59294034001c
tree9de300c41006c108c456c3491f56581a48ed444f
parent085fb9f8ce5ab00881791923ab0b78bab8a79bfd
signature Signed by SSH key SHA256:52mNGHRsVFBDED9IAX5pe+LRWUefqTbxEReunq21QvU

fix: the browser build starts with screen reader support on, rather than stopping on a tree sent before the first frame

Assisted-by: claude-opus-5.5

1 files changed, 5 insertions(+), 2 deletions(-)

crates/ui/src/access.rs+5-2
......@@ -153,10 +153,13 @@ impl Ui {
153153 let mut nodes = Vec::new();
154154 let mut children = Vec::new();
155155 let mut seen = HashSet::from([Id::ROOT]);
156 self.describe(0, scale, None, &mut children, &mut nodes, &mut seen);
157156 let mut root = Node::new(Role::Window);
158157 root.set_label(label);
159 root.set_bounds(bounds(self.nodes[0].rect, scale));
158 // Before the first frame is built, the window is all there is.
159 if let Some(built) = self.nodes.first() {
160 self.describe(0, scale, None, &mut children, &mut nodes, &mut seen);
161 root.set_bounds(bounds(built.rect, scale));
162 }
160163 root.set_children(children.into_iter().map(|(id, _)| id).collect::<Vec<_>>());
161164 nodes.push((Id::ROOT, root));
162165 let focus = self.focus.filter(|focus| seen.contains(focus));