Проверка данных на валидность. Валидность кода – что это, и как ее проверить? Способы проверки валидации
До сих пор мы рассматривали отдельные фрагменты кода HTML. Но HTML-документ
(или веб-страница, что означает то же самое) требует определённой структуры для того, чтобы стать валидным
.
Почему мы заботимся о валидации HTML-документа?
Правильность
: валидный документ корректно отображается в браузере.
Отладка
: некорректный код HTML может вызвать ошибки, сложные для выявления.
Поддержка
: валидный документ легче обновлять позже, даже кому-то другому.
Доктайп
Первой информацией которую мы пишем, является тип
HTML-документа - доктайп
.
Подумайте о доктайпе как о версии автомобиля на протяжении многих лет: Ford Fiesta, купленный в 1986 году, был Fiesta 2. Если вы покупаете его сегодня, то это Fiesta 7.
Раньше сосуществовало несколько версий HTML (XHTML и HTML 4.01 были конкурирующими стандартами). В настоящее время нормой является HTML5
.
Чтобы сообщить браузеру, что HTML-документ представляет собой HTML5, просто начните свой документ со следующей строки:
Вот и всё. Просто установите и забудьте об этом.
Вы можете задаться вопросом, почему это доктайп HTML5 не упоминает цифру 5. В W3C подумали, что предыдущие определения доктайпа были слишком запутанными и воспользовались возможностью, чтобы упростить его, удалив упоминание о версии HTML.
Элемент
Помимо строки с доктайпом, весь
ваш HTML-документ должен располагаться внутри элемента
:
несёт дополнительную информацию для всей веб-страницы.
Например, заголовок
страницы (отображается на вкладке) находится в
:
Мой сказочный блог
Следующие элементы HTML могут появляться в
и только в
:
В то время как
содержит только метаданные, не предназначенные для отображения вообще (за исключением
), то элемент
это место, где мы пишем всё наше содержимое. Всё внутри
будет отображаться
в окне браузера.
Полностью валидный HTML-документ
Объединив все эти требования, мы можем написать простой и валидный HTML-документ:
MarkSheet
Привет, мир!
Если вы просмотрите этот пример в браузере, то увидите, что:
«MarkSheet» написано на вкладке браузера;
«Привет, мир!» - это единственный текст, отображаемый в окне, потому что это единственное содержимое
.
W3C предлагает Markup Validation Service для проверки любого HTML-документа на наличие ошибок и предупреждений.
Большинство начинающих вебмастеров рано или поздно сталкиваются с таким понятием как «Валидность кода
», лично у меня этот процесс затянулся почти на 2 года. За этот срок я создал три собственных сайта и лишь, потом совершенно случайно узнал о такой необходимости как проверка кода на валидность
.
Уже спустя несколько минут я был частично подкован в информационном плане, и успел проглотить несколько коротеньких статей на тему валидности кода. Не могу сказать, что я был доволен изученной информацией, лишь по той причине, что все мои сайты оказались, не достаточно хорошо оптимизированы, и как оказалось, были допущены ошибки на страницах.
Несколько грубых и серьёзных нарушений я устранил сразу, однако в процессе понял, на то что бы поправить все страницы, написанные за два года, понадобится очень много времени, которым в данный момент я не располагаю.
Мораль такова, что бы ни было проблем в дальнейшем, лучше немного подсуетиться и всё продумать заранее.
И так, давайте разберёмся, что же такое валидность кода
и на что она влияет.
Валидность кода.
– это исходный код страницы, который должен быть написан по правилам веб-стандартов и правилам языка разметки. Именно этот код в первую очередь видят поисковые системы, во время посещения вашего ресурса и именно этот код отображается в браузере, формируя страницу в том виде, к которому мы привыкли.
Поисковики во время таких посещений и индексации извлекают из этого кода
все элементы страницы, включая тексты, заголовки, изображения с прописанными атрибутами, html теги, имена файлов и так далее.
Не трудно представить, что ошибки, допущенные в коде, могут повлиять на оценку ресурса со стороны роботов, которые в свою очередь могут повлечь за собой некие санкции и оказать влияние на ранжирование в поисковых системах. Более того, я уверен, что и самому веб-мастеру будет куда комфортнее и уютнее среди валидных документов «зелёного цвета».
Таким образом, валидность можно отнести к внутренней оптимизации, которая зачастую является основной частью в продвижении ресурса. Грамотно составленный и полностью валидный код - это залог успеха и улучшение позиций в поисковой выдаче.
Пожалуй, начнём со статистики. Так уж сложилось, что большинство Web-дизайнеров пренебрегают валидностью публикуемых документов и не доводят их исходный код
до определённых стандартов. По статистике, количество ресурсов, которые проходят проверку кода на валидность
составляет чуть больше 6% - вы представляете как это мало?
Учитывая эти данные, получается, что писать валидный код в принципе необязательно, так как большинство этим не занимаются и при этом неплохо себя чувствуют. Многие считают, что проверка валидности это ни что иное как способ обнаружения каких-то мелких недочётов, которые в целом не могут нанести особого вреда.
Увы, в действительности это именно так. Я провёл немало времени, пока анализировал страницы с высокочастотными запросами, которые, несмотря на наличие огромного количества ошибок, находились на топовых позициях. Чего уж там говорить, если даже сам Я
ндекс
при проверке валидности в коде содержит 113 ошибок и 20 предупреждений.
Если раньше вы никогда не проверяли валидность, спешу вас огорчить – банально, если Вы установили на свой сайт счётчик посещений от liveinternet и ничего в нём не меняли, несколько ошибок вы уже получаете автоматом.
На самом деле, существует несколько способов, с помощью которых можно проверить валидность интересующей страницы. Подробнее остановлюсь лишь на некоторых.
Способ первый и, наверное, самый примитивный. Пользуясь браузером «Opera», необходимо кликнуть правой кнопкой мыши в любом месте страницы и выбрав соответствующий пункт проверить, соблюдены ли стандарты
.
Сразу после этого появится ещё одно диалоговое окно, в котором необходимо подтвердить проверку исходного кода страницы. Нажимаем «OK» и получаем результаты в новой вкладке.
Второй способ – самый популярный. Для того что бы проверить валидность нужной страницы достаточно перейти на сайт W3.org и вписав её адрес в поле «Address» нажать кнопку «Check».
По-хорошему, именно таким образом должны выглядеть результаты проверки. Слово «Passed
» означает, что загруженная страница прошла проверку валидности без ошибок
. Так же, об этом не трудно догадаться по зелёному цвету, который преобладает в качестве подсветки результатов.
Создать валидный код отнюдь не так сложно как может показаться на первый взгляд, тем не менее, я считаю что, приведя исходный код сайта в надлежащее состояние, Вы обеспечите для него кроссбраузерность что в свою очередь увеличит скорость загрузки страницы (пусть и незначительно) и соответственно скорость индексации поисковыми системами, что немаловажно для огромных проектов.
Учтите, поисковые системы отдают своё предпочтение в первую очередь страницам с правильным кодом.
PS:
Если статья понравилась, можете обратить своё внимание ещё на то - как я создавал свой сайт и на чём делал акцент.
В последнее время я получила несколько вопросов от пользователей, касающихся валидности моих тем и валидации вообще. В этом посте хочу ответить на них.
Что такое валидность?
Считается, что валидность кода - это единая, универсальная характеристика любого кода.
На самом деле, валидность это соответствие html кода документа определенному своду правил, указанному в доктайпе или подразумеваемому в HTML5
.
То есть, валидность - понятие относительное, поскольку правила бывают разные, и требования у них тоже.
Чтобы было понятнее, приведу пример, который я нашла на сайте css-live.ru
:
К строительству жилых домов и атомных электростанций применяются разные СНиПы (строительные нормы и правила), поэтому документ, валидный по одному своду правил, может быть не валидным по другому (хороша была бы АЭС, построенная по нормативам жилого дома!).
Доктайп обычно указывает на документ, по которому планируется валидация html, но может быть выбран из прагматических соображений для выбора оптимального режима браузеров.
XHTML5 может вообще не иметь доктайпа, но быть валидным.
Валидация - что это?
Простыми словами, валидация - это процесс проверки кода и приведения его в соответствие с выбранным доктайпом (DTD).
Как проверяется валидность?
Валидность HTML кода проверяется инструментом, который называется валидатором.
Самый известный валидатор w3c - https://www.w3.org
.
Валидатор w3c производит несколько проверок кода. Главные из них
:
Проверка на наличие синтаксических ошибок:
Пример c habrahabr.ru/post/101985
: является корректным синтаксисом, несмотря на то, что является недопустимым HTML-тэгом
Так что проверка синтаксиса является минимально полезной для написания хорошего HTML-кода.
Проверка вложенности тэгов
:
В HTML документе тэги должны быть закрыты в обратном порядке относительно их открытия. Эта проверка выявляет незакрытые или неправильно закрытые теги.
Валидация html согласно DTD
:
Проверка того, насколько код соответствует указанному DTD - Document Type Definition (доктайпу). Она включает проверку названий тэгов, атрибутов, и «встраивания» тэгов (тэги одного типа внутри тэгов другого типа).
Проверка на наличие посторонних элементов
:
Она обнаружит все, что есть в коде, но отсутствует в доктайпе.
Например, пользовательские тэги и атрибуты.
Для проверки валидности CSS кода существует валидатор css - http://jigsaw.w3.org/css-validator
. Валидность кода
- это результат механической проверки на отсутствие формальных ОВ, согласно указанного свода правил.
Нужно понимать, что валидация - инструмент, а не самоценность.
Верстальщики с опытом обычно знают, где можно нарушить правила валидации HTML или CSS, а где нет, и чем грозит (или не грозит) та или иная ошибка валидации.
Примеры того, когда не валидный код делает сайт:
более удобным и быстрым - пользовательские атрибуты для Javascrip/AJAX или
SЕО оптимизированным - разметка ARIA.
Понятно, что в валидности ради валидности нет никакого смысла.
Как правило, опытные верстальщики придерживаются следующих правил:
- В коде не должно быть грубых ошибок.
- Незначительные можно допустить, но только по обоснованным причинам.
В отношении допустимости ошибок валидации html/CSS:
Ошибки валидации (ОВ) можно разделить на группы:
ОВ в файлах шаблона:
Их не сложно найти и исправить.
Если, какие то из мелких ошибок помогают сделать сайт более функциональным или быстрым, их можно оставить.
ОВ в сторонних скриптах, подключенных на сайте:
Например, виджет Вконтакте, скрипт Твиттера или видео-файлы с ютуб.
Исправить их никак не удастся, поскольку эти файлы и скрипты находятся на других сайтах и у нас нет к ним доступа.
CSS-правила, которые валидатор не понимает:
Валидатор проверяет соответствие кода сайта определенной версии HTML или CSS.
Если вы использовали в шаблоне правила CSS версии 3, а валидатор проверяет на соответствие версии 2.1, то все правила CSS3 он будет считать ошибками, хотя они таковыми не являются.
ОВ, которые поневоле приходится оставлять на сайте, чтобы получить нужный результат. Например:
теги noindex. Они не валидны, но очень нужны и с этим приходится мириться.
хаки. Чтобы получить корректное отображение сайта в некоторых браузерах, иногда, приходится использовать хаки - код, который понимает только определенный браузер.
Ошибки самого валидатора.
Часто он не видит каких то тегов (например, закрывающих) и сообщает об ОВ там, где ее нет.
Получается, что на работающем сайте практически всегда будут какие-то ОВ.
Причем, их может быть очень много.
Например, главные страницы Google , Яндекса и mail.ru содержат по несколько десятков ошибок.
Но, они не ломают отображение сайтов в браузерах и не мешают им работать.
Все написанное выше относится и к моим темам.
В сложных темах есть:
WordPress функции (например the_category())
, которые дают невалидный код.
Вывод видео с видеохостингов, например, с YouTube, а в коде YouTube очень много ОВ, на которые ни вы, ни я не можем влиять.
Кнопки социальных сетей, которые подключаются при помощи скриптов этих сетей и содержат ОВ.
Правила CSS3 и HTML5, которые валидаторы старых версий считают ошибками.
В то же время, валидаторы версий CSS3 и HTML5 считают ошибками старые правила:).
Иногда, чтобы добиться корректного отображения в браузере Internet Explorer или старых версиях других браузеров приходится использовать, так называемые хаки - код, который понимает только определенный браузер, чтобы написать правила отображения сайта именно для этого браузера.
В итоге получить полностью валидный код можно только при верстке очень простых тем, т.е. тем, которые содержат минимальное количество функционала.
После окончания верстки любой своей темы я всегда проверяю ее валидатором и исправляю все ОВ, которые можно исправить без потери работоспособности темы.
Т.е., если стоит выбор между работающим функционалом и валидностью - я выбираю функционал.
Если вы верстаете свои темы, советую поступать так же.
С моей точки зрения (а также, точки зрения большинства верстальщиков) отношение к валидации html/CSS, как к истине в последней инстанции ошибочно. В обязательном порядке нужно исправлять только те ОВ, которые:
- мешают браузеру корректно отобразить страницу (незакрытые и неправильно вложенные теги).
- замедляют загрузку страницы (неправильно подключенные скрипты).
- можно исправить, не нарушая работоспособность темы.
Надеюсь, я ответила на все вопросы о валидации.
Здравствуйте, дорогие друзья! Рад видеть вас на моём блоге! Сегодня речь пойдет про валидность HTML
на сайте в целом и его отдельных страницах. Валидность — это соответствие кода определённым стандартам. Над разработкой веб-стандартов работает Консорциум World Wide Web (W3C) — это международное сообщество, в котором состоят организации, штатные сотрудники и общественность.
Миссия консорциума заключается в том, чтобы раскрыть весь потенциал всемирной паутины, разрабатывая и внедряя протоколы и руководящие принципы, обеспечивающие долгосрочный рост сети Интернет.
На официальном сайте W3C предоставлены очень полезные онлайн-инструменты для вебмастеров, одним из них является валидатор — это бесплатный сервис, позволяющий проверить приверженность сайта современным веб-стандартам.
К сожалению, сервис полностью на английском языке, но если вы чуточку разбираетесь в разработке и вёрстке, то непременно поймёте его суть и посыл 😉
Итак, на главной странице расположены три вкладки:
Validate by URI — проверка указанного URL-адреса;
Validate by File Upload — проверка загруженного файла;
Validate by Direct Input — проверка путем прямого ввода исходного кода.
Для запуска анализатора нужно переключиться на требуемую вкладку, в качестве примера я буду рассматривать проверку по URL-адресу. Под ссылкой More Options скрываются дополнительные опции, нажмите на нее, чтобы получит доступ к настройкам:
Character Encoding — кодировка символов. WordPress использует UTF-8, но можно оставить стандартное значение «Detect automatically» для автоматического определения кодировки.
Document Type — тип документа (HTML, XHTML, SVG и др.). Поставьте флажок Only if missing, если тип документа не задан на странице и его нужно задать вручную для проверки.
List Messages Sequentially — выводить ошибки и предупреждения последовательным списком;
Group Error Messages by Type — группировать ошибки и предупреждения по типу;
Show Source — показать исходный код;
Show Outline — показать структуру документа;
Clean up Markup with HTML Tidy — очистка разметки с помощью HTML-Tidy;
Validate error pages — проверять страницы с ошибками, например, с 404 ошибкой;
Verbose Output — подробный вывод. Если честно, я не заметил разницы при включении этой опции, если знаете за что она отвечает — поделитесь в комментариях, буду очень признателен.
Когда все настройки выставлены, нажимайте кнопку Check для старта HTML валидатора. Если документ не имеет ошибок, появится надпись:
Document checking completed. No errors or warnings to show.
В переводе на русский язык это означает: «Проверка документа завершена. Ошибки или предупреждения не найдены». Отлично!
В том случае, если документ не пройдёт проверку, увидим простую надпись об её завершении:
И конечно же список сообщений, которые содержат сведения об ошибках и предупреждениях с пояснениями, а также ссылки на конкретные строки документов, но только в том случае, если была включена опция Show Source.
На скриншоте ниже представлен фрагмент проверки главной страницы Яндекса. Странно это видеть, даже не ожидал, ведь Яндекс сам принимает участие в разработке стандартов W3C… Ну да ладно, соблюдать абсолютно все стандарты действительно сложно, тем более для такого крупного портала.
В начале своего пути Блог Свободного Вебмастера содержал очень много ошибок и предупреждений. По мере изучения мне удалось снизить их количество, а со временем и вовсе избавиться. Впредь буду придерживаться стандартов W3C, хотя некоторые плагины добавляют ложку дёгтя в бочку мёда… Время покажет!
Так зачем же нам валидный код
? Валидация веб-документов — важный шаг, который может значительно помочь улучшить и обеспечить их качество, а также сэкономить много времени и денег. Некоторые специалисты уверяют, что правильный код может благоприятно повлиять на в поисковой выдаче! Проверьте свой сайт и расскажите о результатах!
Страницы всех сайтов в интернете оформляются специальным кодом, прописанным по стандартизированным правилам HTML.
Что такое валидность?
Валидация - это проверка на соблюдение установленных норм, а в контексте, применяемом вебмастерами - корректности кода страниц: синтаксических ошибок, вложенности тэгов и т. п.
Если все делать «правильно», код страницы не должен содержать неверные атрибуты, конструкции и ошибки. Валидация сайта позволяет выявить недостатки, которые следует исправить.
Валидность сайта - это соответствие кода существующим стандартам HTML.
Выяснить, есть ли замечания или ошибки в коде веб-страницы, можно как онлайн, так и не имея доступа к Сети и пользуясь оффлайн-программами.
Что такое валидаторы кода
Валидатор кода - это программа, используя которую можно проверить HTML-код страниц и CSS-код на соответствие современным нормам.
Она находит и фиксирует некорректные элементы, указывая на их местонахождение и формулируя, что именно оформлено неверно.
Основные «приметы» валидной верстки
Валидная вёрстка содержит код, полностью соответствующий требованиям W3C (World Wide Web Consortium), занимающейся разработкой технологических стандартов для всего Интернета.
Если код на страницах сайта верный, то во всех браузерах сайт отображается корректно (а не криво).
Отсутствуют подозрения о несправедливом «понижении» в выдаче и нет страниц, выкинутых из индекса.
Пример. Если, предположим, неправильно стоят теги
..
, (в частности, отсутствует закрывающий элемент), то поисковик не будет ничего исправлять - он будет интерпретировать так, как написано черным по белому в коде. В итоге могут возникнуть последствия, связанные уже с продвижением сайта.
Важна ли валидная верстка в продвижении сайта
В теории да, но на практике оказывается, что в топе висит множество сайтов с ошибками валидации, да и сайты с ошибками двигаются в общем неплохо. Проблемы с продвижением могут быть только если ваш сайт некорректно отображается на каком-то типе устройств или в каком-то браузере. Если же он выглядит отлично, но ошибки в валидации есть — на продвижение это не окажет никакого влияния.
Некоторые вебмастера целенаправленно исследовали этот вопрос, пытаясь выяснить, зависят ли результаты ранжирования от результатов валидации. Вебмастер Марк Даост отметил, что валидность кода не принципиальна. А Шаун Андерсон, напротив, пришел к выводу, что валидность как бальзам на душу сайту в плане позиций выдачи.
Еще один специалист, Майк Дэвидсон, также провел подобный эксперимент и пришел к выводу, что Google классифицирует страницы по качеству их написания. Например, незакрытый тег может привести к восприятию части контента как значение этого тега.
Этот вебмастер сделал очень важный вывод:
Нельзя с точностью сказать, насколько сильно ранжирование зависит от валидности кода, но абсолютно точно то, что имеющиеся недочёты могут привести к вылету страниц или всего сайта из индекса поисковиков.
Зачем нужен валидный код
Валидный код позволяет правильно отображать страницы в браузерах (и стили для сайта CSS могут быть отображены неверно).
Причем вполне возможна ситуация, когда в одном браузере ваш сайт отображается так, как вы его настроили, а в другом - совершенно иначе. Изображение может быть перекошено, а контент может стать совершенно нечитабельным.
В итоге вы теряете трафик из этого браузера. К тому же, поведенческий фактор, являющийся одним из трёх самых важных факторов в SEO, значительно влияет на результаты выдачи.
Представьте, что на ваш сайт заходят посетители и тут же его закрывают из-за невозможности воспринять информацию - спасибо ошибкам в коде. Или они вообще возвращаются обратно в поисковик, потому что решение не найдено. Это всё сослужит плохую службу, ибо в итоге поведенческий фактор изменит позиции сайта в худшую сторону.
Как проверить сайт на валидность
Для проверки безукоризненности кода чаще всего используют очень полезный сайт валидатор «Markup Validation Service», расположенный по адресу: http://validator.w3.org
, созданный компанией W3C.
HTML
Здесь перед Вами три варианта валидации:
ввести URL-адрес страницы;
загрузить файл с кодом со своего компьютера;
вставить готовый код в форму.
Сервис указывает не только на ошибки html кода и их расположение, но и даёт советы по исправлению.
Если код уже имеется в Сети, то можно произвести валидацию путём введения её URL-адреса в форму «Validate by URL» и нажатия кнопки Check. Валидатор HTML включит считывание кода и сообщит об итогах.
Необходимо вводить именно адрес проверяемой URL-страницы. Весь сайт проверяться не будет. Введёте адрес сайта - программой считается только его главная страница. В случае нахождения замечаний выходит уведомление о невалидности программного кода и далее указываются строки с допущенными погрешностями.
В этом видео наглядно объяснён процесс проверки с помощью валидатора:
Проверка локальных файлов
По этому же адресу http://validator.w3.org
можно проверить код, выбрав вкладку «Validate by File Upload» и загрузив документ с прописанным код.
Выбираем путь к необходимому файлу и жмём Check. Далее всё происходит аналогично.
Использование формы для ввода кода
Иногда удобней вставить сразу код страницы и проверить его онлайн: выбираем вкладку «Validate by Direct Input» и отправляем весь код на сервер.
CSS
Проверка валидности кода CSS может быть пройдена также онлайн валидатором: https://jigsaw.w3.org/css-validator/
Здесь все на русском языке, для многих это действительно приятный сюрприз.
Снова можно выбрать - указать URL, загрузить свой файл или вставить код.
Осуществляется проверка сайта на ошибки, как и в случае с HTML, и - получаем ответ от сервера. Настроек проверки не имеется, однако можно изучить предлагаемый сгенерированный валидный код, расположенный после списка недостатков кода.
Изучаем полученный код и приводим исходный к нужному виду.
Расширения для браузеров
Для браузеров существуют всевозможные расширения для проверки валидации. Для Google Chrome есть проверяющий валидность кода плагин HTML Tidy Browser Extension, для Opera - расширение Validator, для Safari - Zappatic, для Firefor - HTML Validator.
Остановимся на последнем более детально. Он осуществляет ту же проверку, что и validator, только оффлайн. Взять его можно здесь http://users.skynet.be/mgueury/mozilla/
Устанавливаем расширение, перезагружаем браузер - и можно сразу работать. В случае возникновения заморочек с установкой, можно написать в саппорт Mozilla Firefox или полистать форум http://forum.mozilla-russia.org/doku.php?id=general:extensions_installing
Подробное видео об установке HTML Validator и его использовании:
При загрузке любого URL расширение автоматически включается и считывает код. Результат виден в правом верхнем углу.
Выглядит результат как небольшая картинка с итогом валидации:
Щёлкнув по результату, можно открыть:
— исходный код;
— ошибки - в левом нижнем блоке (или сообщение о валидности);
— подсказки по исправлению ошибок - в правом нижнем.
Как исправить наиболее частые ошибки
Каким бы способом ни была проведена проверка кода, ошибки выходят списком. Также обязательно указана строка с недочётом.
Прежде чем править код, стоит на всякий случай сделать резервную копию шаблона сайта.
В расширении для Firefox при нажатии на название ошибки в открытом окошке расширения вас автоматически перебрасывает на строку с невалидным кодом.
К этим же ошибкам указаны подсказки по их исправлению.
Приведу пару примеров.
1. No space between attributes.
…rel=»shortcut icon» href=»http://arbero.ru/favicon.ico» type=»image/x-icon»
Здесь исправления убираем «точку с запятой».
2. End tag for element «div» which is not open
Закрывающий тег div лишний. Убираем его.
Плохо знаете английский язык (а всегда всё описано именно на нём)? Копируете код ошибки и вставляете его в поисковик. Аналогичную тему наверняка уже описывал какой-то вебмастер или верстальщик, следовательно, вы всегда найдете способ решения задачи на специализированных ресурсах.
Хотя, если честно, я бы не тратил много усилий на ошибки в коде. Лучше просто позаботьтесь о том, чтобы сайт корректно выглядел на всех устройствах и браузерах.