Wenn ein Browser eine Webseite lädt, liest er den HTML-Quellcode nicht einfach von oben nach unten ab, sondern baut daraus intern eine Baumstruktur auf: das Document Object Model. Jedes HTML-Element, ein Absatz, eine Überschrift, ein Bild, ein Link, wird dabei zu einem Knoten in diesem Baum, mit klaren Eltern-Kind-Beziehungen. Ein <div> das einen <p> enthält, ist im DOM der Elternknoten, der Absatz sein Kind.
Diese Struktur ist das, womit Browser, JavaScript und Werkzeuge wie Readability oder Defuddle tatsächlich arbeiten, nicht mit dem rohen HTML-Text. Das erklärt auch, warum JavaScript-gerenderte Seiten ein besonderes Problem darstellen: Der HTML-Quellcode ist dabei oft leer oder minimal, der eigentliche Inhalt entsteht erst nachdem JavaScript den DOM nachträglich befüllt hat. Ein Werkzeug das nur den Quelltext liest, sieht dann eine leere Seite.