what - xhtml vs html5




Ist es akzeptabel für ungültiges XHTML? (10)

Es gibt so viele Standards, und sie werden so sehr "durchgesetzt" oder unterstützt, dass ich glaube, dass das keine Rolle spielt. Versteh mich nicht falsch, ich denke, es sollte Standards geben, aber weil sie nicht durchgesetzt werden, folgt niemand ihnen und es ist eine massive Abwärtsspirale.

Ich habe eine Menge Websites bemerkt, SO inklusive, XHTML als Auszeichnungssprache verwenden und mich dann nicht an die Spezifikation halten. Beim Durchsuchen der Quelle nach SO fehlen abschließende Tags für Absätze, ungültige Elemente usw.

Sollten also Tools (und Entwickler) den XHTML-Doctype verwenden, wenn sie einen ungültigen Markup erzeugen? Und sollten die Browser bei der Akzeptanz schlechter Aufschläge stärker sein?

Und bevor irgendjemand Heuchelei schreit, hat mein Blog ein Stück ungültigen Markups, das den Captha involviert (oder es tat das letzte Mal, als ich es überprüfte), was das Stylen des Noscript-Tags beinhaltet.


Es kommt darauf an. Ich hatte dieses Problem mit meinem Blog, wo ein YouTube-Video ungültiges XHTML verursachte, aber es lief gut. Auf der anderen Seite habe ich einen "Valid XHTML" -Link und eine Kombination aus einem "Valid XHTML" -Anspruch und ungültigem XHTML ist nicht professionell.

Da SO keinen Anspruch auf Gültigkeit erhebt, halte ich das für akzeptabel, aber persönlich, wenn ich Jeff wäre, würde ich mich ärgern und versuchen, es zu beheben, auch wenn es in modernen Browsern gut aussieht, aber manche Leute machen einfach weiter und erledigen Dinge anstatt nicht vorhandene Bugs zu beheben.


Ich sage, wenn es in Ordnung ist, dann ist es egal, ob es Pixel perfekt ist.

Es dauert eine Weile, bis eine Website so läuft, wie Sie es wollen. Wenn Sie zurückgehen und Änderungen vornehmen, ändert sich die Art und Weise, wie die Seite leicht gerendert wird. Dann müssen Sie diese Probleme beheben.

Nun, ich sage nicht, dass Sie schlampige Webseiten erstellen sollten, aber ich sehe keinen Grund, das zu reparieren, was nicht kaputt ist. Browser werden die Unterstützung für die Fehlerkorrektur in naher Zukunft nicht einfach fallen lassen.


Ich stimme zwar der Aussage zu "wenn es gut ist, dann mache dir keine Sorgen", aber es ist gut, einem Standard zu folgen, auch wenn es momentan vielleicht nicht vollständig unterstützt wird. Sie können immer noch Tabelle für Layout verwenden, aber es ist nicht gut für einen Grund.


Ich würde XHTML überhaupt nicht verwenden, nur um mir den philosophischen Stress zu ersparen. Es ist nicht so, dass irgendein Browser es wie XHTML behandelt.

Browser werden schlechte Markups ablehnen, wenn die Seite als application / xhtml + xml gesendet wird, aber selten. Das ist in Ordnung.

Ich wäre mehr besorgt über Dinge wie Inline-Verwendung von CSS und JavaScript mit , nur weil sie Wartung schwieriger machen.


Obwohl ich glaube, dass ich nach gültigem XHTML und CSS strebe, ist es oft aus verschiedenen Gründen schwierig.

  • Zunächst könnte ein Teil des Inhalts über AJAX geladen werden. Manchmal werden Fragmente nicht ordnungsgemäß in das vorhandene DOM eingefügt.
  • Der angezeigte HTML-Code wurde möglicherweise nicht alle im selben Dokument erstellt. Zum Beispiel könnte die Seite aus Up-Komponenten oder Templates bestehen und dann zusammen geworfen werden, bevor der Browser sie rendert. Dies ist keine Entschuldigung, aber Sie können nicht davon ausgehen, dass der HTML-Code, den Sie sehen, auf einmal handkodiert wurde.
  • Was passiert, wenn ein Teil des von Markdown generierten Codes ungültig ist? Sie können nicht dafür verantwortlich machen, dass kein gültiger Code erstellt wird.
  • Schließlich ist der Zweck des DOCTYPE nicht einfach zu sagen "Hey, ich benutze gültigen Code", sondern es ist auch, um dem Browser einen Überblick zu geben, was Sie zu tun versuchen, so dass es zumindest dem Parsen nahe kommen kann diese Information.

Ich glaube nicht, dass die meisten Entwickler einen DOCTYPE angeben und sich dann explizit nicht daran halten.


Ich glaube nicht, dass, wenn Sie einen Doctype angeben, es keinen Grund gibt, sich nicht an diesen Doctype zu halten.

