Frage an html, standards-compliance, xhtml – Ist die Einhaltung von XHTML sinnlos?

20

Ich baue gerade eine Site auf, bis jetzt habe ich alles schmerzhaft dazu gezwungen, konform zu sein, und es sieht für alle Browser ziemlich gleich aus. Ich fange jedoch an, einige Java-Skripte von Drittanbietern / Free zu implementieren, die beispielsweise Attribute hinzufügen (z. B. order = 2). Ich könnte das umgehen, aber es ist ein Schmerz, und ich fange an, meine Prinzipien zu verlieren, um sicherzustellen, dass alles gültig ist. Ist es wirklich sinnvoll, so etwas zu umgehen? Ich habe das HTMLValidator-Plugin für Firefox und bei den meisten wichtigen Websites (einschließlich dieser, Google usw.) handelt es sich nicht um gültiges XHTML oder HTML.

Siehe auch die Frage zur Auswahl der HTML-Version:stackoverflow.com/questions/3654/html-version-choice Chris
Ich habe das Schlagwort-Compliance-Tag entfernt. Offensiv, IMHO. Jon Limjap

Deine Antwort

11   die antwort
1

gültigen Code" zu schreiben, nur weil Sie ein Beispiel setzen, indem Sie die Regeln befolgen. Wenn jeder Entwickler Code für Fx, Safari und Opera geschrieben hätte, müsste der IE vermutlich früher als mit Version 8 "den Regeln folgen".

3

lohnt es sich, Ihre Seiten gültig und übersichtlich zu gestalten. Andernfalls möchten Sie wahrscheinlich einfaches altes semantisches HTML. In jedem Fall überwiegen die Bedürfnisse Ihres Publikums die Bedürfnisse eines Validators.

2

nnlos:

Browser haben keine XHTML-Parser. Sie haben nicht versionsspezifische, webfähige HTML-Parser, die ein DOM um das erstellenhttp://www.w3.org/1999/xhtml Namespace.

Einige Browser mit XML-Parsern können XHTML-Markups als application / xhtml + xml als XML behandeln. Dadurch wird das XML-Format verwendet und den Elementen im HTML-Format ein Standardstil und -verhalten verliehenhttp://www.w3.org/1999/xhtml Namespace. Aber was das Parsen angeht, hat es nichts mit XHTML zu tun. XML-Parsing-Regeln werden befolgt, nicht einige XHTML-DTD-Regeln.

Wenn Sie also XHTML-Markup verwenden, geben Sie den Browsern etwas Fremdes und prüfen, ob es so herauskommt, wie Sie es beabsichtigen. Die Sache ist, dass Sie dies mit jedem Markup tun können. Wenn es wie beabsichtigt gerendert wird und das richtige DOM erzeugt, geht es Ihnen ziemlich gut. Sie müssen nur sicherstellen, dass Sie den DOCTYPE-Wechsel im Auge behalten und sich nicht auf einen Browser-Fehler verlassen (damit die Dinge in Browsern, die den Fehler nicht haben, nicht auseinanderfallen).

Wofür die XHTML-Konformität gut ist, ist die Syntaxprüfung (durch Validierung), um festzustellen, ob das Markup korrekt aufgebaut ist. So vermeiden Sie das Parsen von Fehlern. Dies kann natürlich auch mit HTML geschehen, so dass XHTML in diesem Fall nichts Besonderes ist. In jedem Fall müssen Sie noch in Browsern testen und hoffen, dass die Browser-Anbieter großartige HTML-Parser erstellen, die alle Arten von Mist akzeptieren.

Was nicht sinnlos ist, ist zu versuchen, sich an die Erwartungen der Browser anzupassen. HTML5 hilft bei dieser großen Zeit. Apropos HTML5: Sie können alle gewünschten benutzerdefinierten Attribute definieren. Stellen Sie ihnen einfach das Präfix data- voran, wie in <p data-order = "Dies ist ein gültiges benutzerdefiniertes Attribut."> Test </ p>.

