Есть ли валидатор XHTML 5? - PullRequest
4 голосов
/ 06 октября 2011

Существует ли валидатор специально для XHTML 5, то есть XML-сериализация HTML 5?Валидатор W3C поддерживает типы документов:

  • HTML 5 (experimental): , которые обрабатывают как допустимые различные функции, которые не разрешены в XML, такие как неявно закрытые <br>теги.
  • несколько типов документов XHTML 1.0 и XHTML 1.1, которые не распознают новые теги в HTML 5.

Ответы [ 3 ]

5 голосов
/ 06 октября 2011

Вы можете использовать Validator.nu (X) HTML5 Validator (Living Validator):

http://html5.validator.nu/

Обратите внимание, что «живой валидатор» означает, что, поскольку сама спецификация HTML 5 постоянно развивается, то же самое происходит и с валидатором - результаты вашей валидации могут изменяться с течением времени (недействительная разметка может стать действительной и иначе).

Кроме того, обратите внимание, что Служба проверки разметки W3C прямо указывает после проверки:

Документ, расположенный в <...>, был успешно проверен как HTML5. Это означает, что рассматриваемый ресурс идентифицировал себя как «HTML5» и что мы успешно выполнили его формальную проверку. Реализации парсера, которые мы использовали для этой проверки, основаны на validator.nu (HTML5).

Таким образом, Validator.nu на самом деле является (X) валидатором HTML5.

4 голосов
/ 06 октября 2011

Валидатор W3C для HTML 5 фактически обнаруживает и проверяет XHTML 5:

  • При проверке по URI он использует тип контента, предоставленный сервером (XHTML, если он указывает application/xhtml+xml).
  • При проверке путем загрузки файла или непосредственного ввода он определяет, присутствует ли в файле атрибут xmlns. То есть

Это идентифицируется как XHTML (и поэтому правильно помечено как недействительное):

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>test</title></head>
<body><br></body></html>

Это идентифицируется как HTML (и поэтому правильно помечено как действительное):

<!DOCTYPE html><html>
<head><title>test</title></head>
<body><br></body></html>

Редактировать : Очевидно, они удаляют эту автоидентификацию. См эта ошибка .

2 голосов
/ 06 октября 2011

Вам необходимо понять, как валидатор определяет, имеет ли он дело с HTML или XHTML.

До HTML5 это делалось с использованием DOCTYPE, но с HTML5 это уже невозможно.В любом случае, это никогда не было хорошей идеей, потому что это не то, что делали браузеры.

Вместо этого, когда веб-страницы HTML5 обслуживаются по HTTP, валидатор следует поведению браузера и определяет сериализацию HTML с помощью параметра типа контента.

Рассмотрим эту разметку:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>test</title>
    </head>
    <body>
        Before Malformation
        <br>
        After Malformation
    </body>
</html>

Здесь можно увидеть тип контента text/html:

http://www.alohci.net/text/html/malformed.htm.ashx

ипроверено здесь:

http://validator.w3.org/check?uri=http%3A%2F%2Fwww.alohci.net%2Ftext%2Fhtml%2Fmalformed.htm.ashx&charset=%28detect+automatically%29&doctype=Inline&ss=1&group=0&user-agent=W3C_Validator%2F1.2

Обратите внимание, что в браузере отображаются Before Malformation и After Malformation и валидатор передает HTML.

та же самая разметка подается с типом содержимого application/xhtml+xml здесь:

http://www.alohci.net/application/xhtml+xml/malformed.htm.ashx

и проверяется здесь:

http://validator.w3.org/check?uri=http%3A%2F%2Fwww.alohci.net%2Fapplication%2Fxhtml%2Bxml%2Fmalformed.htm.ashx&charset=%28detect+automatically%29&doctype=Inline&ss=1&group=0&user-agent=W3C_Validator%2F1.2

Обратите внимание, что в Firefox вы видите желтый экран смерти, в IE9 отображается только текст Before Malformation, а в Chrome текст Before Malformation отображается под большим сообщением об ошибке.Валидатор сообщает об ошибках.

 ---

Теперь, когда вы непосредственно вводите разметку, чтобы у валидатора не было никакой информации о типе контента, он делает предположение, как вы обнаружилина основе атрибута xmlns элемента html.Это может быть только предположением, потому что атрибут xmlns со значением http://www.w3.org/1999/xhtml допустим в сериализации HTML.

...