• Public
  • Public/Protected
  • All

The Accessibility class provides methods for inspecting Chromium's accessibility tree. The accessibility tree is used by assistive technology such as screen readers or switches.

Accessibility is a very platform-specific thing. On different platforms, there are different screen readers that might have wildly different output.

Blink - Chrome's rendering engine - has a concept of "accessibility tree", which is than translated into different platform-specific APIs. Accessibility namespace gives users access to the Blink Accessibility Tree.

Most of the accessibility tree gets filtered out when converting from Blink AX Tree to Platform-specific AX-Tree or by assistive technologies themselves. By default, Puppeteer tries to approximate this filtering, exposing only the "interesting" nodes of the tree.


  • _PlatformObjBinding
    • Accessibility





  • Captures the current state of the accessibility tree. The returned object represents the root accessible node of the page.

    NOTE The Chromium accessibility tree contains nodes that go unused on most platforms and by most screen readers. Puppeteer will discard them as well for an easier to process tree, unless interestingOnly is set to false.

    An example of dumping the entire accessibility tree:

    const snapshot = await page.accessibility.snapshot();

    An example of logging the focused node's name:

    const snapshot = await page.accessibility.snapshot();
    const node = findFocusedNode(snapshot);
    page.meta.log(node && node.name);
    function findFocusedNode(node) {
    if (node.focused)
    return node;
    for (const child of node.children || []) {
    const foundNode = findFocusedNode(child);
    return foundNode;
    return null;


    Returns Promise<AXNode>