Совместимость XHTML бессмысленна?

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

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

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

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

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

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

Что не бессмысленно пытаться соответствовать тому, что ожидают браузеры. HTML5 помогает с этим большим временем. И, говоря о HTML5, вы можете определить пользовательские атрибуты, которые вы хотите. Просто префикс их с данными, как в < p data-order = "Это допустимый, настраиваемый атрибут." > test </p> .

Ответ 7

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

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

Ответ 8

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

Ответ 9

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

Как и большинство плакатов, это действительно все, что нужно вашей аудитории.

Ответ 10

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

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

Ответ 11

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

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

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

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

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