ARIA alert support

Posted on Wednesday, 12 April 2017 by Steve Faulkner

book: electronic surveillance for dogs by B. A. LertBack in 2012 I did some testing of ARIA alert support across browsers, screen readers and operating systems. The results were not encouraging. Fast forward to yesterday, while in a discussion with my TPG colleague Jonny ‘Bonny’ James I had cause to revisit the alert tests and consequently retested alert support using some of the latest screen reader and browser combinations.

The original research considered four different methods for coding role=alert messages and how well each was supported. These same 4 methods were tested again.

The four methods tested

  1. createElement(), insertAttribute(), createTextNode() and appendchild()
  2. innerHTML
  3. display:none to display:block, display:inline etc.
  4. createTextNode + constraints

Refer to original article for details

The results

Support for ARIA alert across selected browsers/screen readers/OS combinations
Chrome Firefox Internet Explorer microsoft edge Safari
NVDA + Windows 1, 2, 3 ,4 = supported 1, 2, 3 = supported 1, 2 = supported 1, 2, 3, 4 = not supported not applicable
JAWS + Windows 1, 2, 3 ,4 = supported 1, 2, 3 ,4 = supported 1, 2, 3 ,4 = supported not applicable not applicable
VoiceOver + macOS 1, 2, 3 ,4 = supported not applicable not applicable not applicable 1, 2, 3 ,4 = supported
VoiceOver + iOS 1, 2, 3 ,4 = supported 1, 2, 3 ,4 = supported not applicable not applicable 1, 2, 3 ,4 = supported
Narrator + Windows not applicable not applicable 3, 4 = supported 3, 4 = supported

Note: tested using latest versions of the browser/screen reader/OS. Combinations that are known not to work together for general HTML content access were not tested.

​Analysis

Support has improved considerably since the last round of tests in 2012. Methods 1, 2 and 3 are robustly supported by NVDA (1 and 2 only with IE), JAWS and VoiceOver. NVDA and JAWS with Edge are still not practical combinations. And unfortunately Narrator currently does not have the robust support one would expect when used with IE and Edge.

About Steve Faulkner

Steve is the Technical Director at TPG. He joined The Paciello Group in 2006 and was previously a Senior Web Accessibility Consultant at vision australia. He is the creator and lead developer of the Web Accessibility Toolbar accessibility testing tool. Steve is a member of several groups, including the W3C Web Platforms Working Group and the W3C ARIA Working Group. He is an editor of several specifications at the W3C including HTML 5.1, ARIA in HTML, Notes on Using ARIA in HTML and HTML5: Techniques for providing useful text alternatives. He also develops and maintains HTML5accessibility.

Comments

  1. Things may have changed, but I remember a fifth triggering action as well: page load. It used to be that is the HTML markup contained an element with role="alert" assigned (such as a collection of form processing errors), the screen reader would chime and read the contents while the page was loading. I’ve noticed that some browser/screen reader combos seem to have dropped that functionality since I originally started using that pattern round about 2010/2011. But MDN still lists it as an option though and the spec doesn’t seem to preclude it.

    Has something else changed? Have browsers and/or AT regressed? Did folks on WCAG determine this was not a desirable feature? It seems like taking this option off the table necessitates JavaScript to handle the use case of error alerts. I’d love your thoughts.

  2. Hi Aaron,

    Has something else changed? Have browsers and/or AT regressed? Did folks on WCAG determine this was not a desirable feature? It seems like taking this option off the table necessitates JavaScript to handle the use case of error alerts. I’d love your thoughts.

    I don’t think that the method you describe has been determined as undesirable or wilfully taken off the table. I will do some digging and get back to you. As an aside, I tried a CSS only method and works fine.

Leave a Reply

Your email address will not be published. Required fields are marked *