Уже не первый год среди веб-разработчиков ведутся споры о том, насколько необходимо проводить валидацию HTML кода. Давайте разберем все «за» и «против».
Что за страшное слово?
Валидацией называют проверку HTML-кода на соответствие требованиям web-стандартов и определения наличия ошибок.
Основные правила составления веб-документа содержатся в спецификациях, разрабатываемых Консорциумом Всемирной Паутины (w3c), в сотрудничестве с создателями web-браузеров.
При проведении процесса валидации выполняются следующие задачи:
- Проверка на наличие синтаксических ошибок
- Отслеживание вложенности тегов. Например, валидатор проверит не забыли ли вы закрыть все свои теги.
- Проверка соответствия вашего кода объявленому Document Type Definition (названия тегов, атрибутов, встраивания тегов и т.д.).
- Валидация посторонних элементов (тех, которые не входят в Document Type Definition). Например, пользовательские атрибуты и т.д.
Прочитав изложенное выше, может сложиться впечатление, что валидация — однозначно незаменимая штука, ведь благодаря ей удается редуцировать общее количество «косяков» и помочь начинающим (да и не очень) программистам в написании «чистого» кода. Но, как и в любом деле, на практике можно натолкнуться и на подводные камни.
Чтобы объективно оценить роль валидации в современном web-программировании, рассмотрим ее преимущества и недостатки.
Быть!.. или преимущества
- Кросс-браузерность. Как известно, HTML код имеет конкретную иерархию и структуру. Но при увеличении сложности и объёма сайта, легко упустить какие-то моменты или просто ошибиться. А поскольку каждый браузер имеет свой парсер, то единственным методом получения корректного отображения документа является использование валидного кода.
- Размер имеет значение. Ошибки и исправления, при обработке кода валидатором могут быть малозаметными на простых, но очень весомыми на объемных и сложных проектах. Количество кода редуцируется, повышается его «readability». Страницы сайта грузятся быстрее.
- «Мы в тренде». С каждым новым обновлением разработчики веб-браузеров максимизируют поддержку спецификаций, что приводит к уменьшению общего количества ошибок отображения документов. Веб-мастера, в свою очередь, придерживаются стандартов, дабы соответствовать тенденциям современного веб-дизайна.
- «Мы модные». Валидация кода в среде веб-разработчиков стала аналогом «хорошего тона», и некоторые из них размещают на созданных сайтах иконки, свидетельствующие о соответствии спецификациям HTML. Более того, эта мода распространилась и на заказчиков — сегодня в техническом задании на разработку нередко можно увидеть пункт «выполнение по веб-стандартам».
- Ну и напоследок… Если вы планируете использовать в своих проектах XML, то приучив себя придерживаться спецификаций, в дальнейшем сэкономите ящик времени и два ящика нервов. Синтаксис XML является более строгим и напоминает некоторые языки программирования, в которых компиляция проекта не возможна до полной отладки кода.
Напомню, что даже при наличии явно неверного кода, браузер сделает попытку его отобразить. А в силу особенностей реализации каждого конкретного браузера, вывод невалидного кода будет отличаться.
Куда же без них, или минусы
- Кросс-браузерность. Не смотря на то, что разработчики браузеров стараются придерживаться web-development канонов, валидный код не гарантирует 100%-ю правильность отображения документа.
- Удобность.Заходя на сайт, пользователь хочет видеть нужный ему контент в его любимом браузере, странички чтоб там быстро загружались… И, заметьте, ни слова о w3c. Валидный код не гарантирует удобность.
- Эмоции. Валидный код не гарантирует хороший Опыт взаимодействия
- Функционал. Валидатор проверяет структуру документа, а никак не функциональность. Невалидный сайт, наполненный качественным и функциональным контентом будет более привлекательным для посетителей чем каноничный и чисто вылизанный сайт.
(англ. User eXperience, UX) — определяет личное восприятие пользователем функциональных и эмоциональных параметров продукта (услуги) в процессе взаимодействия.
Подытожим?
Так стоит ли включать такой инструмент как валидация в свой «джентельменский набор»? Конечно же стоит.
Так, например, проверки №1 и №2 (см. начало статьи) являются обязательными в любом случае и при любом профессиональном уровне разработчика. Они помогут обнаружить серьезные недочеты, или просто «почистят» ваш код.
Проверка №3 так же важна, хотя и в меньшей степени. Проверка №4 ситуационная, в некоторых конкретных задачах она незаменима, но могут и возникнуть проблемы (например при вставке контента с отличающейся разметкой — SVG или MathML.).
Самое главное — это четко понимать, что валидатор — это просто хороший программный инструмент, который реализует заложенные в него функции. Не требуйте от него решения всех ваших проблем.