Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

Что касается браузеров, соответствие 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-, как в <p data-order="Это допустимый пользовательский атрибут.">test</p>.

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top