-
Notifications
You must be signed in to change notification settings - Fork 140
Description
IDL questions re: aria-live=off.
The spec defines aria-live as a global attribute in https://w3c.github.io/aria/#aria-live
Used in Roles: All elements of the base markup
it also defines off as the default value:
off(default): Indicates that updates to the region should not be presented to the user unless the user is currently focused on that region.
The definition "should not be presented to the user unless the user is currently focused on that region" accurately reflects the intention based on my recollection at the time, as well as based on other prose in the spec about order prioritization, etc.
Priority levels (none[sic, errata, should be 'off'] , polite, assertive) act as an ordering mechanism for updates and serve as a recommendation to user agents or assistive technologies.
However, the combination of this default value, its definition, and the global attribute means that all elements are live regions at all times... And there is no real way to stop live region announcements from the element the AT user is focused on. "off" doesn't really mean "off"...
I don't believe the editors intended to make aria-live affect elements globally this way, at least not in the context of aria-live=off, or didn't consider the consequences of making a value other then undefined the default value for a global attribute. (I was one of the spec editors around that time and admit to not considering this consequence in the context of an IDL implementation.)
I expect this might be addressed as errata...
The easiest and most web-compatible option may be to change aria-live to no longer be global. Instead, defining it and other live region attributes as allowed only on elements with an explicitly defined live region role, and ignored on other elements.
Another solution may be to add another undefined value as the default, but I think this path has more risk to webcompat.
[Update: I struck the previous two options because the third option below seems best now]