[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Строка 82:
== Валидация XHTML документов ==
 
[[Валидность|Валидным]] (т. е.то есть отвечающим всем правилам) XHTML-документом считается документ, удовлетворяющий технической спецификации. В идеале, все [[браузер]]ы должны следовать веб-стандартам и, в соответствии с ними, валидные документы должны отображаться во всех браузерах на всех [[Операционная система|платформах]]. Валидация XHTML-документа рекомендована даже несмотря на то, что она не гарантирует [[Кросс-браузерность|кросс-браузерности]]. Документ может быть проверен на соответствие спецификации с помощью онлайновой [http://validator.w3.org/ Службы валидации разметки] [[W3C]]. Валидация обнаружит и разъяснит ошибки в XHTML-разметке.
 
Валидный документ должен содержать определение типа документа ([[DTD]]). DTD должен быть расположен до всех других элементах документа. Вот наиболее распространённые типы DTD для XHTML:
 
* XHTML 1.0 Strict
<source lang="html4strict">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
</source>
;* XHTML 1.0 Transitional
<source lang="html4strict">
: <code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></nowiki></code>
</source>
;* XHTML 1.0 Frameset
<source lang="html4strict">
: <code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"></nowiki></code>
</source>
;* XHTML 1.0 Mobile
<source lang="html4strict">
: <code><nowiki><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"></nowiki></code>
</source>
;* XHTML 1.1
<source lang="html5">
: <code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"></nowiki></code>
</source>
;XHTML 1.0 Transitional
: <code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></nowiki></code>
;XHTML 1.0 Frameset
: <code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"></nowiki></code>
;XHTML 1.0 Mobile
: <code><nowiki><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"></nowiki></code>
;XHTML 1.1
: <code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"></nowiki></code>
 
 
Пространство имён тегов xhtml должно быть обозначено в корневом теге как "«http://www.w3.org/1999/xhtml" »<ref>[http://www.w3.org/TR/xhtml11/conformance.html#s_conform Conformance Definition]{{ref-en}}</ref>
 
Самыми распространёнными ошибками в XHTML-разметке являются:
* Незакрытые элементы (XHTML, в отличие от HTML, требует закрытия всех элементов, в том числе не имеющих закрывающего тега, как, например, <code><nowiki><br /></nowiki></code>).
* Отсутствие альтернативных текстов для изображений (достигающихся применением атрибута <code><nowiki>alt</nowiki></code>, который помогает сделать документы доступнее для устройств, которые не в состоянии отображать изображения, или предназначенных для слабовидящих людей).
* Присутствие текста непосредственно в теге <code><nowiki><body></nowiki></code> документа (должен быть объявлен блочный элемент, внутрь которого следует помещать содержимое).
* Вложение блочных элементов внутрь инлайновых (внутристрочных) (например, блочные элементы <code><nowiki><div></nowiki></code> или <code><nowiki><p></nowiki></code> не могут быть вложены внутрь инлайновых элементов <code><nowiki><a></nowiki></code>, <code><nowiki><span></nowiki></code>, <code><nowiki><em></nowiki></code> и так далее).
* Пренебрежение заключением значений атрибутов в кавычки (<code><nowiki><a href=http://example.com/></nowiki></code> вместо <code><nowiki><a href="http://example.com/"></nowiki></code>).
* Неправильное вложение элементов (конструкции вида <code>&lt;<nowiki><strong> &lt;<em> &lt;</strong> &lt;</em></nowiki></code>).
* Неправильное использование [[Мнемоники в HTML|ссылок-мнемоник]] (например, <code><nowiki>&amp;</nowiki></code> вместо <code><nowiki>&amp;amp;</nowiki></code>)
* Написание тегов и/или атрибутов прописными буквами (<code><nowiki><DIV STYLE="…"></nowiki></code> вместо <code><nowiki><div style="..."></nowiki></code>).
* Задание в теге <code><nowiki><!DOCTYPE …></nowiki></code> относительного пути к DTD-файлу (<code><nowiki>"DTD/xhtml11.dtd"</nowiki></code> вместо <code><nowiki>"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"</nowiki></code>).
 
Это неполный список, но дающий общее представление о часто допускаемых ошибках при составлении XHTML-документов.
 
Валидный XHTML-документ можно снабжать специальным [[Баннер (интернет)|баннером]] W3C, подтверждающим валидность XHTML-разметки.