Contact emails
[email protected], [email protected], [email protected], 
[email protected]


Explainer
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PlatformProvidedBehaviors/explainer.md


Specification
https://github.com/whatwg/html/pull/12409


Design docs

https://docs.google.com/document/d/1LA1hhzxmi4OmZoGtIdnwvL3g7y48YjXTOoUvFtxFugE/edit?usp=sharing


Summary
This feature introduces "Platform-Provided Behaviors" to ElementInternals, 
allowing custom elements to adopt native behaviors without extending native 
elements or reimplementing complex logic. It modifies attachInternals to accept 
a list of behaviors, starting with HTMLSubmitButtonBehavior, which wires up 
form submission on activation.


Blink component
Blink>DOM


Web Feature ID
Missing feature


Goals for experimentation
None


Risks




Interoperability and Compatibility
This is a new API surface (new global constructors and a new option on 
attachInternals), so there is no backward compatibility risk. The main interop 
risk is that other engines' positions are still pending. The API can be 
polyfillable: authors can feature-detect HTMLSubmitButtonBehavior and fall back 
to manual event handling (form.requestSubmit) if unavailable. The behaviors 
option on attachInternals is additive; calling attachInternals() without it 
works exactly as before.

Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1380)

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/642)

Web developers: Positive 
(https://docs.google.com/document/d/1eU_c4_fQ1yVSm8mjjfuqd1wWN9T8z2N6dr4XIwMv9uM/edit?usp=sharing)

Other signals:


Ergonomics
The API requires authors to manually forward HTML attributes to behavior 
properties (eg, observing the "disabled" attribute and setting 
behavior.disabled in attributeChangedCallback). This keeps the platform layer 
minimal and gives authors full control. The pattern to instantiate and then 
attach behaviors (new HTMLSubmitButtonBehavior() + attachInternals({ behaviors: 
[...] })) is consistent with existing web platform patterns and W3C design 
principles for constructable objects.


Activation
The feature can be immediately adopted by custom element experienced with 
ElementInternals and form associated elements without much overhead. 
Polyfilling is feasible since the behavior's capabilities (click/keyboard 
activation, form submission) can be approximated with existing APIs. Framework 
authors who currently work around the manual event wiring are the primary early 
adopters and can benefit immediately.


Security
This feature exposes existing platform capabilities (form submission, 
activation, focusability) to custom elements. Form submission triggered by 
HTMLSubmitButtonBehavior uses the same FormSubmission infrastructure as native 
<button type="submit">, subject to the same CSP, CORS, navigation, and 
validation checks. No new data is exposed, no new script execution mechanisms 
are introduced, and no cross-origin information is leaked.


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?
Low, new API.



Debuggability
Element behaviors are inspectable via the ElementInternals object. In DevTools, 
developers can access the stored reference to inspect the array of attached 
behaviors and their properties (disabled, formAction, form, name, value, etc.). 
The element's computed accessibility role is visible in the DevTools 
Accessibility pane. A console warning is emitted if behaviors are attached to a 
non-form-associated custom element.


Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, 
ChromeOS, Android, and Android WebView)?
Yes
This feature operates entirely at the DOM/rendering layer with no 
platform-specific dependencies. It wires up event handling, form submission, 
accessibility roles, and focus management using existing cross-platform Blink 
infrastructure.


Is this feature fully tested by web-platform-tests?
Yes
https://wpt.fyi/results/custom-elements/form-associated?label=master&label=experimental&aligned&q=form-associated%20is%3Atentative,
 
https://wpt.fyi/results/custom-elements?label=master&label=experimental&aligned&q=is%3Atentative


DevTrial instructions
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PlatformProvidedBehaviors/HOWTO.md


Flag name on about://flags
enable-experimental-web-platform-features


Finch feature name
ElementInternalsBehaviors


Requires code in //chrome?
False


Tracking bug
https://issues.chromium.org/issues/486928684


Measurement
Three UseCounters track adoption: 1. ElementInternalsWithBehaviors: 
attachInternals() is called with the behaviors option 
https://chromestatus.com/metrics/feature/timeline/popularity/5878 2. 
HTMLSubmitButtonBehaviorUsage: new HTMLSubmitButtonBehavior() 
https://chromestatus.com/metrics/feature/timeline/popularity/5879 3. 
ElementInternalsBehaviorsAccess: ElementInternals.behaviors property is 
accessed https://chromestatus.com/metrics/feature/timeline/popularity/5880


Estimated milestones


DevTrial on desktop 149

DevTrial on Android 149




Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/6035800057839616


Links to previous Intent discussions
Intent to Prototype: 
https://groups.google.com/a/chromium.org/g/blink-dev/c/ETKzYhB6BbI/m/0jQaazNHAQAJ



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/6a064955.050a0220.5fc49.0d3c.GAE%40google.com.

Reply via email to