unvibe
Guide · October 4, 2026

Can an AI agent press your button?

More people now ask an AI to do things: “sign me up”, “book a repair”, “buy this one”. The agent can only use what it can follow. Here are the four ways a main button fails an agent, a five-minute test you can run yourself, and the fix for each.

By the Unvibe team · 7 min read

Short answer: an AI agent follows links. Make your main action (sign up, book, buy or contact) a real link, or a button inside a form, with a label that says what happens, pointing at a page that loads without logging in. Link your prices from the main menu and keep a short FAQ so the agent can find answers. Unvibe checks each of these on your live homepage and shows the exact element it found.

What “usable by an agent” means

A visitor with a mouse can press almost anything that looks like a button. An agent working through a page’s HTML has less to go on: it sees links, form controls and their text. If your “Book now” is a styled box that only does something when a script runs, the person sees a button and the agent sees a box.

That is why a site can look perfect, pass every visual review, and still be a dead end for an agent. The task, “book me a repair”, goes to a competitor whose action it can complete.

A limit worth stating: Unvibe does not yet run an agent through a real task. Its “usable by agents” checks look at whether the things an agent needs are in the page’s HTML. They are a good proxy, not a simulation.

Four ways a main button fails an agent

1. It isn’t a link

Two common shapes: a <div> with a click handler, and a <button> with no link or form around it. Both do nothing unless JavaScript runs. They are easy to style and wire up, so they turn up often.

<!-- Before: a box with a click handler -->
<div class="btn" onclick="openBooking()">Book a repair</div>

<!-- After: a real link, styled the same way -->
<a href="/book" class="btn">Book a repair</a>

You can keep the styling and any script you like. The change is that the destination now exists in the HTML.

2. The label says nothing

“Submit”, “Click here”, “Learn more”, “Continue”, “Go”: out of context, none of these says what will happen. An agent looking for how to book needs a label that mentions booking.

Instead ofWrite
SubmitRequest a quote
Click hereBook an appointment
Learn moreSee pricing
ContinueStart free

3. It leads somewhere that fails

A sign-up link that returns an error, or that redirects to a login screen, ends the task. Keeping your product behind a login is normal. What matters is that the page you link from the homepage (sign-up, booking, checkout) opens for someone who has no account yet.

4. The agent can’t find the way

Before acting, agents often need answers: what does it cost, how does it work, how do I reach a person? If prices aren’t linked from the main menu and there is no FAQ or help section, the agent has nowhere to look. Contact details help too: an email in a mailto: link and a phone number in a tel: link are things an agent can use directly.

A made-up example

A fictional bike repair shop, “Alderbrook Cycle Repair”, in the made-up town of Alderbrook. Not a real business.

ElementBeforeAfter
Main buttonA div that opens a booking pop-up, labelled “Submit”A link, href="/book", labelled “Book a repair”
Where it leads/book redirects to a staff login/book opens a booking form for anyone
Main menuHome, Gallery, AboutHome, Repair prices, Book a repair, FAQ, Contact
PhoneA number drawn into an imageText, as a tel: link

Five-minute test you can run yourself

  1. Press Tab. Keep pressing it on your homepage. Real links and buttons take focus in turn. If your main button never does, it probably isn’t a real one.
  2. View the source. Search for your button’s label. You want to see an <a href="…"> around it, or a <button> inside a <form>.
  3. Switch JavaScript off in your browser’s developer tools and reload. Can you still get to sign-up, booking or checkout by following links?
  4. Open the link in a private window. Does it load without logging in, and without an error?
  5. Read the label out of context. If someone saw only “Submit”, would they know what it does?

Where Unvibe fits

The test above is worth doing once. Unvibe runs the equivalent on every checkup.

Unvibe

Usable by agents

  • Real buttons and links: a check in the score that passes when clickable things are real buttons and links, not plain boxes.
  • Main button: a clearly labelled main action an agent can find: sign up, buy, book or contact. The audit names the element, for example a button with no link or form around it or a div with a click handler, and shows its code.
  • Where it leads: Unvibe follows the homepage’s own sign-up, buy or booking link and flags it if it leads to an error page or a login wall.
  • Prices link and help: checks for a link to prices in the main menu and a short FAQ or help section.
  • Verified after the fix: the next checkup looks at the live homepage again and confirms at least one real link with a clear label whose target loads.

The prices link, main button and help checks make up the “Usable by agents” area, 25% of the score; real buttons and links sits in “Readable by crawlers”. Connect your coding agent over MCP and ask it to “use Unvibe to get my fixes and apply them”: it reads each fix with exactly what to change, applies it, and re-runs the checkup after you deploy.

See if an agent can use my site

How the checks work, and what they can’t tell you, is written down in the methodology. Prices are the other half of this story: see Can AI tell what you charge?

Questions

Do I have to stop using JavaScript for buttons?

No. Use JavaScript for behaviour, but make the main action a real link or a button inside a form, so it still works when a script doesn’t run.

Does Unvibe test with a real AI agent?

Not yet. “Usable by agents” checks whether the things an agent needs, such as a link to prices or a clearly labelled main button, are in the page’s HTML. It doesn’t yet run an agent through a real task.

Is a login screen always a problem?

No. Keeping your product behind a login is normal. The problem is a sign-up or booking link that lands on a login screen or an error page instead of a page that loads without an account.

Can an agent use your site?

Free to start. Fixes ready for your coding agent.

Check my app