Add collections support to AccessKit atspi - #758
Draft
JasonTheKitten wants to merge 4 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hello,
I made a fork of AccessKit that includes support for collections in Atspi, needed for Orca Browsing Mode to work properly.
I'm marking this as a Draft PR, because it's not really polished to merge.
It adds the Collection interface with the following four methods:
The collection interface binding (as well as some atspi shim code) lives in
adapters/unix/src/atspi/interfaces/collection.rs.The actual matching logic is in a dedicated file called
adapters/atspi-common/src/node_matcher.rs.GetMatchesTo and GetMatchesFrom pass a direct object reference (instead of an index) over dbus. I couldn't figure out how existing code handled that, so I did add a helper utility (
object_util.rs) to help with that; feel free to replace it with whatever your native method for doing this is.There's a few reasons why I'm submitting this as a draft PR:
Just figured I'd put my work here in case it is useful, could serve as reference if you decide to implement it differently.