Смещение границы Range в узле является только символьным, если узел является текстовым узлом. Если узел является элементом, смещение - это число дочерних узлов до границы.
Например, если у вас есть HTML
<div id="myDiv">One <b>two</b> three</div>
... и вы создаете диапазон следующим образом:
var range = document.createRange();
var myDiv = document.getElementById("myDiv");
range.setStart(myDiv, 1);
range.setEnd(myDiv, 1);
... вы получите Range, который начинается и заканчивается сразу после первого дочернего элемента div, который является текстовым узлом:
<div id="myDiv">One |<b>two</b> three</div>