Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions features/range.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Range
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we haven't got an answer to whether this should standalone yet, but I also don't want to let this sit idle for forever, here's my idea for how to proceed with this:

Let's move this in to the draft folder, add the draft date, and add a comment that links to this PR's discussion. That way, when we do get an answer to whether or not we need some "foundational DOM" feature (or features), then we have at least this part of the work documented somewhere.

description: The Range interface represents a fragment of a document that can contain nodes and parts of text nodes.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Range is defined in https://dom.spec.whatwg.org/#interface-range, but on its own it doesn't really do much, it's mostly in support of https://w3c.github.io/selection-api/.

I we may need a DOM feature for most old parts of https://dom.spec.whatwg.org/ that other specs depend on. @ddbeck WDYT?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Until we're backed into a corner, I think we ought to put such interfaces with their most longstanding dependent features (e.g., unless someone has an older use-case, Range can go with the selection API—not sure what use Range would be alone).

That said, if there's no such feature or it has use alone—supposing I'm wrong about Range here—then I'd be OK with a foundational DOM feature. It might be quite boring, but make a lot of sense to stand in contrast with the Shadow DOM feature, with "Also known as light DOM" description text.

spec: https://w3c.github.io/DOM-Parsing/
compat_features:
- api.Range
- api.Range.createContextualFragment
- api.Range.Range
- api.Range.cloneContents
- api.Range.cloneRange
- api.Range.collapse
- api.Range.collapsed
- api.Range.commonAncestorContainer
- api.Range.compareBoundaryPoints
- api.Range.comparePoint
- api.Range.deleteContents
- api.Range.endContainer
- api.Range.endOffset
- api.Range.extractContents
- api.Range.insertNode
- api.Range.intersectsNode
- api.Range.isPointInRange
- api.Range.selectNode
- api.Range.selectNodeContents
- api.Range.setEnd
- api.Range.setEndAfter
- api.Range.setEndBefore
- api.Range.setStart
- api.Range.setStartAfter
- api.Range.setStartBefore
- api.Range.startContainer
- api.Range.startOffset
- api.Range.surroundContents
- api.Range.toString
104 changes: 104 additions & 0 deletions features/range.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Generated from: range.yml
# Do not edit this file by hand. Edit the source file instead!

status:
baseline: high
baseline_low_date: 2018-04-30
baseline_high_date: 2020-10-30
support:
chrome: "29"
chrome_android: "29"
edge: "17"
firefox: "24"
firefox_android: "24"
safari: "8"
safari_ios: "8"
compat_features:
# baseline: high
# baseline_low_date: 2015-07-29
# baseline_high_date: 2018-01-29
# support:
# chrome: "1"
# chrome_android: "18"
# edge: "12"
# firefox: "1"
# firefox_android: "4"
# safari: "1"
# safari_ios: "1"
- api.Range
- api.Range.cloneContents
- api.Range.cloneRange
- api.Range.collapse
- api.Range.collapsed
- api.Range.commonAncestorContainer
- api.Range.compareBoundaryPoints
- api.Range.createContextualFragment
- api.Range.deleteContents
- api.Range.endContainer
- api.Range.endOffset
- api.Range.extractContents
- api.Range.insertNode
- api.Range.selectNode
- api.Range.selectNodeContents
- api.Range.setEnd
- api.Range.setEndAfter
- api.Range.setEndBefore
- api.Range.setStart
- api.Range.setStartAfter
- api.Range.setStartBefore
- api.Range.startContainer
- api.Range.startOffset
- api.Range.surroundContents
- api.Range.toString

# baseline: high
# baseline_low_date: 2017-04-05
# baseline_high_date: 2019-10-05
# support:
# chrome: "1"
# chrome_android: "18"
# edge: "15"
# firefox: "1"
# firefox_android: "4"
# safari: "3"
# safari_ios: "1"
- api.Range.isPointInRange

# baseline: high
# baseline_low_date: 2017-04-05
# baseline_high_date: 2019-10-05
# support:
# chrome: "29"
# chrome_android: "29"
# edge: "15"
# firefox: "24"
# firefox_android: "24"
# safari: "8"
# safari_ios: "8"
- api.Range.Range

# baseline: high
# baseline_low_date: 2018-04-30
# baseline_high_date: 2020-10-30
# support:
# chrome: "1"
# chrome_android: "18"
# edge: "17"
# firefox: "1"
# firefox_android: "4"
# safari: "3"
# safari_ios: "1"
- api.Range.comparePoint

# baseline: high
# baseline_low_date: 2018-04-30
# baseline_high_date: 2020-10-30
# support:
# chrome: "1"
# chrome_android: "18"
# edge: "17"
# firefox: "17"
# firefox_android: "19"
# safari: "3"
# safari_ios: "1"
- api.Range.intersectsNode