Валидатор HTML, который я нашел сегодня - http://html5.validator.nu/ - говорит, что я неправильно использовал элемент <noscript>
.Мой исходный код XHTML выглядит следующим образом:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<body>
<div id="head">
<noscript>
<p>JavaScript is disabled.</p>
</noscript>
...
Сообщение об ошибке от валидатора выглядит так:
Ошибка: не допускается, чтобы в качестве дочернего элемента элемента XHTML div использовался дочерний элемент элемента XHTMLконтекст.(Подавление дальнейших ошибок из этого поддерева.)
Контексты, в которых может использоваться noscript элемента:
- В элементе head документа HTML, если нет элементов noscript предка.
- Если в документах HTML ожидается фразовое содержимое, если нет элементов noscript предка.
Модель содержимого для элемента div:
Теперь я перешел к документации Mozilla и попытался понять, что это значит.Я нашел некоторую информацию о категориях контента, потоковом контенте, фразеологизированном контенте, какие элементы принадлежат каждой категории (что именно означает «принадлежать») и как можно использовать элемент <noscript>
.(https://developer.mozilla.org/en/HTML/Element/noscript)
Теперь я знаю это: <div>
должен содержать содержимое потока. <noscript>
должно присутствовать в фразе контента. Это, очевидно, не соответствует. Как я могу управлять этим? Многие элементы находятся в обоихкатегории, потоки и фразы, хотя они не кажутся несвязанными множествами, поэтому некоторые не могут решить, или я не понимаю.
Как спецификация HTML намеревается решить эту причуду?