style要素の先頭に要素がある場合、バリデーターのエラーメッセージはエラーにbodyなっています。メッセージの説明が示すように、scoped属性が使用されている場合、そのような構成は許可されます。
属性を使用するscopedことは、まだブラウザが実装していないため意味がありませんが、使用する場合、将来のブラウザは要素を現在のブラウザとはまったく異なる方法で解釈する可能性があります。したがって、上記は問題の正式な側面にすぎません。
属性のない単純なstyle要素は、に配置されている場合でもブラウザで機能しますbody。正式なルールはそれを禁止しているだけであり、HTML5は現在、提示されたユースケースは重要ではないと編集者が考えているという理由だけでそれに固執しています。
ただし、すべての仕様で有効な要素をstyle要素内に配置することをお勧めします。head(body通常、これを挿入する必要があるのは、作成者が制御headできないが、コードを挿入できる場合のみbodyです。)
状況によってはバリデーターが使用する「このコンテキストで」という表現は、明らかに紛らわしいものです。それは、さらに悪い(誤解を招く)処方を避けるために、私がずっと前に提案したいくつかの変更の結果だと思います。表現は意味があります。たとえば、マークアップが
<div>
foo
<style scoped></style>
</div>
これはHTML5のルールでは間違っています。これは、style属性を内部bodyで使用する場合、その親の先頭に表示する必要があるためです。「foo」がstyle要素の後に削除または移動された場合、コンテキストが変更され、マークアップがHTML5準拠になります。