HTML-Validierung: Lohnt es sich?

52

Welche Vor- und Nachteile hat es, sicherzustellen, dass alle Seiten gültig sind, im Vergleich zu ungültigem HTML, das jedoch in allen gängigen Browsern funktioniert?

Ist es auch wichtig, dass nach der Ausführung von Javascript gültiges HTML vorhanden ist?

Thomas Bonini
quelle
5
Dies beantwortet Ihre Frage nicht, aber ... wenn Sie einen Doctype auf Ihre Seite setzen, wird der Browser in den Standardmodus anstatt in den Mackenmodus versetzt. Schau im Macken-Modus nach, um zu sehen, was ich meine.
Evan Plaice
1
@ Evan Scholle - Nicht jeder obwohl DOCTYPE. Einige DOCTYPES lösen Macken oder fast Standardmodi aus. Die HTML5-Spezifikation erklärt dies detaillierter.
Luiscubal
1
@luiscubal Ist das neu in HTML 5, weil aus en.wikipedia.org/wiki/Quirks_mode hervorgeht , dass "... wenn ein vollständiger DOCTYPE vorhanden ist, der Browser den Standardmodus verwendet und wenn er nicht vorhanden ist, der Browser den Quirksmodus verwendet ".
Evan Plaice
@Evan Plaice Bei früheren HTML-Versionen nicht sicher, aber in HTML5 wird speziell angegeben, was mit alten DOCTYPES zu tun ist: whatwg.org/specs/web-apps/current-work/multipage/…
luiscubal
1
@Evan Plaice Mit anderen Worten, "DTD HTML 2.0 Level 1" löst den Macken-Modus aus.
Luiscubal

Antworten:

42

Ich denke, es lohnt sich auf jeden Fall , aber Sie sollten niemals ein Sklave der Validierung sein - es ist ein Narrenspiel.

http://www.codinghorror.com/blog/2009/03/html-validation-does-it-matter.html

  1. Überprüfen Sie Ihr HTML. Wissen, was es bedeutet, gültiges HTML-Markup zu haben. Verstehen Sie die Werkzeuge. Mehr Information ist immer besser als weniger Information. Warum blind fliegen?

  2. Es interessiert niemanden, ob Ihr HTML-Code gültig ist. Außer dir. Wenn du möchtest. Denken Sie keine Sekunde lang daran, dass das Erstellen von perfektem HTML wichtiger ist als das Ausführen Ihrer Website, das Bereitstellen von Funktionen, die Ihre Benutzer begeistern, oder das Erledigen von Aufgaben.

Jeff Atwood
quelle
3
Ich muss das unterstützen. Ich habe viele Probleme mit Javascript-Bibliotheken gesehen, die auf ungültiges HTML zurückzuführen sind. Mehrere verschachtelte Formulare und illegal geschlossene Tags sind Haupttäter. Wie Jeff sagt, sei kein Sklave, aber beschwere dich nicht, wenn jQuery nicht funktioniert, weil deine Seite kein gültiges HTML (XHTML, HTML 5 oder was auch immer du als Doctype auswählst).
Gareth Farrington
@ Jeff Atwood: Kann ich nicht mehr zustimmen, wenn Sie sagen "Niemand kümmert sich darum, ob Ihr HTML gültig ist. Außer Ihnen." Traurig aber wahr, es ist den Kunden wirklich egal.
Marco Demaio
@MarcoDemaio Warum ist es traurig? Als Kunde und Endbenutzer bin ich mehr besorgt darüber, ob die Site in allen Browsern funktioniert (von denen die meisten nicht den Standards entsprechen), als darüber, ob sie validiert wird oder nicht. Gültiges HTML spielt keine Rolle. Google, Facebook, Twitter, diese Website usw. Keine relevante Website hat gültiges Markup. Warum? Weil gültiges HTML nichts anderes tut, als die Seite aufzublähen und Ihre Bandbreitenkosten zu erhöhen.
NullUserException
Das gleiche gilt für perfekt eingerückte Markups. Dies ist umso sinnloser, es ist eine 100% ige Verschwendung von Bandbreite und hat keinerlei praktischen Nutzen.
NullUserException
@NullUserException: Ich finde es traurig, weil ich herausgefunden habe, dass validierte Websites in der Regel auf allen Browsern viel besser rendern. Sehen Sie sich meinen Kommentar zu Alans Antwort an: webmasters.stackexchange.com/a/373/1429 Das Validieren einer für mich gespeicherten Website spart mir dennoch sehr viel Zeit. Über das perfekte eingerückte Markup habe ich noch nie von Spezifikationen gehört. Ich möchte vielleicht um 3 Leerzeichen einrücken, und Sie möchten vielleicht um eins einrücken.
Marco Demaio
32

