Implement ARIA element reflection
Categories
(Core :: Disability Access APIs, enhancement)
Tracking
()
People
(Reporter: rego, Assigned: eeejay)
References
(Depends on 1 open bug, Blocks 9 open bugs)
Details
Attachments
(2 files)
Steps to reproduce:
After the work for simple attributes have been done (see https://bugzilla.mozilla.org/show_bug.cgi?id=1628418), the next step would be to implement IDREF element reflection.
HTML PR spec: https://github.com/whatwg/html/pull/3917
WPT test: https://github.com/web-platform-tests/wpt/blob/master/dom/nodes/aria-element-reflection.tentative.html
JFYI, Chromium (https://bugs.chromium.org/p/chromium/issues/detail?id=981423) and WebKit (https://bugs.webkit.org/show_bug.cgi?id=196843) already have an implementation.
Updated•2 years ago
|
Comment 1•2 years ago
|
||
https://github.com/webcompat/web-bugs/issues/112375 is covered by bug 1785412, not this one. Note that this part of ARIA reflection is implemented, but not shipped yet; see bug 1785412 for the reasons.
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Comment 4•3 months ago
•
|
||
Explainer: https://wicg.github.io/aom/aria-reflection-explainer.html#reflecting-element-references
Spec:
https://w3c.github.io/aria/#ARIAMixin
https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#reflecting-content-attributes-in-idl-attributes:element
- Bug 1823757 implements the DOM concepts of explicitly set attr-element and attr-associated element. However, some ARIA properties are an array of elements. We'll need to extend DOM to handle attr-element arrays. See dom::Element::ExplicitlySetAttrElement, GetExplicitlySetAttrElement, ClearExplicitlySetAttrElement, GetAttrAssociatedElement, etc.
- Bug 1879255 implements a11y engine support for a single explicitly set attr-element. We'll need to extend that to handle attr-element arrays. That should be fairly straightforward. See DocAccessible::AddDependentElementsFor, DocAccessible::RemoveDependentElementsFor, and the mIsWalkingDependentElements bits in RelatedAccIterator.
- The a11y engine will also need to be taught how to calculate ARIA relations from explicitly set attr-elements. RelatedAccIterator already handles the reverse relations thanks to bug 1879255. The forward side uses IDRefsIterator, which only knows about ids. We'll need to extend (and ideally rename) IDRefsIterator, similar to what was done for RelatedAccIterator.
- ElementInternals doesn't support explicitly set attr-elements at all, neither singular nor array. We'll need to extend it to handle this.
- We'll need to add the ARIA element attributes to ARIAMixin.webidl and implement them in dom::Element and ElementInternals.
- We'll need to ensure that setting an ARIA content attribute clears the explicitly set attr-element. We do this here for popovertarget. We'll probably need to do this in dom::Element for ARIA attributes, though.
- Finally, we'll need to teach the a11y engine how to get attr-elements from ElementInternals, in all places where we do this for normal elements.
Assignee | ||
Updated•3 months ago
|
Assignee | ||
Comment 5•24 days ago
|
||
Assignee | ||
Comment 6•24 days ago
|
||
Depends on D209767
Description
•