Add reference target#10995
Conversation
|
@annevk, @domenic, this isn't quite ready to land yet as there are still a few open questions to sort out (at least WICG/webcomponents#1087 and WICG/webcomponents#1093), plus missing implementor positions. But I don't expect most of the mechanics in this PR to change, so I think it would be great to get feedback on whether the approach we've used here is agreeable. See also whatwg/dom#1353 Thanks! |
|
There's also a WIP PR against ARIA to account for these changes: w3c/aria#2474 There are some open questions being discussed there on exactly how to refer to the HTML concepts, since ARIA needs to be language-independent, but it will certainly refer to these spec concepts in some form. |
lukewarlow
left a comment
There was a problem hiding this comment.
This should be updated to make use of the new [Reflect] syntax.
Thanks @lukewarlow! Fixed now (it wouldn't let me merge the suggestions directly due to merge conflicts). |
|
I'm not sure how GitHub actually lets you dismiss change suggestions but consider this me dropping my change suggestions as they've been resolved :) |
keithamus
left a comment
There was a problem hiding this comment.
I've done an initial review pass, got about half way, but I thought I'd provide my review commentary so far because I think if I continue I may end up repeating themes.
Some meta commentary:
- I think another formatting pass needs to be done.
- I am a little worried about the retargeting steps, I wonder if this can be simplified to avoid retargeting and to resolve a reference target where necessary.
| <span>tree</span>.</p> | ||
| a valid <span>single element reference</span> attribute | ||
| <span data-x="single-element-reference-refers-to">referring to</span> a <code>form</code> | ||
| element.</p> |
There was a problem hiding this comment.
This isn't perhaps super clear. I think this means that the final element from single element reference should be a form element
There was a problem hiding this comment.
That's right. I'm not really sure of a clearer way to put it.
There was a problem hiding this comment.
I wonder if this all works well for the Developer Edition of the standard as now we're phrasing conformance requirements in terms of algorithms aimed at implementers?
alice
left a comment
There was a problem hiding this comment.
I had to apply all the code suggestions manually, because I foolishly pushed my changes before I'd applied them.
…d make some tweaks in the Reflection section
…d attr target element(s) and unresolved attr target element(s)
This concept is used to propagate events into the source's tree under certain circumstances.
…ustom element registry)
…ire a focus event to pass relatedTarget to be set as concept rather than attribute
…mmand are fired, set composed and relatedTarget.
…edTarget parameter
caec5d7 to
6e4196f
Compare
I think we changed it for UI events. And more recently we weren't sure with these toggle events. I fixed quite a few issues with this PR. Further review welcome. The outstanding issue is the synthetic events. It seems we should align them with precedent and have the constructors initialize the relatedTarget concept correctly. |
|
Thanks for taking the time @annevk. I'm going to be out on vacation next week but will make the change for synthetic events when I get back. |
|
One thing I haven't checked in tests: aria-labelledby and non-trivial DOM mutations in multiple levels of nested Shadow DOMs. (Support for aria-labelledby is one thing missing currently in Gecko's referenceTarget implementation) |
|
Reference Target allows authors to specify an element inside a shadow root to be the target of any ID references referring to the host element. This would enable IDREF attributes such as for and aria-labelledby to refer to elements inside a component's shadow DOM while maintaining encapsulation of the internal details of the shadow DOM.
See the reference target explainer.
At a high level, the spec change consists of these parts:
get-the-attr-associated-elementalgorithm (and its array-of-elements form) to follow reference target.get-the-attr-associated-element.See also the corresponding whatwg/dom#1353 which adds the definition of reference target used in this PR.
(See WHATWG Working Mode: Changes for more details.)
/common-dom-interfaces.html ( diff )
/common-microsyntaxes.html ( diff )
/document-lifecycle.html ( diff )
/dom.html ( diff )
/form-control-infrastructure.html ( diff )
/form-elements.html ( diff )
/forms.html ( diff )
/iframe-embed-object.html ( diff )
/index.html ( diff )
/indices.html ( diff )
/infrastructure.html ( diff )
/input.html ( diff )
/interaction.html ( diff )
/interactive-elements.html ( diff )
/links.html ( diff )
/microdata.html ( diff )
/nav-history-apis.html ( diff )
/parsing.html ( diff )
/popover.html ( diff )
/scripting.html ( diff )
/tables.html ( diff )