Warningagents.button-name

Buttons an AI agent can't identify

Why it matters

An AI agent that books, buys or fills in a form for someone finds what it can press in the page's accessibility tree, the same one a screen reader reads. Google says browser agents work by "analyzing visual renderings (like screenshots), inspecting the DOM structure, and interpreting the accessibility tree", and Chrome's checks for agents ask for "every interactive element" to have "a programmatic name". A button that holds only an icon has none: to the agent it is "button", and it can't tell the menu from the basket.

A button's name comes from the text inside it, the alt of an image inside it, an aria-label, or a title. The accessibility pack has the same check for the people who use screen readers; with both packs on you hear it once.

Sources: Google's guide to generative AI features in Search, Chrome: accessibility for agents, Chrome: agentic browsing scoring.

How to fix it

Name the button for what it does, not what it looks like:

<button type="button" aria-label="Open menu">
    <svg aria-hidden="true">…</svg>
</button>

Examples

These are the rule's own test pages, and what it says about each. They are run on every change to the rule book.

<button type="button" class="menu-toggle">
<svg viewBox="0 0 24 24">

Warning1 button has no name, so an AI agent reading the accessibility tree sees only "button" and can't tell what it does: button.menu-toggle.

fail-icon-only
<button type="button" class="menu-toggle" aria-label="Open menu">
<svg aria-hidden="true" viewBox="0 0 24 24">

PassedEvery button has a name an agent can read (1 button).

pass-aria-label