accessibility-guidelines

This document is in beta. Help us by reporting issues via Github or email

Back to the overview page

Error identification

On this page:


Summary

When someone makes an error while filling in a form, describe the error with text and clearly identify where the error is.

When a form validation error occurs, the user is informed of where the error is, and what caused it, using text.


Requirements

Common mistakes

Why?

This ensures that the form validation error is available to people who cannot see, distinguish colours, or understand icons and other visual cues.

Clear error messages help everyone to input and interact with content correctly. It is important to provide inclusive error messages that users of assistive technology can perceive. Keep in mind that not everyone sees visual cues, such as colour or icons. And people with cognitive impairments may have difficulty in understanding how to correct errors.

Official wording in the Web Content Accessibility Guidelines

3.3.1 Error Identification: If an input error is automatically detected, the item that is in error is identified and the error is described to the user with text. (Level A)

See the W3C’s detailed explanation of this guideline with techniques and examples.


Guidance for Design

For example, when a form is submitted:

  1. a list of all fields needing correction could be added in above the form;

  2. that list could be announced to screen reader users, either by:
    • moving the keyboard focus to that error summary box,
    • or by making that error summary box a ‘live’ region that announces when its content changes;
  3. form inputs that are in error are identified both visually (using than colour alone) and in code (using aria-invalid for example).

This section needs more content. Contribute via Github or email.

More guidance for design


Guidance for iOS

This section needs more content. Contribute via Github or email.


Guidance for Android

You can use a live region in order to send a new AccessibilityEvent to the current enabled Accessibility Service on view updates. This means that any service like TalkBack will pay attention to any changes in that View and will automatically announce them.

To do so, you can easily mark any View as a live region in your XML file by adding the accessibilityLiveRegion attribute:

<View
  ...
  android:accessibilityLiveRegion="polite"
  .../>

Options for this attribute are the following:

Carefully consider when to use live regions, as announcements for frequently changing views can be disruptive and annoying. Live regions can easily be overused, especially when you’re just starting out with accessibility. Live regions are the exception, not the rule.


Guidance for Flutter

This section needs more content. Contribute via Github or email.


Guidance for Web

Associating an error with a text input field using aria-describedby

<label for="national-insurance-number">
  National Insurance number
</label>

<span id="national-insurance-number-hint">
  It’s on your National Insurance card, benefit letter, payslip or P60. For example, ‘QQ 12 34 56 C’.
</span>

<input id="national-insurance-number" name="national-insurance-number" type="text"
aria-describedby="national-insurance-number-hint national-insurance-number-error">

<span id="national-insurance-number-error">
  <span class="visually-hidden">Error:</span> Enter a National Insurance number in the correct format
</span>

More guidance for Web


More info

Sources

Contribute

This document is in beta. Help us by reporting issues via Github or email