Является ли соответствие XHTML бессмысленным? - PullRequest
20 голосов
/ 19 сентября 2008

Я создаю сайт прямо сейчас, и до сих пор мучительно заставлял все быть совместимыми, и в браузерах это выглядит примерно одинаково. Тем не менее, я начинаю реализовывать некоторые сторонние / бесплатные javascript-коды, которые выполняют такие функции, как добавление атрибутов (например, order = 2). Я мог бы обойти это, но это боль, и я начинаю терять свои принципы, чтобы убедиться, что все верно. В самом деле, есть ли смысл обойти что-то подобное? Я получил плагин HTMLValidator для Firefox и, глядя на большинство крупных сайтов (включая этот, Google и т. Д.), Они не являются действительными XHTML или HTML.

Ответы [ 11 ]

5 голосов
/ 19 сентября 2008

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

Эта дискуссия становится намного сложнее, если у вас есть начальник или клиент, который считает, что все должно вернуть зеленый свет, поскольку вам придется объяснить им вышесказанное и убедить их, что вы не просто ленивый.

Тем не менее, будьте уверены, это не просто случай, когда вы ленивы. Несмотря на то, что валидаторы могут раздражать постоянно вызывать каждый экземпляр стороннего атрибута, это не делает недействительными (ха) другие ошибки валидации, о которых они упоминают. Это часто стоит просмотреть как средство двойной проверки вашей работы.

4 голосов
/ 19 сентября 2008

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

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

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

Вероятно, лучше написать действительный HTML 3, чем недействительный XHTML, если вы хотите что-то сделать, что разрешено в одном, но не в другом.

3 голосов
/ 19 сентября 2008

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

2 голосов
/ 11 ноября 2008

Что касается браузеров, то соответствие XHTML бессмысленно в этом:

  1. Браузеры не имеют синтаксических анализаторов XHTML. У них есть не зависящие от версии веб-совместимые анализаторы HTML, которые создают DOM вокруг пространства имен http://www.w3.org/1999/xhtml.

  2. Некоторые браузеры, имеющие анализаторы XML, могут обрабатывать разметку XHTML, которая используется как application / xhtml + xml, как XML. Это возьмет XML и даст стиль и поведение HTML по умолчанию для элементов в пространстве имен http://www.w3.org/1999/xhtml. Но что касается анализа, он не имеет ничего общего с XHTML. Соблюдаются правила синтаксического анализа XML, а не некоторые правила XHTML DTD.

Итак, когда вы используете разметку XHTML, вы даете что-то чуждое браузерам и смотрите, получится ли это так, как вы хотите. Дело в том, что вы можете сделать это с любой разметкой. Если он рендерится так, как задумано, и выдает правильный DOM, у вас все хорошо. Вам просто нужно помнить о переключении DOCTYPE и убедиться, что вы не полагаетесь на ошибку браузера (чтобы вещи не развалились в браузерах, у которых нет ошибки).

Для обеспечения соответствия XHTML хороша проверка синтаксиса (путем проверки) на предмет правильности разметки. Это помогает избежать разбора ошибок. Конечно, это может быть сделано и с HTML, так что в этом случае нет ничего особенного в XHTML. В любом случае, вам все равно придется тестировать в браузерах и надеяться, что производители браузеров сделают потрясающие HTML-парсеры, способные принимать все виды дерьма.

Что не имеет смысла, так это попытка соответствовать ожиданиям браузеров. HTML5 помогает с этим большим временем. И, говоря о HTML5, вы можете задавать пользовательские атрибуты сколько хотите. Просто добавьте к ним префикс data-, как в

Test

.
2 голосов
/ 19 сентября 2008

Мне еще не приходилось сталкиваться с ситуацией, когда добавление нестандартного атрибута вызывало проблему с рендерингом в любом браузере.

Не пытайтесь обойти эти нестандартные атрибуты. Валидаторы удобны как инструменты для двойной проверки вашего кода на непреднамеренные ошибки, но, как мы все знаем, даже полностью действительный xhtml не всегда будет одинаково отображаться в разных браузерах. Много раз, когда проектные решения требуют от нас использования специфичных для браузера (и нестандартных) хаков для достижения эффекта. Это жизнь веб-разработчика, о чем свидетельствует количество технологических сайтов (google, yahoo и т. Д.), Которые не проходят валидацию.

2 голосов
/ 19 сентября 2008

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

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

1 голос
/ 19 сентября 2008

Я думаю, что написание «правильного кода» важно, просто потому, что вы подаете пример, следуя правилам. Если бы каждый разработчик написал код для Fx, Safari и Opera, я думаю, что IE должен был «начать следовать правилам» раньше, чем с версией 8.

1 голос
/ 19 сентября 2008

Наличие HTML Valid обычно помогает вам и движку рендеринга в браузере. Чем меньше уловок приходится иметь дело с браузерами, тем больше они могут сосредоточиться на добавлении новых функций. Чем строже вы будете, тем меньше времени будете тратить время на размышления о том, почему этот проприетарный тег f @ # cking не работает в других браузерах.

С другой стороны, XHTML, IMHO, более бессмыслен, за исключением случаев, когда вы планируете интегрировать его в какой-то документ XML. Поскольку IE до сих пор не распознает это, оставаться бесполезным.

0 голосов
/ 20 ноября 2008

Конечно, вы всегда можете просто написать и написать так, как вы хотите, убедившись, что как минимум это работает. Конечно, мы уже страдали от этого менталитета и стали свидетелями его выхода, Internet Explorer 6 .

Я большой поклонник подхода Майка Дэвидсона к разработке, ориентированной на стандарты .

То, что вы можете проверить свой код, не означает, что вы лучше, чем кто-либо другой. Черт, это даже не обязательно означает, что вы пишете лучший код, чем кто-либо другой. Кто-то, кто может написать банковское приложение целиком на Flash, лучше, чем вы. Тот, кто может интегрировать сторонний код в сложную издательскую среду, является лучшим программистом, чем вы. Думайте о валидации как об использовании идеальной грамматики рисунка; он помогает вам донести ваши идеи и является признаком хорошего образования, но он не так важен, как идеи и концепции, о которых вы думаете и которые впоследствии общаетесь. Самый харизматичный и, возможно, самый умный человек, на которого я когда-либо работал, был с юга и использовал слово «не» довольно регулярно. Это не делало его менее умным, и, фактически, это делало его более запоминающимся. Поэтому все, что я хочу сказать, это то, что есть много вещей, по которым можно судить кого-то ... проверка - одна из них, но, безусловно, не самая важная.

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

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

0 голосов
/ 19 сентября 2008

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

Альтернативой использованию пользовательских атрибутов является использование атрибута rel, например, см. Litebox (и его род).

...