メインコンテンツまでスキップ

no-unescaped-char

テキストノードや属性値でリテラルの<が未エスケープのまま出現する場合に警告します。HTML Living Standard §13.1.2.3–4が作者にエスケープを要求しているのはリテラルの<と「あいまいなアンパサンド」のみで、それ以外(>"、参照の形をしていない素の&)はそのままでも仕様に準拠しています。

&name;の形をしていて名前が未知(不正)なものはno-malformed-character-referenceの担当であり、このルールの対象ではありません — parse5自身の検出をミラーしています。

❌ 間違ったコード例

<div id="a"> < </div>

✅ 正しいコード例

<div id="a"> &lt; </div>
<div id="a"> > & " </div>
<img src="path/to?a=b&c=d">

Interface

{
"no-unescaped-char": boolean
}

Options

{
"no-unescaped-char": {
"options": {
"strict"?: boolean
}
}
}
PropertyTypeDefault ValueDescription
strictboolean"false">"、および素の&&amp;のような実体参照の形をしたものは除く)もすべて検出対象にします。デフォルトでは無効です。HTML Living Standardが未エスケープを禁止しているのはリテラルの<とあいまいなアンパサンドのみで、>"はそのままでも仕様に準拠しているためです。

Default Severity

error

詳細

strictオプションの設定

trueを指定すると、>"、および素の&(&amp;のような実体参照の形をしたものはどちらのモードでも除外)もすべて検出対象にします。デフォルトは無効です。

{
"no-unescaped-char": {
"options": {
"strict": true
}
}
}

strict: trueでの間違ったコード例

<div id="a"> > < & " </div>
<img src="path/to?a=b&c=d">