Accessible forms and checkout: labels, errors and autocomplete

Published 18 October 2026 ยท General information, not legal advice

An accessible form has a visible label tied to every field in the code, tells people before they start what format and which fields are required, explains each error in words next to the field, and lets the browser fill in personal details through the autocomplete attribute (WCAG 1.3.5). Checkout adds three more needs: do not make people type the same address twice, let them review before paying, and announce changes such as an updated total.4

Forms are where accessibility problems cost sales directly. WebAIM's 2026 scan of the top million home pages found missing form input labels on 51% of them.9 A customer who cannot tell which field is which, or cannot find out why a payment form was rejected, leaves.

The WCAG criteria that apply to forms

CriterionLevelWhat it means for a form
1.3.1 Info and RelationshipsALabels and groups are connected to their fields in the code, not only placed near them.
1.3.5 Identify Input PurposeAAFields that ask about the customer declare their purpose, such as name, email or postal code.
3.3.1 Error IdentificationAThe field in error is identified and the error is described in text.
3.3.2 Labels or InstructionsALabels or instructions are provided where input is needed.
3.3.3 Error SuggestionAAWhere you know how to fix an error, say so.
3.3.4 Error Prevention (Legal, Financial, Data)AAOrders are reversible, checked, or confirmed before they are final.
3.3.7 Redundant EntryAInformation already given in the same process is filled in or available to select.
3.3.8 Accessible Authentication (Minimum)AALogging in does not depend on remembering or transcribing, without help such as password managers and paste.
4.1.3 Status MessagesAAMessages such as "Added to cart" are announced without moving focus.

The levels and wording are from WCAG 2.2.4

Labels: visible, and connected in the code

W3C's forms tutorial says to identify each control with a label element, and that the label's for attribute must exactly match the field's id.2 That connection is what makes a screen reader announce "Email" when focus lands in the field, and it makes the label clickable, which helps anyone with limited dexterity.1

  • Placeholder text is not a label. It disappears as soon as someone types and is often too faint to read. Keep a visible label above the field.
  • Hidden labels must stay in the code. If a design really has no room for a visible label, such as a search box next to a search button, hide the label with a visually hidden CSS class. W3C warns that display: none or visibility: hidden hides it from screen readers too.2
  • Avoid the title attribute as a label. W3C calls it less reliable and not recommended.2
  • Group related choices. Radio buttons for delivery options or a set of checkboxes belong in a fieldset with a legend, so a screen reader announces "Delivery method" before "Standard" and "Express".1

Autocomplete: WCAG 1.3.5 in practice

Criterion 1.3.5 asks that the purpose of each field collecting information about the user can be programmatically determined. The sufficient technique in HTML is the autocomplete attribute with the standard values.5 W3C explains why: browsers can fill in details for people with memory or language difficulties, people with motor impairments type less, and assistive technology can add familiar icons to fields.5

The values come from the HTML standard. The ones a checkout needs most are:6

  • name, or given-name and family-name
  • email and tel
  • street-address, or address-line1 and address-line2
  • address-level2 (town or city), address-level1 (state or county), postal-code, country
  • cc-name, cc-number, cc-exp, cc-csc for card fields
  • username, current-password, new-password and one-time-code for accounts

Put shipping or billing in front to tell the two addresses apart, for example autocomplete="shipping postal-code".6 W3C names incorrect autocomplete values as a failure of 1.3.5, so a wrong value is worse than leaving it out.5 The criterion only covers information about the customer; a gift message or a coupon code field does not need a value.5

Errors: say what is wrong, where, and how to fix it

W3C's guidance on form notifications combines several techniques:3

  1. An error summary above the form after a failed submit, with a heading, the number of errors, and a link to each field in error.
  2. A message next to each field, connected to it with aria-describedby so a screen reader reads it with the label.
  3. Focus moved to the summary or the first field with an error, so a keyboard or screen reader user is not left at the submit button wondering what happened.
  4. The page title updated with the error count where the page reloads, because it is the first thing a screen reader announces.

Write the message as an instruction: "Enter a postcode in the format SW1A 1AA" is useful; "Invalid input" is not, and 3.3.3 asks for the suggestion where you know it.4 Do not show errors only with a red border. W3C lists marking required or error fields by colour alone as a failure of 1.4.1; add text or an icon.7

