Как поддерживать соответствие темы стандартам W3C


10

Когда я писал тему, я удостоверился, что она совместима с XHTML 1.1 и CSS 2.1. Затем я добавил плагины, и тема больше не соответствует XHTMl 1.1. Затем я использовал шрифт Google API в своем CSS, и он стал длиннее CSS 2.1.

Есть ли способ сохранить соответствие, не избавляясь от плагинов, шрифтов и т. Д., Или я должен просто игнорировать ошибки проверки?

Ответы:


5

Исправление: ваша тема по-прежнему совместима с XHTML 1.1 и CSS 2.1, но добавленные вами плагины добавили дополнительный код, который не был совместимым.

К сожалению, нет простого способа поддерживать соответствие, если вы используете плагины. Лучшее, что вы можете сделать, - это подтвердить свою тему и всю разметку, за которую вы несете личную ответственность, а затем надеяться, что другие разработчики нашли время для проверки своей собственной работы.

Альтернатива - это намного больше работы с вашей стороны - вы все еще можете использовать основные функции плагинов, но не позволяете им выводить какую-либо разметку в браузер. Добавьте свой собственный слой, который снимает все, что касается плагина, и создайте свой собственный буфер вывода. Это единственный способ контролировать стиль разметки, отправляемой в браузер.

Некоторые плагины начинают использовать HTML 5 ... другие пытаются использовать CSS3. Если вы установите эти плагины и не предпримете шагов для санации и проверки их вывода, то ваш сайт перестанет правильно проверять.


1
Спасибо, я не думаю, что я хочу пойти с опцией очистки HTML. Возможно, мне просто нужно удалить эти значки W3C с моего сайта :)
Джеймс

О, необязательно, так как вы можете автоматически получить соответствие, см. Мой ответ ниже. Не нужно суетиться со своей темой или выводом плагина :)
hakre

+1, вы никогда не можете полагаться на код других людей, просто надеяться, что их код выплескивается действительный HTML.
Бен Эверард

8

Каждый плагин будет генерировать код, который он хочет сгенерировать, и некоторые из них не будут соответствовать XHTML 1.1. Единственный разумный способ исправить это - провести аудит каждого из них и либо изменить нарушителей, либо заставить разработчика изменить или использовать ваши изменения в качестве исправления.

В качестве альтернативы вы можете попытаться написать фильтр, чтобы очистить его, но попытка поймать все особые случаи кажется версией моего личного кошмара, и это также может повлиять на производительность, что принесет немалую пользу.

Есть ли у вас клиент / начальник, который хочет этого, или это просто что-то вроде « приятного для обладания» ? (Да, есть некоторые, кто сильно к этому относится. Однако я не один из них.)

Тем не менее, XHTML теряет свой статус « белокурого ребенка » в Интернете; даже Тим Бернерс-Ли так сказал в 2006 году:

Некоторые вещи проясняются с точки зрения прошлых лет. Необходимо развивать HTML постепенно. Попытка заставить мир переключиться на XML, включая кавычки вокруг значений атрибутов и косые черты в пустых тегах и пространствах имен одновременно, не сработала. Большая публика, генерирующая HTML, не двигалась, в основном потому, что браузеры не жаловались. Некоторые большие сообщества действительно изменились и наслаждаются плодами хорошо сформированных систем, но не всеми. Важно поддерживать HTML постепенно, а также продолжать переход к правильно сформированному миру и развивать в нем больше власти.

Возможно, вы также захотите прочитать HTML5 гораздо проще, чем XHTML 1.0. на StackOverflow. Вот их резюме:

С точки зрения синтаксиса, когда вы используете HTML5, вы получаете более чистую и удобную для чтения разметку, которая всегда вызывает стандартный режим. Когда вы используете XHTML 1.0 (используется как text / html), вы указываете кучу crud (для проверки против дерьмового dtd), который браузер сделает автоматически.


Это мой личный сайт и сама тема довольно старая. Веб-сайт и тема для меня просто хобби. К тому времени, когда я напишу новую тему, у нас, вероятно, будет достаточно хорошая поддержка HTML5 во всех основных браузерах. Плагины будут продолжать генерировать несоответствующую разметку. Я мог бы попытаться очистить нарушителя, но тогда обновления плагинов ужесточаются. Спасибо за ссылки.
Джеймс

Да, если это не для бизнес-целей или для демонстрации вашей способности поддерживать соответствие XHTML, я бы не беспокоился об этом.
MikeSchinkel

Я использую веб-сайт и серверы в качестве инструментов обучения. Изучение вещей, которые отличаются от того, что я делаю на работе.
Джеймс

Облом. Звучит как невеселая работа. Кажется, учиться - все, что я делаю! :)
MikeSchinkel

Ох, работа довольно забавная, но в основном это разработка на базе Windows. Это больше похоже на перерыв в C # :)
Джеймс

2

Соответствие стандартам не гарантирует, что ваш веб-сайт будет работать во всех браузерах. Игнорируйте соответствие стандартам и сосредоточьтесь на тестировании с максимально возможным количеством браузеров.


1

Вы можете буферизовать весь вывод вашего сайта и затем привести его в соответствие HTML. Лучше всего то, что это можно сделать полностью автоматизированным:

Вы можете включить буферизацию вывода при инициализации темы или связанных хуках (например, * setup_theme * hook).

Вот два фрагмента кода. Первый показывает, что вы начинаете буферизацию вывода, а затем считываете буфер:

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

Второй показывает некоторые параметры конфигурации в действии:

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

Могу поспорить, что для этого уже существует плагин WordPress. Давайте посмотрим:


Интересно. Я дам ему попробовать.
Джеймс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.