Das Dilemma der Dokumentenstruktur

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

In den letzten Wochen gab es in Webstandardkreisen viele Diskussionen über HTML-Überschriften. Vielleicht haben Sie einige der Blogbeiträge, Tweets und GitHub-Diskussionsfäden gesehen. Überschriften sind seit den allerersten Websites am CERN Teil von HTML, daher mag es überraschend sein, sie 25 Jahre später immer noch umstritten zu finden. Ich werde kurz zusammenfassen, *warum* sie immer noch diskutiert werden, mit vielen Links zu anderen Quellen, bevor ich meine eigenen Meinungen hinzufüge. Wenn Sie über die Debatte auf dem Laufenden sind, können Sie zum Abschnitt „Das größere Dilemma“ springen.

Die bisherige Geschichte...

HTML verwendet Überschriften (`

`, `

`, `

` und so weiter bis `

`) zur Auszeichnung von Titeln für nachfolgende Textabschnitte. Die Zahlen (oder *Ebenen*) der Überschriftenelemente sollen logisch einer baumartigen Struktur von verschachtelten Abschnitten entsprechen, ähnlich wie Bücher Kapitel mit Abschnitten und Unterabschnitten haben.

Die HTML-Auszeichnung hatte jedoch ursprünglich keine Möglichkeit, diese verschachtelte logische Struktur in einer verschachtelten DOM-Struktur abzubilden. Im Gegensatz zu verschachtelten Listen waren verschachtelte Überschriften nicht tatsächlich *verschachtelt* in Elementen, die die übergeordneten Abschnitte definierten. Überschriftenelemente unterschiedlicher Ebenen waren alle Geschwisterelemente und auch Geschwister der Absätze, für die sie einen Titel lieferten. Die „Abschnitte“ waren eine rein logische Struktur, keine DOM-Struktur, die alle Auszeichnungen enthielt, die mit einer Überschrift begannen und andauerten, bis eine andere Überschrift derselben oder einer höheren Ebene erreicht wurde.

Wie Brian Kardell anmerkt, war dies in der „flachen Erde der Auszeichnung“ des frühen HTML perfekt sinnvoll, bei der Tags lediglich typografische Anweisungen waren, die in einen Textfluss eingefügt wurden. Das Konzept einer HTML-Seite als Baumstruktur kam später, als Dynamic HTML ein Document Object Model (DOM) benötigte, um diesen Fluss von Text und Tags als Datenstruktur zu beschreiben, auf die Skripte zugreifen konnten.

Um das Ende nicht zu verraten: HTML hat jetzt ein `

`-Element, das (optional) verwendet werden kann, um eine verschachtelte DOM-Struktur zu erstellen, die Ihrer logischen Überschriftenstruktur entspricht. Die Elemente `
`, `
`, `
`, `
`, `