Skip to main content
All WCAG success criteria

1.3.5 Identify Input Purpose

  • Level AA
  • Perceivable
  • Since WCAG 2.1

Summary

This criterion exists so that software can help people fill in forms about themselves. When a field declares in machine-readable form that it collects the user's email address, name, or phone number, browsers and assistive tools can autofill it, and specialised tools can decorate it with familiar icons or plain-language prompts. That matters most for people with cognitive and memory disabilities, who may struggle to recall or transcribe their own details, and for people with motor impairments, for whom every keystroke saved is a real reduction in effort and error.

The auditor's mental model has two filters. First, the field must collect information about the user: their own name, email, address, phone, birthday, payment details. A field asking for someone else's details is out of scope. Second, the purpose must be one of the entries in WCAG's fixed Input Purposes list; anything not on that list (a search query, a message body, a company reference number) is out of scope regardless of who it describes. Fields that survive both filters must expose their purpose programmatically, which on the web means a correct autocomplete token. A wrong token is worse than none: it actively asserts a false purpose that software will act on.

Official wording

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; and

The content is implemented using technologies with support for identifying the expected meaning for form input data.

Success Criterion 1.3.5 Identify Input Purpose, Web Content Accessibility Guidelines (WCAG) 2.2, W3C Recommendation, 5 October 2023 (updated 12 December 2024). Copyright © 2023-2024 World Wide Web Consortium. https://www.w3.org/copyright/document-license-2023/. Reproduced unmodified under the W3C Document License.

EN 301 549 mapping

Web pages
Clause 9.1.3.5
Software and native apps
Clause 11.1.3.5
Closed functionality (kiosks, terminals)

Closed systems must present the purpose of each input field collecting user information in audio form, in at least one mode of operation.

Clause 9.1.3.5 applies this criterion to web pages unchanged and clause 11.1.3.5 applies it to software that supports assistive technologies. On closed systems the requirement changes shape: the purpose of each input field collecting user information must be presented in audio form.

Clause references are to EN 301 549 V3.2.1 (2021-03), the harmonised European standard. Descriptions are our own summary, not the text of the standard.

In practice

Web

Open each form that collects the user's own details (registration, account settings, checkout, contact forms) and inspect the identity fields in browser developer tools. Read the autocomplete attribute on each input and check it against the fixed Input Purposes list: name, given-name, family-name, email, tel, street-address, postal-code, country-name, bday, username, organization, the cc-* payment tokens, and the rest of the published set. The token must be spelled exactly as the specification defines it; invented values like phone-number or e-mail identify nothing.

Grade three situations as failures. An in-scope field with no token: the purpose is not programmatically determinable. An in-scope field with the wrong token (an email token on a phone field, name on a company field): this is the worst case, because autofill will insert the wrong data and symbol tools will announce the wrong purpose. And autocomplete="off" on the user's own identity fields: switching autofill off also removes the programmatic purpose. Composed tokens are legitimate, so autocomplete="billing street-address" and section-* prefixes pass when the final purpose token is correct.

Confirm behaviour by letting the browser's own autofill run against the form: fields that receive the right stored values usually carry the right tokens. But grade on the markup, not the autofill demo; a browser may guess a purpose heuristically for a field that declares nothing.

iOS

The European standard applies this requirement to native software that supports assistive technologies, so iOS apps are in scope. The platform mechanism is textContentType on text fields (UITextField/UITextView in UIKit, the .textContentType(...) modifier in SwiftUI): values such as .emailAddress, .telephoneNumber, .name, .givenName, .familyName, .fullStreetAddress, .postalCode, .username, and .newPassword map onto the same purposes as the web token list.

To test, review the field configuration in Xcode's view debugger (Debug View Hierarchy, then read the text field's attributes) or in code, and confirm each in-scope field declares a content type that matches its actual purpose. Behaviourally, tap into the field on a device signed into iCloud Keychain or Contacts: a correctly typed field offers the user's own email, phone, or address in the QuickType bar above the keyboard. Common failure spots: custom-styled text fields rebuilt from scratch that never set a content type, fields that set only keyboardType (which shapes the keyboard but declares no purpose), and copy-pasted field code carrying the wrong content type from its source.

Android

The European standard likewise applies this to Android apps that support assistive technologies. In the View system the mechanism is the autofill framework: android:autofillHints on the field (values such as emailAddress, phone, name, postalAddress, postalCode, username, newPassword). In Jetpack Compose, set the content type through semantics, for example Modifier.semantics { contentType = ContentType.EmailAddress } on the text field.