Alle gängigen Browser mit Ausnahme des IE verfügen über XHTML-Parser. XHTML-DTD wird in gewisser Weise respektiert (benannte Entitäten funktionieren, wenn sie vorhanden sind, manchmal fehlerhaft, selbst wenn sie nicht vorhanden sind). Wohlgeformtheit und Validierung in XML-Begriffen sind verschiedene Dinge. Kornel
0

Sie können es immer so schreiben, wie Sie es möchten, und sicherstellen, dass es zumindest funktioniert. Natürlich haben wir diese Mentalität bereits gelitten und ihre Ergebnisse miterlebt.Internet Explorer 6.

Ich bin ein großer Fan vonMike Davidson Ansatz zur normenorientierten Entwicklung.

Nur weil Sie Ihren Code validieren können, heißt das noch lange nicht, dass Sie besser sind als alle anderen. Das heißt nicht unbedingt, dass Sie besseren Code schreiben als alle anderen. Jemand, der eine Bankanwendung vollständig in Flash schreiben kann, ist ein besserer Programmierer als Sie. Jemand, der Code von Drittanbietern in eine komplizierte Publishing-Umgebung integrieren kann, ist ein besserer Programmierer als Sie. Stellen Sie sich die Validierung als bildgenaue Grammatik vor. Es hilft Ihnen, Ihre Ideen zu vermitteln, und ist ein Zeichen für eine gute Ausbildung. Es ist jedoch bei weitem nicht so wichtig wie die Ideen und Konzepte, die Sie sich überlegen und anschließend kommunizieren. Die charismatischste und vielleicht klügste Person, für die ich je gearbeitet habe, kam aus dem Süden und hat das Wort "nicht" ziemlich häufig verwendet. Es hat ihn nicht weniger schlau gemacht und in der Tat hat es ihn unvergesslicher gemacht. Alles was ich sage ist, dass es eine Menge Dinge gibt, an denen man jemanden beurteilen kann ... Validierung ist eine davon, aber sicherlich nicht die wichtigste.

Viele Leute verstehen diesen Beitrag falsch, um zu bedeuten, dass wir nicht nach Standards codieren sollten. Wir sollten natürlich, aber es ist nicht etwas, worüber man sich wirklich Gedanken machen sollte. DasValidierungsarmee wird immer diejenigen entschlüsseln, die nicht validieren, aber Validierung bedeutet so viel mehr als gültigen Code.

Verlieren Sie also nicht Ihre Prinzipien, aber denken Sie daran, dass Sie in Zukunft viel weniger Probleme haben werden, wenn Sie sich an die Standards halten. Der Inhalt, den Sie bereitstellen möchten, ist weitaus wichtiger als die Darstellung.

4

dass Ihre Seite in den Browsern funktioniert, mit denen Sie keine Tests durchführen. Dazu gehören Bildschirmleseprogramme und das nächste Update der Browser, mit denen Sie testen, sowie Browser, mit denen Sie testen, die jedoch vom Benutzer auf unerwartete Weise konfiguriert wurden.

Die Überprüfung garantiert Ihnen nichts, da es möglich ist, dass Ihre Seite überprüft wird, aber immer noch so vieldeutig ist, dass sie sich eines Tages in keinem Browser so verhält, wie Sie es möchten.

Wenn Ihre Seite jedoch validiert wird, gibt die XHTML-Spezifikation zumindest an, wie sie sich verhalten soll. Wenn es nicht validiert wird, haben Sie lediglich eine Reihe informeller Konventionen zwischen Browserschreibern.

Es ist wahrscheinlich besser, gültiges HTML 3 als ungültiges XHTML zu schreiben, wenn Sie etwas tun möchten, das in dem einen, aber nicht in dem anderen erlaubt ist.

+1 für deinen letzten Absatz Ian Goldby
5

um festzustellen, ob die Dinge nicht den Standards entsprechen, denen Sie vermutlich zustimmen. Wenn Sie absichtlich ein Tool verwenden, das speziell etwas hinzufügt, das nicht in den Validierungsstandards enthalten ist, wird Ihre persönliche Standardvereinbarung natürlich nicht verletzt.

