Jak utrzymać zgodność motywu ze standardami W3C

10

Kiedy napisałem motyw, upewniłem się, że jest zgodny z XHTML 1.1 i CSS 2.1. Następnie dodałem wtyczki i motyw nie jest już zgodny z XHTMl 1.1. Następnie użyłem czcionki Google API w moim CSS i jest on już zgodny z CSS 2.1.

Czy istnieje sposób na zachowanie zgodności bez usuwania wtyczek, czcionek itp., Czy powinienem po prostu zignorować błędy sprawdzania poprawności?

James
źródło

Odpowiedzi:

5

Korekta, motyw był nadal zgodny z XHTML 1.1 i CSS 2.1, ale dodane wtyczki wstrzyknęły dodatkowy kod, który nie był zgodny.

Niestety nie ma łatwego sposobu na zachowanie zgodności, jeśli używasz wtyczek. Najlepsze, co możesz zrobić, to zweryfikować swój motyw i wszystkie znaczniki, za które osobiście jesteś odpowiedzialny, a następnie mieć nadzieję, że inni programiści poświęcili czas na sprawdzenie własnej pracy.

Alternatywą jest dużo więcej pracy z twojej strony - nadal możesz korzystać z podstawowej funkcjonalności wtyczek, ale nie zezwalaj im na wysyłanie żadnych znaczników do przeglądarki. Dodaj własną warstwę niestandardową, która odblokowuje wszystko, czego dotknie wtyczka, i utwórz własny bufor wyjściowy. Jest to jedyny sposób, w jaki będziesz mieć kontrolę nad stylem znaczników wysyłanych do przeglądarki.

Kilka wtyczek zaczyna używać HTML 5 ... inne próbują używać CSS3. Jeśli zainstalujesz te wtyczki i nie podejmiesz kroków w celu ich wyczyszczenia i sprawdzenia poprawności, Twoja witryna przestanie poprawnie sprawdzać poprawność.

EAMann
źródło
1
Dzięki, nie sądzę, żebym chciał skorzystać z opcji odkażania HTML. Być może będę musiał po prostu usunąć te odznaki W3C z mojej strony :)
James
Niekoniecznie potrzeba, ponieważ możesz automatycznie uzyskać zgodność, zobacz moją odpowiedź poniżej. Nie musisz
męczyć się
+1, nigdy nie możesz naprawdę polegać na kodzie innych ludzi, po prostu miej nadzieję, że ich kod wyrzuca prawidłowy HTML.
Ben Everard,
8

Każda wtyczka wygeneruje kod, który chce wygenerować, a niektóre z nich nie będą zgodne z XHTML 1.1. Jedynym rozsądnym sposobem na poprawienie tego jest przeprowadzenie audytu każdego z nich i albo zmodyfikowanie przestępców, albo zachęcenie dewelopera do modyfikacji lub użycia modyfikacji jako łatki.

Alternatywnie możesz spróbować napisać filtr, aby go wyczyścić, ale próba uchwycenia wszystkich specjalnych przypadków wydaje się być wersją mojego osobistego koszmaru i wpłynęłaby również na wydajność z nieuzasadnioną korzyścią.

Czy masz klienta / szefa, który tego chce, czy jest to po prostu coś, co uważa się za „ miłe ”? (Tak, są tacy, którzy bardzo się z tym czują. Ja jednak nie jestem jednym z nich.)

To powiedziawszy, XHTML traci w Internecie status „ jasnowłosego dziecka ”; nawet Tim Berners-Lee powiedział to w 2006 roku:

Niektóre sprawy są jaśniejsze z perspektywy kilku lat. Konieczna jest stopniowa ewolucja HTML. Próba przekonania świata do przejścia na XML, w tym cytatów wokół wartości atrybutów i ukośników w pustych znacznikach i przestrzeniach nazw naraz, nie zadziałała. Duża publiczność generująca HTML nie poruszyła się, głównie dlatego, że przeglądarki nie narzekały. Niektóre duże społeczności zmieniły się i cieszą się owocami dobrze uformowanych systemów, ale nie wszystkie. Ważne jest stopniowe utrzymywanie HTML, a także kontynuacja przejścia do dobrze uformowanego świata i rozwijanie większej mocy w tym świecie.

Możesz także przeczytać HTML5 jest o wiele łatwiejszy do napisania niż XHTML 1.0. na StackOverflow. Oto ich podsumowanie:

Po prostu pod względem składni, gdy używasz HTML5, uzyskujesz czystsze, łatwiejsze do odczytania znaczniki, które zawsze wywołują tryb standardów. Kiedy używasz XHTML 1.0 (służącego jako text / html), określasz sporo crudów (w celu sprawdzenia poprawności w stosunku do gównianego dtd), które przeglądarka zrobi automatycznie.

MikeSchinkel
źródło
To moja osobista strona internetowa, a sam temat jest dość stary. Strona internetowa i motyw są dla mnie hobby. Zanim piszę nowy motyw, zapewne będziemy mieć dość dobrą obsługę HTML5 we wszystkich głównych przeglądarkach. Wtyczki będą nadal generować niezgodne znaczniki. Mógłbym spróbować oczyścić sprawcę, ale potem aktualizacje wtyczek stają się trudniejsze. Dzięki za linki.
James
Tak, jeśli to nie jest cel biznesowy lub ekspertyza dotycząca twojej zdolności do zachowania zgodności z XHTML, nie martwiłbym się tym.
MikeSchinkel
Używam strony internetowej i serwerów jako narzędzi edukacyjnych. Uczenie się rzeczy, które różnią się od tego, co robię w pracy.
James
Porażka. Brzmi jak niefajna praca. Wydaje się, że nauka to wszystko, co robię! :)
MikeSchinkel
Och, praca jest wystarczająco fajna, ale głównie programowanie w systemie Windows. To jest bardziej jak przerwa od C # :)
James
2

Zgodność ze standardami nie gwarantuje, że Twoja witryna będzie działać we wszystkich przeglądarkach. Zignoruj ​​zgodność ze standardami i skup się na testowaniu z jak największą liczbą przeglądarek.


źródło
1

Możesz buforować cały wynik swojej witryny, a następnie uporządkować go w celu uzyskania zgodnego kodu HTML. Najlepsze jest to, że można tego dokonać w pełni zautomatyzowany:

Możesz włączyć buforowanie danych wyjściowych w temacie init lub powiązanych hakach (np. * Setup_theme * hook).

Oto dwa fragmenty kodu. Pierwszy pokazuje, że zaczynasz buforować dane wyjściowe, a później odczytujesz bufor:

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

Drugi pokazuje niektóre opcje konfiguracji w akcji:

/* 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;

Założę się, że jest już dostępna do tego celu wtyczka wordpress. Zobaczmy:

hakre
źródło
Ciekawy. Spróbuję.
James