Проверка данных на валидность. Нужна ли HTML-валидация

29.05.2019

Проверка валидности HTML кода сайта обязательно входит в мой . Но не нужно переоценивать значимость ошибок валидации на SEO продвижение — она очень мала. По любой тематике в ТОП будут сайты с большим количеством таких ошибок и прекрасно себе живут.

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

Как проверить сайт на валидность HTML кода

Проверяется валидация кода сайта с помощью онлайн сервиса W3C HTML Validator . Если есть ошибки, то сервис выдает вам список. Сейчас я разберу самые распространенные типы ошибок, которые я встречал на сайтах.

  • Error: Duplicate ID min_value_62222

И за этой ошибкой такое предупреждение.

  • Warning: The first occurrence of ID min_value_62222 was here

Это значит, что дублируется стилевой идентификатор ID, который по правилам валидности html должен быть уникальным. Вместо ID для повторяющихся объектов можно использовать CLASS.

Исправлять это желательно, но не очень критично. Если очень много таких ошибок, то лучше исправить.

Аналогично могут быть еще такие варианты:

  • Error: Duplicate ID placeWorkTimes
  • Error: Duplicate ID callbackCss-css
  • Error: Duplicate ID Capa_1

Следующее очень распространенное предупреждение.

  • Warning: The type attribute is unnecessary for JavaScript resources

Это очень частая ошибка при проверке валидации сайта. По правилам HTML5 атрибут type для тега script не нужен, это устаревший элемент.

Аналогично такое предупреждение для стилей:

  • Warning: The type attribute for the style element is not needed and should be omitted

Исправлять эти предупреждения желательно, но не критично. При большом количестве лучше исправить.

  • Warning: Consider avoiding viewport values that prevent users from resizing documents

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

Я считаю это предупреждение очень нежелательным, для пользователя неудобно, это минус к поведенческим. Устраняется удалением этих элементов — maximum-scale=1.0 и user-scalable=no.

  • Error: The itemprop attribute was specified, but the element is not a property of any item

Это микроразметка, атрибут itemprop должен находиться внутри элемента с itemscope. Я считаю эту ошибку не критичной и можно оставлять как есть.

  • Warning: Documents should not use about:legacy-compat, except if generated by legacy systems that can’t output the standard doctype

Строка about:legacy-compat нужна только для html-генераторов. Здесь нужно просто сделать но ошибка совсем не критичная.

  • Error: Stray end tag source

Если посмотреть в коде самого сайта и найти этот элемент, видно, что одиночный тег прописан как парный — это не верно.

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

  • Error: An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images

Все картинки должны иметь атрибут alt, я считаю эту ошибку критичной, ее нужно исправлять.

  • Error: Element ol not allowed as child of element ul in this context. (Suppressing further errors from this subtree.)

