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

no-invalid-attr-value

属性の値が仕様(あるいはカスタムルール)が要求する型やパターンに一致しない場合に警告します。

このルールはHTML Living Standardに基づいています。設定は@markuplint/html-specにあります。

属性名がそもそも既知で適用可能かどうかはno-unknown-attrno-disallowed-attrの担当です。このルールは、それらが既に許可している属性の値のみを検査します。

❌ 間違ったコード例

<button tabindex="non-integer">The Button</button> <a href="/" referrerpolicy="invalid-value">The Anchor</a>

✅ 正しいコード例

<button tabindex="0">The Button</button> <a href="/" referrerpolicy="no-referrer">The Anchor</a>
注記

このルールは、特定の条件下でスプレッド属性を持つ要素を評価しません(no-disallowed-attrの同じ注記を参照)。また、動的な(テンプレートで埋め込まれる)値は、Lint実行時に内容が分からないため不正な値として報告されません。

Interface

{
"no-invalid-attr-value": boolean
}

Options

{
"no-invalid-attr-value": {
"options": {
"allowAttrs"?: (string | Attr)[] | Record&lt;string, AttributeType | Pattern&gt;
}
}
}
type Attr = {
name: string;
value: AttributeType | Pattern;
}

type Pattern = { pattern: string; };

AttributeTypeタイプAPIを参照してください。PatternもタイプAPIの一部です。

PropertyTypeDefault ValueDescription
allowAttrs(string | Attr)[] | Record<string, AttributeType | Pattern>undefined仕様に定義されていない属性名に対する値の型またはパターンを指定します。no-unknown-attrが受け取るものと同じオプションです。要素が受け付ける属性を拡張する場合は、両方のルールに同じ値を設定してください。

Default Severity

error

詳細

allowAttrsオプションの設定

no-unknown-attrが受け取る同名のオプションと同じ形式です。このルールは、そこで指定されたvalueの型・パターンを使って属性値を検証します。両方のルールに同じallowAttrsを設定してください。

設定例

RDFa (RDFa lite)

vocabの値はURLなので、no-unknown-attrがこの属性を許可した後、このルールによって検査されます:

{
"rules": {
"no-invalid-attr-value": {
"options": {
"allowAttrs": [
{
"name": "vocab",
"value": "URL"
}
]
}
}
}
}