Здравствуйте, дорогие друзья! Рад видеть вас на моём блоге! Сегодня речь пойдет про валидность HTML на сайте в целом и его отдельных страницах. Валидность — это соответствие кода определённым стандартам. Над разработкой веб-стандартов работает Консорциум World Wide Web (W3C) — это международное сообщество, в котором состоят организации, штатные сотрудники и общественность.
Миссия консорциума заключается в том, чтобы раскрыть весь потенциал всемирной паутины, разрабатывая и внедряя протоколы и руководящие принципы, обеспечивающие долгосрочный рост сети Интернет.
На официальном сайте W3C предоставлены очень полезные онлайн-инструменты для вебмастеров, одним из них является валидатор — это бесплатный сервис, позволяющий проверить приверженность сайта современным веб-стандартам.
К сожалению, сервис полностью на английском языке, но если вы чуточку разбираетесь в разработке и вёрстке, то непременно поймёте его суть и посыл 😉
Итак, на главной странице расположены три вкладки:
Для запуска анализатора нужно переключиться на требуемую вкладку, в качестве примера я буду рассматривать проверку по URL-адресу. Под ссылкой More Options скрываются дополнительные опции, нажмите на нее, чтобы получит доступ к настройкам:
Когда все настройки выставлены, нажимайте кнопку Check для старта HTML валидатора. Если документ не имеет ошибок, появится надпись:
Document checking completed. No errors or warnings to show.
В переводе на русский язык это означает: «Проверка документа завершена. Ошибки или предупреждения не найдены». Отлично!
В том случае, если документ не пройдёт проверку, увидим простую надпись об её завершении:
И конечно же список сообщений, которые содержат сведения об ошибках и предупреждениях с пояснениями, а также ссылки на конкретные строки документов, но только в том случае, если была включена опция Show Source.
На скриншоте ниже представлен фрагмент проверки главной страницы Яндекса. Странно это видеть, даже не ожидал, ведь Яндекс сам принимает участие в разработке стандартов W3C… Ну да ладно, соблюдать абсолютно все стандарты действительно сложно, тем более для такого крупного портала.
В начале своего пути Блог Свободного Вебмастера содержал очень много ошибок и предупреждений. По мере изучения мне удалось снизить их количество, а со временем и вовсе избавиться. Впредь буду придерживаться стандартов W3C, хотя некоторые плагины добавляют ложку дёгтя в бочку мёда… Время покажет!
Так зачем же нам валидный код ? Валидация веб-документов — важный шаг, который может значительно помочь улучшить и обеспечить их качество, а также сэкономить много времени и денег. Некоторые специалисты уверяют, что правильный код может благоприятно повлиять на в поисковой выдаче! Проверьте свой сайт и расскажите о результатах!
Производит несколько проверок Вашего кода. Основные из них:
Основным аргументом против валидации является то, что она слишком строгая и не соответствует тому, как на самом деле работают браузеры. Да, HTML может быть невалидным, но все браузеры могут обрабатывать некоторый невалидный код одинаково. Если я готов взять на себя ответственность за неправильный код, который я пишу, то я не должен беспокоиться о проверке. Единственное, о чем я должен заботиться - это чтобы оно работало.
Моя позиция Это один из немногих случаев, когда я публично говорю о своей позиции по отношению к чему-нибудь. Я всегда был среди противников валидации, основываясь на том, что валидатор слишком строг, чтобы быть практичным в реальных приложениях. Есть вещи, которые поддерживаются большинством браузеров ( в , после ), которые являются невалидными, но иногда очень необходимы для правильной работы.Вообще, моей наибольшей проблемой валидации является проверка #4 (на посторонние элементы). Я сторонник использования пользовательских атрибутов в HTML тэгах для хранения дополнительных мета-данных, относящихся к определенному элементу. В моем понимании, это, например, добавить атрибут foo, когда у меня есть данные (bar), которые мне надо ассоциировать с определенным элементом. Иногда люди перегружают существующие атрибуты для этих целей только для того, чтобы пройти валидацию, несмотря на то, что атрибут будет использовать не по назначению. Для меня это бессмысленно.
Секрет браузеров заключается в том, что они никогда не проверяют соответствие HTML-кода указанному DTD. Doctype, который Вы указали в документе, переключает парсер браузера в определенный режим, но это не приводит к загрузке doctype и проверке кода на соответствие ему. То есть, парсер браузеров обрабатывает HTML с некоторыми допущениями невалидности, вроде самозакрывающихся тэгов и блочных элементов внутри строковых (я уверен, что есть и другие).
В случае пользовательских атрибутов, все браузеры парсят и распознают синтаксически корректные атрибуты как допустимые. Это делает возможным получить доступ к таким атрибутам через DOM с помощью Javascript. Так почему я должен беспокоиться о валидности? Я буду продолжать использовать свои атрибуты и я очень рад, что HTML5 формализует их.
Лучший пример технологии, которая приводит к невалидному HTML, но имеет огромное значение, - это ARIA . ARIA работает с помощью добавления новых атрибутов в HTML 4. Эти атрибуты предоставляют дополнительное семантическое значение HTML-элементам и браузер способен передать эту семантику вспомогательным устройствам для помощи людям с ограниченными физическими возможностями. Все основные браузеры сейчас поддерживают разметку ARIA. Однако, если Вы будете использовать эти атрибуты, у Вас будет невалидный HTML.
Насчет пользовательских тэгов - я думаю, что в добавлении на страницу синтаксически корректных новых тэгов нет ничего плохого, но я не вижу особого практического смысла в этом.
Чтобы прояснить мою позицию: я считаю, что проверки #1 и #2 являются очень важными и должны проводиться всегда. Проверку #3 я тоже считаю важной, но не столь, как первые две. Проверка #4 очень сомнительна для меня, так как она задевает пользовательские атрибуты. Я считаю, что, как максимум, пользовательские атрибуты должны быть помечены как предупреждения (а не ошибки) в результатах проверки, чтобы была возможность проверить, не ошибся ли я при вводе названия атрибута. Отметка пользовательских тэгов как ошибок, возможно, хорошая идея, но тоже имеет некоторые проблемы, например, при встраивании содержимого в другой разметке - SVG или MathML.
Валидация ради валидации? Я считаю, что валидация ради валидации - это крайне глупо. Валидный HTML означает только лишь то, что все 4 проверки прошли без ошибок. Есть несколько важных вещей, которых не гарантирует валидный HTML:Я знаю, что для многих это спорная тема, поэтому, пожалуйста, воздержитесь от чисто эмоциональных высказываний в комментариях.
UPD: спасибо за карму, перенес в тематический. Повторю слова автора: я понимаю, это спорная тема, но пожалуйста, воздержитесь от чисто эмоциональных комментариев, приводите аргументы.
В последнее время я получила несколько вопросов от пользователей, касающихся валидности моих тем и валидации вообще. В этом посте хочу ответить на них.
Что такое валидность?Считается, что валидность кода - это единая, универсальная характеристика любого кода.
На самом деле, валидность это соответствие html кода документа определенному своду правил, указанному в доктайпе или подразумеваемому в HTML5
.
То есть, валидность - понятие относительное, поскольку правила бывают разные, и требования у них тоже.
Чтобы было понятнее, приведу пример, который я нашла на сайте css-live.ru
:
К строительству жилых домов и атомных электростанций применяются разные СНиПы (строительные нормы и правила), поэтому документ, валидный по одному своду правил, может быть не валидным по другому (хороша была бы АЭС, построенная по нормативам жилого дома!).
Доктайп обычно указывает на документ, по которому планируется валидация html, но может быть выбран из прагматических соображений для выбора оптимального режима браузеров.
XHTML5 может вообще не иметь доктайпа, но быть валидным.
Простыми словами, валидация - это процесс проверки кода и приведения его в соответствие с выбранным доктайпом (DTD).
Как проверяется валидность?Валидность HTML кода проверяется инструментом, который называется валидатором.
Самый известный валидатор w3c - https://www.w3.org
.
Валидатор w3c производит несколько проверок кода.
Главные из них
:
Для проверки валидности CSS кода существует валидатор css - http://jigsaw.w3.org/css-validator
.
Валидность кода
- это результат механической проверки на отсутствие формальных ОВ, согласно указанного свода правил.
Нужно понимать, что валидация - инструмент, а не самоценность.
Верстальщики с опытом обычно знают, где можно нарушить правила валидации HTML или CSS, а где нет, и чем грозит (или не грозит) та или иная ошибка валидации.
Примеры того, когда не валидный код делает сайт:
Понятно, что в валидности ради валидности нет никакого смысла.
Как правило, опытные верстальщики придерживаются следующих правил:
- В коде не должно быть грубых ошибок.
- Незначительные можно допустить, но только по обоснованным причинам.
В отношении допустимости ошибок валидации html/CSS:
Получается, что на работающем сайте практически всегда будут какие-то ОВ.
Причем, их может быть очень много.
Например, главные страницы Google , Яндекса и mail.ru содержат по несколько десятков ошибок.
Но, они не ломают отображение сайтов в браузерах и не мешают им работать.
Все написанное выше относится и к моим темам.
В итоге получить полностью валидный код можно только при верстке очень простых тем, т.е. тем, которые содержат минимальное количество функционала.
После окончания верстки любой своей темы я всегда проверяю ее валидатором и исправляю все ОВ, которые можно исправить без потери работоспособности темы.
Т.е., если стоит выбор между работающим функционалом и валидностью - я выбираю функционал.
Если вы верстаете свои темы, советую поступать так же.
С моей точки зрения (а также, точки зрения большинства верстальщиков) отношение к валидации html/CSS, как к истине в последней инстанции ошибочно. В обязательном порядке нужно исправлять только те ОВ, которые:
- мешают браузеру корректно отобразить страницу (незакрытые и неправильно вложенные теги).
- замедляют загрузку страницы (неправильно подключенные скрипты).
- можно исправить, не нарушая работоспособность темы.
Надеюсь, я ответила на все вопросы о валидации.
В этой статье я познакомлю с понятием «валидность» кода сайта (html & css). Надеюсь все помнят, html — это структура сайта. Css — правила и стили для тегов, которые описаны в html.
Будем разбираться с самых низов: теория, а далее перейдем к практике. Так же вы найдете ответы на следующие вопросы: что такое валидность html и css кода, зачем она нужна, почему поисковые системы любят чистый / валидный код. А самое то главное покажу на примерах как проводить проверку валидности кода сайта.
Зачем нужна проверка валидности html и css кодаВалидность — по-другому чистый код (без ошибок)
Константа № 1 . Валидность кода сайта позволяет правильно отображать сайт в разных браузерах т.е. вся визуальная и функциональная составляющая сайта отображается и работает правильно. Чаще всего получается, что браузер обрабатывает и отображает корректно все элементы сайта, но это не говорит о том, что код чист и гладок как попка младенца.
Константа № 2. Чистый код (html и css) поощряют поисковые машины (Yandex, Google). Говоря по-русски, когда робот поисковой машины приходит на ваш ресурс и видит что валидность соблюдена, то соответственно поисковой робот будет знать, что этот ресурс без ошибок, а значит к отношение к сайту в лучшую сторону.
Из личного опыта: В моей практике была ситуация, когда новые статьи на блоге ни в какую не хотели залетать в поисковую выдачу. Вроде делаешь то все правильно, а в выдаче Яндекса нет и все! Вот что делать, куда копать? Кто-то подумает фильтры — фильтры, но ничего такого нет.
Проверил сайт на валидность html кода, и как я был удивлен и понял где была собака зарыта. Оказалось что в коде отсутствовал закрывающий тег , а это тег специальный который закрывает участки кода или ссылки от поисковой машины Яндекса. И что же получается у меня было? Вся статья закрыта от индексации. Вот и ответ на вопрос: «Почему в поисковой выдаче нет». Потом естественно я эту ошибку устранил.
Перейдем от голого текста с теорией к практике, и научимся проводить проверку валидации онлайн
Всем привет! Сегодня я вам расскажу, что такое валидность кода сайта, зачем она вообще нужна и как ее проверить и исправить с помощью различных онлайн сервисов валидаторов W3C (html, CSS). Итак, начнем, пожалуй, с теорий. Что собственно вообще представляет из себя данный термин?
Валидность кода – это степень соответствия кода вашего сайта принятым международным нормам, сокращенно W3C. Иными словами, давным-давно было принято ряд общих правил по написанию кода, которые в случае не соответствия нормам W3C может повлечь за собой неправильное отображение вашего сайта в различных компьютерных и мобильных браузерах. Также в некоторых особо редких случаях это может повлечь к санкциям со стороны поисковиков, а также наложению различные фильтров, которые могут замедлить развитие вашего проекта. Но это бывает очень редко, так как даже у самого Яндекса и Google код не на 100% валидный, то есть в нем присутствуют ошибки.
Собственно, у вас наверняка возник вопрос: зачем вообще мне нужно тратить свое собственное время на правку кода своего сайта, чтобы он стал валидным, если все равно он ни на что не влияет? Как я уже писал выше, это нужно для того, чтобы ваш сайт корректно (без багов и ошибок) отображался в различных браузерах. На сегодняшний день, как вы знаете, все больше и больше приобретают популярность различные виды телефонных моделей: iPhone, Android ,Смартфон и другие, которыми пользуется уже все население земли. Сегодня у каждого третьего человека есть свой мобильный телефон, через который он может выйти в сеть и посетить ваш сайт. Это примерно в 20-30 раз больше тех, у кого есть свой собственный компьютер, ноутбук, планшет.
То есть суть вы поняли. Аудитория людей, которая пользуются мобильными устройствами самая большая, на которую и надо ориентироваться. А если еще вспомнить, сколько за последние 10 лет вышло мобильных устройств и сколько еще продолжает выходить каждые полгода новых моделей, то становится ясно, что такой трафик (посетителей) упустить будет очень глупо. К тому же новые технологии на месте не стоят, и с приходом обновленного языка html5 ваш старый сайтик сделанный еще в 200_г может оказаться вообще, так сказать, одной большой кряказяброй на фоне всеобщей сети.
Как проверить валидность кода html и CSS своего сайта?В интернете такие сервисов предостаточно, правда, они практически все кривые, да еще и на английском языке, где даже с будет не очень легко понять, о чем идет речь. Но все же есть один из них более нормальный, который не только дает пояснение, но еще и показывает в какой строчке кода находится ошибка. Итак, знакомитесь — jigsaw.w3.org .
Зайдя на этот сайт, вы можете проверить код своего сайта на валидность тремя способами. Во вкладке «проверка по URI» впишите адрес вашего сайта, и сервис выдаст вам весь список ошибок найденных в кодах только на главной странице! Если же вы, как и я, не очень разбираетесь в кодах и при просмотре кода своего сайта не можете найти ту строчку, которую надо исправить, то вы можете просто загрузить свой файл CSS-стилей (оформление сайта) во вкладке «проверить загруженный файл».
В таком случае вы будете уже знать, в каком файле надо вправлять код. Кстати, можно еще проще поступить. Если у вас сайт стоит на каком-нибудь движке, например на , то вам будет достаточно зайти в админке блога во «внешний вид» «редактор» выбрать файл, например, заголовок (header.php), скопировать код и вставить его на сервисе во вкладке «проверка набираемого текста». Я лично так проверял свой блог.
Итак, на моем сайте лично нашлось 44 ошибки, что очень мало по сравнению с другими сайтами. Кстати, у дядюшки Яндекса аж 155 ошибок, ай-ай-ай. Ну да ладно, не будем о грустном.
Чтобы вам было легче исправлять данные неточности в кодах, давайте-ка я покажу вам лично несколько примеров на своем блоге. Для начала обратите внимание на надпись Line 26. Это указывается строчка кода. Чтобы быстрее всего ее найти, поместите данный код, который вы вставляли в сервисе jigsaw.w3.org в любой html редакторе отображается надписи строк.
Заметьте, что в коде всегда выделяется какой-нибудь тег красным цветом. Это и есть то место, где надо искать и вправлять код. Чаще всего его надо вообще удалить, либо добавить к нему недостающие теги. Также в заголовке и внизу надписи есть подсказки на английском языке, что надо сделать, чтобы исправить ошибку.
Пример 1 . Тут надо убрать кавычки выделенные красным . Они не должны быть внутри кода, где они уже и так есть в начале и в конце.
Пример 2 . В конце кода не хватает закрывающего тега /> . Заметьте, если вверху кода есть еще одна строчка тоже с незакрытым тегом, то ее так же надо закрыть, а то ошибка так и не исчезнет.
Пример 3 . Тут надо просто убрать повторяющуюся строчку: « href=»"> .
Кстати, следует исправлять ошибки в первую очередь выделенные именно крестиком, а не восклицательным знаком, так как эти ошибки не так важны. Также перед тем как что-то исправлять, сделайте , так как с большой вероятностью вы можете поломать его. После того как полностью почистите код, рекомендую посмотреть как отображается ваш сайт в разных браузерах на разных платформах ПК и телефонов. С этим вам может помочь бесплатный онлайн сервис browsershots.org .
Как еще можно быстро проверить валидность кода html и CSS своего сайта?Если вам было мало jigsaw.w3.org, то вот вам еще пара дополнительных сервисов для проверки валидности html кода сайта: www.validome.org , watson.addy.com ,
В заключение хочу сказать, что если вы у себя нашли пару ошибок, то можете не беспокоиться по этому поводу, так как это на сегодняшний день не так важно. Вообще, давно проводились эксперименты на эту тему, из которых стало ясно, что плохо валидный код никак не виляет на выдачу сайта в поиске. Но, увы, интернет эта та среда, где все быстро меняется. Сегодня это может быть неважно, а завтра Яндекс подкрутит к себе этот дополнительный алгоритм и позиции в поиске могут просесть (упасть). Так что, если у вас есть лишнее время на то, чтобы поковыряться в коде своего сайта, то лучше это сделать сейчас.