Skip to main content
Perceivly: Perceivly home

3.3.3 Error Suggestion

Level AA · added in WCAG 2.0

When your site detects an input error and knows how to correct it, it must tell the user how. The exception is when the suggestion would weaken security or defeat the purpose of the content, such as a test.

Who it helps

People with cognitive or learning disabilities may not work out what "Invalid input" means. Screen reader users and people with low vision cannot easily scan the page for clues, so a clear suggestion saves them guesswork.

How to meet it

Examples

Fails:The error says something is wrong but not how to fix it
<label for="dob">Date of birth</label>
<input id="dob" type="text" aria-invalid="true" aria-describedby="dob-error">
<p id="dob-error">Error: Invalid date.</p>
Fails:A rejected password with no hint about the rules
<label for="new-pw">New password</label>
<input id="new-pw" type="password" autocomplete="new-password"
       aria-invalid="true" aria-describedby="pw-error">
<p id="pw-error">Error: Password not accepted.</p>
Passes:The error gives the expected format and an example
<label for="dob">Date of birth</label>
<input id="dob" type="text" aria-invalid="true" aria-describedby="dob-error">
<p id="dob-error">Error: Enter the date as MM/DD/YYYY, for example 07/14/1985.</p>
Passes:The error says which rule the new password broke
<label for="new-pw">New password</label>
<input id="new-pw" type="password" autocomplete="new-password"
       aria-invalid="true" aria-describedby="pw-error">
<p id="pw-error">Error: Use at least 12 characters. Yours has 8.</p>

Can a scanner detect this?

No

axe-core has no rule for this criterion, because error messages appear only after input is checked. A person must enter wrong values in each field and judge whether the message explains how to fix them.

No automated rule tests this criterion. Check it by hand.

Common mistakes

Official W3C explanation of 3.3.3

Check your own page

See which automated WCAG checks your page fails, with the failing elements and how to fix them.

Enter a page address, for example example.com/shop.

Reviewed November 2, 2026