Skip to content

Update marquee, timer, aria-live=off to match the currently reality supported by all major browsers and screen readers #2674

@cookiecrook

Description

@cookiecrook

IDL questions re: aria-live=off.

https://w3c.github.io/aria/

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]

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions