it-swarm.dev

So erhalten Sie die Einhaltung der W3C-Standards für ein Thema

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 kompatibel mit XHTMl 1.1. Dann habe ich die Google API-Schriftart in meinem CSS verwendet und sie ist länger mit CSS 2.1 kompatibel.

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

10
James

Korrektur: Ihr Design war 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 alle Markups, für die Sie persönlich verantwortlich sind, zu validieren. Hoffen Sie dann, dass sich andere Entwickler die Zeit genommen haben, ihre eigene Arbeit zu validieren.

Die Alternative ist viel mehr Arbeit für Sie - Sie können die Kernfunktionalität der Plug-Ins weiterhin verwenden, ihnen jedoch nicht erlauben, any Markups im Browser auszugeben. Fügen Sie Ihre eigene benutzerdefinierte Ebene hinzu, die alle vom Plug-In berührten Elemente löst, und erstellen Sie Ihren eigenen Ausgabepuffer. Dies ist die only Methode, mit der Sie die Art des Markups steuern können, das an den Browser gesendet wird.

Einige Plug-Ins verwenden bereits HTML 5 ... andere versuchen CSS3 zu verwenden. Wenn Sie diese Plug-Ins installieren und keine Schritte zur Bereinigung und Überprüfung ihrer Ausgabe unternehmen, wird Ihre Site nicht mehr ordnungsgemäß überprüft.

5
EAMann

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

Alternativ können Sie versuchen, einen Filter zu schreiben, um ihn zu bereinigen, aber der Versuch, den ganzen Sonderfall einzufangen, scheint eine Version meines persönlichen Alptraums zu sein, und dies würde sich auch auf die Leistung auswirken, und zwar zum Vorteil.

Haben Sie einen Kunden/Chef, der dies möchte, oder wird es nur als "Nice-to-have" angenommen? (Ja, es gibt einige, die es sehr ernst meinen. Ich bin jedoch keiner von denen.)

Trotzdem verliert XHTML im Web den Status "blondes Kind". sogar Tim Berners-Lee hat es gesagt 2006:

Einige Dinge sind im Nachhinein von mehreren Jahren klarer. HTML muss schrittweise weiterentwickelt werden. 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. Das große HTML-generierende Publikum bewegte sich nicht, vor allem, 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 inkrementell beizubehalten, den Übergang zu einer wohlgeformten Welt fortzusetzen und mehr Macht in dieser Welt zu entwickeln.

Vielleicht möchten Sie auch lesen. HTML5 ist so viel einfacher zu schreiben als XHTML 1.0. over bei StackOverflow. Hier ist ihre Zusammenfassung:

Nur in Bezug auf die Syntax erhalten Sie bei der Verwendung von HTML5 ein übersichtlicheres, besser lesbares Markup, das immer den Standardmodus aufruft. Wenn Sie XHTML 1.0 (als Text/HTML-Datei) verwenden, geben Sie eine Menge an Rohstoffen an (um eine Validierung gegen eine beschissene dtd durchzuführen), die der Browser automatisch ausführt.

8
MikeSchinkel

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

2
tomdxw

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

Sie können die Ausgabepufferung bei Theme Init oder verwandten Hooks aktivieren (z. B. * setup_theme * hook).

Hier sind zwei Codefragmente. Das erste zeigt, dass Sie die Ausgabepufferung starten 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, dass es dafür bereits ein WordPress-Plugin gibt. Mal schauen:

1
hakre