WPT
wpt / selection / idlharness.window.html
Spec: Selection API ↗
Runs: Chrome 155.0.8039.0 (wpt@ffab1bde3, 2026-09-03) | Firefox 157.0a1 (wpt@5e776f019, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a9df8 (wpt@9b4cabf6d, 2026-09-03) | Servo Servo 0.6 (wpt@7e3d005d7, 2026-09-03) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 112/112 | 112/112 | 112/112 | 104/112 | 104/112 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| idl_test setup | PASS | PASS | PASS | PASS | PASS | — |
| idl_test validation | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Document: original interface defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Document: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Window: original interface defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Window: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface mixin GlobalEventHandlers: original interface mixin defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface mixin GlobalEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Document[2]: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Element: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Document[3]: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Window[2]: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Document includes GlobalEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement includes GlobalEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement includes ElementContentEditable: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement includes HTMLOrSVGOrMathMLElement: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes GlobalEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowOrWorkerGlobalScope: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes AnimationFrameProvider: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowSessionStorage: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowLocalStorage: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Document includes NonElementParentNode: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Document includes DocumentOrShadowRoot: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Document includes ParentNode: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Element includes ParentNode: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Element includes NonDocumentTypeChildNode: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Element includes ChildNode: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Element includes Slottable: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Document includes XPathEvaluatorBase: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface object length | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface object name | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: attribute anchorNode | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: attribute anchorOffset | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: attribute focusNode | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: attribute focusOffset | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: attribute isCollapsed | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: attribute rangeCount | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: attribute type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: attribute direction | PASS | PASS | PASS | PASS | FAIL | — |
| Selection interface: operation getRangeAt(unsigned long) | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation addRange(Range) | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation removeRange(Range) | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation removeAllRanges() | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation empty() | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation getComposedRanges(optional GetComposedRangesOptions) | PASS | PASS | PASS | FAIL | FAIL | — |
| Selection interface: operation collapse(Node?, optional unsigned long) | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation setPosition(Node?, optional unsigned long) | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation collapseToStart() | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation collapseToEnd() | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation extend(Node, optional unsigned long) | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation setBaseAndExtent(Node, unsigned long, Node, unsigned long) | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation selectAllChildren(Node) | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation modify(optional DOMString, optional DOMString, optional DOMString) | PASS | PASS | PASS | PASS | FAIL | — |
| Selection interface: operation deleteFromDocument() | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: operation containsNode(Node, optional boolean) | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: stringifier | PASS | PASS | PASS | PASS | PASS | — |
| Selection must be primary interface of getSelection() | PASS | PASS | PASS | PASS | PASS | — |
| Stringification of getSelection() | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "anchorNode" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "anchorOffset" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "focusNode" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "focusOffset" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "isCollapsed" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "rangeCount" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "type" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "direction" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| Selection interface: getSelection() must inherit property "getRangeAt(unsigned long)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: calling getRangeAt(unsigned long) on getSelection() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "addRange(Range)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: calling addRange(Range) on getSelection() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "removeRange(Range)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: calling removeRange(Range) on getSelection() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "removeAllRanges()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "empty()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "getComposedRanges(optional GetComposedRangesOptions)" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| Selection interface: calling getComposedRanges(optional GetComposedRangesOptions) on getSelection() with too few arguments must throw TypeError | PASS | PASS | PASS | FAIL | FAIL | — |
| Selection interface: getSelection() must inherit property "collapse(Node?, optional unsigned long)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: calling collapse(Node?, optional unsigned long) on getSelection() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "setPosition(Node?, optional unsigned long)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: calling setPosition(Node?, optional unsigned long) on getSelection() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "collapseToStart()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "collapseToEnd()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "extend(Node, optional unsigned long)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: calling extend(Node, optional unsigned long) on getSelection() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "setBaseAndExtent(Node, unsigned long, Node, unsigned long)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: calling setBaseAndExtent(Node, unsigned long, Node, unsigned long) on getSelection() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "selectAllChildren(Node)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: calling selectAllChildren(Node) on getSelection() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "modify(optional DOMString, optional DOMString, optional DOMString)" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| Selection interface: calling modify(optional DOMString, optional DOMString, optional DOMString) on getSelection() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | FAIL | — |
| Selection interface: getSelection() must inherit property "deleteFromDocument()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: getSelection() must inherit property "containsNode(Node, optional boolean)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Selection interface: calling containsNode(Node, optional boolean) on getSelection() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| HTMLElement interface: attribute onselectstart | PASS | PASS | PASS | FAIL | PASS | — |
| HTMLElement interface: attribute onselectionchange | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: operation getSelection() | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: attribute onselectstart | PASS | PASS | PASS | FAIL | PASS | — |
| Window interface: attribute onselectionchange | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: window must inherit property "getSelection()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Window interface: window must inherit property "onselectstart" with the proper type | PASS | PASS | PASS | FAIL | PASS | — |
| Window interface: window must inherit property "onselectionchange" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: operation getSelection() | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: attribute onselectstart | PASS | PASS | PASS | FAIL | PASS | — |
| Document interface: attribute onselectionchange | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: document must inherit property "getSelection()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| Document interface: document must inherit property "onselectstart" with the proper type | PASS | PASS | PASS | FAIL | PASS | — |
| Document interface: document must inherit property "onselectionchange" with the proper type | PASS | PASS | PASS | PASS | PASS | — |