w3c / wcag

Web Content Accessibility Guidelines
https://w3c.github.io/wcag/guidelines/22/
Other
1.05k stars 232 forks source link

the Log example reads entire conversation from the top every time a line is added #1186

Open DavidMacDonald opened 4 years ago

DavidMacDonald commented 4 years ago

https://www.w3.org/WAI/WCAG21/working-examples/aria-role-log/chatlog.html

Every time a line is added it reads the entire conversation. Instead we want it to read just the new content that is added to the conversation.

In Jaws and NVDA when the user clicks send it says:

Hello

Hello Hi!

Hello Hi! Pleased to meet you.

Hello Hi! Pleased to meet you. We'll talk later, okay?

Hello Hi! Pleased to meet you. We'll talk later, okay? Bye!

I've tested adding aria-relevant="additions" or aria-atomic values to the container that has role="log" but that didn't solve it. It looks like we'll need to put the log on each new div 300ms before the text is inserted which could be a pain.

JAWS-test commented 4 years ago

If I see this correctly it is a bug in the browser and screenreader and not a bug in the WCAG example, because aria-atomic should be false by default for role=log and therefore only the changed content should be output. The problem occurs only in Chrome and not in IE 11 and Firefox. Nevertheless it would be good to find a solution that works in all browsers and with all screen readers. I don't know if there is such a solution. If such a solution is found, it would make sense to document in the example that additional attributes (which are then inserted) are actually superfluous (according to the specification), but are used to avoid bugs.

DavidMacDonald commented 4 years ago

It does this also with aria-live on it instead of role="log"

DavidMacDonald commented 4 years ago

PS just tested in Firefox (latest build)