Ich halte gültiges HTML für ein lohnendes Ziel, sehe es jedoch nicht als das A und O beim Erstellen guter Websites.

Der Trick ist, dass Ihr Markup zwar vollkommen gültig ist, aber möglicherweise nicht semantisch - z. B. mithilfe von Tabellen für Layout oder Navigation. Es gibt einen Unterschied zwischen gültigem Code und semantischem Code.

Wenn Sie Werbung oder externe Skripte verwenden, fügen diese möglicherweise ein eigenes Markup ein, das die Möglichkeit bietet, sich wirklich mit Ihrem eigenen zu messen.

Grant Palin
quelle
22

Ich denke, es lohnt sich, da ich durch die Suche nach Validierung viele Markup- und Logikfehler abgefangen habe. Es ist eines dieser "notwendigen, aber nicht ausreichenden" Dinge. Gültige Markups, wie Code, der fehlerfrei kompiliert (oder über JSlint auscheckt) und keine Warnungen und Hinweise enthält, sind ein guter erster Schritt, um das Problem zu beheben.

Alan
quelle
+1 stimme voll und ganz diesem zu. Das Validieren von Seiten spart eine Menge Zeit, wenn JS- und How-Things-Are-Displaied-Bugs auftreten, die so mysteriös erscheinen und nur auf ein schlechtes oder nicht geschlossenes HTML-Tag zurückzuführen sind. Darüber hinaus ist es mit Tools wie FF Addon Html Validator [ addons.mozilla.org/en-US/firefox/addon/html-validator/] sehr einfach, alle Ihre Seiten lokal zu validieren.
Marco Demaio
9

Das große Plus von gültigem HTML ist, dass Ihre Seite dann für andere Dinge als "Hauptbrowser" zugänglicher ist. Alle "Hauptbrowser" haben endlose Problemumgehungen, um mit dem ganzen ungültigen Müll umzugehen, der das WWW bevölkert. Das Festhalten an gültigem HTML hilft jedoch beispielsweise, wenn jemand einen Browser für Sehbehinderte verwendet oder offline auf Ihre Seiten zugreift.


quelle
8

Die Validierung an sich ist nicht so kritisch, da nur wenige Browser 100% kompatibel sind und die Spezifikation nicht 100% klar darüber ist, wie die Regeln zu interpretieren sind.

Wenn Sie jedoch gültiges HTML verwenden, können Sie Ihre Website besser anpassen und verbessern. Wenn sich die Standards verschieben, werden sie in der Regel vorwärts migriert. Wenn Ihre neue Site gültig ist, sollte die Aktualisierung zur Unterstützung der neuesten Version einfacher sein.

Fazit: Gültigkeit macht es einfacher, den Überblick zu behalten und mit dem breitesten Publikum so kompatibel wie möglich zu sein.

MrChrister
quelle
4

Am besten lernen Sie, welcher ungültige HTML-Code schlecht ist und welcher ungültige HTML-Code keine Rolle spielt.

Zum Beispiel <div>ist es sehr schlimm , das Schließen eines Tags zu vergessen , da Ihr Layout mit ziemlicher Sicherheit in einem oder mehreren Browsern nicht funktioniert.

Die Verwendung von <br>anstelle von <br />in XHTML spielt jedoch keine Rolle - alle Browser interpretieren beide ohne Probleme als Zeilenumbruch. Die Verwendung des targetAttributs für Links ist ungültig. Im schlimmsten Fall öffnet der Browser den Link jedoch nicht in einem neuen Fenster.

