Das ganz normale Chaos, täglich frisch auf den Tisch. Direkt aus der hintersten Provinz in die Metropolen von Groß-Blogistan.


Überschrift

Thu, 17 Sep 2009 08:31:52 +0200

Ein Artikel bei EfA hat mich ziemlich erschreckt. Genauer gesagt, die Diskussion im Zusammenhang mit html5, darüber, ob ein Browser eigenmächtig das Markup ändern dürfen/können sollte, um Strukturfehler zu "verbessern". Ich halte da Nichts von. Gar Nichts.

Sicher, solche Strukturfehler gibt es immer wieder. Viel zu Wenige verschwenden auch nur einen Gedanken an semantisches Markup. So gesehen scheint eine "Verbesserung" durch den Browser erst mal sinnvoll. Doch schon die "Verbesserung" von syntaktisch falschem und/oder schlampigem html durch den IE hat mehr Proleme verursacht als gelöst. Einen guten Teil der Markupmisere haben wir genau diesen automatischen Verbesserungen zu verdanken. Dazu kommt, dass ich, wenn ich ein bestimmtes Markup einsetze, dafür auch einen Grund habe. Und keine Maschine kann meine Gründe erraten.

Aber davon abgesehen ging mir etwas Anderes durch den Kopf. Eigentlich fehlt in html der Zusammenhang zwischen einer Überschrift und dem Absatz (oder sonstigen Block), dessen Überschrift das ist. Es ist problemlos möglich, irgendwo eine Überschrift zu plazieren, und irgendwo ganz anders den dazu gehörenden Textblock. Es gibt in html keinen zwangsläufigen Zusammenhang.

Aber es gibt seit html4 eine andere Möglichkeit, einem beliebigen Block eine Überschrift zuzuordnen, und zwar so, dass diese Überschrift zwangsläufig und eindeutig die Überschrift eben dieses Blocks ist. Dabei wird die Überschrift nicht als alleinstehendes und unabhängiges Element notiert, sondern als Attribut des Blocks. Und dazu bietet sich das title Attribut an. Der Titel des Blocks, also dessen Überschrift, ist so ein direktes Attribut des Blocks und damit fest mit diesem Block verbunden. Darüberhinaus braucht man keine Abstufungen von Überschriften, keine h1 bis h6. Die bei Bedarf unendlich tiefe Hierarchie ergibt sich direkt durch die Verschachtelungshierarchie der Blöcke.

Natürlich will man solch eine Überschrift auch auf der Seite sehen. Aber das geht durchaus. Nehmen wir als Beispiel einen Paragraphen:

p title="Das ist eine Überschrift" Und das hier ist der Inhalt. /p

Und das css dazu:

p:before { content: attr(title); display: block; }

Der Vorteil ist, dass die Überschrift ein festes Attribut des zu überschreibenden Paragraphen ist, ohne syntaktische Tricks, und ohne Korrekturen, extra Klassen oder sonstige künstliche Referenzen. Der Zusammenhang ist fest, syntaktisch folgerichtig und natürlich und erspart mit einem Schlag 6 Elemente mitsamt aller damit zusammenhängenden Probleme.

Ich hatte das bei EfA auch schon kommentiert. Aber da man meinen Kommentar dort bis heute immer noch nicht moderiert hat, dachte ich mir, ich schreib's mal hier.


0 Kommentare