Bug 1769586 Comment 4 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

1. 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.
2. 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.
3. 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 add a new iterator (or replace IDRefsIterator).
4. ElementInternals doesn't support explicitly set attr-elements at all, neither singular nor array. We'll need to extend it to handle this.
5. 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.
1. 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.
2. 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 RelatedAccIterator.
3. 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.
4. ElementInternals doesn't support explicitly set attr-elements at all, neither singular nor array. We'll need to extend it to handle this.
5. We'll need to add the ARIA element attributes to ARIAMixin.webidl and implement them in dom::Element and ElementInternals.
6. We'll need to ensure that setting an ARIA content attribute clears the explicitly set attr-element. We [do this here for popovertarget](https://searchfox.org/mozilla-central/rev/9982a76fe95c70f7c2dca2d60bd78e015313924d/dom/html/nsGenericHTMLElement.cpp#765). We'll probably need to do this in dom::Element for ARIA attributes, though.
7. 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.
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

1. 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.
2. 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.
3. 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.
4. ElementInternals doesn't support explicitly set attr-elements at all, neither singular nor array. We'll need to extend it to handle this.
5. We'll need to add the ARIA element attributes to ARIAMixin.webidl and implement them in dom::Element and ElementInternals.
6. We'll need to ensure that setting an ARIA content attribute clears the explicitly set attr-element. We [do this here for popovertarget](https://searchfox.org/mozilla-central/rev/9982a76fe95c70f7c2dca2d60bd78e015313924d/dom/html/nsGenericHTMLElement.cpp#765). We'll probably need to do this in dom::Element for ARIA attributes, though.
7. 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.

Back to Bug 1769586 Comment 4