markup - Ist es für ungültiges XHTML akzeptabel?

Translate

Ich habe festgestellt, dass viele Websites, einschließlich SO, XHTML als Auszeichnungssprache verwenden und sich dann nicht an die Spezifikation halten. Beim Durchsuchen der Quelle nach SO fehlen schließende Tags für Absätze, ungültige Elemente usw.

Sollten Tools (und Entwickler) den XHTML-Doctype verwenden, wenn sie ungültige Markups erzeugen sollen? Und sollten Browser die Akzeptanz von schlechten Markups fester akzeptieren?

Und bevor jemand Heuchler ruft, hat mein Blog ein ungültiges Markup mit der Captha (oder das letzte Mal, als ich es überprüft habe), bei dem das Noscript-Tag gestylt wird.

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Es gibtviele Gründegültiges Markup verwenden. Mein Favorit ist, dass Sie damit die Validierung als eine Form von Regressionstests verwenden können, um zu 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, zuzulassen, dass sich "faule" Fehler wie Tippfehler und falsch verschachtelte / nicht geschlossene Tags ansammeln. Ein gültiges Markup ist eine Möglichkeit zur Identifizierungleidenschaftliche Programmierer.

Es gibt auch das Problem des Debuggens: Ein gültiges Markup bietet Ihnen auch eine stabile Basis, um die unvermeidlichen Probleme mit der browserübergreifenden Kompatibilität zu lösen. Kein Webentwickler, der seine Zeit schätzt, sollte mit dem Debuggen von Browserkompatibilitätsproblemen beginnen, ohne vorher sicherzustellen, dass das Markup mindestens istsyntaktischgültig - und jedes andere ungültige Markup sollte einen guten Grund haben, dort zu sein.

(Im Übrigen schlägt stackoverflow.com sowohl diese Tests als auch Vorschläge zur Behebung der Probleme fehlwurden abgelehnt.)

Um Ihre spezifische Frage zu beantworten, lohnt es sich wahrscheinlich nicht, einen der XHTML-Doctypes zu verwenden, es sei denn, Sie planen, einen gültigen (oder einen) zu erstellenam wenigstenwohlgeformtes Markup. Die Hauptvorteile von XHTML ergeben sich aus der Tatsache, dass XHTML XML ist, sodass es von Tools und Technologien, die mit XML arbeiten, verarbeitet und transformiert werden kann. Wenn Sie nicht vorhaben, Ihr XHTML-XML in eine wohlgeformte Form zu bringen, ist es wenig sinnvoll, diesen Doctype auszuwählen. Die neueste HTML 4-Spezifikation wird wahrscheinlich alles tun, was Sie brauchen, und es ist viel verzeihender.

Quelle
Translate

Wir sollten immer versuchen, es gemäß den Standards validieren zu lassen. Wir werden sicher sein, dass die Website in aktuellen und zukünftigen Browsern angezeigt wird und einwandfrei funktioniert.

Quelle
Translate

Ich glaube nicht, dass es einen Grund gibt, diesen Doctype nicht einzuhalten, wenn Sie einen Doctype angeben.

Die Verwendung von XHTML erleichtert die automatische Fehlererkennung. Jede Änderung kann automatisch auf ungültiges Markup überprüft werden. Dies verhindert Fehler, insbesondere bei Verwendung automatisch generierter Inhalte. Für einen Webentwickler, der eine Template-Engine (JSP, ASP.NET StringTemplate usw.) verwendet, ist es wirklich einfach, ein schließendes Tag zu wenig oder zu viele zu kopieren / einzufü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 hatte, von denen 2 oder 3 tatsächliche Fehler waren. Diese waren im Durcheinander anderer Fehler schwer zu finden. Die automatische Validierung hätte diese Fehler an der Quelle verhindert.

Es ist unnötig zu erwähnen, dass die Auswahl eines Standards und das Festhalten daran niemals die Interoperabilität mit anderen Systemen (Bildschirmschaber, Bildschirmleser, Suchmaschinen) verbessern kann, und ich bin nie auf eine Situation gestoßen, in der eine gültige semantische XHTML mit CSS-Lösung nicht für alle möglich war Hauptbrowser.

Wenn Sie mit komplexen Systemen arbeiten, ist es natürlich nicht immer möglich, sich an Ihren Doctype zu halten. Dies ist jedoch hauptsächlich auf eine fehlerhafte Kommunikation zwischen den verschiedenen Teams zurückzuführen, die verschiedene Teile dieser Systeme oder höchstwahrscheinlich 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 dies jemand gesagt hat, unabhängig von den Kosten, aber mit dem aktuellen Wissen über CSS und Browser, Test- und Validierungswerkzeuge sind die Vorteile meistens viel größer als die Kosten.

Quelle
Translate

Sie können sagen, dass ich eine OCD zur XHTML-Gültigkeit habe. Ich finde, dass die meisten Probleme mit dem ungültigen Code von Programmierern herrühren, die den Unterschied zwischen HTML und XHTML nicht kennen. Ich habe seit einiger Zeit 100% gültiges XHTML und CSS geschrieben und hatte noch nie größere Renderprobleme mit anderen Browsern. Wenn Sie alles gültig halten und nichts zu Exotisches versuchen, sparen Sie sich eine Menge Zeit bei Korrekturen.

Quelle
Translate

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

Browser lehnen ein schlechtes Markup ab, wenn die Seite als application / xhtml + xml gesendet wird, dies ist jedoch selten der Fall. Das ist in Ordnung.

Ich würde mich mehr um Dinge wie die Inline-Verwendung von CSS und JavaScript mit Stack Overflow kümmern, nur weil sie die Wartung erschweren.

