Form backend actionability
What it checks
Autonomous agents fill forms by reading the DOM directly — they cannot see placeholders rendered visually or guess what a custom div-based widget expects. Fields without a native element, an explicit label (label[for], wrapping label, aria-label, or aria-labelledby), or a standard autocomplete attribute for identity data (email, phone, name, address) force agents to guess, producing failed or incorrect submissions. Keep every fillable field a native input/select/textarea with an explicit label and standard autocomplete tokens.
Why it matters
Agents that act on a page through its accessibility tree identify a field by its accessible name, computed from <label>, aria-label or aria-labelledby. A fillable control that is not a native form element, or that has no accessible name, cannot be reliably targeted or filled by such an agent.
Evidence
- Anthropic’s browser use tool “works with the page both through its structure (the accessibility tree, elements, forms, and tabs) and through pixels (screenshots and viewport coordinates)”, acting on controls via element references taken from the accessibility tree — platform.claude.com/…/browser-use-tool (verified 2026-08-21)
- Playwright MCP “enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models”, and “Uses Playwright’s accessibility tree, not pixel-based input” — github.com/…/playwright-mcp (verified 2026-08-21)
- The accessible name computation draws on host-language labelling (HTML
<label>),aria-labelandaria-labelledby— w3.org/…/accname-1.2 (verified 2026-08-21) - Native form semantics are also what the emerging agent-facing form standard builds on: WebMCP’s declarative API compiles
<form>and its form-associated elements into a tool input schema, using the control’snameattribute for each schema property — raw.githubusercontent.com/…/declarative-api-explain… (verified 2026-08-21)
Limits
Two qualifications. First, the same Anthropic doc shows the agent also has screenshots and viewport coordinates, so a missing accessible name degrades reliability rather than making a field strictly unreachable. Second, the autocomplete-token half of this audit is weaker than the label half. The HTML Standard defines autofill detail tokens as a browser autofill feature (html.spec.whatwg.org/…/form-control-infrastructure.…, verified 2026-08-21), and no vendor doc found states that an AI agent reads autocomplete to decide what value to enter. That sub-check is a plausible convention (C) riding on an A-grade label mechanism. placeholder is correctly excluded here: it is not part of the accessible name computation (w3.org/…/accname-1.2, verified 2026-08-21).
How it scores
Two named agent stacks document that they perceive and act on pages via the accessibility tree, and the accessible name they consume is computed from exactly the label mechanisms this audit checks.
Sources
- Browser use tool (browser_toolset_20260801) — Anthropic, vendor-doc (verified 2026-10-20)
- microsoft/playwright-mcp README — Microsoft, vendor-doc (verified 2026-10-20)
- Accessible Name and Description Computation 1.2 — W3C, spec (verified 2026-08-21)
- WebMCP Declarative API Explainer — W3C Web Machine Learning Community Group, spec (verified 2026-08-21)
Browser view
Anthropic’s find searches “for elements matching a natural-language description such as ‘search field’ or ‘add to cart button’”, and form_input will “Set a form element’s value directly” on the element it returns (verified 2026-10-20). Playwright MCP’s browser_fill_form will “Fill multiple form fields” by ref (verified 2026-10-20). A field without a native element or an explicit label is a node neither tool can match by purpose. A supplied browser snapshot is the rendered DOM those tools read, so the browser view runs this audit on it.
The browser view runs on each complete, unredacted, non-loading capture that carries readable text. It reads the parsed capture DOM only. The finding is informative with weight 0. It does not prove HTTP delivery, computed appearance, a complete accessibility tree, live form state, or action success. A truncated, redacted or still-loading capture records missing evidence. Existing implementation limits still apply.
The review appears in Browser-rendered snapshot assessment. The eligibility record lives in packages/core/src/snapshot-eligibility.ts. The crawler grade, tier and weight stay unchanged.