no-stray-head-or-body-tag
HTML Living Standard が <head> 内に許可していないコンテンツ(例: <math>)が現れると、head は暗黙的に閉じられ、問題のトークンは <body> 側で再処理されます。この暗黙的な終了自体はパースエラーではありませんが、その後もソース中に明示的な </head> タグや2つ目の <body> 開始タグが残っている場合、それらのトークンは手遅れのタイミングで到着することになります。
- §13.2.6.4.7 ("in body" 挿入モード、"Any other end tag") により、現在開いている要素と一致しない終了タグはパースエラーです。
- 同じ節の "A start tag whose tag name is 'body'" により、2つ目の
<body>開始タグもパースエラーです。
❌ このルールに適合しない誤ったコードの例
<head>
<title>math in head</title>
<math><mi>x</mi></math>
</head>
<body></body>
✅ このルールに適合する正しいコードの例
<head>
<title>ordinary head content</title>
</head>
<body>
<math><mi>x</mi></math>
</body>
Interface
{
"no-stray-head-or-body-tag": boolean
}
VALUE_DESCRIPTION_IN_JAPANESE
Options
{
"no-stray-head-or-body-tag": {
"options": {
"__OPTIONS_PROP_NAME__"?: boolean
}
}
}
| Property | Type | Default Value | Description |
|---|---|---|---|
__OPTIONS_PROP_NAME__ | boolean | "true" | OPTIONS_PROP_DESCRIPTION_IN_JAPANESE |
Default Severity
error