An inspection tool for Chrome Automation API
The Chrome Automation API is an experimental accessibility API that allows developers to access the automation tree and events for the browser. The tree resembles the DOM tree, but only exposes the semantic structure of a page. It can be used to programmatically interact with a page by examining names, roles, and states, listening for events, and performing actions on nodes.
One of Chrome Automation's main purposes is to enable the development of assistive technologies written in JavaScript, for Chrome OS. This is similar to how MSAA, IA2 and UIA are used on Windows, and AX Accessibility is used for OS X. It can also be used by extensions, but because it is experimental, it is currently available only on the dev channel and to internal assistive technologies such as ChromeVox.
Automation Inspector is used to exercise the Automation API, to inspect the entire Chrome OS desktop, or to inspect a specific browser tab.
This tool is mainly useful for the following types of people:
- Developers/QA working on Chrome accessibility support
- Developers/QA working on assistive technologies for Chrome OS
- Developers/QA working on accessibility of web applications looking (less so)
- Chrome OS desktop: to inspect the Chrome OS desktop, you must switch your Chrome OS to the Dev Channel, and then install Automation Inspector as an app (insert link here).
- Chrome tabs: you can inspect individual browser tabs on any OS. To do this, install Google Chrome Canary and then install Automation Inspector as an extension (insert link here).
The first time you build, do an npm install
This will automatically run bower install
for you.
If you want to update the dependencies, use npm update && bower update
Next, type the following from the command line in the automation-inspector folder:
grunt
to build once, or:
grunt default watch
to keep the build updated as source files change.
Using developer mode from the Chrome extensions page at chrome://extensions
,
use the load unpacked extension feature, pointing it at the
build/extension
folder.
Update the version number via:
npm version patch
, npm version minor
or npm version major
and
grunt default compress
to create app.zip and extension.zip for uploading to
the Chrome web store in the build/package
folder.
The find field is very powerful, and can be used in a number of ways:
- Plain text search: this will search rows for the visible text shown. This can be slow on complex pages, it it will cause the entire page to be loaded a bit at a time.
/RegEx/
search: include slashes to search for rows with matching visible text. Slow on complex pages (similiar to plain text search).${selector}
: use jQuery-like format, which is a CSS selector wrapped inside $(), to find a node matching a given selector. This will currently return only the first item. This method uses the Automation API's domQuerySelector method. For example, use$('#my-special-element')
to find the nearest automation node to that element.{JSON FindParams}
: this executes the Automation API's findAll method with syntax similar to FindParams. However, this method accepts valid JSON syntax only. You must provide strings rather than constants. For example, use{ "state" : {"disabled": true }}
rather than{ state: { StateType.disabled: true }}
.