Skip to content

[FEATURE] - Accessibility Inspector - Mark nodes and Find key common ancestors #9

@sancarn

Description

@sancarn

Imagine the following accessibility tree:

[Window] Advanced Text Editor - Untitled
|- [Pane] Editor Workspace
|  |- [Custom] Document View
|  |  |- [Text] Line 1: This is some sample text.
|  |  |- [Text] Line 2: It has multiple
|  |  |- [Text] Line 3: levels of indentation.
|  |  |- [Custom] Code Block (collapsed)
|  |     |- [Text] int main() {
|  |     |- [Text]   return 0;
|  |     |- [Text] }
|  |- [ScrollBar] Vertical Scroll Bar
|- [Pane] Side Panel
|  |- [TabControl] Tools
|  |  |- [TabPage] Project Explorer
|  |  |  |- [Tree] Files
|  |  |     |- [TreeItem] Source
|  |  |     |  |- [TreeItem] main.cpp
|  |  |     |  |- [TreeItem] utilities.h
|  |  |     |- [TreeItem] Resources
|  |  |        |- [TreeItem] images
|  |  |        |  |- [TreeItem] icon.png
|  |  |        |- [TreeItem] data.json
|  |  |- [TabPage] Outline View
|  |     |- [Tree] Functions and Classes
|  |        |- [TreeItem] MyClass
|  |        |  |- [TreeItem] MyMethod()
|  |        |- [TreeItem] GlobalFunction()
|  |- [Grouping] Find and Replace
|     |- [TextBox] Find what:
|     |- [TextBox] Replace with:
|     |- [Button] Find Next
|     |- [Button] Replace All
|- [MenuBar] Main Menu
|  |- [MenuItem] File
|  |  |- [MenuItem] New
|  |  |- [MenuItem] Open...
|  |  |- [MenuItem] Save As...
|  |  |- [MenuItem] Recent Files
|  |  |  |- [MenuItem] document1.txt
|  |  |  |- [MenuItem] project_report.md
|  |  |- [MenuItem] Exit
|  |- [MenuItem] Edit
|  |  |- [MenuItem] Undo
|  |  |- [MenuItem] Redo
|  |  |- [MenuItem] Select All
|  |  |- [MenuItem] Advanced
|  |     |- [MenuItem] Go to Line...
|  |     |- [MenuItem] Toggle Comment
|  |- [MenuItem] View
|  |  |- [MenuItem] Toolbars
|  |  |  |- [MenuItem] Standard Toolbar
|  |  |  |- [MenuItem] Formatting Toolbar
|  |  |- [MenuItem] Status Bar
|  |  |- [MenuItem] Zoom
|  |     |- [MenuItem] Zoom In
|  |     |- [MenuItem] Zoom Out
|  |     |- [MenuItem] Reset Zoom
|  |- [MenuItem] Help
|     |- [MenuItem] About Advanced Text Editor
|- [StatusBar] Application Status
   |- [Text] Ln 10, Col 5 | Modified | UTF-8
   |- [ProgressBar] Saving... (if applicable)

Say for instance you need access to all of

[Tree] Files
[TextBox] Find what:
[TextBox] Replace with:
[MenuItem] Reset Zoom
[MenuItem] Go to Line...

It is sometimes difficult top understand what are the key common ancestors, especially for useful for performance.

Image

For instance it would be useful to do:

let panel = Window.findFirst((el)=>el.role == "Pane" && el.name == "Side Panel")
let tree = panel.findFirst((el)=>el.role == "Tree")
let FAndR = panel.findFirst((el)=>el.role == "Grouping" && el.name == ...)
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions