Bug 299375
| Summary: | Implement OpaqueRange | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | stephanie.zhang |
| Component: | DOM | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | akeerthi, annevk, cdumez, lily_spiniolas, rniwa, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
stephanie.zhang
Implement FormControlRange -- a specialized, live AbstractRange subclass for <input>/<textarea> value space. It enables range-based operations in native controls while restricting standard Range mutations to preserve encapsulation. It integrates cleanly with existing selection/editing behavior and closes a long-standing gap.
Explainer: https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/FormControlRange/explainer.md
Ongoing WHATWG discussion thread: https://github.com/whatwg/html/issues/11478
WebKit Standards Link: https://github.com/WebKit/standards-positions/issues/541
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/161658720>
Radar WebKit Bug Importer
<rdar://problem/161658759>
stephanie.zhang
(In reply to stephanie.zhang from comment #0)
Updating this bug to reflect the current proposal.
The proposal has evolved from FormControlRange into OpaqueRange. OpaqueRange is a specialized, live AbstractRange subtype whose boundary points reference internal nodes within host-defined elements (for example, <input>/<textarea> today, with a path to custom elements in the future). It enables range-based operations over encapsulated content while avoiding exposure of internal DOM nodes.
The proposal also updates AbstractRange so startContainer/endContainer can be null, allowing OpaqueRange to return null for those getters while Range and StaticRange continue to return nodes.
Updated explainer:
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/OpaqueRange/explainer.md
Current specification work:
https://github.com/whatwg/dom/pull/1404
https://github.com/whatwg/html/pull/11741
Relevant WHATWG discussion:
https://github.com/whatwg/html/issues/11478
WebKit standards position issue:
https://github.com/WebKit/standards-positions/issues/541