Валидный HTML
Сначала определимся с самим термином «валидация». Валидация — проверка соответствия чего-то определенным критериям, правилам, требованиям. HTML — это программный язык, со своим синтаксисом и грамматикой. Валидация HTML — проверка на соответствие этим правилам написанного кода.
Кто пишет правила для HTML
Раз есть какой-то синтаксис и правила, значит кто-то их придумывает. Этот кто-то — организация W3C (World Wide Web Consortium), основанная в далеком 1994 Тимом Бернерс Ли (Tim Berners Lee). В состав консорциума входят более 300 компаний. Это в основном разработчики software и hartware, среди которых Google Inc., IBM Corporation, HP, Facebook, ERICSSON, Cisco, Canon Inc., Apple Inc., Oracle Corporation, Opera Software, Nokia, Microsoft Corporation, Mozilla Foundation (посмотреть полный спиcок членов W3C).
Зачем какие-то правила для HTML
Сначала был HTML и один (или пара) браузеров, который можно было запустить на настольном ПК. Народ понял, что Сеть — это круто, а предприимчивые люди сообразили, что тут можно неплохо заработать. Начали появляться разные разные браузеры, которые обрабатывали HTML разметку кто как хотел и/или мог, да плюс каждый норовил добавить каких-то своих «фишек», чтобы поразить пользователя. Веб разработчикам того времени приходилось создавать по две, три и кто знает сколько еще версий одного и того же сайта. В какой-то момент стало ясно, что такой путь — это путь в тупик. Как минимум потому что стало просто очень дорого создавать и поддерживать сайты.
Потому было решено создать свод четких правил, которых с одной стороны придерживаются веб разработчики, а с другой производители браузеров. Т.е. корректно написанный HTML код выступает гарантом корректного отображения на любом браузере и устройстве (теоретически). Эти правила начали именовать веб стандартами. На корректный HTML ставили метку «соответствует веб стандартам» или попросту называли валидным. Проверить корректность HTML кода можно с помощью онлайн валидатора.
Заметка
Различные виды правил, какая между ними разница и какие преимущества сулят те или иные — все это выходит за рамки данной статьи.
Валидный не значит качественный
Валидация — это проверка технических правил HTML документа в автоматическом режиме, которая не лишена изъянов. Если документ прошел такую проверку, еще не значит что документ качественный и несет какую-то пользу посетителю. И наоборот, если в нем есть ошибки, это не значит, что сайт не заслуживает внимания.
Подавляющее большинство сайтов содержат ошибки. При чем этих ошибок может быть очень и очень много. Например, главная Google содержит несколько десятков ошибок, а mail.ru более сотни. Замечу, что эти ошибки не ломают отображение сайта в браузере и не мешают этим проектам зарабатывать хорошие деньги.
Это во многом заслуга разработчиков браузеров, которым тоже нужны прибыли. Больше довольных клиентов — больше прибыли. А т.к. многие сайты имеют не очень правильный код, браузерам пришлось научится обрабатывать и исправлять ошибки верстки.
Моему сайту валидность не нужна?
Раз валидность не влияет на отображения сайта в разных браузерах, есть ли смысл доплачивать разработчикам за валидны код? Чтобы ответить на этот вопрос, нужно понимать, что есть разные типы ошибок. В данном случае достаточно разделения на:
- грубые — которые приводят или с очень большой вероятностью могут привести к поломке страниц сайта (например, неправильная вложенность тегов, ошибки синтаксиса);
- не грубые — которые ничего не ломают и с очень малой вероятностью могут что-то сломать в нетестируемых и еще не вышедших версиях браузеров (например, пользовательские атрибуты).
Хороший верстальщик знает, где можно нарушить правила валидации, а где нет. И естественно знает, чем грозит или не грозит та или иная ошибка кода. Можно привести много примеров, когда невалидный код делает сайт более удобным, быстрым (пользовательские атрибуты для Javascrip/AJAX или тот же autocomplete) или SЕО оптимизированным (разметка ARIA).
Не смотря на то, что невалидный сайт может нормально отображаться и иногда можно обосновать нарушения правил стандартов, есть ряд причин почему следует придерживаться стандартов.
Основные преимущества валидного HTML
Уверенность в завтрашнем дне
Сайт, который строго следует веб стандартам, сводит к минимуму вероятность того, что с выходом новых версий браузеров нужно будет привлекать разработчиков для адаптации сайта. Обращу внимание, что 100% гарантий нет.
Оптимизация командной работы
Командная работа очень затруднительна, а иногда и просто невозможна, если нет четко определенных правил и стандартов разработки. Валидный код дает возможность быстро включится в работу разработчику, несмотря на то, что до него с этим сайтом (модулем) работало N человек.
Минимизация затраченных ресурсов на устранение багов
Если развалился сайт, первым делом, что делает большинство верстальщиков — проверяет на валидность код. Если сайт будет содержать две сотни ошибок, пускай даже не критических, то чтобы среди этой массы найти ту, которая действительно ломает сайт, может потребоваться много времени, которое нужно будет оплатить. Я уже не говорю, что пара часов простоя сайта может привести к потери большого числа клиентов и уменьшению доходов от рекламы.
Дополнительные преимущества валидного HTML
Лучшее SEO
Большинство профессиональных SEO оптимизаторов сошлись во мнении, что валидный код положительно влияет на рейтинг сайта в глазах поисковиков. Яндекс, например, имеет вот такую рекомендацию:
Старайтесь, чтобы верстка страниц соответствовала стандартам.
Объяснить это можно следующим:
- поисковики стараются выдавать качественные сайты пользователям, а валидация — один из показателей качества;
- правильный код проще обрабатывать и соответственно снижается вероятность, что документ будет прочитан как-то неверно.
С другой стороны, поисковики знают, что ошибки в коде не всегда означают, что сайт плохой. Поэтому значение валидации для поисковиков очень незначительное. Но в жесткой конкурентной борьбе этот небольшой фактор может сыграть свою роль.
Более быстрый сайт
Если HTML документ содержит ошибки, браузер во время построения дерева документа, пытается обработать ошибку и показать пользователю корректное отображение. На определение ошибки и поиск ее решения требуется некоторое время, продолжительность которого зависит от сложности документа (количества DOM узлов, уровня их вложенности) и числа ошибок. Такие временные задержки могут показаться ничтожными, но как показывает практика, даже миллисекунды могут привести к ощутимым финансовым потерям.
Но вполне возможно это больше скажется на динамических интерфейсах, снабженных анимациями. При каждом изменении DOM, происходит перерисовка какой-то части дерева или его всего. При этой перерисовки снова придется обрабатывать ошибки. А вот тут десятки милисекунд могут ощутимо сказаться на плавности анимации и производительности браузера.
Ну и напоследок, хотелось бы вспомнить о мобильных устройствах, где дополнительные вычисления ведут к более быстрой разрядке батарей.
В качестве вывода
Перед любым веб проектом стоят определенные цели. Любой компонент разработки (будь то дизайн или верстка) должен решать определенные задачи, чтобы приблизить сайт к достижению целей. Валидность — это способ решения определенных задач. Хороший руководитель веб разработки способен цели проекта, перевести в задачи для разработчиков с правильными приоритетами.
Главное, что нужно понять: в валидности ради валидности нет никакого смысла. Все хорошо в меру. Многие опытные веб разработчики придерживаются такой стратегии:
- грубых ошибок быть не должно;
- незначительные ошибок стараемся избегать, но если они по обоснованным причинам присутствуют — в этом ничего страшного нет.
Материалы
- Why Validate?
- Нужна ли HTML-валидация?!
- Сводная таблица факторов ранжирования Google