Checkout-specific checks

  • "Same as delivery address." Offer it, checked by default where that makes sense. That is the everyday way to meet 3.3.7 Redundant Entry.4
  • A review step or a clear order summary before payment, so an order is checked or confirmed (3.3.4).4
  • Announce changes. When a discount code is applied, shipping is recalculated, or an item is added to the cart, the message should reach screen reader users without moving focus. W3C's examples for 4.1.3 include a cart count updating after adding an item.8
  • Allow paste and password managers in login, password and one-time code fields (3.3.8).4
  • No time limit you cannot extend. W3C's forms tutorial says that if a time limit is needed, people should be able to turn it off or extend it.1

Shopify: what you control and what you do not

Shopify's checkout is built and maintained by Shopify. Its March 2026 accessibility conformance report covers checkout against WCAG 2.0, 2.1 and 2.2 A and AA, notes that remediation of some issues is ongoing, and states that merchants are responsible for assessing their own online store.10 What you control in checkout is mainly style: colours for accents, buttons, backgrounds and errors. Shopify's guidance there is to choose high-contrast colours and to keep field text readable, especially with transparent fields.11

Everything before checkout is your theme: newsletter sign-ups, contact forms, product option pickers, gift card fields, the cart and the search box. Shopify's theme guidance asks for a label linked with for on every field, the required and autocomplete attributes, errors linked with aria-describedby, and focus moved to feedback.13 Check any app that adds a form, such as reviews, back-in-stock alerts or a wholesale order form, because each brings its own markup.

WooCommerce: watch the theme and checkout plugins

WooCommerce says its checkout labels each field, marks required fields, shows errors visually and in code next to their fields, and announces updates such as cart totals through live regions. It also warns that theme styles can override these defaults, and that themes and plugins that change checkout can break accessibility, so check labels, required indicators and errors after any change.12 Checkout field editor plugins are the usual suspect: test a checkout after installing one.

Test it in five minutes

  1. Click each label. Focus should jump into its field.
  2. Fill the form with your browser's autofill. Every personal field should fill correctly.
  3. Submit it empty. Read the errors: do they say which field and how to fix it, in text?
  4. Do the whole thing by keyboard, then with a screen reader, listening to what each field announces.
  5. Run an automated check. axe-core, the engine Jralo uses, has rules for fields without a label and for invalid autocomplete values.14 Jralo's free check runs them on the pages it opens and also tells you which countries' accessibility laws are likely relevant to your store. It never signs in, adds to a cart or places an order, so the steps above still matter; see why automated testing finds some problems but not all.

Questions people ask

Is placeholder text enough as a label?

No. Placeholder text disappears when someone starts typing, so they lose the instruction, and it is often too pale to read. Use a visible label element connected to the field with for and id. Placeholder text can add an example format, and WCAG contrast rules still apply to it.

Can I make Shopify's checkout more accessible myself?

Mostly no, because Shopify builds and maintains checkout and publishes its own accessibility conformance report for it. You control its colours, so choose high-contrast ones. You do control your theme's cart, contact, newsletter and product option forms, and any forms added by apps.

Do I need autocomplete on every field?

Only on fields that collect information about the customer and match a purpose in WCAG's list, such as name, email, telephone, address and card details. Fields like a coupon code or a gift message are out of scope. A wrong value is a failure, so use the exact names from the HTML standard.

Check your site now

Jralo's free check tests your homepage and up to five pages for accessibility (WCAG 2.2 A and AA) and website QA problems, and tells you which countries' accessibility laws are likely relevant to you. No sign-up.

Run the free check

Sources

Every number and legal statement in this post links to one of these sources, read on 13 October 2026.

  1. W3C WAI: Forms Tutorial
  2. W3C WAI: Forms Tutorial, Labeling Controls
  3. W3C WAI: Forms Tutorial, User Notifications
  4. W3C: Web Content Accessibility Guidelines (WCAG) 2.2
  5. W3C WAI: Understanding Success Criterion 1.3.5 Identify Input Purpose
  6. WHATWG HTML Standard: Autofill
  7. W3C WAI: Understanding Success Criterion 1.4.1 Use of Color
  8. W3C WAI: Understanding Success Criterion 4.1.3 Status Messages
  9. WebAIM: The WebAIM Million, 2026 report
  10. Shopify: Accessibility Conformance Report, Shopify Checkout (March 2026)
  11. Shopify Help Center: Customizing the style of your checkout
  12. WooCommerce: Accessibility features in the WooCommerce plugin
  13. Shopify: Accessibility best practices for Shopify themes
  14. Deque: axe-core rule descriptions

More questions

Related on Jralo