Hallo,
Schreibe valides sauberes XHTML 1.1
Das ist Unsinn. Keep it simple, stupid.
Würdest du diese Aussage auch auf xhtml 1.0 beziehen? Ich verstehe schlicht nicht, was xhtml komplizierter macht als html? Im Gegenteil.
HTML (Strict) verlangt tatsächlich nicht den konsequenten und logischen Code, den XHTML »verlangt«. Trotzdem wird ein halbwegs kompetenter HTML-Autor trotzdem quasi-wohlgeformten Code schreiben, die Möglichkeiten der Minimierung nicht verwenden usw. Einem Anfänger verschweigt man am besten die ganzen HTML-Perversitäten und vermittelt ihm HTML fast wie XHTML. Daher finde ich dieses Argument vorgeschoben:
Dadurch, dass xhrml dem Textauszeichner einer engeres Korsett auferlegt, wird die Anzahl der möglichen Fehlerquellen drastisch verringert und man gewöhnt sich von vornherein an, weniger schlampig zu arbeiten.
Da bin ich skeptisch, weil sich meiner Erfahrung nach, vor allem hier im Forum, immer wieder zeigt, dass die Beschäftigung mit XHTML so oberflächlich ist, dass letztlich (genau wie bei HTML) eben nicht valider und stilistisch einwandfreier Code herauskommt. Auch XHTML »zwingt« niemanden zu gutem Code, denn die einzige faktische Instanz, die Validität und Wohlgeformtheit prüft, ist der Validator. In dem Punkt unterscheiden sich HTML und XHTML in der Anwendung nicht. Der Zwang bei XHTML fällt in der Praxis weg, weil die wenigsten XHTML wirklich als XML verarbeiten. Außer eben, wenn sie ab und zu validieren - und selbst der W3C-Validator ist kein richtiger XML-Parser.
Außerdem: Warum soll ich jetzt erstmal html lernen, um mich dann später, wenn ich die Vorteile von xml erkannt habe und nutzen möchte, wieder umgewöhnen zu müssen?
Ich habe nichts dagegen einzuwenden, von Anfang an XHTML zu lernen. Man sollte nur nicht der Illusion verfallen, dass man sich auf diese Weise nur mit dem Wahren, Schönen und Guten beschäftigen müsse. Man muss in jedem Fall auch in das Thema HTML einsteigen und eben die Unterschiede zwischen HTML und XHTML kennen, um kompatibles XHTML schreiben zu können.
Wer heute XHTML einsetzen will, muss sich zwangsläufig mit dem Thema HTML-Kompatibilität auseinandersetzen. Wer heute XHTML im WWW benutzt, liefert das XHTML in den meisten Fällen sowieso als HTML (text/html) aus. Die meisten Autoren wissen meiner Erfahrung nach gar nicht von der Verarbeitungsproblematik. Auch Einführungen, die von vornherein auf XHTML setzen (z.B. Michaels) gehen von HTML-kompatiblem XHTML als text/html aus. Bekommt man also irgendwann Wind von der Möglichkeit der Verarbeitung als XML seitens der Browser, muss man trotzdem auf die HTML-Kompatibilität setzen. Sprich, text/html für veraltete Browser, application/xhtml+xml für diejenigen, die echtes XHTML ausreichend verarbeiten können.
Das heißt, wenn ich XHTML verwenden will, muss ich den gedanklichen Schritt von HTML zu XHTML vollzogen haben und in beiden Welten kompetent sein. »Soll ich jetzt erst einmal HTML lernen?« - Nein, aber hinterrücks bleibt mir nichts anderes übrig.
Es ist unnötig, sich dieses Spezzialwissen anzueignen,
Mit Spezialwissen meinst du:
Nein, mit Spezialwissen meine ich nicht die trivialen, naheliegenden Syntax-Unterschiede, sondern die vielen Unterschiede zwischen HTML und XHTML (als echtes XHTML verarbeitet!), die man für gewöhnlich übersieht, weil man momentan nie XHTML als XML verarbeitet.
Das sind so Sachen, wie hier schon genannt wurden: CSS wird in (echtem) XHTML anders angewandt als bei HTML. Genauso gibt es einige JavaScript-Fallstricke, document.write geht z.B. nicht mehr, viele DOM-Methoden funktionieren im Detail anders. script- und style-Elemente werden anders geparst. Die Kodierung eines Dokuments wird von XML-Pasern ganz anders herausgefunden. Und so weiter. Die gängigen XHTML-Dokumente im WWW ignorieren diese Umstände. Würde man sie als application/xhtml+xml ausliefern und würden korrekte XML-Parser sie verarbeiten, würden sie in vielerlei Hinsicht nicht funktionieren.
Meine Webseite http://molily.de/ z.B. ist kein gültiges XHTML. Der W3C Validator behauptet, die Seite sei valide. Pustekuchen, gültiges XHTML ist es trotzdem nicht. Ein echter XML-Parser muss, sofern er dem XML-Standard folgt, die Verarbeitung abbrechen. Findest du den Fehler? Würde ihn ein beliebiger XHTML-Autor finden? Meiner Erfahrung nach nicht.
Mathias