- From: Sean Feng <notifications@github.com>
- Date: Thu, 20 Mar 2025 11:56:44 -0700
- To: w3c/selection-api <selection-api@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/selection-api/pull/345/review/2703642318@github.com>
@sefeng211 commented on this pull request. > - The method must throw {{InvalidStateError}} exception if the - [=this=] is <a>empty</a>. Otherwise, it must create a new - <a>range</a>, [=Range/set the start=] both its [=range/start=] and - [=range/end=] to the [=range/end=] of [=this=]'s <a>range</a>, and - then set [=this=]'s <a>range</a> to the newly-created <a>range</a>. - </p> + <p> + The method must follow these steps: + </p> + <ol> + <li>If [=this=] is <a>empty</a>, throw an {{InvalidStateError}} + exception and abort these steps. + </li> + <li>Let <var>bp</var> be the [=Range/end=] of [=this=]'s <a>range</a>. + </li> + <li><a>Set the composed selection range</a> with <var>bp</var> and So both `collapseToStart` and `collapseToEnd` use the `composed selection range`, not the `legacy selection range`. I wonder if this is breaking change. Consider something like ``` range.setStart(nodeInTree1, 1); range.setEnd(nodeInTree2, 1); ``` Now `legacy selection range` should be collapsed to `nodeInTree1`, and `composed selection range` doesn't collapse, so `nodeInTree1` and `nodeInTree2`. If we now call `selection.collapseToEnd();`, doesn't this set `legacy selection range` also to `nodeInTree2`, whereas it supposes to be remain at "nodeInTree1" for backward compatible? > @@ -546,24 +584,20 @@ <h2> <var>newFocus</var> be the <a>boundary point</a> (<var>node</var>, <var>offset</var>). </li> - <li>Let <var>newRange</var> be a new <a>range</a>. - </li> - <li>If <var>node</var>'s [=tree/root=] is not the same as the - [=this=]'s <a>range</a>'s [=tree/root=], [=Range/set the start=] - <var>newRange</var>'s [=range/start=] and [=range/end=] to - <var>newFocus</var>. + <li>If <var>node</var>'s [=tree/root=] is not the same as Here we are comparing `node`'s root, with the `composed selection range`'s root, and `node`'s root could be a shadow root if it's in a totally different tree, and the spec collapses `composed selection range` here. This doesn't feel right, why do we collapse? -- Reply to this email directly or view it on GitHub: https://github.com/w3c/selection-api/pull/345#pullrequestreview-2703642318 You are receiving this because you are subscribed to this thread. Message ID: <w3c/selection-api/pull/345/review/2703642318@github.com>
Received on Thursday, 20 March 2025 18:56:48 UTC