3.3.8 Accessible Authentication (Minimum)
Level AA · added in WCAG 2.2
No step in logging in may require a cognitive function test, such as remembering a password, transcribing a code or solving a puzzle. The exceptions: you offer another method, you support a mechanism that helps, such as password managers and paste, or the test only asks users to recognize objects or images they provided.
Who it helps
People with cognitive, memory or learning disabilities may be unable to remember passwords, retype one-time codes or solve puzzles. People with dyslexia or dyscalculia struggle to transcribe characters. Letting password managers and paste work removes the barrier for them.
How to meet it
- Mark up username and password fields with labels and autocomplete="username" and autocomplete="current-password" so browsers and password managers can fill them.
- Never block paste in login, password or code fields, and do not turn autofill off with scripts.
- Use one input with autocomplete="one-time-code" for verification codes, so users can paste or auto-fill the whole code.
- Offer a method that needs no recall, such as an email sign-in link, passkeys (WebAuthn) or a push approval on a phone.
- If you use a CAPTCHA, offer a path that is not a cognitive test. Object recognition or choosing a photo the user uploaded is allowed at this level.
- Do not ask for parts of a password, such as the 2nd and 5th characters, since users cannot paste those.
Examples
<label for="pw">Password</label>
<input id="pw" type="password" autocomplete="off" onpaste="return false"><fieldset>
<legend>Enter the code we texted you</legend>
<input aria-label="Digit 1" maxlength="1" inputmode="numeric">
<input aria-label="Digit 2" maxlength="1" inputmode="numeric">
<!-- ...four more one-digit inputs -->
</fieldset><label for="user">Email</label>
<input id="user" type="email" name="username" autocomplete="username">
<label for="pw">Password</label>
<input id="pw" type="password" name="password" autocomplete="current-password"><label for="otp">Enter the 6-digit code we texted you</label>
<input id="otp" name="otp" inputmode="numeric" autocomplete="one-time-code"
pattern="[0-9]{6}" maxlength="6">Can a scanner detect this?
No
axe-core has no rule for this criterion. Scripts that block paste or autofill run only when you interact, and judging a CAPTCHA needs a person. Test by logging in with a password manager and by pasting into every credential and code field.
No automated rule tests this criterion. Check it by hand.
Common mistakes
- Blocking paste on password fields in the belief that it improves security.
- Splitting a one-time code into separate boxes that reject a pasted code.
- Using a text CAPTCHA as the only way past the login form.
- Asking users to type specific characters of their password or a security answer from memory with no alternative.
Related criteria
Check your own page
See which automated WCAG checks your page fails, with the failing elements and how to fix them.
Reviewed November 2, 2026