Contact emails [email protected]
Specification https://html.spec.whatwg.org/#attr-template-shadowrootslotassignment Summary Adds the shadowrootslotassignment attribute to the <template> element, allowing declarative shadow roots to use manual slot assignment. Until now this option was only available imperatively, via attachShadow({slotAssignment: "manual"}), so components that rely on manual assignment could not create their shadow roots declaratively. The attribute accepts "named" (the default, preserving current behavior) and "manual", and is reflected by the shadowRootSlotAssignment property on HTMLTemplateElement. Blink component Blink>DOM>ShadowDOM Web Feature ID declarative-shadow-dom Motivation slotAssignment is fixed at shadow root creation, so components using manual slot assignment could not adopt declarative shadow DOM. The gap was raised in https://github.com/WICG/webcomponents/issues/967 and specified in the HTML Standard via https://github.com/whatwg/html/pull/12267 . Both Gecko and WebKit have implemented the attribute, so shipping in Chromium completes cross-engine support. This feature is opt-in and the default ("named") is unchanged. Initial public proposal No information provided Search tags shadow, DOM, slot TAG review No information provided TAG review status Not applicable Goals for experimentation None Risks Interoperability and Compatibility Low risk. The new behavior is opt-in: it only applies when a page explicitly sets shadowrootslotassignment="manual", and the default ("named") matches current behavior, so existing content is unaffected. The attribute is specified in the HTML Standard (merged via https://github.com/whatwg/html/pull/12267, originally raised in https://github.com/WICG/webcomponents/issues/967) and both Gecko and WebKit have already implemented it, so shipping in Chromium completes cross-engine support. The change is guarded by the ShadowRootSlotAssignment feature flag: currently experimental, aiming to enable it by default from M151 and then retained as a kill switch (expected to be removed around M153). Gecko: Shipped/Shipping (https://bugzilla.mozilla.org/show_bug.cgi?id=2023824) WebKit: Shipped/Shipping (https://bugs.webkit.org/show_bug.cgi?id=310090) https://github.com/WebKit/standards-positions/issues/631 Web developers: Positive (https://github.com/WICG/webcomponents/issues/967) Other signals: https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement/shadowRootSlotAssignment 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? The new behavior is opt-in, the default behavior remains unchanged, and pages that do not use the attribute are unaffected. Debuggability No new DevTools work required. The attribute is visible in the Elements panel like the other shadowroot* attributes, and the resulting shadow root's mode is already exposed via ShadowRoot.slotAssignment. 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? Yes https://wpt.fyi/results/shadow-dom/declarative/declarative-shadow-dom-repeats-slot-assignment.html https://wpt.fyi/results/shadow-dom/declarative/declarative-shadow-dom-slot-assignment.html https://wpt.fyi/results/shadow-dom/declarative/declarative-shadow-dom-slot-assignment-serialization.html Flag name on about://flags No information provided Finch feature name ShadowRootSlotAssignment Rollout plan Will ship enabled for all users Requires code in //chrome? False Tracking bug https://issues.chromium.org/issues/493315747 Estimated milestones Shipping on desktop 151 Shipping on Android 151 Shipping on WebView 151 Anticipated spec changes Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (eg links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (eg, changing to naming or structure of the API in a non-backward-compatible way). No information provided Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5178682139344896?gate=6073478714359808 This intent message was generated by Chrome Platform Status. -- 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/6a3e71b6.cff415cc.dde5e.00b1.GAE%40google.com.