Die Verwendung von XHTML erleichtert die automatische Fehlererkennung, jede Änderung kann automatisch auf ungültiges Markup überprüft werden. Dies verhindert Fehler, insbesondere bei der Verwendung von automatisch generierten Inhalten. Es ist wirklich einfach für einen Webentwickler, der eine Template-Engine (JSP, ASP.NET StringTemplate, usw.) verwendet, um ein schließendes Tag zu wenig oder zu viele zu kopieren / einfügen. Wenn dies Ihr einziger Fehler ist, kann er sofort erkannt und behoben werden. Ich habe einmal für eine Site gearbeitet, die 165 Validierungsfehler pro Seite aufwies, von denen 2 oder 3 echte Bugs waren. Diese waren im Durcheinander anderer Fehler schwer zu finden. Die automatische Validierung hätte diese Fehler an der Quelle verhindert.

Unnötig zu sagen, dass die Auswahl eines Standards und das Festhalten daran niemals die Interoperabilität mit anderen Systemen (Screen Scraper, Screenreadern, Suchmaschinen) fördern kann und ich nie auf eine Situation gestoßen bin, in der eine gültige semantische XHTML mit CSS Lösung nicht möglich war Hauptbrowser.

Offensichtlich ist es bei der Arbeit mit komplexen Systemen nicht immer möglich, sich an Ihren Doctype zu halten, aber dies ist meist das Ergebnis einer unkorrekten Kommunikation zwischen den verschiedenen Teams, die unterschiedliche Teile dieser Systeme oder, wahrscheinlich, Legacy-Systeme entwickeln. Im letzten Fall ist es wahrscheinlich besser, diese Fälle zu isolieren und Ihren Doctype entsprechend zu ändern.

Es ist gut, pragmatisch zu sein und sich nicht an XHTML zu halten, nur weil jemand dies gesagt hat, unabhängig von den Kosten, aber mit dem aktuellen Wissen über CSS und Browser, Test- und Validierungs-Tools sind die Vorteile meistens viel größer als die Kosten.


Wir sollten immer versuchen, es nach Standards validieren zu lassen. Wir werden sicher sein, dass die Website auf aktuellen Browsern UND zukünftigen Browsern angezeigt wird und gut funktioniert.


Nein, Sie sollten XHTML nicht verwenden, wenn Sie keine Wohlgeformtheit garantieren können, und in der Praxis können Sie dies nicht garantieren, wenn Sie XML-Serializer nicht zum Generieren von Markup verwenden. Lesen Sie über das Erstellen von XML .

Wohlgeformtheit ist das, was XHTML von HTML unterscheidet. XHTML mit "nur einem" Markup-Fehler hört auf, XHTML zu sein. Es muss jedes Mal perfekt sein .

Wenn die XHTML-Site mit einigen Fehlern zu funktionieren scheint, liegt das daran, dass Browser den DOCTYPE ignorieren und die Seite als HTML interpretieren.

Siehe XHTML-Proxy , der die Interpretation von Seiten als XHTML erzwingt. Meistens scheitern sie kläglich . Dies ist einer der Gründe, warum die Zukunft von XHTML unsicher ist und warum die Entwicklung von HTML wieder aufgenommen wurde .


Es gibt viele Gründe , ein gültiges Markup zu verwenden. Mein Favorit ist, dass Sie die Validierung als eine Form von Regressionstests verwenden können, die verhindern, dass das Markup-Äquivalent von "Delta Rot" zu echten Rendering-Problemen führt, sobald die Fehler eine kritische Masse erreichen. Und wirklich, es ist einfach schlampig, um "faule" Fehler wie Tippfehler und falsch verschachtelte / nicht geschlossene Tags zu akkumulieren. Gültiges Markup ist eine Möglichkeit, um leidenschaftliche Programmierer zu identifizieren.

Es gibt auch das Problem des Debuggens: valides markup gibt Ihnen auch eine stabile Basis, um an den unvermeidlichen browserübergreifenden Kompatibilitätsproblemen zu arbeiten. Kein Webentwickler, der seine Zeit schätzt, sollte mit der Fehlersuche in Browserkompatibilitätsproblemen beginnen, ohne vorher sicherzustellen, dass das Markup mindestens syntaktisch gültig ist - und jedes andere ungültige Markup sollte einen guten Grund haben, dort zu sein.

(Übrigens .com diese beiden Tests fehl, und Vorschläge zur Behebung der Probleme wurden abgelehnt .)

All dies gesagt, um Ihre spezifische Frage zu beantworten, ist es wahrscheinlich nicht sinnvoll, einen der XHTML-Doctypes zu verwenden, es sei denn, Sie möchten ein gültiges (oder zumindest wohlgeformtes) Markup erstellen. Die Hauptvorteile von XHTML ergeben sich aus der Tatsache, dass XHTML XML ist und es ermöglicht, dass es mit Tools und Technologien verarbeitet und transformiert wird, die mit XML arbeiten. Wenn Sie nicht vorhaben, Ihr XHTML-XML-Format zu formatieren, dann ist es wenig sinnvoll, diesen Doctype zu wählen. Die neueste HTML 4-Spezifikation wird wahrscheinlich alles tun, was Sie brauchen, und es ist viel fehlerverzeihender.