molily: Korrekte Semantik (ul / dl)

Beitrag lesen

Hallo,

Mensch, pack das Zeug in eine ordentliche div-Struktur. Dann hast du gleich neutrale Blockelemente ohne unbekannte Browser-Defaults fuer margin und padding. Um die Sache "semantisch" auszuzeichnen, kannst du mit Klassennamen arbeiten, z.B.:
<div class="news">
  <div class="news_title">...</div>
  <div class="news_text">...</div>
</div>

Das Dokument enthält News-Einträge. Es hat vermutlich den Titel »Aktuelles«, »Neuigkeiten« oder ähnlich. Es stellt wahrscheinlich eine Sequenz von chronologisch geordneten Meldungen dar, bestehend aus Titel und mehreren zugehörigen Textabsätzen. Das ist für mich die klassische Dokumentstruktur, für die HTML prädestiniert ist: Die Titel sind Zwischenüberschriften, die sich wie in wissenschaftlichen Dokumenten auf den darauffolgenden Abschnitt beziehen. Es erscheint mir viel intuitiver, hier hX-Elemente zu verwenden.

HTML hat nun mal keine Elemente fuer alle Faelle. Also ist es sinnvoller, in den Faellen, wo man - semantisch gesehen - ein nicht abgedecktes Element verwenden will, auf neutrale divs oder spans auszuweichen, statt irgendwelche Elemente mit konkreter semantischer Bedeutung "zurechtzuinterpretieren".

Das Grundvokabular, mit der sich ein HTML-Dokument strukturieren lässt, ist tatsächlich klein, kann naturgemäß nicht alle Anforderungen abdecken und verführt die Webseitenschreiber zu metonymischer oder metaphorischer Verwendung.
Es geht hier aber nicht nur um optimale Semantik (bestmögliche Datenstrukturierung und -speicherung) - denn dann würde man, wie du schreibst, nicht HTML verwenden -, sondern eher um die praktische Notwendigkeit, die Inhaltsstruktur über die vorhandenen Elemente abzubilden, weil diese von Clients und Browsern direkt verstanden werden. Neutrale Elemente mit Klassen ermöglichen es, eigene Begrifflichkeiten zu erfinden. Eigentümlichkeit und Unterscheidbarkeit bekommen sie durch ein Stylesheet, welches eine unterschiedliche Ausgabe vorschreibt.
Der springende Punkt in der Semantikdebatte ist gerade die Einigung auf das HTML-Vokabular. Eine Überschrift als div mit einer Klasse auszuzeichnen, ist problematisch, weil die Vermittlung der Information vom Stylesheet (für eine ganz bestimmte visuelle Ausgabe) abhängt. Bei einem hX-Element ist kann mir jeder noch so eigenartige Browser ohne Notwendigkeit des Stylesheets vermitteln, dass es sich um eine Überschrift handelt. Man kann von Überschrift zu Überschrift springen, man kann sich eine Inhaltsübersicht generieren lassen usw. Die »unbekannten Browser-Defaults« sind gerade die Stärke von HTML: Unabhängigkeit des Ausgabemediums und Vielfalt der Rezeptions- und Verarbeitungsformen. Jeder Client, zum Beispiel auch eine Suchmaschine, kann diese Information einfach nutzen, weil sich die Seite in den Grundzügen an das vorgegebene Vokabular hält. Deshalb ist »semantische« Auszeichnung dieser Art überhaupt das Fundament der Accessibility, und darum dreht sich die »Trennung von Struktur und Layout«. Div-Suppe, bei der alle Bedeutung in selbst definierten Klassen steckt, kann prinzipiell nicht leisten, was Auszeichnung mit den vordefinierten Elementen vermag. Eine Auszeichnung, die allein im Code ersichtlich ist und zum Benutzer nicht (hinreichend zuverlässig) durchdringt, ist für den Benutzer (in vielen Fällen) wertlos.

Oder - wenn du die radikale XHTML-Schiene fahren willst - bastel dir eine XML-DTD fuer die Newsliste

Damit verzichtet man gleichzeitig auf die Zugänglichkeit von HTML-Auszeichnung.

Mathias