Більшість помилок, що виникають при валідації коду можна звести до набору типових варіантів, знаючи які легко зрозуміти, на що «натякає» валідатор. Як зразок візьмемо розширення HTML Validator для браузера Firefox, призначене для перевірки коду і розглянемо список помилок і зауважень за кодом.
Подивитися всі можливі повідомлення валідатора можна за адресою http://www.htmlpedia.org/wiki/HTML_Tidy, далі наведено основні помилки з їх описом і рішенням. Зеленим кольором виділено коректний варіант, інший колір використовується для позначення помилки.
Notice: entity" ..." does not end in";"
Це зауваження виникає при використанні спецсимволов начебто & < при відсутності на кінці крапки з комою.
 
Рішення
Додайте в кінці спецсимволи крапку з комою.
Notice: numeric character reference" ..." does not end in ';'
Виникає при використанні числових спецсимволов начебто — коли в кінці забули додати крапку з комою.
™
™
Рішення
Додайте в кінці спецсимволи точку з коми.
unescaped & or unknown entity" &..."
Символ амперсанда ( &) часто застосовується в адресах посилань (атрибут href тега <a> ), оскільки він розділяє кілька параметрів. Однак амперсанд зарезервований для спецсимволов начебто тому в посиланнях необхідно вказувати & замість &.
<a href="https://html-css.co.ua/content/?id=30 & text=1"> Посилання </a>
<a href="https://html-css.co.ua/content/?id=30 &text=1"> посилання </a>
Рішення
Замініть & на & .
missing </...>
Відсутня обов'язковий закриває тег.
<head> <title> Тема </title> </head>
<head> <title> Тема </head>
Рішення
Додайте закриває тег.
missing </aaa> before <bbb>
Помилка виникає при порушенні порядку тегів, коли блоковий тег розташовується всередині вбудованого. В даному випадку блоковий тег <bbb> знаходиться всередині вбудованого тега <aaa> .
<p> <span> Текст </span> </p>
<span> <p> Текст </p> </span>
Рішення
Поміняйте розташування тегів - перенесіть вбудований тег всередину блокового.
discarding unexpected <...>
Виявлено відкриває або закриває тег, у якого немає пари. Подібна помилка виникає в двох випадках: є відкриває тег, але немає закриває; є закриває тег, якому не відповідає відкриває.
<div> <div> Текст </div> </div>
<div> Текст </div> </div>
<div> <div> Текст </div>
Рішення
В залежності від ситуації додайте або видаліть відкриває або закриває тег.
Notice: nested emphasis ...
Контейнер містить аналогічний тег фізичного форматування, який не повинен повторюватися.
<p> <b> Текст </b> </p>
<p> <b> <b> Текст </b> </b> </p>
Рішення
Видаліть один з тегів.
replacing unexpected ... by </...>
Закриваючий тег не відповідає відкриває тегу.
<p> <b> Текст </b> </p>
<p> <b> Текст </span> </p>
Рішення
Замініть відкриває або закриває тег на парний.
... is not allowed in <...> elements
Виявлено теги, які заборонено розміщувати всередині зазначених елементів.
<head> <title> Тема </title> </head>
<head> <body> Текст </body> </head>
Рішення
Перемістіть HTML-елемент в правильний розділ.
missing <...>
Ні обов'язкового тега в структурі елементів. Помилка, наприклад, може виникнути при формуванні таблиці, коли пропущений тег <tr> і відразу ж після <table> варто <td> .
<ol> <li> Список </li> </ol>
<ol> Список </ol>
Рішення
Перевірити вірність вкладення тегів в поточному елементі і наявність обов'язкових елементів.
Notice: inserting implicit <...>
Повідомлення виникає через попередньої помилки на сторінці.
Рішення
Виправте попередні помилки.
Insert missing <title> element
В коді не вставлено тег <title> .
<head> <title> Тема </title> </head>
<head> </head>
Рішення
Додайте контейнер <title> .
Multiple <frameset> elements
Тег <frameset> використовується в документі більше одного разу без вкладення. Допускається вставляти кілька елементів <frameset> , але вкладених один в іншій.
<frameset ...> <frame ...> <frameset ...> <frame ...> </frameset> </frameset>
<frameset ...> <frame ...> </frameset> <frameset ...> <frame ...> </frameset>
Рішення
Використовуйте вкладені теги <frameset> .
<...> is not approved by W3C
Зазначений тег не входить в специфікацію HTML.
<span style="white-space: nowrap;"> текст без переносів </span>
<nobr> текст без переносів </nobr>
Рішення
Видаліть тег або замініть його відповідним еквівалентом.
Error: <...> is not recognized!
Тег не • розпізнано і не входить в специфікацію HTML.
Правильно: <p> Текст </p>
Невірно: <p> <adres> Текст </adres> </p>
Рішення
Видаліть невідомий тег.
Trimming Empty Tag
Контейнер порожній або містить тільки пробіл.
<p> Текст </p>
<p> </p>
<p> </p>
Рішення
Видаліть тег або додайте всередину контейнера текст.
<a> is probably intended as </a>
В закриває тезі <a> відсутня слеш.
<a href=""> Посилання на сайт </a>
<a href=""> Посилання на сайт <a>
Рішення
Додайте слеш до закриває тегом.
. .. should not be nested
Деякі теги на кшталт <form> не можуть містити самі себе. Це повідомлення також виникає через попередньої помилки.
<form action="gb.php" name="guestbook"> </form> <form action="gb2.php" name="guestbook2"> </form>
<form action="gb.php" name="guestbook"> <form action="gb2.php" name="guestbook2"> </form> </form>
Рішення
Видаліть вкладені теги або виправте попередню помилку.
Text found after closing </body> -tag
Теги або текст додається після закриває тега </body> .
<html> <head> <title> Тема </title> </head> <body> <p> Основний текст </p> </body> </html>
<html> <head> <title> Тема </title> </head> <body> <p> Основний текст </p> </body> <b> Привіт! </b> </html>
Рішення
Видаліть текст після тега </body> або перенесіть е той тег в кінець тексту.
Adjacent hyphens within comment
Коментарі в коді HTML визначаються конструкцією виду <! - коментар -> . Якщо в тексті коментаря поспіль йде два і більше дефіса, виникає помилка.
<! - Коментар - заголовок ->
<! --- коментар --->
<! - коментар - тіло документа ->
Рішення
Видаліть зайві дефіси.
SYSTEM, PUBLIC, W3C, DTD, EN must be upper case
Елемент <!DOCTYPE> вказано невірно, зокрема такі атрибути необхідно писати у верхньому регістрі: SYSTEM, PUBLIC, W3C, DTD, EN .
<!DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html public" - // w3c // dtd html 4.01 Transitional // en" "http://www.w3.org/TR/html4/loose.dtd">
Рішення
Пишіть <!DOCTYPE> коректно.
Warning: missing <!DOCTYPE> declaration
Не вказаний елемент <!DOCTYPE> .
<!DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 // EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title> Тема </title> </head> <body> <p> Основний текст </p> </body> </html>
<html> <head> <title> Untitled Document </title> </head> <body> </body> </html>
Рішення
Помістіть елемент <!DOCTYPE> в найпершу рядок коду документа.
Too much <...> -elements
Повторюється тег, який в коді повинен бути тільки один. До таких тегам відноситься <html> , <head> , <title> і <body> .
<head> <title> Тема </title> </head>
<head> <title> Тема </title> <title> Назва статті </title> </head>
Рішення
Видаліть повторюється тег.
<...> inserting" ..." attribute
Не вказаний обов'язковий атрибут для даного тега.
<style type="text/css">
<style>
Рішення
Перевірте тег і додайте відсутні атрибути.
... attribute ... lacks value
Атрибут тега не містить обов'язкове значення або воно написано з синтаксичної помилкою.
<a href="link.html"> Посилання </a>
<a href> Посилання </a>
Рішення
Перевірте атрибути тега і додайте відсутні значення.
... attribute" ..." has invalid value" ..."
Атрибут містить некоректну значення. Помилка виявляється в тих випадках, коли в значенні замість тексту пишеться число і навпаки. Так, атрибути id і name повинні починатися з символу ([A-Za-z]) і можуть містити цифри ([0 -9]), дефіс (-), підкреслення (_), двокрапка (:) і точку (.). Значення ширини і висоти в атрибутах тегів не повинно містити нічого, крім цифр ([0-9]) і відсотків (%).
<div id="layer1"> шар 1 </div>
<img src="images/ pic.gif" width="200" height="120">
<div id="2layer"> Шар 2 </div>
<img src="images/ pic.gif" width="200px" height="120px">
Рішення
Перевірте атрибут тега і змініть його значення.
<...> missing> for end of tag
Помилка може виникати в двох випадках: некоректно написаний тег, що відбувається, коли забули додати дужку і застосування > замість використання спецсимволи.
<p> приклад тексту </p>
<p> Для випадку 0 & <p розглянемо наступний приклад. </p>
<p приклад тексту </p>
<p> Для випадку 0 <p розглянемо наступний приклад. </p>
Рішення
Вставте відсутню дужку. Замініть < на & < .
<...> proprietary attribute" ..."
Тег містить атрибут, специфічний тільки для браузера Internet Explorer або іншого і не входить в специфікацію. Прикладом є атрибут height тега <table> .
Список всіх атрибутів, що входять в специфікацію HTML наведено за адресою http://www.w3.org/TR/html4/index/attributes.html
<table style="height: 100%">
<table height="100%">
Рішення
Список найбільш характерних атрибутів тегів наведено в табл. 14.1.
Тег | Застарілий атрибут | Стандартний атрибут |
---|---|---|
<body> | marginwidth=0, marginheight=0, leftmargin=0, topmargin=0 | style="margin: 0" |
<table> | height=100% | style="height: 100%" |
<table> | nowrap | style="white-space: nowrap" або <td nowrap> |
<td> | background="abc.gif" | style="background-image: url (abc.gif)" |
... proprietary attribute value" ..."
значення атрибута не входить в специфікацію HTML і є специфічним для браузера Internet Explorer або іншого. Наприклад, значення align="absmiddle" тега <img> неприпустимо.
<p> <img src="hello.gif" alt="Привіт" align="middle"> </p>
<p> <img src="hello.gif" alt="Привіт" style="vertical-align: middle"> </p>
<p> <img src="hello.gif" alt="Привіт" align="absmiddle"> </p>
Рішення
Використовуйте стандартні значення атрибутів тегів використовуйте стильової еквівалент.
... dropping value" ..." for repeated attribute" ..."
Атрибут застосовується в тезі більше одного разу.
<img src="image.jpg">
<img src="image.jpg" src="image.jpg">
Рішення
Видаліть повторюється атрибут.
... unexpected or duplicate quote mark
Відсутня відкриває або закриває лапки в атрибуті тега.
<img src="image.jpg">
<img src=image.jpg">
Рішення
Додайте парну лапки до значення атрибута.
... attribute with missing trailing quote mark
Тег містить атрибут, в якому задано невірне кількість лапок.
<p id="my_id">
<p id="my_id"">
Рішення
Додайте або видаліть одну з лапок.
... id and name attribute value mismatch
Помилка виникає, ко да значення атрибутів id і name не збігаються між собою, що призводить до конфлікту при зверненні до властивостей елемента через скрипти.
<a name="elm" id="elm">
<a id="elm">
<a name="abcdef" id="db1">
Рішення
Видаліть один з атрибутів або зробіть значення атрибутів name і id однаковими.
Notice: replacing <...> by <...>
Помилка виникає в наступних випадках:
- невірний порядок тегів;
- доданий зайвий закриває тег;
- є відкриває тег без наявності обов'язкового закриває.
<p> Текст </p> <br>
<p> Текст </p> </p>
<p> abc <br> <table> ... </table> </p>
Рішення
Змініть порядок тегів видаліть один з відкривають або закривають тегів.
... anchor" ..." already defined
Значення атрибута name у різних тегів збігається між собою. Значення name має бути унікальним.
<form name="my_form1" action="test1.php"> </form> <form name="my_form2" action="test2.php"> </form>
<form name="my_form" action="test1.php"> </form> <form name="my_form" action="test2.php"> </form>
Рішення
Виберіть інше ім'я або змініть попередні імена таким чином, щоб вони не збігалися.
<...> is probably intended as </...>
Тег повторюється двічі в коді HTML, тоді як подібний тег не повинен містити сам себе.
<em> Привіт, світ! </em>
<em> Привіт <em> , світ! </em> </em>
Рішення
Видаліть один з тегів.
<...> lacks" ..." attribute
Потрібно обов'язковий атрибут тега, який, тим не менш, відсутня.
<form action="my_action.php">
<form>
Рішення
Додайте відсутній атрибут до тегу.