---
title: Get Accessibility Tree
description: Get visible interactive and semantic elements from the opened page
---

List the buttons, links, form fields and other controls you can see on the active tab, with a name and a selector for each.

## What it does

Get Accessibility Tree scans the active tab (or the part inside **DOM Selector**) for elements a person can interact with: links, buttons, inputs, lists, text areas, expandable sections, and anything the page marks with a role. It keeps only the ones that are **visible** on the page, and returns one item per element.

For each element you get:

* `role`: what it is, such as `link`, `button`, `textbox`, `checkbox`, `combobox` or `slider`.
* `name`: the label a screen reader would use (its label, title or text).
* `text`: its visible text.
* `selector`: a selector you can pass to other page nodes to act on it.
* `disabled`, and when relevant `checked`, `selected` and `expanded`.
* `boundingBox`: its position and size.

## When to use it

* Give an AI model a compact map of what can be clicked or filled on a page, instead of the full HTML.
* Find the selector of a button or field, then click it with [UI Automation](/nodes/extension/ui/automation/) or fill it with [Form Fill](/nodes/extension/ui/form-fill/).
* Quickly check a page for unlabeled buttons or links (an empty `name`).

## Inputs and settings

Leave **DOM Selector** empty to scan the whole page. To limit the scan to one area (a dialog, a sidebar), click the crosshair button in the field and click that area, or type a CSS selector.

## Outputs

Each run returns a list of items with these fields:

```json title="Shape of an output item"
[
  {
    "selector": "…",
    "tagName": "…",
    "role": "…",
    "name": "…",
    "text": "…",
    "disabled": true,
    "checked": true,
    "selected": true,
    "expanded": true,
    "boundingBox": {}
  }
]
```

Each element is one item, so the next node runs once per element. To give the whole list to an AI node in one go, first combine the items with [Aggregate](/nodes/builtin/datatransformation/aggregate/).

## Dependencies and credentials

None. This node needs no connection and has no slots for other nodes.

## Example workflow

1. Run the workflow from a [Hotkey](/nodes/builtin/trigger/hotkey/) trigger on the page you want to explore.
2. Add **Get Accessibility Tree** with **DOM Selector** empty.
3. Add [Filter](/nodes/builtin/flow/filter/) to keep items where `{{ $input.role }}` equals `button`.
4. Combine the buttons into one item with [Aggregate](/nodes/builtin/datatransformation/aggregate/), then show it with [Display Object](/nodes/extension/displayobject/) to see every button's name and selector.

## Common issues

* **The output is empty.** Nothing visible and interactive was found, or **DOM Selector** matched nothing. Wait for the page to finish loading, or check the selector with **Ping**.
* **A control you can see is missing.** It may be inside an embedded frame (not scanned), or built from plain elements without a role, which the page gives no hint about.
* **Elements in a closed menu or another tab of the page are missing.** Hidden elements are skipped on purpose. Open the menu first, for example with [UI Automation](/nodes/extension/ui/automation/).
* **The node fails outside the extension.** This node runs in the browser extension; install it or run the workflow from the extension.

## Related nodes

* [Get Element Data](/nodes/extension/getelementdata/): full details of one element.
* [Get Forms Schema](/nodes/extension/getformsschema/): every field of a form, with its options.
* [UI Automation](/nodes/extension/ui/automation/): click, type and select using the selectors found here.