These cli tools are designed to help to debug accessibility problems in applications, primarily in web browsers.
ax_dump_tree to show the accessibility tree of an applicationax_dump_events to watch accessibility events fired by applicationTo build the tools, run:
autoninja -C out/Default ax_dump_tree ax_dump_events
The command generates ax_dump_tree and ax_dump_events executables in out/Default directory.
To use the tools:
ax_dump_tree <options>. To view accessibility events fired by application, run ax_dump_events <options>. Both tools will output information into the console.A selector is needed to specify the application you wish to inspect.
The following flags can be used to specify a web browser:
--chrome for Chrome browser--chromium for Chromium browser--firefox for Firefox browser--edge for Edge browser (Windows only)--safari for Safari browser (Mac only)You may pass in --active-tab when using any of the browser selectors above to dump the tree of active (current) tab. Otherwise, trees from all tabs will be dumped.
You can specify an application by its title: ax_dump_tree --pattern=title. The pattern string can contain wildcards like * and ?. Note, you can use the --pattern selector in conjunction with pre-defined browser selectors.
Alternatively, you can dump a tree by HWND on Windows: --pid=HWND Note, to use a hex window handle prefix it with 0x.
Or by application PID on Mac and Linux: --pid=process_id
By default, the accessibility tree output is filtered to show a specific set of properties. To control which properties are included or excluded, use the --filters option.
--filters option, specifying the full path to your filter file:--filters=absolute_path_to_filters.txt
@ALLOW:property_name: Include the property only if it has a non-empty value.@ALLOW-EMPTY:property_name: Include the property even if it has an empty value.@DENY:property_name: Exclude the property.@ALLOW:AXARIALive: Include the AXARIALive attribute in the tree.@ALLOW:*: Include all properties in the tree.See example-tree-filters.txt in tools/accessibility/inspect for more examples.
On windows, we support two accessibility APIs, IAccessible2 and UI Automation. By default, IA2 is selected.
To dump a tree with IAccessible2:
--api=ia2
To dump a tree with UI Automation:
--api=uia
--help for help
To dump an Edge accessible tree on Windows: out\Default\ax_dump_tree --edge
To dump an accessible tree on Mac for a Firefox window with title containing mozilla: out/Default/ax_dump_tree --firefox --pattern=*mozilla*
To watch Chromium accessibility events on Linux: out/Default/ax_dump_events --chromium
You may be required to enable accessibility on your system so that accessibility tree/events are generated. Depending on the application, you may also be required to run an assistive technology, like a screen reader, or use an application-specific runtime flag in order to activate accessibility application-wide.
Turn on Accessibility for Terminal in Security & Privacy System Preferences.
Start VoiceOver (CMD+F5) or if your application has a specific flag/preference to turn on accessibility, use that instead.
Use Orca or use the application specific flag/preference to turn on accessibility.
Use Narrator/NVDA/JAWS or use the application specific flag/preference to turn on accessibility.
To enable accessibility for Chrome/Chromium, launch chrome with the run time flag --force-renderer-accessibility. For example, on Mac, the full command would be Chromium.app/Contents/MacOS/Chromium --force-renderer-accessibility.