Main Objective:
To ensure that status messages on web pages are programmatically determined and announced to users by assistive technologies, keeping them informed about the results of their interactions without shifting keyboard focus, using WAI-ARIA properties.
This success criterion does not mandate the appearance of status messages but requires that, if present, they are programmatically determinable for assistive technologies.
Before applying WAI-ARIA properties, it's crucial to verify whether the message qualifies as a "status message".
Such messages should provide information on:
- The success or results of an action or the waiting state of an application.
- The progress of a process.
- The existence of errors.
For instance, a live chatbox that sends messages to users must be marked with the WAI-ARIA role to ensure alerts are received by blind users. Using role="log" ensures assistive technologies can parse each status message effectively, leveraging default aria-live and aria-modal properties.
Another example is when a user submits a form. If the author includes a status message that isn't programmatically determined, users relying on assistive technologies won't understand if the form submission was successful. Adding role="status" to the message ensures assistive technologies parse and notify users about the action's outcome, utilizing built-in properties with aria-live set to polite and aria-atomic set to true to include all content under the container in the message.
Simultaneously, the message must not cause a "change of context," such as receiving focus, altering the viewport significantly, or adding new dynamic content that does not refer to a "message status."
Examples include a search box displaying results as text is typed or revealing text upon user activation of an accordion button.
Alertdialog messages that shift user focus within a dialog should not be tested under success criterion 4.1.3 either.
Non-text content, such as icons, also falls under this success criterion. For example, if a "busy" icon indicates that the application is busy, provide alt-text for the icon and use necessary WAI-ARIA properties or roles for the associated status message.