This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
According to DOM Range, there's always a selection; if it's empty, it is just one range with start=end. This means there's always an active range, so the Editing spec doesn't need to say it can be null.
What if Selection.removeAllRanges is called?
According to DOM Range, there's always a selection, but it might have zero ranges. getSelection().getRangeAt(0) will then throw INDEX_SIZE_ERR. In that case, there will be no active range. This is how browsers all behave -- the selection in a new document will have no ranges in it. And the selection must have no ranges in it after removeAllRanges() is called, as Ehsan points out. Is there any specific text in DOM Range that led you to think otherwise? If so, I'll fix it.