Agent Audit
Check your site against Google's AI-agent UX checklist
This tool checks a page against the recommendations in Google's Build agent-friendly websites article. The same things that help screen readers also help AI agents understand and use your site: semantic HTML, linked labels, real interactive elements with the right size and roles.
Two ways to run it:
Quick audit by URL
Fetches the page's HTML and runs static checks. Fast, but can't measure rendered styles or element sizes.
Full audit via bookmarklet
Drag the button below to your bookmarks bar, then click it while on any page to run the full audit (computed styles, rendered sizes, accessibility tree) in an overlay.
Agent AuditDrag this button up to your bookmarks bar ↑
What gets checked
Semantic HTML for interactive elements
Agents — and assistive tech — understand <button> and <a> natively. A <div onclick="..."> is invisible to the accessibility tree unless you add role and tabindex, and even then it's a worse signal than the real element. This check flags non-semantic elements that look interactive (have onclick, role="button", etc.).
Labels linked to inputs
Every form control should have an associated <label> — either via for="input-id", by wrapping the input, or via aria-label/aria-labelledby. Without this link, agents and screen readers don't know what a field is for.
Custom interactive elements have role and tabindex
If you must use a <div> or <span> as a button, it needs role="button" (or appropriate role) and tabindex="0" so it lands in the accessibility tree and keyboard focus order.
Deliberate cursor on actionable elements (bookmarklet only)
A non-default cursor is a strong signal that an element is interactive. Vision-based agents pick up on it. We pass any element that uses a deliberate cursor — pointer, grab, move, zoom-in, etc. — and only flag elements still using the inherited auto/default. Known exceptions we silently skip: disabled buttons (which correctly use not-allowed), native text inputs (cursor: text is right for them), and <details> containers (the click target is the <summary> inside, which is checked separately). Requires computed styles, so bookmarklet only.
Interactive elements ≥ 8 square pixels (bookmarklet only)
Tiny or zero-size interactive elements are a hint that something is broken or hidden. The web.dev guidance: keep visible area larger than 8 px². Requires layout measurements, so bookmarklet only.
No "ghost" interactive elements (bookmarklet only)
Transparent overlays or opacity: 0 covers that still capture clicks confuse vision-based agents — they see one thing and click another. We flag elements with computed opacity: 0 or visibility: hidden that still take up layout space. Known exception we silently skip: the styled-input pattern, where a native control (e.g. <input type="color">, file picker, checkbox) is hidden with opacity: 0 and overlaid by a styled element. We detect this by the presence of an aria-label or aria-labelledby — that's the signal the developer made the input invisible on purpose, with accessibility intact.
This tool is an independent project. It is not affiliated with, endorsed by, or associated with Google or web.dev. The URL-audit mode fetches HTML through a Cloudflare Worker on this site; the bookmarklet runs entirely in your browser and sends no data anywhere.