Add support for client-specified predicate in AtspiCollection
For structural navigation, Orca retrieves all the objects via AtspiCollection, but then sometimes has to examine all of the objects retrieved to filter out things we could not identify via the match rule.
Examples:
- We can get all the tables in a document via role in the match rule, but we want to then eliminate any tables whose row count is 0.
- We can get all the paragraphs in a document via role in the match rule, but then we want to eliminate any with fewer than x number of characters.
- We can get all the unvisited links via role + state in the match rule, but then we want to filter out those which lack state focusable.
- There are some additional cases where what we filter out is script-defined and may vary by application.
I think it would be great if we could eliminate the second pass Orca is performing and just accept the final result we get via AtspiCollection.