Quelle
Tom
Translate

Obwohl ich daran glaube, nach gültigem XHTML und CSS zu streben, ist dies aus mehreren Gründen oft schwierig.

  • Erstens könnte ein Teil des Inhalts über AJAX geladen werden. Manchmal werden Fragmente nicht richtig 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 Komponenten oder Vorlagen bestehen und dann zusammengeworfen 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 von Hand codiert wurde.
  • Was ist, wenn ein Teil des von Markdown generierten Codes ungültig ist? Sie können Stack Overflow nicht dafür verantwortlich machen, dass kein gültiger Code erstellt wurde.
  • Schließlich besteht der Zweck des DOCTYPE nicht darin, einfach "Hey, ich verwende gültigen Code" zu sagen, sondern dem Browser auch einen Überblick darüber zu geben, was Sie versuchen, damit er zumindest annähernd korrekt analysiert werden kann diese Informationen.

Ich glaube nicht, dass die meisten Entwickler einen DOCTYPE angeben und ihn dann explizit nicht einhalten.

Quelle
Boyd Lee
Translate

Ich stimme zwar der Meinung zu: "Wenn es gut läuft, dann mach dir keine Sorgen", aber es ist gut, einem Standard zu folgen, auch wenn es momentan möglicherweise nicht vollständig unterstützt wird. Sie können Table weiterhin für das Layout verwenden, dies ist jedoch aus einem bestimmten Grund nicht gut.

Quelle
Translate

Nein, Sie sollten XHTML nicht verwenden, wenn Sie keine gute Form garantieren können, und in der Praxis können Sie dies nicht garantieren, wenn Sie den XML-Serializer nicht zum Generieren von Markups verwenden. Lesenüber das Produzieren von XML.

Wohlgeformtheit istdasetwas, das XHTML von HTML unterscheidet. XHTML mit "nur einem" Markup-Fehler ist nicht mehr XHTML.Es muss jedes Mal perfekt sein.

Wenn die "XHTML" -Seite mit einigen Fehlern zu funktionieren scheint, liegt das daranBrowser ignorieren den DOCTYPEund Seite als HTML interpretieren.

SehenXHTML-Proxydas erzwingt die Interpretation von Seiten als XHTML. Meistenssie scheitern kläglich. Dies ist einer der Gründe, warum die Zukunft von XHTML ungewiss ist undWarum wurde die Entwicklung von HTML wieder aufgenommen?.

Quelle
Translate

Es hängt davon ab, ob. Ich hatte dasProblem mit meinem Blogwo ein YouTube-Video ungültiges XHTML verursachte, aber es wurde gut gerendert. Andererseits habe ich einen "Valid XHTML" -Link und eine Kombination aus einem "Valid XHTML" -Anspruch und ungültigem XHTML ist nicht professionell.

Da SO nicht behauptet, gültig zu sein, denke ich, dass es akzeptabel ist, aber persönlich, wenn ich Jeff wäre, würde ich mich die Mühe machen und versuchen, es zu beheben, selbst wenn es in modernen Browsern gut aussieht, aber einige Leute gehen lieber einfach weiter und erledigen die Dinge tatsächlich anstatt nicht vorhandene Fehler zu beheben.

Quelle
Translate

Solange es in IE, FF, Safari funktioniert (fügen Sie hier einen anderen Browser ein), sollten Sie in Ordnung sein. Die Validierung ist nicht so wichtig wie das korrekte Rendern in mehreren Browsern. Nur weil es gültig ist, heißt das nicht, dass es zum Beispiel im IE richtig funktioniert.

Führen Sie Google Analytics oder ähnliches auf Ihrer Website aus und prüfen Sie, welche Art von Browsern Ihre Benutzer verwenden. Beurteilen Sie dann, welche Browser Sie am meisten unterstützen müssen, und sorgen Sie sich um die weniger wichtigen, wenn Sie Zeit dazu haben.

Quelle
Translate

Ich sage, wenn es in Ordnung ist, spielt es keine Rolle, ob es pixelgenau ist.

Es dauert eine Weile, bis eine Site so eingerichtet ist, wie Sie es möchten. Wenn Sie zurückgehen und Änderungen vornehmen, ändert sich die Art und Weise, wie die Seite leicht gerendert wird. Dann müssen Sie das Problem behebenjeneProbleme.

Nun, ich sage nicht, dass Sie schlampige Webseiten erstellen sollten, aber ich sehe keinen Grund, das zu beheben, was nicht kaputt ist. Browser werden in naher Zukunft die Unterstützung für Fehlerkorrekturen nicht mehr einstellen.

Quelle
Translate

Ich verstehe nicht, warum jeder versucht, seine Websites an den Standard anzupassen, wenn einige Browser Probleme haben, Standardcode richtig zu rendern. Ich bin seit ungefähr 10 Jahren im Webdesign und habe aufgehört, doppelt zu codieren (sprich: CSS hacken) und dummes Zeug zu ändern, nur damit ich einen Knopf auf meiner Website platzieren kann.

Ich glaube, dass die Verwendung eines <div> dazu führt, dass Sie ungültig werden, und es etwas schwieriger wird, ein größeres JavaScript / AJAX ohne dieses zu erstellen.

Quelle
Translate

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

Quelle
Translate

Für 99,999% der Websites ist das wirklich egal. Das einzige Mal, dass es mir wichtig war, habe ich die HTML-Eingabe über HTMLTidy ausgeführt, um sie XHTML-ize zu machen, und dann meine Verarbeitung darauf ausgeführt.

Ziemlich genau, es ist das Axiom des alten Programmierers: Vertraue keiner Eingabe.

Quelle