Verärgerte Ziege
quelle
targetist in Übergangs-XHTML gültig und nur Masochisten verwenden strict. Wenn Sie den schließenden Schrägstrich weglassen, wird Ihre Seite ungültiges XML, was wahrscheinlich die Bildschirmabstreifer verwirren wird. Wenn Sie sich für XHTML entscheiden, sollte Ihre Seite mindestens gültiges XML sein.
Tgr
1
@Tgr: Komisch, ich dachte, Masochisten bevorzugen Nicht-Standard-Modus. Sogar Übergangsdoktypen haben ihre Probleme (mit "Fast-Standard" -Modus usw.)
DisgruntledGoat
1
Ich würde argumentieren, dass Streng ist wichtig - warum wählen Sie das Risiko von veraltetem Code und Macken-Modus. Die Verwendung von Strict ist kostenlos, ansonsten erfahren Sie mehr über Ihre bevorzugte Markup-Version.
CJM
3

Wenn Sie den Validator ausführen, müssen Sie die Fehler, die er anzeigt, von Fall zu Fall untersuchen. Ist die Validierung wichtig? Für mich ist das sehr wichtig. Aber ist das eine Voraussetzung? Nein.

Dinge wie die mehrfache Verwendung derselben ID (anstelle einer Klasse), das Einfügen von Elementen auf Blockebene in Elemente auf Inline-Ebene (normalerweise passen diese Elemente auch semantisch nicht auf diese Weise) und das Fehlen von ALT-Attributen in Bildern (schlechte Zugänglichkeit für Behinderte) ), sind alle wichtig. Dinge wie unbekannte Attribute auf Tags sind NICHT wichtig. Überhaupt. Javascript-Frameworks wie Dojo oder die schreckliche Meebo-Social-Media-Leiste verwenden benutzerdefinierte Attribute als Hooks, und die HTML-Spezifikation besagt, dass diese zulässig sind und dass unbekannte Attribute ignoriert werden müssen. Der Validator ignoriert sie jedoch nicht, sondern gibt Fehler aus. Diese Fehler können ignoriert werden.

Gehen Sie bei der Validierung nicht einfach davon aus, dass Sie es falsch machen, wenn Sie Fehler haben. Semantik ist weitaus wichtiger, und es kommt vor, dass gültiges HTML häufig das natürliche Ergebnis einer ordnungsgemäßen Semantik ist.

Bryson
quelle
Ich stimme zu - überprüfen Sie Ihre Webseite, aber unter bestimmten Umständen können Sie die Warnungen ignorieren, solange Sie wissen, warum sie da sind
Casebash
3

Ein Grund, Ihre Website auf gültiges HTML zu testen, besteht darin, dass sichergestellt wird, dass die Suchmaschinenspinnen in der Lage sind, die Bedeutung Ihrer Seiten vollständig zu indizieren und zu bestimmen. Wenn dies aufgrund von fehlerhaftem HTML nicht möglich ist (was die wichtigsten Browser aus historischen Gründen möglicherweise umgehen), schränken Sie möglicherweise die Platzierung Ihrer Suchmaschinen ein.

Es gab auch Spekulationen darüber, dass die großen Suchmaschinen zwar gut mit fehlerhaftem HTML umgehen, sie jedoch möglicherweise auch "Punkte" für die Gültigkeit der Seitenqualität vergeben, was sich auch auf Ihre Fähigkeit auswirkt, so hoch zu ranken, wie Ihr Inhalt es verdient.

JasonBirch
quelle
2
Google hat kategorisch erklärt, dass ungültiges HTML keinen Einfluss auf das Ranking hat. Ich kann jedoch den Fall sehen, dass HTML so fehlerhaft ist, dass der eigentliche Inhalt der Seite nicht von Spinnen gelesen werden kann - obwohl in diesem Fall fast sicher ist, dass Browser Renderprobleme aufweisen würden.
DisgruntledGoat
@ DisgruntledGoat Du hast Recht, hier ist eine Referenz dafür: youtube.com/watch?v=FPBACTS-tyg
JasonBirch
@DisgruntledGoat Offensichtlich ... Google selbst ist voll von ungültigem HTML, und ich erinnere mich, dass sie sagten, es sei ihnen wirklich egal, und dass es eine gute Sache ist, ungültiges HTML zu haben, wenn dies schnellere Ladezeiten bedeutet.
NullUserException
3

Ich denke wirklich nicht mehr, dass es wichtig ist. Früher war ich ein Sklave der Validierung, jetzt überprüfe ich es selten. Vielleicht bin ich ausgebrannt, weil ich nicht mehr sicher war, dass meine Website gültig ist, oder es hat mich einfach nicht mehr interessiert, weil es sonst niemand tut. Ich kann garantieren, dass 99,9% unserer Besucher nicht einmal wissen, was es ist. Zukünftige Browser-Software könnte, aber wenn dieser Tag kommt, werde ich mich dann darum kümmern.


