Out of curiosity, what made you choose to design AccessKit around an internal tree shadowing the UI, instead of as a synchronous API over an existing widget/text node/... tree?
The synchronous approach has some drawbacks (e.g. I'm not sure how well it would integrate with immediate-mode UIs like egui), but does have some major advantages:
- The ability to request details as required, instead of requiring all possible details (down to the level of glyph positions) ahead-of-time
- Support test-driven-development: users may write
todo!() impls and fill these in as required.
- The ability to build a shadow tree (like AccessKit's current API) as an external adapter over the synchronous API. (The reverse is not possible.)
Out of curiosity, what made you choose to design AccessKit around an internal tree shadowing the UI, instead of as a synchronous API over an existing widget/text node/... tree?
The synchronous approach has some drawbacks (e.g. I'm not sure how well it would integrate with immediate-mode UIs like egui), but does have some major advantages:
todo!()impls and fill these in as required.