
Accessible Error Messages: How to Design and Write Them
Mar 16, 2026
·
2 min read
Errors happen. The problem is when the message is confusing, easy to miss, or only “visible” to people who can see color cues. Accessible error messages make it obvious what went wrong, where it went wrong, and what to do next, without forcing users to guess. Let's go into more detail.
What makes an error message accessible
An accessible error message is:
Written in text (icons and color can help, but not alone)
Close to the element that failed
Informative, so the user can fix the issue
Associated with the failed element in the code
It’s also helpful to move focus to the form control that failed, especially after server-side validation, where users might not otherwise notice what has changed.
Write the message like a teammate, not a judge
Great, accessible error messages do two things:
Clearly describe the problem.
Suggest the fix (or the expected format).
More precision usually helps. “Only letters, not numbers” is clearer than a vague warning like “unusual characters.” Just keep it pragmatic; more precision can mean more message variants.
If you use error symbols (like an exclamation mark or an asterisk), don’t let the symbol carry the meaning by itself. Describe it in text for screen reader users, too.
Place it where people expect it
In-line errors are easiest to understand when they sit right next to the field to which they refer.
For “after submit” validation, it can also help to list errors at the top of the page, before the form, with a distinctive heading.
Each item in the list should:
Reference the label of the related control
Describe the error concisely and clearly
Explain how to correct it (including format requirements)
Include an in-page link to jump to the field
Make it work for screen readers and keyboards
Copy + placement aren’t enough. The code needs to connect the dots.
Associate the message with the field.
Mark invalid fields.
Make sure updates are announced.
Keep it keyboard-friendly.
Quick checklist for accessible error messages
Text first: don’t rely on color or icons alone
Nearby: keep the message close to the field
Actionable: say what’s wrong and how to fix it
Connected: use aria-describedby and (when invalid) aria-invalid="true"
Announced: use role="alert" where appropriate
Navigable: ensure keyboard access, and move focus to the first error after submit
If you get these basics right, accessible error messages stop being an accessibility checkbox and start feeling like a quiet UX upgrade that helps everyone complete the form with less friction.
If you aren't following us on Instagram already, you're seriously missing out! Become a part of our ever-growing community and learn something new from the field of product design every. single. day.
Happy designing! 🥳
andrija & supercharge design team

If you aren't following us on Instagram already, you're seriously missing out! Become a part of our ever-growing community and learn something new from the field of product design every. single. day.
Happy designing! 🥳
andrija & supercharge design team

Related blog posts
You might like the following
You might like the following
LIMITED-TIME OFFER
Get 12 premium members-only video lessons for free
Just tell us where to send them
You can unsubscribe at any time—no strings attached
LIMITED-TIME OFFER
Get 12 premium members-only video lessons for free
Just tell us where to send them
You can unsubscribe at any time—no strings attached