Здесь не верно прописана вложенность тегов. В

    должны быть только
  • . В данном примере эти элементы вообще не нужны.

    Аналогично могут быть еще такие ошибки:

    • Element h2 not allowed as child of element ul in this context.
    • Element a not allowed as child of element ul in this context.
    • Element noindex not allowed as child of element li in this context.
    • Element div not allowed as child of element ul in this context.

    Это все нужно исправлять.

    • Error: Attribute http-equiv not allowed on element meta at this point

    Атрибут http-equiv не предназначен для элемента meta, нужно убрать его или заменить.

    Аналогичные ошибки:

    • Error: Attribute n2-lightbox not allowed on element a at this point.
    • Error: Attribute asyncsrc not allowed on element script at this point.
    • Error: Attribute price not allowed on element option at this point.
    • Error: Attribute hashstring not allowed on element span at this point.

    Здесь также нужно или убрать атрибуты n2-lightbox, asyncsrc, price, hashstring или заменить их на другие варианты.

    • Error: Bad start tag in img in head

    Или вот так:

    • Error: Bad start tag in div in head

    Тегов img и div не должно быть в . Эту ошибку нужно исправлять.

    • Error: CSS: Parse Error

    В данном случае здесь не должно быть точки с запятой после скобки в стилях.

    Ну такая ошибка, мелочь, но не приятно) Смотрите сами, нужно убирать это или нет, на продвижение сайта никакой совершенно роли не окажет.

    • Warning: The charset attribute on the script element is obsolete

    В скриптах уже не нужно прописывать кодировку, это устаревший элемент. Предупреждение не критичное, на ваше усмотрение.

    • Error: Element script must not have attribute charset unless attribute src is also specified

    В этой ошибке нужно убрать из скрипта атрибут charset=»uft-8″, так как он показывает кодировку вне скрипта. Я считаю, эту ошибку нужно исправлять.

    • Warning: Empty heading

    Здесь пустой заголовок h1. Нужно удалить теги

    или поместить между ними заголовок. Ошибка критичная.

    • Error: End tag br

    Тег br одиночный, а сделан как будто закрывающий парный. Нужно убрать / из тега.

    • Error: Named character reference was not terminated by a semicolon. (Or & should have been escaped as &.)

    Это спецсимволы HTML, правильно нужно писать или ©. Лучше эту ошибку исправить.

    • Fatal Error: Cannot recover after last error. Any further errors will be ignored

    Это серьезная ошибка:

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

    • Error: CSS: right: only 0 can be a unit. You must put a unit after your number

    Нужно значение в px написать:

    Вот аналогичная ошибка:

    • Error: CSS: margin-top: only 0 can be a unit. You must put a unit after your number
    • Error: Unclosed element a

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

    1. Checklink
    Проверяет сайт или страницу на предмет наличия битых ссылок

    2. URL checker
    Проверяет доступность сайта в разных точках земного шара.

    3. Mobile checker
    Проверяет насколько сайт доступен для мобильных устройств и выдает список ошибок и замечаний.

    4. Unicorn
    Несколько тестов для сайта, в частности HTML 1.0 и Feed валидация.

    5. CSS validator
    Проверка каскадных таблиц стилей (CSS) и документов (X)HTML.

    6. RSS Feed Validator
    Проверка синтаксиса RSS каналов.

    7. Accessibility with style
    Тестирует сайт на соответствие стандартам WCAG 1.0.

    8. Color contrast
    Проверяет цветовой контраст между передними и задними элементами сайта.

    9. WDG HTML Validator
    HTML валидатор веб-страницы.

    10. Dr. Watson’s site validation check
    Комплексная проверка сайта по нескольким направлениям: HTML, ссылки, ссылки картинок, скорость загрузки, СЕО.

    11. Robots checker
    Сервис для проверки файла robots.txt.

    12. Firebug Firefox Extension
    Расширение для Firefox с набором инструментов для тестирования.

    13. Load Impact
    Тестирование сайта в экстремальных условиях повышенной нагрузки на сайт.

    14. Accessibility-Checker
    Еще один сервис для тестирования сайта на соответствие стандартам.

    15. Viewlike.us — сервис не работает
    Показывает как выглядит сайт при разных разрешениях экрана.

    Влад Мержевич

    Для проверки веб-страниц на наличие ошибок и замечаний существует множество путей и способов. Условно они делятся на онлайновые и локальные. Онлайновые предназначены для проверки страниц с помощью браузера через Интернет, а локальные используются для проверки документов на текущем компьютере. Далее рассмотрим популярные методы валидации документов.

    validator.w3.org

    Установка расширения

    После скачивания файла установить расширение можно несколькими способами.

    1. Через менеджер расширений

    Запустите Firefox и откройте меню Инструменты > Расширения . Перетащите мышью загруженный файл (он имеет расширение xpi) в открывшееся окно. Далее расширение будет установлено автоматически.

    2. С помощью открытия файла

    Выберите в меню Firefox пункт Файл > Открыть файл... и укажите путь к файлу с расширением, дальнейшие действия браузер выполнит сам.

    3. Копирование файла в папку extension

    Откройте папку на диске, где установлен Firefox (к примеру c:\Program Files\Mozilla Firefox) и найдите в ней подпапку extension, в которую скопируйте расширение. После запуска браузера дальнейшая установка пройдет самостоятельно.

    Все приведенные методы установки требуют перезагрузки браузера после установки расширения. Работа HTML Validator начинается сразу же после повторного запуска Firefox.

    Если указанные способы по каким-либо причинам не помогли, вы можете обратиться на сайт поддержки браузера Mozilla Firefox и прочитать обо всех возможных методах установки расширений по адресу
    http://forum.mozilla-russia.org/doku.php?id=general:extensions_installing

    Использование HTML Validator

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

    Рис. 14.6. Виды картинок, отображаемых при проверке документа

    Кружок с галочкой (рис. 14.6а) показывает, что документ валидный, желтый треугольник с восклицательным знаком (рис. 14.6б) - по коду имеются замечания, которые могут быть исправлены автоматически. А красный кружок с крестиком (рис. 14.6в) предупреждает, что есть серьезные ошибки.

    Просмотреть все ошибки можно двояко. Во-первых, заглянуть в HTML-код документа через меню Вид > Исходный код страницы или щелкнуть правой кнопкой и в контекстном меню выбрать Просмотр исходного кода страницы (рис. 14.7).

    Рис. 14.7. Контекстное меню с пунктом выбора исходного кода

    Окно исходного кода веб-страницы разделено на три части (рис. 14.8), где верхний блок содержит собственно HTML-код. В левом нижнем блоке отображается список ошибок и замечаний или информационные сообщения в случае валидного документа. Правый нижний блок предназначен для подробных подсказок о текущих замечаниях.

    Рис. 14.8. Результат работы расширения HTML Validator

    HTML-стандарт однозначно определяет основную структуру Web-документа. Язык HTML является подмножеством языка описания документов SGML (Structured Generalized Markup Language), таким образом, html-документ - это текстовый документ, состоящий из html-кодов и основного текста документа. Для просмотра этого документа необходим WEB-браузер - специальная программа для интерпретации и корректного отображения страницы на экране.

    Что такое стандарт HTML?

    * HTML был первоначально разработан Tim Berners-Lee и популяризован браузером Mosaic, разработанным NCSA. В течение 90х гг. он буквально расцвёл в связи с бурным развитием Web. Было время, когда веб-разработчики вынуждены были использовать html-стандарт 2.0 (был разработан под эгидой Internet Engineering Task Force (IETF) для упорядочения общепринятых положений в конце 1994 года), который поддерживал только форматирование текста и встраивание простой графики.
    * В 1995 году были опубликованы некоторые предложения по расширенному стандарту HTML 3.0, которые стали использоваться как неофициальные HTML-рекомендации, воплотившиеся в различных браузерах.
    * В мае 1996 года появился стандарт версии 3.2. За стандарт несет ответственность организация - WWW-Консорциум (W3C - world wide web consortium), она представляет собой объединение представителей промышленности и науки.
    * 18 декабря 1997 года вышел первый релиз W3C спецификации на HTML 4.0. Второй выпуск (24 апреля 1998 года) содержал некоторые редакторские корректировки.
    * 24 Декабря 1999 года вышел стандарт HTML 4.01 - исправлены некоторые ошибки предыдущего стандарта – 4.0
    * Наличие стандарта предполагает необходимость в специальной программе (собственно VALIDATOR), которая проверяет наличие в HTML-документе нарушение спецификаций, согласно которой составлен документ, если эти нарушения там действительно есть.

    Что такое Валидатор?
    определение:
    Validator: a conforming SGML parser that can find and report a reportable markup error if (and only if) one exists.
    Валидатор: анализатор соответствия стандарту SGML, который находит и сообщает о подлежащей отчету ошибке разметки, если (и только если) она существует.

    ISO 8896, параграф 15.4.

    Таким образом HTML-система является валидирующей HTML-системой, если
    1) она является валидирующим SGML-анализатором согласно ISO 8879, п.15.4;
    2) она способна обрабатывать любой согласующийся с HTML документ;
    3) она находит и сообщает об ошибке в HTML, если она существует;
    4) она не сообщает об ошибке в HTML, если она не существует.

    ISO/IEC 15445:2000/DCOR 1:2001(E), параграф 2.2.

    Следует помнить о том, что html-документ - явление не самодостаточное, и само по себе никак не выглядит. Сайт обретает зримую форму лишь в конкретном браузере. Как показывает практика – различные браузеры показывают конкретную страницу разными способами (отображение страниц зависит от работы алгоритмов коррекции, встроенных в браузер, а в разных браузерах эти алгоритмы весьма различны), и, как правило, все эти способы - правильные. На самом деле это одно из важных достоинств сети - скажем, человек с плохим зрением может увеличить себе шрифт или использовать читающий браузер, причём для этого не требуется готовить отдельную, специальную версию сайта.

    Два самых распространённых браузера для Windows отображают страницы примерно одинаково, отличаясь лишь в таких деталях, как поля и отступы. Браузеры для Macintosh или *никсов обычно отличаются от этих двух более глобально. Очевидная выгода наличия стандарта в том, что проконтролировать одну спецификацию значительно легче, чем многие браузеры.
    цитата:
    «...Для людей с проблемами зрения HTML предоставляет многообещающие возможности уравнять их в правах с обычными людьми при использовании базового графического пользовательского интерфейса Windows. Табличная модель HTML включает атрибуты для пометки каждой ячейки, чтобы поддержать высококачественный текст для речевого интерфейса. Эти же атрибуты могут использоваться при поддержке автоматизированного импорта и экспорта данных таблиц в базы данных или электронные таблицы...»

    Многие разработчики (преимущественно начинающие веб-дизайнеры) могут не согласиться с необходимостью соответствия кода спецификации: «Валидатор оставляет после себя тоскливые сайты, убивает творчество». Такое мнение возникает от простой лени. Корректный HTML-текст вполне допускает динамику, мультимедийные объекты, использование сценариев и т.д.; просто все эти эффекты можно сделать грамотно, а можно - неграмотно. Надо также помнить, что во всякой творческой области надо сначала изучить правила, а уже потом суметь превзойти их. Кроме того, даже опытные разработчики не застрахованы от ошибок, мы все можем допускать опечатки или забывать закрыть тег. Валидатор способен отследить подобные ошибки и явным образом указать место с некорректным форматированием.

    Приведем конкретные примеры ошибок, которые определяются валидатором:

    ISO 8896, параграф 15.4.

    - неправильно
    (Error: start tag was here).

    ISO 8896, параграф 15.4.

    - правильно.

    вставлен текст

    - неправильно
    (Error: element "P" not allowed here; possible cause is an inline element containing a block-level element)

    Вставлен текст

    - правильно.

    Если вы пришли к тому, что вам необходимо проверить ваш код на соответствие спецификации, прочтите несколько советов:

    Где взять валидатор?

    Валидатор в форме веб-страницы предлагается на https://validator.w3.org. Он основывается на SP Кларка.

    Есть также и валидатор на https://htmlhelp.com/ . Он тоже основывается на SP, хотя и немного изменённом. Авторами декларируется, что он более строг в оценке и объявляет потенциально опасные, хотя и допустимые места (скажем, незакрытый тег с необязательным закрытием). Предлагают исходники валидатора

    Доступный подо все платформы бесплатный валидатор можно скачать с сайта Дж. Кларка (https://www.jclark.com/sp/). Вместе с парсером/валидатором в поставке прилагается потоковый нормализатор.

    W3C раздаёт исходники валидатора на https://validator.w3.org/, но это, на самом деле, не валидатор. Это лишь адаптация кларковского валидатора к веб-интерфейсу, исполненная на перле. В описании этой адаптации недвусмысленно сказано, что следует иметь на машине кларковский валидатор. Еще ссылки:
    · https://ugweb.cs.ualberta.ca/~gerald/validate/
    · https://www.webtechs.com/html-val-svc/
    · https://www2.imagiware.com/RxHTML/

    Можно ли назвать валидатором инструмент из HomeSite – Validate Document?

    Разработчики Allaire HomeSite объявляют, что что «…проверяющая программа выпускается ими под названием «валидатор» сугубо из коммерческих соображений…», и настоящий валидатор выпускаться ими не будет.

    Программа, идущая в комплекте с HomeSite, нарушает определение валидатора: она находит и показывает ошибки, которые не были допущены, и не находит ошибок, которые были допущены.
    Вот пример её неправильных действий:
    а)
    Реакция: нет реакции.
    В действительности, здесь ошибка: не выставлен ALT второго IMG.
    б)

    Реакция: ошибка.
    В действительности, этот тег возможен в рамках XHTML.

    Стремление к безупречности - первый признак профессионализма, и нет необходимости ориентироваться на популярные, однако далекие от совершенства html-кода порталы. Возможно, менеджеры подобных сайтов, проанализировав статистику посещений, выяснили, что 99% приходящих пользователей увидят все так, как предполагал дизайнер... Возможно, авторы сайта намеренно исключают из числа своих посетителей пользователей с ограниченными возможностями... однако следует помнить такие понятия, как гуманизм и требования закона. С появлением официального стандарта из-за нарушений спецификации есть опасность попасть в суд по обвинению в недоступности сайта для тех, кто не может использовать «обычный» браузер. Хотя в регионах стран бывшего СНГ законодательство довольно ограничено в этом отношении, в просвещённом мире вопрос решается лучше. Доступность понемногу приобретает силу закона. Валидатор не гарантирует доступности (потому что не может быть заменой здравого смысла), но помогает обеспечить должную меру поддержки всех пользователей.

    Удачных сайтов и безупречного кода вам, уважаемые разработчики!

    В этой статье я познакомлю с понятием «валидность» кода сайта (html & css). Надеюсь все помнят, html — это структура сайта. Css — правила и стили для тегов, которые описаны в html.

    Будем разбираться с самых низов: теория, а далее перейдем к практике. Так же вы найдете ответы на следующие вопросы: что такое валидность html и css кода, зачем она нужна, почему поисковые системы любят чистый / валидный код. А самое то главное покажу на примерах как проводить проверку валидности кода сайта.

    Зачем нужна проверка валидности html и css кода

    Валидность — по-другому чистый код (без ошибок)

    Константа № 1 . Валидность кода сайта позволяет правильно отображать сайт в разных браузерах т.е. вся визуальная и функциональная составляющая сайта отображается и работает правильно. Чаще всего получается, что браузер обрабатывает и отображает корректно все элементы сайта, но это не говорит о том, что код чист и гладок как попка младенца.

    Константа № 2. Чистый код (html и css) поощряют поисковые машины (Yandex, Google). Говоря по-русски, когда робот поисковой машины приходит на ваш ресурс и видит что валидность соблюдена, то соответственно поисковой робот будет знать, что этот ресурс без ошибок, а значит к отношение к сайту в лучшую сторону.

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

    Проверил сайт на валидность html кода, и как я был удивлен и понял где была собака зарыта. Оказалось что в коде отсутствовал закрывающий тег , а это тег специальный который закрывает участки кода или ссылки от поисковой машины Яндекса. И что же получается у меня было? Вся статья закрыта от индексации. Вот и ответ на вопрос: «Почему в поисковой выдаче нет». Потом естественно я эту ошибку устранил.

    Перейдем от голого текста с теорией к практике, и научимся проводить проверку валидации онлайн