Contact emails
[email protected]

Explainer
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Editing/multi-range-selection-explainer.md


Specification
https://github.com/w3c/selection-api/pull/359


Summary
Enables Selection API to hold and manipulate multiple disjoint ranges within a 
single document. Users can create discontinuous text selections via input 
devices or JavaScript APIs, and clipboard copy includes all selected ranges 
joined with newline delimiters.


Blink component
Blink>Editing>Selection


Web Feature ID
Missing feature


Motivation
Desktop applications like Microsoft Word and LibreOffice Writer support 
Ctrl+Click (Cmd+Click on macOS) to build non-contiguous selections. On the web, 
this interaction is blocked by spec-mandated single-range behavior in current 
Chromium, where Ctrl+Click replaces the existing selection. The gap is 
particularly noticeable for: Users switching between desktop editors and 
browsers who expect consistent Ctrl+Click behavior Power users copying 
non-adjacent table cells Web-based code editors that want native multi-cursor 
selection without custom overlays The Selection API exposes a Selection object 
with methods like addRange(), removeRange(), getRangeAt(index), and the 
rangeCount attribute, all originally designed for collections of disjoint Range 
objects. In 2011, the spec was narrowed to single-range semantics: addRange() 
is ignored when a range already exists, and rangeCount is constrained to 0 or 
1. Chromium follows this restriction today, while Firefox has long supported 
multi-range behavior. Issue https://github.com/w3c/selection-api/issues/358 had 
been discussed in the W3C Web Editing Working Group to restore multi-range 
semantics and align implementations across browsers with the API's original 
design intent.


Initial public proposal
https://github.com/WICG/proposals/issues/291


Search tags
range, multi-range, selection


Goals for experimentation
None


Requires code in //chrome?
False


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


Estimated milestones

No milestones specified



Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5095241565732864?gate=5095962528841728


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/6a321d73.341e3fe1.243138.08e5.GAE%40google.com.

Reply via email to