quelle
2

Die Validierung ist nützlich, da sie Ihnen dabei helfen kann, schwer zu fassende Fehler zu erkennen, wie z

<input name=foo value=<?php echo htmlspecialchars($_GET['foo']); ?> />

oder unvorhersehbares Browserverhalten (z. B. kann das Einfügen von Blockelementen ain Firefox manchmal hässlich sein).

Tgr
quelle
2

Ein Punkt, den noch niemand erwähnt hat, ist, dass ungültiges HTML zu langsameren Renderzeiten führen kann, während der Browser versucht, das nicht standardmäßige HTML bei der Anzeige zu verstehen.

BradB
quelle
Ich würde dies ablehnen, wenn ich könnte. Ich bezweifle sehr, dass dies einen beobachtbaren Effekt hat. Ich würde mich mehr mit gültigen Markups befassen, die die Seite aufblähen und mehr Zeit zum Laden benötigen (insbesondere bei langsameren / mobilen Verbindungen).
NullUserException
@NullUserExceptions: Ich denke nicht, dass der von BradB gemachte Punkt ein -1 verdient. Möglicherweise schwer zu beweisen, aber ein Browser, der in einem HTML-Durcheinander das Problem lösen und beheben muss, benötigt möglicherweise etwas mehr als eine gut formatierte gültige HTML-Seite, in der es keine Fehler gibt. Warum geben Sie keine Antwort auf diese Frage, die uns ein gutes Beispiel für eine überlastete Seite aufgrund von HTML-Validierungsmissbrauch zeigt? Ich kann mir nicht vorstellen, wie eine gültige HTML-Seite im Vergleich zu derselben Seite mit ungültigem HTML-Code überladen sein könnte.
Marco Demaio
1

Es gibt keinen Nachteil, gültiges HTML zu haben. Es gibt einen Grund, warum es überhaupt eine Spezifikation gibt und warum viel Aufwand in die Spezifikation gesteckt wird, um zu definieren, wie die Dinge funktionieren sollen.

Im Grunde ist alles, was Sie gewinnen, um die Spezifikationen zu erfüllen. was wiederum bedeutet, dass Programme, die zum Lesen von HTML geschrieben wurden (Browser, Bots), SIE nicht dafür verantwortlich machen können, dass sie die Spezifikationen nicht einhalten, wenn etwas schief geht. und einige dieser Programme geben Ihnen Extrapunkte (höheres Ranking in Suchmaschinen, wenn der Bot "erfüllt die Spezifikation" meldet). Wenn Sie die Spezifikationen erfüllen, werden Sie viel weniger überrascht sein, wenn einige Browser defektes HTML nicht so rendern, wie Sie es sich vorstellen.

Also, um die Spezifikationen zu erfüllen und gültiges HTML zu schreiben, ist gut für Sie, überhaupt keine Nachteile.

Akira
quelle
Summen, in welchen Suchmaschinen werden Sie höher eingestuft, wenn Sie die Spezifikation erfüllen?
2
Der Nachteil wäre die zusätzliche Entwicklungszeit, die Sie aufwenden müssen, um sicherzustellen, dass Ihr gesamter Code den Spezifikationen entspricht. Obwohl diese Kosten im Allgemeinen minimal sind, sollte sie dennoch als Nachteil angegangen werden.
Chatche
@kinopiko: Wenn es welche gibt, ist es keines der wichtigsten (Google, Yahoo, Bing, Ask). Ein komplettes Durcheinander von Code, das selbst ein erfahrener (menschlicher) Webentwickler nicht lesen kann, wird Sie wahrscheinlich behindern, aber die Verwendung einiger "illegaler" Attribute hat absolut keine Auswirkung auf die Platzierung.
DisgruntledGoat
Das ist das Problem mit der Validierungsterminologie. Du bist entweder gültig oder nicht. Es gibt keine Abschlüsse. Beschädigtes HTML (z. B. nicht geschlossene Tags, falsch platzierte / fehlende strukturelle Tags usw.) ist ungültig und schadet der SEO, aber die meisten Leute sprechen nicht darüber, wenn sie "Validierung" sagen. Ein Anfänger möchte möglicherweise einen Validator verwenden, um sicherzustellen, dass er keinen dieser Anfängerfehler begangen hat, ein professioneller Entwickler muss dies jedoch nicht, da sein Code sozusagen im Sinne von SEO bereits "gültig genug" ist.
Majestätsbeleidigung
1

