So halten Sie die Einhaltung der W3C-Standards eines Themas aufrecht

10

Als ich ein Thema schrieb, stellte ich sicher, dass es mit XHTML 1.1 und CSS 2.1 kompatibel ist. Dann habe ich Plugins hinzugefügt und das Theme ist nicht mehr mit XHTMl 1.1 kompatibel. Dann habe ich die Google API-Schriftart in meinem CSS verwendet und sie ist länger CSS 2.1-kompatibel.

Gibt es eine Möglichkeit, die Konformität aufrechtzuerhalten, ohne die Plugins, Schriftarten usw. zu entfernen, oder sollte ich die Validierungsfehler einfach ignorieren?

James
quelle

Antworten:

5

Korrektur, Ihr Thema war immer noch mit XHTML 1.1 und CSS 2.1 kompatibel, aber die von Ihnen hinzugefügten Plug-Ins haben zusätzlichen Code eingefügt, der nicht kompatibel war.

Leider gibt es keine einfache Möglichkeit, die Compliance aufrechtzuerhalten, wenn Sie Plug-Ins verwenden. Das Beste, was Sie tun können, ist, Ihr Thema und das gesamte Markup, für das Sie persönlich verantwortlich sind, zu validieren, und dann zu hoffen, dass sich andere Entwickler die Zeit genommen haben, ihre eigene Arbeit zu validieren.

Die Alternative ist viel mehr Arbeit an Ihrer Seite - Sie können immer noch die Kernfunktionalität der Plug-Ins verwenden, aber sie Ausgang nicht zulassen , dass jeder an den Browser Markup. Fügen Sie Ihre eigene benutzerdefinierte Ebene hinzu, die alles, was das Plug-In berührt, aushängt, und erstellen Sie Ihren eigenen Ausgabepuffer. Dies ist die einzige Art und Weise Sie die Kontrolle über den Stil der Markup an den Browser gesendet wird , haben wird.

Einige Plug-Ins beginnen, HTML 5 zu verwenden ... andere versuchen, CSS3 zu verwenden. Wenn Sie diese Plug-Ins installieren und keine Schritte unternehmen, um ihre Ausgabe zu bereinigen und zu validieren, wird Ihre Site nicht mehr ordnungsgemäß validiert.

EAMann
quelle
1
Vielen Dank, ich glaube nicht, dass ich die Option zum Bereinigen von HTML nutzen möchte. Ich muss möglicherweise nur diese W3C-Abzeichen von meiner Website entfernen :)
James
Oh, nicht unbedingt eine Notwendigkeit, da Sie automatisch Compliance erreichen können, siehe meine Antwort unten. Sie müssen sich nicht mit Ihrem Thema oder Ihrer Plugin-Ausgabe
herumschlagen
+1, Sie können sich nie wirklich auf den Code anderer Leute verlassen, hoffen Sie nur, dass ihr Code gültiges HTML ausspuckt.
Ben Everard
8

Jedes Plugin generiert den Code, den es generieren möchte, und einige davon sind nicht XHTML 1.1-kompatibel. Die einzig vernünftige Möglichkeit, dies zu korrigieren, besteht darin, jeden einzelnen zu prüfen und entweder die Täter zu ändern oder den Entwickler zu veranlassen, Ihre Änderungen zu ändern oder als Patch zu verwenden.

Alternativ könnten Sie versuchen, einen Filter zu schreiben, um ihn zu bereinigen, aber der Versuch, alle Sonderfälle zu erfassen, scheint eine Version meines persönlichen Alptraums zu sein, und dies würde auch die Leistung zum Vorteil beeinträchtigen.

Haben Sie einen Kunden / Chef, der dies wünscht, oder wird davon ausgegangen, dass es sich um ein " nice-to-have " handelt? (Ja, es gibt einige, die sich stark dafür fühlen. Ich bin jedoch keiner von denen.)

Trotzdem verliert XHTML seinen Status als " blondes Kind " im Internet. Sogar Tim Berners-Lee sagte dies 2006:

Einige Dinge sind im Nachhinein von mehreren Jahren klarer. Es ist notwendig, HTML schrittweise weiterzuentwickeln. Der Versuch, die Welt dazu zu bringen, auf XML umzusteigen, einschließlich Anführungszeichen um Attributwerte und Schrägstriche in leeren Tags und Namespaces auf einmal, schlug fehl. Die große HTML-generierende Öffentlichkeit bewegte sich nicht, hauptsächlich weil sich die Browser nicht beschwerten. Einige große Gemeinden haben sich verändert und genießen die Früchte wohlgeformter Systeme, aber nicht alle. Es ist wichtig, HTML schrittweise zu pflegen, den Übergang zu einer wohlgeformten Welt fortzusetzen und mehr Macht in dieser Welt zu entwickeln.

Vielleicht möchten Sie auch lesen, dass HTML5 so viel einfacher zu schreiben ist als XHTML 1.0. über StackOverflow. Hier ist ihre Zusammenfassung:

Nur syntaktisch gesehen, wenn Sie HTML5 verwenden, erhalten Sie ein saubereres, leichter zu lesendes Markup, das immer den Standardmodus aufruft. Wenn Sie XHTML 1.0 (als Text / HTML verwendet) verwenden, geben Sie eine Reihe von Rohdaten an (um sich gegen eine beschissene dtd zu validieren), die der Browser automatisch ausführt.

MikeSchinkel
quelle
Es ist meine persönliche Website und das Thema selbst ist ziemlich alt. Website und Thema sind für mich alles nur Hobby. Wenn ich ein neues Thema schreibe, werden wir wahrscheinlich in allen gängigen Browsern eine einigermaßen gute HTML5-Unterstützung haben. Plugins werden weiterhin nicht konformes Markup generieren. Ich könnte versuchen, den Täter zu bereinigen, aber dann werden die Plugin-Updates schwieriger. Danke für die Links.
James
Ja, wenn es nicht für geschäftliche Zwecke oder um Fachwissen über Ihre Fähigkeit zur Aufrechterhaltung der XHTML-Konformität zu zeigen, würde ich mir darüber keine Sorgen machen.
MikeSchinkel
Ich benutze die Website und die Server als Lernwerkzeuge. Dinge lernen, die sich von dem unterscheiden, was ich bei der Arbeit mache.
James
Schade. Klingt nach einem unangenehmen Job. Lernen ist alles, was ich tue, wie es scheint! :)
MikeSchinkel
Oh, der Job macht Spaß genug, aber meistens Windows-basierte Entwicklung. Dies ist eher eine Pause von C # :)
James
2

Die Einhaltung von Standards garantiert nicht, dass Ihre Website in allen Browsern funktioniert. Ignorieren Sie die Einhaltung von Standards und konzentrieren Sie sich darauf, mit so vielen Browsern wie möglich zu testen.

tomdxw
quelle
1

Sie können die gesamte Ausgabe Ihrer Site puffern und dann in kompatiblem HTML aufräumen. Das Beste daran ist, dass dies vollautomatisch erfolgen kann:

Sie können die Ausgabepufferung für Theme-Init oder verwandte Hooks aktivieren (z. B. * setup_theme * hook).

Hier sind zwei Codefragmente. Das erste zeigt, dass Sie mit der Ausgabepufferung beginnen und den Puffer später auslesen:

<?php
ob_start();
?><?php
$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);
echo $tidy;
?>

Die zweite zeigt einige der Konfigurationsoptionen in Aktion:

/* Tiny Configuration */
$config["clean"]         = true;
$config["hide-comments"] = true;
$config["output-xhtml"]  = true;
$config["indent-spaces"] = 2;
$config["tab-size"]      = 2;
$config["wrap"]          = 0;

$buffer = ob_get_clean();
$tidy   = tidy_repair_string($buffer, $config);

echo $tidy;

Ich wette, es gibt bereits ein WordPress-Plugin dafür. Mal sehen:

hakre
quelle
Interessant. Ich werde es versuchen.
James