Accessible Address Form Errors: Where Checkout Loses the Plot

Address forms fail on error handling more than on fields: errors named only by colour, no summary, and corrections that wipe the whole form. What WCAG requires and how to test it.

Type one wrong digit in a postcode and watch what happens. On a lot of checkouts the field turns red, a message appears somewhere above the form, and nothing tells a screen reader user which field failed or what to change. They are left guessing at an address they may have entered correctly in every other line.

WCAG 3.3.1 covers error identification and 3.3.3 covers error suggestion. Both are Level A and AA respectively, which means this is not polish. An error that cannot be found, read, and acted on is a checkout that does not work for a chunk of paying customers.

Errors that exist only as colour

A red border is not an error message. Under 1.4.1, use of colour, colour cannot be the only way information is conveyed, and an address form is where stores break that rule most casually. The failed field needs text, placed where the user will encounter it, naming the field and the problem in words.

Placement matters as much as wording. A message at the top of a long form, with no link to the field and no change in focus, might as well not exist for someone working through the form linearly. Link each error in a summary to its field, move focus to that summary on submit, and keep the summary in place until the form submits cleanly.

Autocomplete is doing half the work, if you let it

Address fields map cleanly onto the autocomplete tokens in WCAG 1.3.5: name, street-address, postal-code, country, and the rest. When those attributes are present and correct, browsers and assistive tools can fill the form accurately, and a whole class of typing errors never happens.

Stores break this by splitting fields in unusual ways, renaming them with placeholder text only, or blocking autofill for fraud reasons that nobody can explain when asked. Test the form with a browser profile saved under a different name formatting than your test data. If autofill puts the city in the county field, your markup is the problem, not the browser.

The correction should cost one field, not five

The cruellest version of this failure clears the whole form on a failed submit. A shopper who mistyped one digit in the postal code has to re-enter their name, street, city, and phone, and a screen reader user has to listen through all of it again to confirm what survived.

Keep entered values in place after an error. Say, in the error text, what format you expected: a five digit ZIP, a postcode with a space, a phone number with country code. Address not found is not a suggestion. Try the postcode without the last character, or check the house number against the street, is one, because it tells the shopper what to do next.

Related reading

If this topic is useful, these earlier guides go deeper on connected questions: Accessible Password Creation: Where Signup Forms Lock People Out, Accessible Date Pickers and Delivery Calendars at Checkout, and Accessible Promo Code Entry at Checkout.

Frequently asked questions

What does WCAG require for form errors?

WCAG 3.3.1 requires that an input error is identified in text and described to the user. WCAG 3.3.3, at AA, requires a suggestion for fixing it when the correct format is known, such as the expected postcode pattern.

Why is a red outline not enough?

Because colour alone fails WCAG 1.4.1 and because many users cannot perceive the colour change at all. The error needs words, attached to the field, and ideally a summary that receives focus on submit.

Which autocomplete values should address fields use?

Use the standard tokens: name, street-address, address-level2 for city, address-level1 for state or region, postal-code, country, and tel or email where those fields appear. Correct tokens let browsers fill the form accurately.

Should entered data be kept after an error?

Yes. Keeping values means the shopper corrects one field instead of re-entering the whole address. Clearing the form punishes a small typo with a full restart and loses sales as well as goodwill.