The WPT tests failing is mostly because Safari still using the old specification for getComposedRanges() syntax. This change was resolved in September 2024: https://github.com/w3c/selection-api/pull/331
I have opened an issue with MDN to update the site: https://github.com/mdn/content/issues/38810 I have opened an issue in Webkit Bugzilla: https://bugs.webkit.org/show_bug.cgi?id=290480 The bug in Mozilla Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=1912163 There are also some implementation details getting defined that these tests are testing. Implementers are in favor of making progress, but it is stalling due to disagreement on how to phrase/word the spec. https://github.com/whatwg/dom/pull/1342 It looks like I missed the TAG review field, sorry about that. This feature has already gone through a TAG review: https://github.com/w3ctag/design-reviews/issues/694 On Tuesday, March 25, 2025 at 7:17:59 PM UTC-7 dan...@microsoft.com wrote: > Looking at the WPT results, there are a lot of Safari failures despite > them having already shipped this. > > > https://wpt.fyi/results/selection/shadow-dom/tentative?label=experimental&label=master&aligned > > Do you have an understanding of what those gaps are, and whether there’s a > path towards resolving them and ending up with interoperable > implementations? > > > > I am also wondering if there should be a TAG review for this. It seems > that the spec is still somewhat in flux and the shipped WebKit > implementation doesn’t align all that closely with Chromium’s given the WPT > results, so I’m not sure this Intent quite meets the spirit of the > exceptions > <https://www.chromium.org/blink/launching-features/wide-review/#exceptions> > for a TAG review. And in any case the TAG may be able to help unblock some > of the disagreements that have caused the spec changes to stall out. > > > > -- Dan > > > > *From:* Di Zhang <dizha...@chromium.org> > *Sent:* Tuesday, March 25, 2025 4:42 PM > *To:* blink-dev <blink-dev@chromium.org> > *Subject:* [EXTERNAL] [blink-dev] Intent to Ship: Selection API > getComposedRanges and direction > > > > *Contact emails* > > dizha...@chromium.org > > *Explainer* > > None > > *Specification* > > https://w3c.github.io/selection-api/#dom-selection-getcomposedranges > > *Summary* > > This feature ships two new API methods for the Selection API: * > Selection.direction which returns the selection's direction as either > "none", "forward" or "backward" * Selection.getComposedRanges() which > returns a list of 0 or 1 “composed” StaticRange A “composed” StaticRange is > allowed to cross shadow boundaries, which normal Ranges cannot. For > example: const range = getSelection().getComposedRanges({ shadowRoots: > [root] }); If the selection crosses a shadow root boundary that isn’t > provided in the shadowRots list, then the StaticRange's endpoints will be > “rescoped” to be outside that tree. This makes sure we do not expose > unknown shadow trees. > > > > *Blink component* > > Blink>DOM>ShadowDOM > <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EDOM%3EShadowDOM%22> > > *TAG review* > > None > > *TAG review status* > > Issues addressed > > *Risks* > > > > *Interoperability and Compatibility* > > None > > > > *Gecko*: Positive ( > https://github.com/mozilla/standards-positions/issues/1055) Currently in > development. > https://groups.google.com/a/mozilla.org/g/dev-platform/c/zF7soLapT-Y > > *WebKit*: Shipped/Shipping ( > https://github.com/WebKit/WebKit/pull/10843#issuecomment-1592149737) > Partially shipped new API > > *Web developers*: Positive ( > https://stackoverflow.com/questions/62054839/shadowroot-getselection) > > *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?* > > No, this is only shipping new APIs without modifying existing behavior. > > > > *Debuggability* > > None > > > > *Will this feature be supported on all six Blink platforms (Windows, Mac, > Linux, ChromeOS, Android, and Android WebView)?*Yes > > The Selection API is supported on all platforms. > > > > *Is this feature fully tested by web-platform-tests > <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?* > Yes > > Tests can be found at > https://wpt.fyi/results/selection/shadow-dom/tentative?label=experimental&label=master&aligned > > > > *Flag name on about://flags* > > SelectionAcrossShadowDOM > > *Finch feature name* > > SelectionAcrossShadowDOM > > *Requires code in //chrome?* > > False > > *Tracking bug* > > https://issues.chromium.org/issues/40286116 > > *Availability expectation* > > Feature is available on Web Platform Baseline within 6 months of launch in > Chrome. > > *Adoption expectation* > > Feature is available on Web Platform Baseline within 6 months of launch in > Chrome. > > *Adoption plan* > > The feature is already shipped in Safari/Webkit and Firefox has an > implementation in Nightly. They mentioned also wanting to land this within > 2025. > > *Estimated milestones* > Shipping on desktop > 137 > Shipping on Android > 137 > Shipping on WebView > 137 > > *Anticipated spec changes* > > *Open questions about a feature may be a source of future web compat or > interop issues. Please list open issues (e.g. links to known github issues > in the project for the feature specification) whose resolution may > introduce web compat/interop risk (e.g., changing to naming or structure of > the API in a non-backward-compatible way).* > > This new API is important to return Selection endpoints that are inside a > shadow DOM and currently not accessible by API. This depends on new > specification definitions of what it means to have a range that is composed > and how the endpoints should be compared. That specification includes tree > traversal, boundary point comparisons and the specification language is > quite complex. The specification PR has been open since Dec 17, 2024 and is > stalling due to disagreement on how to phrase/word the spec. There are a > few remaining open issues about this, but none of those should affect the > shape of the API - they only affect the spec text itself. > > https://github.com/whatwg/dom/pull/1342 > > https://github.com/whatwg/dom/issues/1362 > > https://github.com/whatwg/dom/issues/1363 > > https://github.com/w3c/selection-api/pull/345 > > *Link to entry on the Chrome Platform Status* > > https://chromestatus.com/feature/5971377218912256?gate=6663146663313408 > > *Links to previous Intent discussions* > > Intent to Prototype: > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c40a8cc7-9f46-451c-b449-450e1d072fabn%40chromium.org > > > This intent message was generated by Chrome Platform Status > <https://chromestatus.com/>. > > -- > 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 blink-dev+unsubscr...@chromium.org. > To view this discussion visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/10d2631e-2014-42ac-9343-c6d43ff47975n%40chromium.org > > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/10d2631e-2014-42ac-9343-c6d43ff47975n%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 blink-dev+unsubscr...@chromium.org. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/cafd293b-bdca-4929-aca7-f298e5911307n%40chromium.org.