@@ -8684,9 +8684,7 @@ be between 0 and the <a>boundary point</a>'s <a for="boundary point">node</a>'s
86848684<pre class=idl>
86858685[Exposed=Window]
86868686interface AbstractRange {
8687- readonly attribute Node startContainer;
86888687 readonly attribute unsigned long startOffset;
8689- readonly attribute Node endContainer;
86908688 readonly attribute unsigned long endOffset;
86918689 readonly attribute boolean collapsed;
86928690};
@@ -8714,16 +8712,16 @@ interface AbstractRange {
87148712<a for=range>end node</a> and its <a for=range>start offset</a> is its <a for=range>end offset</a> .
87158713</div>
87168714
8717- <dl class=domintro>
8718- <dt><code><var> node</var> = <var> range</var> . <a attribute for=AbstractRange>startContainer</a> </code>
8719- <dd> Returns <var> range</var> 's <a for=range>start node</a> .
8715+ <p> Each <a>range</a> has associated
8716+ <dfn for=AbstractRange export>get start offset</dfn> steps,
8717+ <dfn for=AbstractRange export>get end offset</dfn> steps, and
8718+ <dfn for=AbstractRange export>get collapsed</dfn> steps, which are to be defined by a
8719+ subclass.
87208720
8721+ <dl class=domintro>
87218722 <dt><code><var> offset</var> = <var> range</var> . <a attribute for=AbstractRange>startOffset</a> </code>
87228723 <dd> Returns <var> range</var> 's <a for=range>start offset</a> .
87238724
8724- <dt><code><var> node</var> = <var> range</var> . <a attribute for=AbstractRange>endContainer</a> </code>
8725- <dd> Returns <var> range</var> 's <a for=range>end node</a> .
8726-
87278725 <dt><code><var> offset</var> = <var> range</var> . <a attribute for=AbstractRange>endOffset</a> </code>
87288726 <dd> Returns <var> range</var> 's <a for=range>end offset</a> .
87298727
@@ -8732,29 +8730,68 @@ interface AbstractRange {
87328730</dl>
87338731
87348732<div algorithm>
8735- <p> The
8736- <dfn id=dom-range-startcontainer attribute for=AbstractRange><code>startContainer</code></dfn>
8737- getter steps are to return <a>this</a> 's <a for=range> start node </a> .
8733+ <p> The <dfn id=dom-range-startoffset attribute for=AbstractRange><code>startOffset</code></dfn>
8734+ getter steps are to return the result of running <a>this</a> 's
8735+ <a for=AbstractRange>get start offset </a> .
87388736</div>
87398737
87408738<div algorithm>
8741- <p> The <dfn id=dom-range-startoffset attribute for=AbstractRange><code>startOffset</code></dfn>
8742- getter steps are to return <a>this</a> 's <a for=range>start offset</a> .
8739+ <p> The <dfn id=dom-range-endoffset attribute for=AbstractRange><code>endOffset</code></dfn>
8740+ getter steps are to return the result of running <a>this</a> 's
8741+ <a for=AbstractRange>get end offset</a> .
87438742</div>
87448743
87458744<div algorithm>
8746- <p> The <dfn id=dom-range-endcontainer attribute for=AbstractRange><code>endContainer</code></dfn>
8747- getter steps are to return <a>this</a> 's <a for=range>end node</a> .
8745+ <p> The <dfn id=dom-range-collapsed attribute for=AbstractRange><code>collapsed</code></dfn>
8746+ getter steps are to return the result of running <a>this</a> 's
8747+ <a for=AbstractRange>get collapsed</a> .
87488748</div>
87498749
8750+
8751+ <h3 id=interface-noderange>Interface {{NodeRange}}</h3>
8752+
8753+ <pre class=idl>
8754+ [Exposed=Window]
8755+ interface NodeRange : AbstractRange {
8756+ readonly attribute Node startContainer;
8757+ readonly attribute Node endContainer;
8758+ };
8759+ </pre>
8760+
8761+ <dl class=domintro>
8762+ <dt><code><var> node</var> = <var> range</var> . <a attribute for=NodeRange>startContainer</a> </code>
8763+ <dd> Returns <var> range</var> 's <a for=range>start node</a> .
8764+
8765+ <dt><code><var> node</var> = <var> range</var> . <a attribute for=NodeRange>endContainer</a> </code>
8766+ <dd> Returns <var> range</var> 's <a for=range>end node</a> .
8767+ </dl>
8768+
87508769<div algorithm>
8751- <p> The <dfn id=dom-range-endoffset attribute for=AbstractRange><code>endOffset</code></dfn>
8752- getter steps are to return <a>this</a> 's <a for=range>end offset</a> .
8770+ <p> The <a for=AbstractRange>get start offset</a> steps are to return <a>this</a> 's
8771+ <a for=range>start offset</a> .
87538772</div>
87548773
87558774<div algorithm>
8756- <p> The <dfn id=dom-range-collapsed attribute for=AbstractRange><code>collapsed</code></dfn>
8757- getter steps are to return true if <a>this</a> is <a for=range>collapsed</a> ; otherwise false.
8775+ <p> The <a for=AbstractRange>get end offset</a> steps are to return <a>this</a> 's
8776+ <a for=range>end offset</a> .
8777+ </div>
8778+
8779+ <div algorithm>
8780+ <p> The <a for=AbstractRange>get collapsed</a> steps are to return true if <a>this</a> is
8781+ <a for=range>collapsed</a> ; otherwise false.
8782+ </div>
8783+
8784+ <hr>
8785+
8786+ <div algorithm>
8787+ <p> The
8788+ <dfn id=dom-range-startcontainer attribute for=NodeRange><code>startContainer</code></dfn>
8789+ getter steps are to return <a>this</a> 's <a for=range>start node</a> .
8790+ </div>
8791+
8792+ <div algorithm>
8793+ <p> The <dfn id=dom-range-endcontainer attribute for=NodeRange><code>endContainer</code></dfn>
8794+ getter steps are to return <a>this</a> 's <a for=range>end node</a> .
87588795</div>
87598796
87608797
@@ -8769,7 +8806,7 @@ dictionary StaticRangeInit {
87698806};
87708807
87718808[Exposed=Window]
8772- interface StaticRange : AbstractRange {
8809+ interface StaticRange : NodeRange {
87738810 constructor(StaticRangeInit init);
87748811};
87758812</pre>
@@ -8819,7 +8856,7 @@ constructor steps are:
88198856
88208857<pre class=idl>
88218858[Exposed=Window]
8822- interface Range : AbstractRange {
8859+ interface Range : NodeRange {
88238860 constructor();
88248861
88258862 readonly attribute Node commonAncestorContainer;
0 commit comments