Was das angeht, da werde ich vmlt. ganz zu TreeWalker und NodeIterator zurück(!)kehren. Irgendwo in den Texten (W3 o.ä.) steht ja drin, daß die so etwas vertragen (müßten): die Markirungen bei den verschiedenen Bewegungs-Funktionen (nextNode, previousNode, aber auch z.B. die …Sibling() liegen zwischen den Elementen und auch der Wechsel in den Bewegungsrichtungen, steht da geschrieben, wird berücksichtigt.
Ah, da war’s!, “7.1.1.2. Robustness”.