Якщо ви не знали, то між звичайним будівництвом і «зведенням» сайтів є багато спільного. У процесі створення будинку та інтернет ресурсу потрібно дотримувати правильні пропорції між основними частинами.

При цьому важливо дотримуватися встановлених правил і стандартів, а також дотримуватися розмірність, зазначеної у проектній документації. Інакше будівлю або інтернет ресурс можуть не пройти процедуру валідації. І тоді доведеться все починати спочатку:

Валідація в сайтобудуванні

Тепер все вищесказане «натягнемо» на принципи побудови сучасного інтернету. Але у віртуальному просторі, як і в королівстві кривих дзеркал все не так однозначно. І значення обох термінів (валідації та верифікації) просто злилися воєдино:

Під валідацією сайту розуміється відповідність програмного коду ресурсу всім встановленим і загальноприйнятим нормам розробки, верстки і веб-дизайну. А також тим умовам, які були висунуті замовником виконавцю і прописані в ТЗ розробляється ресурсу.

Але найчастіше під валідністю мається на увазі саме відповідність коду (програмного, html і css) загальноприйнятим і визначеним нормам. Існує кілька організацій, що займаються стандартизацією сучасного веб-простору. Але найбільш авторитетної з них є Консорціум Всесвітньої павутини (W3C):

Саме спираючись на його стандарти, найчастіше, визначається валідність ресурсу або окремого коду незалежно від мови або технології, які використовувались для написання.

Встановлені консорціумом W3C стандарти є авторитетними для всіх мов програмування та технологій, які застосовуються для створення сайтів. А також для HTML, XML і CSS.

Для перевірки валідності існують спеціальні онлайн-сервіси, так звані «валідатори». Вони дозволяють перевірити на відповідність стандартам W3C сайт або частину коду, і виявити помилки валідації, які були допущені при їх написанні.

Найбільш авторитетним онлайн-вадидатором є ресурс validator.w3.org:

Дійсний HTML

Здавалося б, все просто! Для валідації будь-якого сайту потрібно лише пропустити код через валідатор, виправити помилки і все. Але не все так просто у віртуальному просторі. Буває, що навіть самий дійсний сайт не буде коректно відображатися в одному з браузерів.

Основною причиною не валідності «працюючого» html є проблема кросбраузерності. Деколи професійному верстальнику доводиться спеціально писати завідомо не валідний гіпертекстовий код, щоб всі частини верстаемого їм ресурсу однаково відображалися у всіх сучасних і застарілих версіях браузерів.

Проблема кросбраузерності в даний час майже вирішена. І все завдяки тому, що при створенні розробники браузерів дотримуються загальноприйнятих стандартів W3C.

Але це не є основною причиною того, від чого страждає валідація html:

  • Не закритий тег – велика частина тегів в html є парними, тобто складаються з відкриває і закриває елемента. Часто при верстці або написанні сценарію веб-майстри забувають дописувати закриваючий тег. А це може призвести до неправильного відображення всього сайту;
  • Порушення вкладеності елементів – ця проблема виникає при блокової верстки, коли не дотримується ієрархічну структуру всіх блоків
    . Або інших парних елементів, якщо частина тега відкрита в одному шарі, а закривається в іншому. При цьому можливе порушення структури дизайну сайту;
  • Використання атрибуту style – в сучасному сайтобудуванні загальноприйнятою нормою є використання для оформлення елементів дизайну каскадних таблиць стилів (CSS). Застарілий атрибут style вживається вкрай рідко: при його використанні обсяги html коду можуть збільшуватися в рази. Це не тільки уповільнює швидкість завантаження всього сайту, але і затруднює його розуміння та подальше редагування;
  • Використання вкладеного CSS – впровадження каскадних таблиць стилів всередину html. Це також збільшує обсяг коду і ускладнює його налагодження. Найкраще стильові опису зберігати в окремих файлах:

Проблема валідності CSS

Більша частина проблем з кросбраузерністю виникає саме з-за помилок відображення оформлення елементів, заданого за допомогою CSS.

Точніше, щоб вирішити проблему коректного висновку дизайну сайту у всіх браузерах, верстальщику доводиться застосовувати не зовсім «валідні» (на думку W3C) засоби:

  • Коментарі – коли в коментарях (найчастіше для IE) прописується альтернативне значення властивості, невидиме для інших браузерів;
  • Хакі – під ними розуміються спеціальні властивості CSS, дозволяють вирішити проблему некоректного відображення в одному з браузерів:

  • За допомогою JavaScript – зміна стильового властивості елемента через об’єктну модель документа.

Застосування цих способів (особливо хаків) може негативно впливати на валідність всього сайту, але в теж час дозволяє повністю вирішувати проблему кросбраузерності.

Валідність CSS не є гарантом працездатності ресурсу.

Валідність XML

Набагато простіше все йде з валідністю XML. Щоб створювати чистий код, потрібно дотримуватися зводу основних синтаксичних правил цієї мови:

  • Не забувати про необхідність обов’язкової наявності кореневого елемента;
  • Не забувати закривати тег;
  • Пам’ятати про те, що XML є залежним від регістра мовою;
  • Пам’ятати про необхідність дотримуватися ієрархію вкладеності елементів;
  • Значення кожного атрибута вказується в закритих лапках.

Часто зустрічаються помилки валідації

  • Unknown entity…

Найчастіше таке повідомлення валідатор видає при використанні знаку амперсанда (&) в тій частині адресного рядка, через яку передаються змінні та їх значення. Для недопущення та виправлення даної помилки замість & слід використовувати &. Приклад:

… — неправильно.
… — правильно.

  • Missing tag

Таке повідомлення видається, якщо порушена ієрархічна вкладеність тегів. Приклад:

Lorem

— неправильно.

Lorem

— правильно.

  • Missing DOCTYPE

Найчастіше валідатор видає це повідомлення, якщо вміст елемента і сам елемент записані в нижньому регістрі. Необхідно пам’ятати, що даний елемент є залежним від регістра тегом. Приклад:

— неправильно.
— правильно.

  • There is no such element…

Ця помилка виникає, якщо один або декілька тегів записані у верхньому регістрі. Приклад:

Lorem

— неправильно.

Lorem

— правильно.

  • Missing closing tag

Ця помилка валідації виникає, якщо один з «порожніх» тегів у своїй закриває частини не містить слеш ( XHTML). До порожнім відноситься тег . Приклад:

— неправильно.
— правильно.

  • required attribute «alt» not specified

Таке повідомлення видається валідатором, якщо тег не містить в собі атрибут alt, встановлює для зображення альтернативний текст. Приклад:

— неправильно.
— правильно.

  • Missing » «

Ця помилка виникає, якщо значення одного або декількох атрибутів записані не в лапках. Приклад:

— неправильно.
— правильно.

І в кінці хотілося б вас застерегти від гонки за надмірної валідністю. Як завжди, істина знаходиться посередині: хороший код повинен бути валідним, але це ніяк не може позначатися на його працездатності. І це головне!