Ошибки встречающееся при валидации XHTML
Вчера решил проверить свой блог на валидность по XHML, валидатор Validator.w3.org обнаружил множество ошибок, так как очень силен в HTML пишу эту памятку, может и кому то пригодится.
Для чего нужен валидный HTML?
Код который написан без соблюдения правил и стандартов считается невалидным. Valid означает действительный, правильный. Валидный XHTML — правильно отображается во всех браузерах, лучше индексируется поисковыми роботами, уже изначально расположен к повышенной семантике, показывает вашу грамотность при создании интернет-проекта.
Ошибки при проверки XHTML и их решения
Амперсанд («&»)
Пример:
1 | <a href="index.php?pid=1&id=2">...</a> |
Сообщение валидатора: Entity was defined here
Решение: Всегда использовать & вместо &.
Правильный Синтаксис:
1 | <a href="index.php?pid=1&amp;id=2">...</a> |
Неправильная вложенность элементов
Пример:
1 | <strong><em>...</strong></em> |
Сообщение валидатора: Missing
1 | </em> |
Решение: В XHTML элементы должны быть закрыты в порядке, обратном их открытию.
Правильный Синтаксис:
1 | <strong><em>...</em></strong> |
Весь DOCTYPE написан в нижнем регистре
Пример:
1 | <!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" |
«//www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd» >
Сообщение валидатора: Missing DOCTYPE
Решение: DOCTYPE регистрозависим, надо писать правильно.
Так::
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
«//www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd» >
Отсутствует закрывающий » /»
Пример:
1 | <img src="image.gif" width="100" height="100" alt="Logo"> |
Сообщение валидатора: Missing closing tag
Решение: Так называемые «пустые элементы», например img или br,
должны заканчиваться»/» c пробелом перед ним.
Правильный Синтаксис:
1 | <img src="image.gif" width="100" height="100" alt="Logo" /> |
Тэги в верхнем регистре
Пример:
1 | <STRONG><EM>...</EM></STRONG> |
Сообщение валидатора: There is no such element…
Решение: Использовать написание в нижнем регистре для всех HTML элементов и названий атрибутов. В XHTML документах все элементы и атрибуты должны быть в нижнем регистре. Это важно потому, что XML регистрозависим и для него
1 | <em> |
1 | <EM> |
Правильный Синтаксис:
1 | <strong><em>...</em></strong> |
Значения атрибутов не в кавычках
Пример:
1 | <td rowspan=3> |
Сообщение валидатора: Missing » «
Решение: Все значения атрибутов должны быть в кавычках.
Правильный Синтаксис:
1 | <td rowspan="3"> |
У img отсутствует атрибут alt
Пример:
1 | <img src="/images/pic.jpg" width="100" height="100" /> |
Сообщение валидатора: required attribute «alt» not specified
Решение: У всех тегов img должен быть атрибут alt, значение атрибута можно оставить пустым, если избражение является элементом оформления.
Правильный Синтаксис:
1 | <img src="/images/pic.jpg" width="100" height="100" alt="" /> |
Пожалуйста, присылайте нам любые комментарии и дополнения валидных кодов и их решения.