Советы по валидации сайта

20.04.2011
Валидация сайта, есть ничто иное как сверка кода сайта на ошибки и приближенность к стандартам оформления. В данной заметке будут отмечены несколько основных ошибок сайтостроителей, исправление которых понесет за собой уменьшение в разы количества ошибок при проверке валидации.

Начнём с того, где же проверить валидарен ли сайт? А всё просто, вот здесь [URL="http://validator.w3.org/"]http://validator.w3.org. Вводите адрес сайта, нажимаете Check и любуетесь на своё творение =)

Основные ошибки


1) there is no attribute "background", в данном случае вместо backgrund может быть любое другое свойство, например height. Данной ошибкой валидатор хочет нам сказать что не гоже так писать, и надо бы все эти свойства не явно писать, а в CSS запихать.
Например, вместо:
<td height='6' width='6' background='images/cartinka.png'></td>

напишем что нибудь более красивое, типа
<td class='beauty'></td>

И конечно же не забываем описать класс beauty. И всё что можно записать в CSS, лучше туда и записать, и удобнее для вас и ошибок меньше в валидаторе =)

2) general entity "id" not defined and no default entity, тут также вместо id может любая другой параметр в ссылке, например
<a href='?page=blog&id=1'>Ссылка №1</a>

И дело тут вовсе не в самом параметре id, а в символе перед ним, т.е. &. И что же тут такого спросите вы? А всё просто, в ссылках надо все символы типа <>!"'& и т.д. заменять на их коды, тот же самый знак амперсанд (&) записывается как &, т.е правильно будет:
<a href='?page=blog&id=1'>Ссылка №1</a>


3) required attribute alt not specified, данная ошибка говорит о том, что в теге <img /> должно быть обязательно свойство alt, хоть пустое, но должно быть.
<img src='images/cartinka.png' alt='Картинка' />


4) end tag for "br" omitted, but OMITTAG NO was specified, и здесь опять таки вместо br, может быть любой одиночный (не закрывающийся) тег, например br, hr, img и т.д. Но, как ни странно, их тоже надо закрывать, для этого в конце тега надо добавить слэш, значит вместо <br> пишем <br/>, вместо <img src=''> пишем <img src=''/> и т.д.

5) an attribute value must be a literal unless it contains only name characters
Просто возьмите ссылку в ковычки.
Неправильно:
<a href=?page=1>Ссыль</a>

Правильно:
va href='?page=1'>Ссыль</a>


Ну и конечно же, в коде не должно быть синтаксических ошибок и не закрытых тегов, о том, как их легко найти с помощью Google Chrome, напишу как-нибудь позже.

P.S. Когда я провел валидацию этого блога то у меня было 100 ошибок и 168 предупреждений, а после подведения страниц блога под стандарты указанные в первых трёх пунктах этого поста, ошибок и вовсе не осталось. И не стоит забывать, что сайт состоит не только из главной страницы, поэтому стоит проверить и все остальные.