molily: HTML 5? XHTML 5?

Beitrag lesen

Zum einen, weil ein guter Web-Entwickler Qualitätsstandards automatisch einhält, schon allein, weil ihr im Laufe der Jahre Postel's Law verinnerlicht hat.

Ja, ein guter Webentwickler tut das. Diesen Qualitätsstandard hat ironischerweise der kritikwürdige XHTML-Hype etabliert, in dessen Zuge Webstandards-Verfechter allen Webautoren valides XHTML 1 auf die Nase gebunden haben (1, 2).

Doch diese Regeln bleiben nicht für immer und ewig im kollektiven Gedächtnis, wenn sie nicht aktualisiert werden. Gerade erleben wir den entsprechenden Backlash. XHTML wird zu Grabe getragen und prominente Stellen, die sich witzigerweise Quality Assurance und Maintainance auf die Fahnen geschrieben haben, empfehlen, doch bitte alle weglassbaren End-Tags wegzulassen. Dadurch würde angeblich alles einfacher: »Leaving out optional tags will make your pages a lot smaller and easier to understand.« LOL.

Zum anderen, weil der HMTL-5-Validator immer besser wird.

Der HTML-5-Validator ist m.W. Feature-complete. Er wird sein Leben lang dabei bleiben, schlechte Tag-Soup gutzuheißen, weil HTML 5 kompatibel mit HTML 4 ist. Zwar nicht hinsichtlich der grausigsten SGML-Features wie SHORTTAG, aber z.B. hinsichtlich der vielen optionalen Tags:

<!doctype html>
<title></title>
<p>absatz
<p><select>
<option>a
<option>b
</select>
<dl>
  <dt>term
  <dd>definition
</dl>
<ol>
  <li>eins
  <li>zwei
</ol>
<table>
<thead>
  <tr><th>bla<td>bla
<tbody>
  <tr><th>bla<td>bla
<tfoot>
  <tr><th>bla<td>bla
</table>

wird bis ans Ende der Tage valides HTML 5 sein. Da kann man keine andere Qualität kontrollieren, als eben die der HTML-5-Serialisierung. Da kann man nicht zwischen absichtlich weggelassenem oder versehentlich vergessenem End-Tag unterscheiden.

Wenn man sich nicht mit dem abstrakten Dokumentmodell beschäftigt hat, welches diese Serialisierung nur konkret festhält, versteht man nicht einmal, was hier abgeht. Die HTML-5-Spezifikation definiert in erster Linie dieses Dokumentmodell und umso wichtiger ist es, dass Webautoren das verstehen und Erkenntnisse für eine gute Markup-Repräsentation ziehen. Laxheiten wie das Weglassen von manchen Tags führt m.E. dazu, dass man sich von diesem Verständnis eher entfernt, weil die Verschachtelung und der entstehende Knotenbaum nur unter Kenntnis der Parsing-Regeln aus dem Quellcode ersichtlich wird.

Es ginge höchstens, auch bei HTML 5 ein duales Modell zu etablieren: Auslieferung in der HTML-5-Serialisierung, aber XHTML-5-artige Syntax. Dann braucht man nur den HTML-5-Doctype entfernen und kann den Code als XHTML 5 mit Relax NG und Schematron validieren. Da das aber niemand tun wird und kein Tool das anbieten wird, werden Qualitätsstandards, die mit HTML-kompatiblem XHTML 1 Einzug hielten, nach und nach vergehen. Wo kein Validator mehr strikte und konsequente Maßstäbe anlegt, ist auch kein Webautor, der sie verinnerlicht.

Bei der Software-Entwicklung ist es nicht anders: Wo mir ein Compiler keine Warnungen ausgibt und kein Lint existiert, da sinkt die Code-Qualität, so sehr »guter Coding-Stil« im Lehrbuch steht. Wobei sich selbst die Lehrbücher gerade ändern: Da steht dann auch nicht mehr drin, dass man Elemente immer mit End-Tags schließen sollte - ist ja viel einfacher, performanter, wartbarer usw., sie wegzulassen.

Postel's Law war einmal. Dafür stand m.M.n. XHTML 1 (überprüfbar »conservative« auf der Autorenseite, »liberal« auf der Verarbeitungsseite). XHTML 5 hingegen kann nur in besonderen, geschlossenen Umgebungen eingesetzt werden.

Mathias