Bug 299375

Summary: Implement OpaqueRange
Product: WebKit Reporter: stephanie.zhang
Component: DOMAssignee: 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
Reported 2025-09-23 09:14:47 PDT
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
Radar WebKit Bug Importer
Comment 1 2025-09-30 09:15:42 PDT
Radar WebKit Bug Importer
Comment 2 2025-09-30 09:15:42 PDT
stephanie.zhang
Comment 3 2026-03-20 11:11:03 PDT
(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
Note You need to log in before you can comment on or make changes to this bug.