Skip to main content

WCAG 4.1.3 — Status Messages — Live Region Not Used for Dynamic Updates

moderateWCAG 4.1.3 · Level AAcms scope

When your website displays success confirmations, error messages, or loading updates, screen reader users aren't being notified of these changes. This leaves blind and visually impaired residents unable to know when their form submissions succeed or fail. The ADA Title II rule requires these status updates to be announced.

Who Is Affected

Screen reader users, blind users, users with low vision who rely on assistive technology, and users with cognitive disabilities who depend on clear feedback about system status.

What This Means

When content on your page changes dynamically — like showing "Form submitted successfully" or "Error: Please fill in required fields" — sighted users can see these updates immediately. However, screen readers only announce content that's in focus or explicitly marked as a live region.

Without proper ARIA live regions, screen reader users may submit a form and never know if it succeeded, wait indefinitely for a page that's already loaded, or miss critical error messages they need to fix.

Status messages include success confirmations, error alerts, progress indicators, search result counts, and any text that appears or changes after user interaction.

Fix: CMS / Theme

Most dynamic status messages are generated by JavaScript in your theme or plugins. The fix involves adding ARIA live region attributes to the containers where these messages appear.

WordPress

  1. Open your theme's JavaScript files (typically in /wp-content/themes/your-theme/js/).
  2. Locate where success/error messages are inserted into the DOM.
  3. Add aria-live="polite" for non-urgent messages or aria-live="assertive" for urgent errors to the message container:
<div id="form-messages" aria-live="polite" aria-atomic="true"></div>
  1. For contact forms using Contact Form 7, install a plugin like "Accessible Contact Form 7" or add this to your theme's functions.php:
add_filter('wpcf7_form_elements', function($content) {
    return str_replace('<div class="wpcf7-response-output"', 
        '<div class="wpcf7-response-output" aria-live="polite"', $content);
});

Joomla

  1. Navigate to your template files in /templates/your-template/.
  2. Find JavaScript files handling form submissions or dynamic content.
  3. Modify the message containers to include ARIA live regions:
<div id="system-message-container" aria-live="polite" aria-atomic="true"></div>
  1. For core Joomla forms, override the default system message display by creating a custom module or editing the template's HTML output.

Fix: Content Editor

For content editors adding dynamic elements through page builders or custom HTML:

  1. When creating forms or interactive content, ensure the success/error message containers include:

    • aria-live="polite" for general status updates
    • aria-live="assertive" for urgent errors that require immediate attention
    • aria-atomic="true" if the entire message should be re-read when it changes
  2. Example for a custom contact form:

<form id="contact-form">
    <!-- form fields -->
    <div id="form-status" aria-live="polite" aria-atomic="true"></div>
    <button type="submit">Submit</button>
</form>
  1. Ensure your JavaScript updates the content of this container, not replaces the container itself.

Standard Reference

WCAG 2.1 Success Criterion 4.1.3 — Status Messages, Level AA

In content implemented using markup languages, status messages can be programmatically determined through role or properties such that they can be presented to the user by assistive technologies without receiving focus.

Check if your government website has this issue

OctoComply scans your website and documents for WCAG 2.1 AA violations. The free tier covers up to 10 pages.

Run a Free Scan