Worth noting that, like many immediate mode UIs, it seems to not integrate with OS accessibility infrastructure at all. That means any UI built with it will be a black box to anyone who needs accessibility tools like VoiceOver, text magnification, or semantic navigation.
It should be. There's AccessKit integration in egui (the most prominent Rust immediate mode GUI implementation) now, thanks to Matt Campbell's work. I would welcome GPUI and Zed adopting that, and I'm sure Matt can offer help in getting it integrated.
Zed developer here, I've actually looked at how to implement AccessKit in Zed, though I couldn't find a quick way of jumping into it beyond 'read the egui PR' at the time. If anyone wants to take a stab at it I'd love to help out and make it happen :)
Hi, lead AccessKit developer here. Sorry I haven't written much documentation yet. For now, the best way to learn how to use it is indeed to study the egui PR.
It is, Flutter (which also draws all the UI on a canvas) already does that - it’s called AccessibilityBridge. The way it works is they hook into the native accessibility system and create virtual accessibility nodes with the same size and coordinates where the “widgets” are drawn.
I think it’d be useful to create some common AccessibilityBridge-like library since more and more UI frameworks are taking the same approach as Flutter and GPUI.
we absolutely want to make accessibility work – hopefully open source will give us a bit more wiggle room to have folks help us figure some of it out as well.
Hopefully that's fixable :/