Einige HTML-Validierungsfehler können zu nicht offensichtlichen Layoutproblemen führen (z. B. falsch verschachtelte / nicht geschlossene Tags), zu JavaScript-Fehlern (z. B. mehrfache Verwendung id) und zu Problemen für einige Benutzer (z. B. wenn altBilder kein aussagekräftiges oder leeres Attribut enthalten).

Wenn alle unsere Seiten gültig sind, ist dies eine gute automatische Überprüfung, mit der Sie Fehlerquellen ausschließen können. Wenn Sie einige Überprüfungsfehler belassen, weil Sie wissen, dass sie keinen Schaden anrichten, wird Ihre Überprüfung nicht mehr automatisch durchgeführt. Sie müssen jeden Fehler überprüfen und sich daran erinnern, dass er in Ordnung ist. Persönlich bevorzuge ich es, wenn Computer meinen Arbeitsaufwand reduzieren, anstatt ihn zu erhöhen.

Paul D. Waite
quelle
1

Ein Punkt, den niemand erwähnt, sind zukünftige Browserentwicklungen. Obwohl alle heutigen Browser mit ungültigen Markups relativ gut umgehen, ist dies möglicherweise nicht immer der Fall.

Browserhersteller werden in Zukunft sicherstellen, dass ihre Browser nach HTML / XHTML-Standards funktionieren. Das sollten auch Webentwickler beachten. Nur weil ein bestimmtes Bit eines ungültigen Markups jetzt funktioniert, kann dies in zukünftigen Browsern nicht garantiert werden.

Loftx
quelle
Ich muss sagen, ich frage mich, ob das wahr ist.
2
Ja, ich kann nicht sehen, dass ein Browser jemals Unterstützung für das <font>Tag oder seine Art fallen lässt.
DisgruntledGoat
Ich sehe das Problem nicht - die Unterstützung für veraltete oder ungültige Markups kann sich in Zukunft ändern. Wenn Sie die unvollständige Implementierung von (X) HTML in den meisten Browsern überblicken, werden Sie mit Sicherheit sicherer sein, wenn Sie gültige Markups verwenden. Mit einem gültigen Markup sind keine Kosten verbunden, außer einfach zu wissen, was Sie tun.
CJM
1

Die Gültigkeit hilft Ihnen, Inkompatibilitäten zu vermeiden und den Code wartbar zu halten. Browser erholen sich von Markup-Fehlern, aber manchmal auf sehr unintuitive Weise.


  • DTD-basiert (HTML4, XHTML1 @ W3C) - Könnte sich nicht lohnen. DTD ist primitiv und kann z. B. die Gültigkeit der meisten Attribute nicht überprüfen. Meistens werden Sie schwer zu verstehende Fehler in Bezug auf Entitäten und Verschachtelungen bekommen.

  • HTML5-Validator - Ja . Bestimmt. HTML5 ist pragmatischer und erlaubt einige harmlose Konstrukte, die früher Fehler waren. Der Validator von OTOH Henri ist viel gründlicher und kann echte Probleme besser erkennen.


Die Gültigkeit von JS-generiertem Code kann von Bedeutung sein, da Browser mit DOM arbeiten, unabhängig davon, wie dieser erstellt wurde. Wenn Sie verwenden document.write(), müssen Sie sogar darauf achten, dass die Syntax korrekt ist (sie durchläuft denselben Parser wie die Seitenquelle).

Kornel
quelle
0

Google und Bing haben, haben und werden niemals CSS- oder HTML-Validierung als Ranking-Faktor verwenden.

Die meisten Websites weisen Dutzende bis Hunderte von Fehlern auf, und Sie müssen sich keine Sorgen machen, da sich alle Suchmaschinen darum kümmern, wie die Seite gerendert wird. Stellen Sie einfach sicher, dass Ihre Website in allen gängigen Browsern und in Google Fetch korrekt dargestellt wird .

Simon Hayter
quelle