Hi there -
I'm a frontend engineer at Coursera.org. Our presence at
www.coursera.org is implemented as a single page webapp, where the HTML is built entirely up by JavaScript (using Backbone, templates, and RequireJS), and when the user navigates from one page to the next, we do not refresh the entire page, we simply refresh parts of it (what we call "regions" in our code).
We currently have our entire page wrapped in a DIV with aria-live="polite", since everything in that DIV is subject to change on a page refresh. However, in a recent accessibility audit, we were told that it is leading to duplicate announcements, and that we should be wrapping smaller elements in that attribute. But I worry that if we do not have aria-live on that wrapper DIV, then the screen reader may not notice that the page has swapped out.
What is the general best practice for sites implemented this way in terms of the live and role attributes, and making sure the screen reader makes the right number of announcements? Or, what specific recommendation would you give for our setup?
Thanks!
- pamela