Что именно проверяет HTML-валидатор
Валидация — это сверка разметки с правилами HTML. Сервис проверяет допустимость тегов и атрибутов, вложенность элементов, обязательные значения, повторяющиеся идентификаторы и другие формальные ошибки. Он не оценивает дизайн, пользу текста, скорость сервера или работу бизнес-логики.
Браузер старается показать даже плохой код: сам закрывает теги, переставляет элементы и строит исправленное DOM-дерево. Поэтому отсутствие видимой поломки не доказывает, что исходник чистый. В другом шаблоне, браузере или после небольшой правки скрытая ошибка может проявиться.
Зачем проверять код владельцу сайта
- Чтобы блоки и формы предсказуемо работали в разных браузерах и на телефоне.
- Чтобы заголовки, основной контент и навигация имели понятную структуру.
- Чтобы скринридер связывал подписи с полями и озвучивал изображения по alt.
- Чтобы разработчик не тратил время на последствия незакрытого тега в соседнем блоке.
- Чтобы поисковый робот получал тот же основной контент, который видит посетитель.
Валидный HTML сам по себе не поднимает страницу в поиске. Это техническая гигиена: она убирает неоднозначность и помогает другим проверкам. Можно иметь безошибочный, но бесполезный сайт; можно ранжироваться с предупреждениями. Моя задача — исправить ошибки, которые влияют на отображение, доступность и понимание страницы.
Хорошая разметка отражает смысл и иерархию страницы, а не только её внешний вид.
Минимальный каркас страницы
| Элемент | Роль | Что проверить |
|---|
| <!DOCTYPE html> | Включает современный режим HTML | Стоит первой строкой |
| html | Корень документа | Есть lang="ru" для русской страницы |
| head | Служебные данные | Есть charset, title, viewport и description |
| body | Видимое содержимое | Один элемент на документ |
| header и nav | Шапка и основная навигация | Роли соответствуют содержимому |
| main | Уникальный основной контент | Обычно один на странице |
| h1–h6 | Иерархия заголовков | Уровни отражают вложенность разделов |
| img | Изображение | Есть src, размеры и подходящий alt |
| form, label, input | Форма и поля | label связан с id, у поля есть name и корректный type |
| footer | Подвал страницы или раздела | Не подменяет основной контент |
Семантические теги не запрещают div. Я использую div как нейтральную обёртку, когда у блока нет отдельной смысловой роли. Но меню лучше обозначить nav, уникальную часть страницы — main, самостоятельный материал — article. Так структура остаётся понятной без чтения всех классов.
Как проверить страницу через W3C
- Открываю validator.w3.org или современный Nu Html Checker.
- Для опубликованной страницы указываю полный URL. Для черновика загружаю файл или вставляю полный код.
- Запускаю проверку и сохраняю исходный список сообщений.
- Сначала исправляю первую структурную ошибку, затем запускаю проверку заново.
- После чистого результата проверяю страницу визуально и прохожу ключевой сценарий: меню, форма, кнопка, модальное окно.
Почему начинаю с первой ошибки: один незакрытый тег способен породить десятки последующих сообщений. Если чинить список снизу вверх, легко править следствие. После каждого структурного исправления набор ошибок меняется, иногда сразу сокращаясь.
Валидатор находит формальные ошибки, но приоритет каждой из них определяю по влиянию на страницу.