contao/core — Issue #3833: Falsche Semantik: Problem mit automatischen Sections
Author: NinaG
Created: 2012-01-20 17:09:39+00:00
State: open

Mir ist bei einem aktuellen HTML5-Projekt erst richtig bewusst geworden, dass Contao mittlerweile für jedes angelegte Inhaltselement eine neue

öffnet. Das Problem ist, dass dadurch beim Durchschnittsredakteur semantischer Mist entsteht und wir uns gleichzeitig künstlich einschränken was die vielfältigen Schachtelmöglichkeiten der neuen semantischen HTML5-Elemente angeht.

Der Redakteur kann den Inhalt eines Artikels theoretisch komplett in ein Inhaltselement "Text" packen. Idealer ist es aber - und daher stammt ja überhaupt die gesamte Denkweise hinter den vielen verschiedenen Inhaltselementen - dass er den Inhalt des Artikels in Abschnitte aufteilt. Das macht die ganze Sache für ihn übersichtlicher, leichter zu pflegen, man kann Inhalte auch an andere Stellen referenzieren, mal eben die Reihenfolge im Artikel verschieben, usw.

Wenn der Redakteur nun hergeht und so, wie er es bisher gewohnt war und es auch beigebracht bekommen hat, den Inhalt der Seite so aufteilt, produziert er aber im Hintergrund plötzlich lauter Sections. Dafür sind aber Sections gar nicht gedacht.

Der Sinn von Sections ist, dass sie thematisch zusammengehörende Inhalte innerhalb eines Artikels gruppieren, so dass der semantische Aufbau nachvollziehbar wird. Es muss aber auch möglich sein Inhalte bewusst keiner Section zuzuordnen, wenn sie für den gesamten Artikel gelten sollen.

Um mal ein gutes Beispiel vom bekannten Buchautoren Bruce Lawson (Buch "Introducing HTML5") zu zitieren:
-------------------------
Consider this article:

```html

Important legal stuff

Carrots

Thingie thingie lah lah

Parsnips

Thingie thingie lah lah

A turnip for the books

Thingie thingie lah lah

Vital caveat about the information above!

```

Does the “vital caveat about the information above” refer to the whole article, eg everything under the introuctory h1, or does it refer only to the information under the preceding h2 (“A turnip for the books”)? In HTML4, there is no way to tell. In HTML5, the section element makes its meaning unambiguous (and therefore, more “semantic”):

```html

Important legal stuff

Carrots

Thingie thingie lah lah

Parsnips

Thingie thingie lah lah

A turnip for the books

Thingie thingie lah lah

Vital caveat about the information above!

```

Now we can see that the vital caveat refers to the whole article. If it had been inside the final section element, it would unambiguously refer to that section alone. It would not have been correct to divide up this article with nested article elements, as they would not be independent discrete entities, which is why we used the section element.
-------------------------

Das Thema geht sogar noch weiter (

die wiederum

enthalten darf), aber das führt hier zu weit.

Ich möchte auf jeden Fall auf einen wichtigen Punkt hinaus:
-------------------------
So wie das momentan mit den Inhaltselement-Templates gelöst ist, produziert Contao keinen schönen, sondern in den meisten Fällen automatisch semantisch völlig falschen Code und widerspricht der eigentlichen Intention von diesen neuen semantischen HTML5-Elementen.

Ich schlage daher die folgende Lösung vor:
-------------------------
Die Inhaltselement-Templates werden so abgeändert, dass sie nicht mehr automatisch

als Rahmen erstellen, sondern wieder einfach normale DIVs. Das ist dann semantisch nichtssagend (wie bei XHTML), aber nicht falsch (wie der aktuelle Ansatz.

Damit wir aber die modernen Ansätze wegen

dennoch unterstützen, plädiere ich für ein neues Section-Inhaltselement, das man - wie beim Akkordeon mit einem Umschlag "Anfang" und Umschlag "Ende" setzen kann. So können geschulte Redakteure echten semantischen Mehrwert schaffen, indem sie die Inhaltselemente als section gruppieren, die wirklich zusammen gehören. Die ungeschulten Redakteure hingegen machen alles wie bisher und haben keinen Nachteil.

*Da das leicht änderbar ist, bitte ich darum das noch in der 2.11 zu machen*