molily: <ul> versa <dl>

Beitrag lesen

Hallo,

Meine urprüngliche (implizite) Frage, ob die Schachtelung von <ul> und <dl> überhaupt sinnvoll ist, ist damit leider noch nicht erschöpfend beantwortet.

Welche von beiden Auszeichnungen wäre denn für die vorgesehene Anwendung (Bild, Unterschrift, Beschreibungstext, weiterführender Link ausgehend vom der gesamten Elementegruppe), das Ganze in Wiederholung (also Liste) der richtige?

Ich finde, eine Liste ist die korrekte Datenstruktur, aber das ist vielleicht aus Programmierer-Sicht gesehen.

Fragen wir uns einmal: Was für Möglichkeiten bietet HTML denn?

Auf oberster Ebene gibt es Sections. body ist die Wurzel, ein Sectioning Root. Darunter notiert man üblicherweise header, main, footer. Innerhalb von main oder direkt unter body werden weitere Sections notiert. Sectioning-Elemente sind das generische section und die spezifischeren nav, aside sowie article.

Die Elemente h1-h6 liefern die Überschriften für die Sections. Sie können auch selbst implizite Sections erzeugen, sofern kein explizites Sectioning-Element verwendet wird.

Sections sind üblicherweise geordnet. Das liegt an der Linearität von Texten. Ein Dokument ist also schon eine verschachtelte Liste von Sections. Der HTML5-Outline-Algorithmus erlaubt es, tatsächlich eine Liste mit Überschriften aus dem Dokument zu generieren.

Innerhalb von Sections gibt es recht wenige Elemente, um den Inhalt zu gruppieren: p, ol, ul, dl, figure, blockquote, pre, div. (main gehört auch zu den gruppierenden Elementen, habe ich aber oben schon angesprochen, da es eine besondere, dokumentweite Bedeutung hat.)

Wenn ich von Gunnars Vorschlag ausgehe, nutzen wir hiervon bereits figure-Elemente. Und zwar eine ganze Reihe davon, direkt aufeinander folgend, gleichförmig, eventuell geordnet. Ich behaupte, dass sich auf dieser Ebene ol oder ul hervorragend zur Gruppierung solcher figure-Elemente eignen. Was sonst? p zeichnet Textabsätze aus. blockquote und pre kommen nicht infrage. div ist sehr unspezifisch und aussageschwach. dl wäre prinzipiell möglich, passt aber nicht, wenn figcaption verwendet wird.

Wir könnten die zusätzliche Gruppierung natürlich auch weglassen, wie Gunther vorschlägt. Das ist möglich und nicht unlogisch. Ich halte sie aber strukturell und praktisch für angebracht.

Ich nehme hier eine hierarchische Ordnung eines Dokuments an: Sections, darin Grouping-Elemente, darin Text-Level-Elemente. Die HTML5-Spezifikation legt dies in der Beschreibung der Element nahe, aber es ist *kein* syntaktisches Erfordernis, Dokumente so aufzubauen. HTML5 ist hier (im Gegensatz zu HTML 4.01 Strict) sehr frei. Es gibt sehr offene Inhaltskategorien wie Flow Content, die zur Definition der möglichen Verschachtelung benutzt werden.

Innerhalb einer Section können sowohl gruppierende als auch Text-Level-Elemente verwendet werden. <section><p><strong>Foo</strong></p></section> ist möglich, aber auch <section><strong>Foo</strong></section>. Der Inhalt von a-Elementen ist nicht streng Phrasing Content, es kann unter Umständen auch Flow Content umschließen (grob zusammengefasst). <a><figure></figure></a> ist also genauso möglich wie <figure><a></a></figure>. Der Logik nach würde ich a unterhalb von figure einsetzen, aber wie gesagt ist HTML5 hier offen.

Mathias