On this page:
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.
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.
See the W3C’s detailed explanation of this guideline with techniques and examples.
For example, when a form is submitted:
a list of all fields needing correction could be added in above the form;
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
<View ... android:accessibilityLiveRegion="polite" .../>
Options for this attribute are the following:
none: Accessibility services should not announce changes to this view.
polite: Accessibility services should announce changes to this view.
assertive: Accessibility services should interrupt ongoing speech to immediately announce changes to this view.
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.
<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>