To test, use Layout Inspector in Android Studio to read each field's autofill hints (or the Compose semantics tree), and confirm the declared hint matches the field's real purpose. Behaviourally, enable an autofill service on the device (Settings, then autofill service) and focus each in-scope field: a correctly hinted field surfaces the user's stored value in the autofill dropdown. Watch for android:importantForAutofill="no" on the user's own identity fields, which suppresses the purpose the same way autocomplete="off" does on the web, for hints that were never set on custom text field components, and for hint values that do not match the field (a phone hint on an email field).

Pass and fail examples

Passes:

  • A registration form where the name fields carry autocomplete="given-name" and autocomplete="family-name", the email field autocomplete="email", and the phone field autocomplete="tel".
  • A checkout billing form using composed tokens such as autocomplete="billing street-address" and autocomplete="billing postal-code": the modifiers are valid and the purpose tokens are correct.
  • An iOS sign-in screen whose username field sets .textContentType(.username) and whose email field sets .textContentType(.emailAddress).
  • An Android profile screen whose phone field declares android:autofillHints="phone" and offers the user's stored number when focused.
  • A search box with no autocomplete attribute: a search query is not on the Input Purposes list, so the criterion does not apply to it.

Fails:

  • An account signup email field with no autocomplete attribute: the field collects the user's email, a listed purpose, and declares nothing.
  • A phone number field marked autocomplete="email": a wrong token is graded as a failure even though a token is present, because it programmatically asserts a false purpose.
  • A profile form with autocomplete="off" across the user's name and address fields: suppressing autofill also removes the programmatic purpose from in-scope fields.
  • A date-of-birth field using an invented token like autocomplete="date-of-birth" instead of bday: values outside the specification identify no purpose.
  • An Android account settings screen rebuilt with custom Compose text fields that set no content type semantics on the user's email and postal code fields.

Not a fail under this criterion:

  • A gift delivery form asking for the recipient's name and address when the recipient is not the user: the criterion only covers information about the user themselves.
  • A message body, order note, or company VAT number field with no token: those purposes are not on the Input Purposes list.
  • A field whose visible label is missing or unclear: visible identification for humans is graded under SC 3.3.2 Labels or Instructions, not here.
  • A site that re-asks for details the user already entered earlier in the same process: that is Redundant Entry, whether or not the fields carry correct tokens.

Commonly confused with

  • Redundant Entry, SC 3.3.7. Marking a field's purpose does not excuse asking for the same information twice. The two are graded independently, and platform autofill does not satisfy 3.3.7: even where correct tokens let the browser refill a repeated field, the content itself must auto-populate or offer the previous answer for selection, so re-asking is still a 3.3.7 fail.
  • Labels or Instructions, SC 3.3.2. That criterion is about what a human can see: a visible label or instruction identifying the field. 1.3.5 is about what a machine can read. A field can have a perfect visible label and no token (fails here, passes 3.3.2), or a correct token and no visible label (passes here, fails 3.3.2).
  • Accessible Authentication (Minimum), SC 3.3.8. Login screens that block paste or fight password managers create a memorisation and transcription burden, and that finding lands under 3.3.8. File the cognitive-burden finding there; 1.3.5 covers whether identity fields declare their purpose.
  • Info and Relationships, SC 1.3.1. Programmatically associating a visible label with its field (a for/id pairing, for instance) is a 1.3.1 structure finding. 1.3.5 asks a different question: whether the field's purpose is declared from the fixed list. A field can be perfectly labelled and associated yet still fail 1.3.5.

How AUDITSU tests this

AUDITSU's audit walkthrough covers this criterion on every screen that collects personal details. For each form screen you review, the walkthrough asks you to identify the fields that collect information about the user themselves, filter them against the Input Purposes list, and then inspect the declared purpose: autocomplete tokens on web, textContentType on iOS, autofill hints or Compose content type semantics on Android. Each check records a pass, fail, or not applicable result per screen with the evidence attached, so a wrong token on a checkout field lands in your report tied to the exact screen and control.

For audits against the European standard, the walkthrough applies the criterion to web content and to software that supports assistive technologies. On closed systems, where assistive technologies cannot be attached, the requirement changes shape entirely: input purposes must be presented in audio form, and the walkthrough prompts for that instead.

For the full guided workflow, see the audit platform.

This page explains a standard requirement and how we test it in practice. It is guidance, not legal advice. For a formal conformance assessment, consult a qualified accessibility auditor.

WCAG 2.2: W3C Recommendation, 5 October 2023 (updated 12 December 2024).