Валидация страницы: преимущества и способы

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

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

Что такое валидация страниц?

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

Зачем нужна валидация и какие она дает преимущества?

Есть несколько важных причин, чтобы стремится к валидному коду.

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

Во-вторых, валидный код — это, как правило, «чистый» код. То есть код, который легко читать, он понятен, логичен и его легко модифицировать. Даже если вы работаете в одиночку, и знаете, что после вряд ли кто-то будет в нем копаться, это полезно, так как спустя даже долгое время вы легко разберетесь в своем коде.

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

Способы валидации

Есть несколько способов валидации. Традиционный способ — проверка на официальных валидаторах от W3C (ссылки смотрите в конце поста). Кроме того, есть плагины для Mozilla Firefox и Google Chrome. Плагины намного удобнее, так как проверяют код на лету и избавляют от необходимости заходить на страницу валидатора. Я, например, настолько привык ими пользоваться, что работать без плагина-валидатора нереально, так я всегда знаю, что нигде не допустил ошибки.

На этом все, любите свой код, а заказчики и поисковики ответят вам взаимностью!

Ссылки:

Кстати, много материала для новичков и профи на этом веб-дизайн блоге.

  • А чего у google.com аж 35 ошибок на странице ?
    У http://www.yandex.ru/ — 43 ошибки .

    • Потому что большим братьям плевать на стандарты. Правда, Яндекс уже начал исправляться, видел некоторые сервисы у него, которые полностью валидны по XHTML 1.0 Strict

  • Ну что вот за ерунда..
    Ведь взрослый понимающий рынок разработчик. А всё туда же.

    Не стоит чаще всего вылизывание кода до валидного тех усилий, которые требуются. Я ГАРАНТИРУЮ это.

    1) Это не аргумент — незакрытые блоки это нонсенс вообще. Да, валидность покажет, но если верстальщик умудрился не закрыть тег, значит ошибок у него и так дофига — а значит он гиблый случай
    2) Куда более важно писать семантически верно — и такой код не обязательно получится валидный. Зато вот валидный код вполне может получится нечитаемым, если верстальщик расставил приоритеты неверно
    3)Да вертели эти браузеры вашу валидность, что за ерунда то? Ноги растут у этого пункта опять же от веса страницы, «чистоты» кода и семантичности разметки — заголовки в h1, контент поближе к началу, меньше грязи в коде. Закрыт там по XHTML img или нет — НИКАК не влияет на выдачу. Не смешите.

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

    Вот как то так. Парируйте.

    • Благодарю за развернутое мнение, но могли бы и представиться.
      Начну с того, что пост написан с целью дать описание валидации и рассчитан на новичков. Я не теряю надежды на то, что хотя бы половина молодых верстальщиков будет стараться делать свой код максимально классным (валидным, семантичным, комментированным и т.д.). Если код будет семантичным, то и валидным тоже, одно без другого не бывает.
      Согласен, что практически никогда верстка не остается валидной после работы программиста, и вообще никогда, если сайт уже работает. Слишком много программных компонентов не валидно, и вычищать это не имеет смысла.
      С другой стороны, есть стандарты, они выписаны, браузеры по ним работают, а значит и писать надо по тем правилам, по которым работают браузеры. Писать валидно не сложно вообще, и нужно это прежде всего самому верстальщику, чтобы не допускать ошибок. Фактически, это основной закон для верстальщика. Иначе для кого тогда парится консорциум, годами выписывая стандарты?
      Я сам и верстальщик, и кодер, и прекрасно понимаю о чем вы, однако я хотел бы, чтобы люди с азов учились качественно писать свой код. Тогда всем нам будет хоть немного легче работать.

    • На 100% согласен с somebody… Какое-то время тоже со всем этим е*****-е*****, вылизывал-вылизывал, думал, какой же я крутой, что так вот пишу, а потом попросту понял, что неправильно я приоритеты расставляю, и забил…

      Стал делать за то же время вместо 1 шаблона 2 (доходы выросли вдвое), стал правильнее распределять приоритеты и не надеяться на какое-то там 0.000000001% влияние на алгоритм понятия:

      однако валидный код даст 100 очков вперед, такая страница вызовет намного больше доверия у робота и стоять в выдаче она будет выше

      больше работать над сем. ядром, ссылочным, конверсией, анализировать потребности клиента, учиться работать с людьми и понимать, что главное — это не насколько круто «вылизан» код, а на сколько хорошее КПД продемонстрировано в работе… Собственно, после всего этого времени заморачиваться над валидность у меня уже не оставалось, а доходы и КПД росли 🙂 , чего и другим «дзен»-верстальщикам желаю…

      Собственно, сейчас смысла что-то там валидовать особо уже и нет, т.к. те же кнопки социалок, сторонник скрипты, тизеры и iframe легко сводят все ваше «вылизывание» на 0 за секунду…

  • SelenIT

    Несколько важных уточнений:
    1) У популярного плагина-валидатор для FF есть два режима проверки — настоящий валидатор и Tidy (плюс их комбинация). По умолчанию он работает в режиме Tidy. И многие его замечания (напр. нелюбовь к пустым элементам) не связаны с валидностью (хотя неплохо дополняют валидатор).
    2) XHTML-валидатор всегда проверяет страницу по правилам XML, а браузеры почти всегда видят ее как HTML (когда сервер отдает ее как text/html). Это нужно учитывать. Напр. случайно получившееся <div/> в XHTML вполне валидно, а при HTML-разборе — незакрытый тег. Вообще при разборе XHTML как HTML его валидность автоматом идет лесом, XHTML как HTML невалиден по определению. А валидный XHTML, увы, не работает в IE ниже 9-го…
    3) От доктайпа зависит не только результат валидации, но и отображение страницы в браузере. С Transitional-доктайпами браузеры переключаются в «почти стандартный» режим вместо самого стандартного, что приводит к сюрпризам в обработке CSS.
    4) Валидность страницы не означает ее соответствия спецификации. Валидатор проверяет лишь грамматику (и то не всю), а грамматически безупречное высказывание может быть абсолютно бессмысленным. Семантика первична, синтаксис вторичен! И да — семантичная страница, как правило, сама получается валидной. А вот попытки формально обмануть валидатор, вставляя недопустимый элемент/атрибут скриптом и т.п., семантичности и понятности коду, увы, не добавляют.

  • Например, у меня 100% валидный сайт. Потратил не так уж много времени.