Skip to main content
Perceivable WCAG 1.3.5

1.3.5 Identify Input Purpose

The purpose of each input field collecting information about the user can be programmatically determined when the input field serves a purpose identified in the Input Purposes for User Interface Components section.

Level AA Serious WCAG 2.1 (new) WCAG 2.2
autocomplete-valid

What this rule means

Success Criterion 1.3.5 requires that input fields collecting personal information about the user have their purpose programmatically identified using the HTML autocomplete attribute. WCAG 2.1 defines a specific list of 53 input purposes (name, email, tel, street-address, etc.) derived from the HTML specification's autofill field names. When a form field collects one of these types of data, the autocomplete attribute must be present with the appropriate value.

This criterion applies only to inputs that collect information about the user themselves — not about other people or entities. A "ship to a different address" form collecting someone else's address is exempt, but the user's own billing address fields must include autocomplete values.

Why it matters

The autocomplete attribute serves multiple accessibility purposes. Users with cognitive disabilities or memory impairments benefit enormously from browser autofill, which reduces the cognitive load of remembering and typing personal information. Users with motor disabilities who find typing difficult can have forms populated automatically. Users with dyslexia who frequently mistype information benefit from pre-filled values.

Beyond autofill, the autocomplete attribute enables assistive technology to display familiar icons or images next to fields. A user with a cognitive disability might recognize a phone icon next to a field identified as autocomplete="tel" more easily than reading the label. Browser extensions can also enhance the experience based on known input purposes.

Related axe-core rules

  • autocomplete-valid — Ensures autocomplete attribute values are valid and match allowed WHATWG tokens. This rule checks that the autocomplete value is from the recognized list and that it is appropriate for the input type.

How to test

  1. Identify all form fields that collect personal information about the user (name, email, phone, address, payment details, birthday, etc.).
  2. Verify each such field has an autocomplete attribute with the correct token from the WHATWG autofill specification.
  3. Run axe DevTools to catch invalid or missing autocomplete values.
  4. Test that browser autofill works correctly by filling out the form using your browser's saved information.
  5. Verify that the autocomplete value matches the actual data being collected (e.g., do not use autocomplete="email" on a phone number field).

How to fix

Add the correct autocomplete attribute to each input collecting user information:

<form>
  <label for="name">Full name</label>
  <input type="text" id="name" name="name"
         autocomplete="name">

  <label for="email">Email</label>
  <input type="email" id="email" name="email"
         autocomplete="email">

  <label for="tel">Phone number</label>
  <input type="tel" id="tel" name="tel"
         autocomplete="tel">

  <label for="street">Street address</label>
  <input type="text" id="street" name="street"
         autocomplete="street-address">

  <label for="postal">Postal code</label>
  <input type="text" id="postal" name="postal"
         autocomplete="postal-code">
</form>

For payment forms, use the specific payment autocomplete tokens:

<label for="cc-name">Name on card</label>
<input type="text" id="cc-name" name="cc-name"
       autocomplete="cc-name">

<label for="cc-number">Card number</label>
<input type="text" id="cc-number" name="cc-number"
       autocomplete="cc-number">

<label for="cc-exp">Expiration date</label>
<input type="text" id="cc-exp" name="cc-exp"
       autocomplete="cc-exp">

<label for="cc-csc">Security code</label>
<input type="text" id="cc-csc" name="cc-csc"
       autocomplete="cc-csc">

Compound autocomplete values can specify section and billing/shipping context:

<input type="text" name="billing-street"
       autocomplete="billing street-address">
<input type="text" name="shipping-street"
       autocomplete="shipping street-address">

Common mistakes

  • Omitting the autocomplete attribute entirely from personal information fields.
  • Using autocomplete="off" to prevent autofill — this hinders accessibility and browsers often ignore it anyway.
  • Using incorrect autocomplete tokens (e.g., autocomplete="phone" instead of autocomplete="tel").
  • Applying autocomplete to fields that do not collect user information (search fields, product filters) where it is not required.
  • Missing compound fields — using autocomplete="name" when the form has separate given-name and family-name fields.

Resources