Diese Diskussion wird sehr viel schwieriger, wenn Sie einen Chef oder Kunden haben, der der Meinung ist, dass alles wieder grünes Licht geben sollte, da Sie ihnen das Obige erklären und davon überzeugen müssen, dass Sie nicht nur faul sind.

Stellen Sie sicher, dass Sie nicht nur faul sind. Während die Prüfer möglicherweise ständig jede Instanz des Attributs eines Drittanbieters ärgerlich aufrufen, macht dies die anderen von ihnen erwähnten Prüffehler nicht ungültig (ha). Es lohnt sich oft, sie zu durchsuchen, um Ihre Arbeit noch einmal zu überprüfen.

1

dering-Engine. Je weniger Probleme die Browser haben, desto mehr können sie sich auf das Hinzufügen neuer Funktionen konzentrieren. Je strenger Sie sind, desto weniger Zeit werden Sie sich fragen, warum dieses proprietäre f @ # cking-Tag in den anderen Browsern nicht funktioniert.

Andererseits ist XHTML meiner Meinung nach sinnloser, es sei denn, Sie möchten es in ein XML-Dokument integrieren. Da der IE es immer noch nicht erkennt, ist es ziemlich nutzlos, dabei zu bleiben.

2

dass das XHTML-Tag in den meisten Browsern anders dargestellt wird als ohne. Das Attribut DOCTYPE legt fest, in welchem ​​Modus der Browser rendert, und bestimmt, was zulässig ist und was nicht. Wenn Sie die XHTML-Konformität nicht einhalten, müssen Sie die Tests in allen Browsern wiederholen.

Persönlich halte ich mich nach Möglichkeit an die neuesten Standards, aber Sie müssen sicher Zeit / Geld gegen die Einhaltung abwägen, und für die meisten kommt es auf die persönlichen Vorlieben an.

0

konformen Code zu schreiben, wobei ich die Zeit / Kosten im Vergleich zu den Bedürfnissen des Publikums abwäge. Wo Sie Code 503-konform sein müssen, liegt es in Ihrem besten Interesse und im Interesse Ihrer Zielgruppe, konformen Code zu schreiben. Ich bin auf eine Reihe von Screenreadern gestoßen, die explodieren, wenn der Code sogar ein wenig abweicht.

Wie die Mehrheit der Poster sagte, geht es wirklich darum, was Ihr Publikum braucht.

2

in dem das Hinzufügen eines nicht standardmäßigen Attributs in einem Browser zu einem Rendering-Problem geführt hat.

Versuchen Sie nicht, diese nicht standardmäßigen Attribute zu umgehen. Validatoren sind praktisch, um Ihren Code auf unbeabsichtigte Fehler zu überprüfen, aber wie wir alle wissen, wird selbst vollständig gültiges xhtml nicht immer in allen Browsern konsistent wiedergegeben. Es gibt viele Male, in denen Designentscheidungen die Verwendung von browserspezifischen (und nicht standardmäßigen) Hacks erfordern, um einen Effekt zu erzielen. Dies ist das Leben eines Web-Entwicklers, was sich an der Anzahl der Websites zeigt, auf denen die Technologie läuft (Google, Yahoo, usw.), die nicht validiert werden.

0

aber es gibt viele Gründe, es zu brechen. In der Anfangsphase der CSS-Entwicklung ist es sehr nützlich, um Browserprobleme zu diagnostizieren, wenn Ihr Markup gültig ist. Wenn Sie darüber hinaus etwas unternehmen möchten und der Meinung sind, dass die Validierung am besten abgebrochen werden kann, ist dies in der Regel in Ordnung.

Eine Alternative zur Verwendung benutzerdefinierter Attribute ist die Verwendung des Attributs 'rel' (siehe Beispiel)Litebox (und seine Verwandten).

Verwandte Fragen