New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Factor out core AT-SPI translation layer #352
Conversation
…on for tree traversal
…ng platform nodes for the root's children
…ow that this interface is public
be19183
to
c33fb71
Compare
…ly by the Newton AT-SPI compat library
I don't expect to make any major changes to the |
…unct` for that. Both still translate to "unknown object" in D-Bus.
… doing pointer comparison on weak references.
Now I'm ready to show what I'm doing with this refactor. Note that the new GNOME accessibility stack is code-named Newton. See this repository with a newton_atspi_compat crate and a Python binding on top: https://gitlab.gnome.org/mwcampbell/newton_atspi_compat and this proof-of-concept Orca modification that uses the Python module: https://gitlab.gnome.org/mwcampbell/orca/tree/newton It's still kind of a mess. I might be doing too much directly in the Python binding. And I do have to write a lot of conditionals in Orca, mostly because Orca is hard-coded to call functions on |
Co-authored-by: Arnold Loubriat <datatriny@gmail.com>
…on_atspi_compat Python package
As soon as I add support for the action and component interfaces to the new "simplified" API I just pushed, I will be done adding things to this PR. |
…implement) to the simplified API
I don't plan to add or change any more in this PR. Once it passes review, I'm ready to merge it. I wonder, though, if we should classify this as a |
I guess the correct way would have been to make all the changes to |
Yes, but then accesskit_unix would have been broken on the main branch in the meantime, leading to failing CI. I'm not sure that release-please really gives us a good option here. |
I do have a breaking change in mind for |
I don't see why this would have broken |
Oh, you're right, of course. Then I can still pull the accesskit_unix changes out into a separate PR. |
Doing it in two steps would also make it a bit simpler for me to rebase my |
Then I'll back out the accesskit_unix changes in this PR, and open the second one when this PR is merged. Before I do that, do you have any feedback about the design as a whole (that would require me to change both sides at once)? |
I think you already addressed my concerns. The last remaining one would be from an outsider point of view: we know the dependency count of |
It bothers me that Bevy isn't enabling the Unix adapter by default. But I can't let perceptions related to dependency count and binary size dictate all design decisions, especially when it comes to adding just one small crate. Anyway, once Newton is stabilized, the accesskit_unix adapter could let users disable AT-SPI and only enable Newton via features, thus eliminating the dependency on zbus. |
OK, the changes to accesskit_unix are now in the unix-use-atspi-common branch, which I'll squash and rebase once this is merged. |
Oh, one final comment but it's not a blocker: I wonder if the |
I agree it's not ideal, but nothing better immediately comes to mind. We can always move it later without breaking anything user-visible. Are we ready to merge this first PR? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Congratulations on this first one!
This will allow us to re-use the logic for translating between AccessKit and AT-SPI, in both the current Unix adapter and a new client-side library (for ATs like Orca) that is being developed as part of the new GNOME accessibility stack.