LGTM3

On Tue, Jun 30, 2026 at 10:05 AM Chris Harrelson <[email protected]>
wrote:

> LGTM2
>
> On Tue, Jun 30, 2026, 5:36 AM Yoav Weiss (@Shopify) <
> [email protected]> wrote:
>
>> LGTM1
>>
>> Please make sure the PRs land. (and delay shipping if the final round
>> ends up changing the API shape)
>>
>> On Friday, June 26, 2026 at 1:31:35 AM UTC+2 [email protected] wrote:
>>
>>> I’ve resolved all spec issues raised in prior rounds of review. The PRs
>>> received no more feedback for a couple weeks after the last review round,
>>> so I raised a request in the WHATNOT call today asking for any final
>>> feedback. Anne said he’d take another look so just waiting on that.
>>>
>>>
>>>
>>> In that discussion Olli from Mozilla asked I make sure the test coverage
>>> was complete. I think the existing test coverage is solid but am working on
>>> adding one specific case he asked for in
>>> https://chromium-review.googlesource.com/c/chromium/src/+/8007785.
>>>
>>>
>>>
>>> No other blockers that I know of except what a final review pass might
>>> turn up.
>>>
>>>
>>>
>>> *From:* Chris Harrelson <[email protected]>
>>> *Sent:* Thursday, June 25, 2026 1:16 PM
>>> *To:* Daniel Clark <[email protected]>
>>> *Cc:* [email protected]
>>> *Subject:* Re: [blink-dev] Intent to Ship: Reference Target
>>>
>>>
>>>
>>> Thanks for working on this API, it solves an important a11y and
>>> functional need.
>>>
>>>
>>>
>>> Given Mozilla is positive on this API, is there anything blocking
>>> landing the spec PRs?
>>>
>>>
>>>
>>> On Tue, Jun 23, 2026 at 4:22 PM 'Daniel Clark' via blink-dev <
>>> [email protected]> wrote:
>>>
>>> *Contact emails*
>>>
>>> [email protected], [email protected]
>>>
>>> *Explainer*
>>>
>>>
>>> https://github.com/WICG/webcomponents/blob/gh-pages/proposals/reference-target-explainer.md
>>>
>>>
>>>
>>> *Specification*
>>>
>>> https://github.com/whatwg/html/pull/10995,
>>> https://github.com/whatwg/dom/pull/1353
>>>
>>> *Summary*
>>>
>>> Reference Target enables ID attributes like <label for>,
>>> 'aria-labelledby', 'popovertarget', and 'commandfor' to be forwarded to
>>> elements inside a component's shadow DOM, while maintaining the shadow's
>>> encapsulation of its internal state. When a shadow host specifies an
>>> element in its shadow tree to act as its reference target, all ID
>>> references pointing to the shadow host are forwarded to the reference
>>> target element instead.
>>>
>>>
>>>
>>> For example, here the <label>’s “my-checkbox” ID reference is forwarded
>>> to the element in the shadow with the ID “real-checkbox":
>>>
>>>
>>>
>>> <label for="my-checkbox">Click me to toggle checkbox</label>
>>>
>>> <custom-checkbox id="my-checkbox">
>>>
>>> <template shadowrootmode="open"
>>> shadowrootreferencetarget="real-checkbox">
>>>
>>> <input id="real-checkbox" type="checkbox">
>>>
>>> </template>
>>>
>>> </custom-checkbox>
>>>
>>>
>>>
>>> Reference target can be set declaratively like in the above example, or
>>> in JavaScript with ShadowRoot's 'referenceTarget' property.
>>>
>>> *Blink component*
>>>
>>> Blink>DOM>ShadowDOM
>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EDOM%3EShadowDOM%22>
>>>
>>> *Web Feature ID*
>>>
>>> referencetarget <https://webstatus.dev/features/referencetarget>
>>>
>>> *Motivation*
>>>
>>> Shadow DOM presents a problem for accessibility: there is not a way to
>>> establish semantic relationships between elements in different shadow trees
>>> (such as via 'aria-labelledby'). This limits the ability to design web
>>> components in a way that works with accessibility tools such as screen
>>> readers. The ARIAMixin IDL attributes (
>>> https://w3c.github.io/aria/#ARIAMixin) are a partial solution to the
>>> problem; however, they lack the ability to create a reference "into" a
>>> shadow tree from the outside. Reference Target is a solution to that
>>> missing piece of the problem.
>>>
>>>
>>>
>>> In addition to the issues with accessibility, ID attributes like
>>> 'popovertarget' and 'commandfor' can’t be used to refer to elements inside
>>> a shadow root without reference target.
>>>
>>> *Initial public proposal*
>>>
>>> https://github.com/WICG/aom/pull/207
>>>
>>> *TAG review*
>>>
>>> https://github.com/w3ctag/design-reviews/issues/961
>>>
>>> *TAG review status*
>>>
>>> Issues addressed
>>>
>>> *Origin Trial Name*
>>>
>>> Reference Target for Cross-Root ARIA
>>>
>>> *Chromium Trial Name*
>>>
>>> ShadowRootReferenceTarget
>>>
>>> *WebFeature UseCounter name*
>>>
>>> WebDXFeature::kDRAFT_ReferenceTarget
>>>
>>> *Risks*
>>>
>>>
>>>
>>> *Interoperability and Compatibility*
>>>
>>> The interoperability risk is low since engineers from the other browser
>>> engines have been active in spec discussions about the feature.
>>>
>>>
>>>
>>> This feature makes a change to the Toggle, Command, Interest, and Submit
>>> events that presents a small compatibility risk. These events each have a
>>> 'source'/'submitter' property that's set to the element triggering the
>>> event, e.g. the button element clicked to open a popup. With reference
>>> target this element can now be in a parent shadow tree relative to the
>>> event is fired. Per discussion in
>>> https://github.com/WICG/webcomponents/issues/1098 there was a desire to
>>> have the event's dispatch path include the source/submitter's tree. This is
>>> done by setting these events' internal relatedTarget (
>>> https://dom.spec.whatwg.org/#event-relatedtarget) to
>>> their 'source'/'submitter'
>>>
>>> and making the event composed when that relatedTarget is non-null. When
>>> used with reference target this causes the event path to include a
>>> 'source'/'submitter' in a parent shadow.
>>>
>>>
>>>
>>> When used without reference target, there is no change to these events'
>>> event paths (since the source/submitter can never be in a parent shadow,
>>> therefore the relatedTarget will be in the same tree as the target,
>>> therefore the event won’t dispatch in the parent shadow per the current
>>> event dispatch algorithm). But, the 'composed' property on the event will
>>> be set to true. This has already been changed in the past for Command and
>>> Interest events (
>>> https://chromium-review.googlesource.com/c/chromium/src/+/6505682,
>>> https://chromium-review.googlesource.com/c/chromium/src/+/7797864), and
>>> there's also history of changing these for Mouse events (
>>> https://chromium-review.googlesource.com/c/chromium/src/+/4563502), so
>>> I'm optimistic that this won't cause breakage. Most usage on Github (
>>> https://github.com/search?q=%2Fevent%5C.composed%5B%5EP%5D%2F&type=code)
>>> is either conditional on 'bubbles' also being true, which is false for the
>>> events in question, or is or is specific to mouse events which aren't
>>> affected here.
>>>
>>> *Gecko*: Positive (
>>> https://github.com/mozilla/standards-positions/issues/1035)
>>>
>>> *WebKit*: No signal (
>>> https://github.com/WebKit/standards-positions/issues/356)
>>>
>>> *Web developers*: Positive
>>>
>>>    - Why we still need reference target
>>>    <https://gist.github.com/davatron5000/b6a62cb782f01c69e818cd4585391138>
>>>    -
>>>    https://github.com/WICG/webcomponents/issues/1120#issuecomment-4156132737
>>>    - Lots of positive reactions on last year's Interop Project proposal
>>>    for Reference Target, despite the feature not yet being eligible for the
>>>    Interop Project at that time:
>>>    https://github.com/web-platform-tests/interop/issues/1011
>>>
>>>
>>>
>>> We ran an Origin Trial for the feature back in 133-135 but didn’t get
>>> much developer uptake at the time. I attribute this to the difficulty of
>>> poylfilling — see Activation section. We’ve since worked closely with
>>> developers to ensure that the API meets their needs and they’ll be able to
>>> adopt it.
>>>
>>>
>>>
>>>
>>>
>>> *Activation*
>>>
>>> This is a difficult feature to polyfill since ID reference attributes
>>> cannot pierce into shadow roots without it. So there's no way for a
>>> polyfill to enable the capability that reference target enables. My hope is
>>> that this will be mitigated by other browsers shipping the feature. Gecko
>>> is positive, I've been discussing the spec changes with engineers from both
>>> Gecko and WebKit, and Gecko and WebKit both have prototype implementations.
>>>
>>>
>>>
>>> There is already brief MDN documentation:
>>>
>>>
>>> https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/template#shadowrootreferencetarget
>>>
>>>
>>> https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot#shadowroot.referencetarget
>>>
>>>
>>>
>>> There has sometimes been confusion about what scenarios the feature
>>> unlocks, e.g. some developers assumed it directed ID references *out* of a
>>> shadow root rather than *into* a shadow root. I'll ensure that we have good
>>> documentation available including examples like those in
>>> https://microsoftedge.github.io/Demos/reference-target/. The MDN docs
>>> issue for the feature is still open at
>>> https://github.com/mdn/content/issues/43453.
>>>
>>> *WebView application risks*
>>>
>>> None
>>>
>>>
>>>
>>> *Debuggability*
>>>
>>> No specific DevTools support is expected to be necessary. Existing
>>> DevTools support for features used with reference target will continue to
>>> work. For example, the accessibility tree viewer can be used to check that
>>> an 'aria-labelledby' attribute is applied correctly even when it's used
>>> cross-shadow-DOM with reference target.
>>>
>>> *Will this feature be supported on all six Blink platforms (Windows,
>>> Mac, Linux, ChromeOS, Android, and Android WebView)?*
>>>
>>> Yes
>>>
>>> *Is this feature fully tested by **web-platform-tests*
>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>> *?*
>>>
>>> Yes: https://wpt.fyi/results/shadow-dom/reference-target
>>>
>>> *Flag name on about://flags*
>>>
>>> *No information provided*
>>>
>>> *Finch feature name*
>>>
>>> ShadowRootReferenceTarget
>>>
>>> *Rollout plan*
>>>
>>> Will ship enabled for all users
>>>
>>> *Requires code in //chrome?*
>>>
>>> False
>>>
>>> *Tracking bug*
>>>
>>> https://issues.chromium.org/issues/346835896
>>>
>>> *Availability expectation*
>>>
>>> I've received positive engagement on the spec PR from WebKit and Gecko
>>> engineers, and the feature is prototyped in both of those engines. So I'm
>>> optimistic that they will follow in supporting this feature, though there
>>> is no official commitment of support.
>>>
>>> *Adoption expectation*
>>>
>>> We are working with a developer partner who plans to adopt the feature
>>> once it's shipped.
>>>
>>> *Non-OSS dependencies*
>>>
>>> None
>>>
>>> *Estimated milestones*
>>>
>>> Shipping on desktop
>>>
>>> 151
>>>
>>> Origin trial desktop first
>>>
>>> 133
>>>
>>> Origin trial desktop last
>>>
>>> 135
>>>
>>> Shipping on Android
>>>
>>> 151
>>>
>>> Shipping on WebView
>>>
>>> 151
>>>
>>>
>>>
>>> *Anticipated spec changes*
>>>
>>> No breaking changes are expected.
>>>
>>> *Link to entry on the Chrome Platform Status*
>>>
>>> https://chromestatus.com/feature/5188237101891584?gate=5152828586196992
>>>
>>> *Links to previous Intent discussions*
>>>
>>> Intent to Prototype:
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/CEdbbQXPIRk/m/U43spqbKAgAJ
>>> Intent to Experiment:
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/C3pELgMqzCY/m/Lpb6DkueAQAJ
>>>
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "blink-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/DS0PR00MB2527DA9DA93A1972F5594156C5EE2%40DS0PR00MB2527.namprd00.prod.outlook.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/DS0PR00MB2527DA9DA93A1972F5594156C5EE2%40DS0PR00MB2527.namprd00.prod.outlook.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4083781f-5237-46a3-993e-349ab4071a55n%40chromium.org
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4083781f-5237-46a3-993e-349ab4071a55n%40chromium.org?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "blink-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw-bNLuGQRCybr7jr2croYJkd5B-hwmeCSjBgAeVJSbtuQ%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw-bNLuGQRCybr7jr2croYJkd5B-hwmeCSjBgAeVJSbtuQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2NMQ3r_gs14t6sEz-%2BdyX5U5fzVC42%3Dff8WVeSKcMAAEw%40mail.gmail.com.

Reply via email to