Why can an AI agent not fill in my contact form?

We count the form fields on the page and how many have no <label>, aria-label or aria-labelledby.

What it is

A form field is labelled when it is associated with a `<label for>`, or carries an `aria-label`, or points at visible text with `aria-labelledby`. A placeholder is not a label: it is a hint that disappears the moment the field has a value.

Many modern form builders style a caption above the input as a plain `<div>` and never wire it to the field. The form looks labelled to a human reading the page and is anonymous in the markup.

We report the field count and the unlabelled count separately, so you can see how much of the form is affected.

Why an agent needs it

Completing a form is the single most common action an agent is asked to take on a small business site. To do it, the agent has to decide which field takes the email address and which takes the phone number.

With no labels it either guesses or gives up, and a wrong guess submits a form with a phone number in the email field. This is the same defect that breaks screen readers, so fixing it serves both.

The Fix

Give every input a `<label for="field-id">` whose `for` matches the field's `id`. Where the design has no room for visible text, add an `aria-label` with the same wording you would have shown.

Do not rely on placeholder text, wrapping the input in a `<label>` without text, or a nearby `<div>` that only looks like a caption.

Then check the submit button says what it does in text, not as an icon alone, and that validation errors are text an agent can read rather than a red border.

This one is a change in your own markup or edge configuration, so the Fix Pack cannot write it for you. A Report names every page it affects, with the Evidence.

More in Interaction Readiness

All 24 Checks·Check library 2026-08-27