Intent to Prototype: By default, custom elements will not appear in the accessibility tree

147 views
Skip to first unread message

Chromestatus

unread,
Nov 18, 2024, 4:25:12 PM11/18/24
to blin...@chromium.org, aleve...@chromium.org

Contact emails

aleve...@chromium.org

Explainer

None

Specification

https://github.com/WICG/webcomponents/issues/1073

Summary

It's natural to provide ARIA properties on a custom element and then have the custom element implementation copy that property to a descendant. For example, aria-label, aria-description or aria-placeholder may be provided by the author using a custom element. The custom element's implementation often copies ARIA properties to another element, where the properties are now duplicated. This is a problem for two reasons: 1. Properties duplicated between 2 different elements can cause redundant announcements or otherwise confuse assistive tech operating on the a11y tree. 2) Using an accessible name via aria-label* on the custom element currently will have a generic role by default causes a violation of ARIA spec rules that accessible names are prohibited for role="generic". Currently, browsers ignore this rule, which will cause the accessible name to be announced twice by screen readers. This feature addresses the issue by removing custom elements from the a11y tree, except when: - A role is provided on the custom element - The custom element is itself focusable - It uses aria-live (legit use case) or aria-owns (must remain in tree) Spec issues: https://github.com/w3c/aria/issues/2303 https://github.com/WICG/webcomponents/issues/1073 Chromium CLs: https://chromium-review.googlesource.com/c/chromium/src/+/5894644 https://chromium-review.googlesource.com/c/chromium/src/+/5894749



Blink component

Blink>Accessibility

Motivation

As explained in the summary, this will help avoid double announcements in screen readers when authors use a common pattern of copying ARIA properties from custom elements to elements in their shadow tree.



Initial public proposal

None

TAG review

None

TAG review status

Not applicable

Risks



Interoperability and Compatibility

None



Gecko: No signal

WebKit: No signal

Web developers: No signals

Other signals:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

None



Debuggability

None



Is this feature fully tested by web-platform-tests?

No

Flag name on about://flags

None

Finch feature name

None

Non-finch justification

None

Requires code in //chrome?

False

Estimated milestones

No milestones specified



Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5079996916563968?gate=5150348547981312

This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages