Dinoer

The accessibility tree

The page as text, built by the browser itself for screen readers. For many tasks it is the only view Dinoer needs to return.

Alongside the page it displays, every browser builds a tree of roles and names for assistive technologies. A screen reader uses it to say “button, Sign in” instead of describing pixels.

Dinoer does not invent this tree: it is already there, on every page. It is the main way Dinoer reads a page.

What it looks like

/opt/dinoer/venv/bin/python3 /opt/dinoer/shot.py \
  --url https://example.com --a11y --guide-version 1.6
- heading "Example Domain" [level=1]
- paragraph: This domain is for use in documentation examples without needing permission. Avoid use in operations.
- paragraph:
  - link "Learn more":
    - /url: https://iana.org/domains/example

--a11y returns this tree. Chromium loads and lays out the page, but no image is produced, and there is no faster mode to switch on: this is simply how Dinoer reads a page.

What it carries that raw HTML buries

Roles. heading [level=1], link, and on a form, textbox, combobox, button. Not “a rectangle with rounded corners”, but what the element is.

Destinations. link "Learn more" followed by /url:: where the link goes, before anyone clicks.

Structure. What sits inside what, without the hundreds of layout <div> elements that the eye ignores and a token budget cannot.

It is often enough on its own

The tree is enough for a whole class of work: finding a text or a heading, following links (every href is there), checking that an element is present, understanding how a page is organised. extraire_texte takes over when the structure no longer matters and only the text does. The two views side by side →

A canvas or a clickable image without an accessible label gives the tree nothing to show, and Dinoer has nothing to fall back on. What perception does not reach →

Why this matters beyond Dinoer

The same markup (real buttons, real headings, labelled fields) builds a tree that a screen reader and an agent can both use, and gives search engines the same structure. A page whose buttons are styled <div> elements is opaque to all of them at once. Whoever writes the page decides whether that structure exists.

In short

  • The browser builds this tree on every page, for assistive technologies.
  • It carries roles, destinations and structure, as text.
  • --a11y returns it; no image is ever produced.
  • Without an accessible representation there is no fallback: use extraire_texte for prose, and accept the limit where neither helps.