This is a research guide based on cited documentation. It is not a report of firsthand testing. Our editorial method

Start with the visitor's task

Write what a visitor is trying to do: ask about an appointment, request a quote, report a problem. Remove any field that does not serve that task. Then check the form as published, including any embedded provider form, rather than a screenshot of the empty design.

The six checks

W3C's labeling tutorial says the label's for attribute must exactly match the control's id. It notes two benefits: browsers make the label a larger click target, and assistive technology can announce the right label for the field. A label can be hidden visually if it is still in the code, but W3C says other parts of forms should not be hidden. [1]

CheckPasses whenFails when
Label in codeEach field has a label whose for value matches the field's idText sits next to the box but is not connected to it
Label visible while typingThe field's purpose is clear after you start typingThe only hint was placeholder text that disappears
Error names the fieldThe message says which field and what to changeOnly a red border or a generic Something went wrong
Focus on errorAfter submitting, focus moves to the first field with an errorThe visitor has to hunt for the problem
Keyboard onlyTab reaches every field and the button, focus is visible, Enter or Space submitsA control cannot be reached or focus disappears
Success messageA clear message confirms the form was sentThe page reloads with no confirmation

How to report errors

W3C's notification tutorial describes three places to tell people about errors: the main heading or page title (for example, including the word error and the number of errors), a list of errors at the top of the page before the form, and in-line messages next to each field, usually combining text with a visual cue. It recommends setting focus to the first input that has an error. [2]

Timing matters too. W3C notes instant feedback while typing can help, but for fields with a required format, such as dates, it makes more sense to check when the visitor leaves the field rather than on every keystroke. Success messages matter as much as errors because they confirm the task is done. [2]

Worked example: a quote form that cannot be corrected

Hypothetical: a form with Name, Email and Project fields. A visitor fills them in but mistypes the email. On submit, the email box turns red and every field is cleared. Two checks fail: the error does not say what is wrong, and the visitor loses the project description they wrote.

The repair: an in-line message such as Email address needs an @ sign, tied to the email field; focus moved to that field; the other entries kept. Then test the corrected path from the beginning. Changing the border colour is not a fix; the evidence should show a visitor can find and correct the problem.

Using a website builder's form

Use the builder's own label and instruction settings first. If it does not expose a needed label relationship, note the limitation and ask the vendor for a supported fix. Avoid adding hidden custom text without checking the result, because duplicate or contradictory labels can make the form harder to use.

Separate a usable form from a delivered message

After the form passes, submit one authorized valid test and confirm the message reached the intended inbox. A clear success message can still hide a delivery failure, and a delivered message can come from a form that is hard to use. Record browser, device, expected result and what happened.

This checklist covers one contact-form task. It is not an accessibility certification or full standards audit; page navigation, contrast and assistive-technology testing by an experienced user need their own review.

Take it with you

Contact forms worksheet

Download worksheet

Questions before you decide

Is placeholder text enough as a label?

Treat it as no. W3C's labeling tutorial recommends a label element tied to the control with matching for and id values, so assistive technology can announce it and the label gives a larger click target. Placeholder text disappears once someone types.

Where should form error messages appear?

W3C's notification tutorial describes listing errors at the top of the page before the form, indicating errors in the heading or page title, and showing in-line messages next to fields, and suggests setting focus to the first field with an error.

Sources & verification

Product details and prices can change. Check the linked provider before buying.

  1. W3C Web Accessibility Initiative: Labeling Controls Accessed 29 Oct 2026
  2. W3C Web Accessibility Initiative: User Notification Accessed 29 Oct 2026

Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.