squirrelscan
GitHub

Autocomplete Tokens

Checks that name, email, phone, address and payment fields carry the correct autocomplete token

Checks that name, email, phone, address and payment fields carry the correct autocomplete token

Rule ID a11y/autocomplete-tokens
Category Accessibility
Scope Per-page
Severity warning
Weight 5/10

What it checks

The rule works out what each field is for from its name, id, label and placeholder, then checks the autocomplete token against that purpose. Only fields whose purpose is unambiguous are considered, so a field called capacity is never read as a city and hotel is never read as a phone number.

Outcome When
pass Every identified field carries a correct token
warn An identified field has no token, or turns autofill off
fail A token is not in the spec, or belongs to a different purpose
skipped No field on the page has an identifiable purpose

Each finding names the exact node with a selector and the field’s opening tag.

Solution

Give every field that collects a person’s own data the matching WHATWG autofill token, e.g. autocomplete="given-name", "email", "tel", "address-line1", "postal-code", "cc-number". Browsers and password managers fill those fields in one tap, which is the difference between a completed checkout and an abandoned one, and WCAG 2.1 success criterion 1.3.5 (Identify Input Purpose) requires it.

Tokens may be prefixed with section-*, shipping/billing and home/work/mobile:

<label for="ship-street">Address line 1</label>
<input id="ship-street" name="shippingAddressLine1" type="text"
       autocomplete="shipping address-line1" enterkeyhint="next">

A token the browser does not recognise is ignored outright, so a typo like autocomplete="firstname" is worse than nothing: use given-name. Avoid autocomplete="off" on personal data. It does not stop autofill in modern browsers, it only stops the accurate kind.

Enable / Disable

Disable this rule

[rules]
disable = ["a11y/autocomplete-tokens"]

Disable all Accessibility rules

[rules]
disable = ["a11y/*"]

Enable only this rule

[rules]
enable = ["a11y/autocomplete-tokens"]
disable = ["*"]

Type to search…

↑↓ navigate↵ openesc close