Why a screenshot is not enough
Not a smaller reason than the one that shaped Diwall — a stronger one. Three things a picture would have hidden, and why the text-only view Dinoer chose instead has a real blind spot of its own, stated rather than ignored.
Giving a model a screenshot feels like giving it eyes. It is closer to handing someone a photograph of a room and asking them to open the third drawer. Dinoer’s answer was not to give a better photograph — it was to stop producing one at all, in any mode, for any reason.
One — what an element is, and where it goes
On a screenshot, a link and a button styled identically are identical. So are a disabled control and an enabled one, when the design chose a subtle grey.
The page knows the difference. link "Learn more" /url: https://… states
the role and the destination — before anything is clicked. No amount of
looking at pixels recovers that. This is the core reason Dinoer reads
structure instead of rendering it: the information a click actually needs
was never visual to begin with. The accessibility tree →
Two — what is in the page but not rendered
A <dialog> that has not been opened exists in the document. Its buttons are
real and addressable, and invisible to anyone reasoning from a picture. A
collapsed menu holds its links; a tab panel holds its content.
This is not solved by reading text instead of pixels — it is a real,
shared blind spot. This site’s own homepage, during development, proved it
against its own author: a native <details> menu was closed, and the
accessibility tree reported a group with nothing readable inside it — the
same absence a screenshot would have shown, just cheaper to produce. What
decides is whether an element is rendered, not whether it is present in
either representation, and neither one has a visual or textual way to flag
the difference on its own.
Three — whether the target is still the target
A screenshot is a moment. Between the moment it is taken and the moment an action runs, a banner can close, a modal can open, a list can gain rows. Anything identified by its position in that moment has silently moved — the most common way an automated click lands on the wrong element while reporting success.
Dinoer never identifies anything by position at all — every action names a CSS selector, which targets by identity rather than by where something sat on a page that no longer exists by the time the click runs. That does not make selectors immune to drift (a selector can match a different element after a DOM change too), but it removes one entire failure mode a position-based approach carries by construction.
So what is there for you to look at
Nothing, deliberately.
If you need to see the page the way a person would, open it — the same unmodified browser Dinoer drives is already on the machine. What Dinoer returns is not a smaller version of a picture; it is a different kind of answer, built for deciding what to read or act on next, not for looking at.
In short
- Roles and destinations have no visual form — the core reason to read structure instead of rendering it.
- Present in the document is not the same as rendered, in text or in an image — a real shared limit, not solved by going textual.
- Selectors target by identity, not position — removing one failure mode a numbered overlay would have carried.
- There is no picture, for the model or for you. Open the page yourself if you need one.