no-disallowed-attr
属性が仕様で定義されているものの、この文脈では許可されていない場合に警告します: その要素での使用が明示的に禁止されている(noUse)、条件付き属性の条件が現在成立していない、あるいは autonomous custom element に is 属性が指定されている場合です。
このルールはHTML Living Standardに基づいています。設定は@markuplint/html-specにあります。
属性名がそもそも存在するかどうかはno-unknown-attrの担当、許可されている属性の値が不正な場合はno-invalid-attr-valueの担当です。
❌ 間違ったコード例
<a target="_blank">The Anchor</a>
✅ 正しいコード例
<a href="/" target="_blank">The Anchor</a>
注記
このルールは、特定の条件下でスプレッド属性を持つ要素を評価しません。例えば、href属性を持たないa要素にtarget属性を設定することを禁止しますが、スプレッド属性にhrefプロパティが含まれるかどうかが分からない場合、Markuplintは評価できません。
const Component = (props) => {
return <a target="_blank" {...props}>;
}
Interface
{
"no-disallowed-attr": boolean
}
Options
{
"no-disallowed-attr": {
"options": {
"allowAttrs"?: (string | Attr)[] | Record<string, AttributeType | Pattern>
"ignoreAttrNamePrefix"?: string | string[]
}
}
}
type Attr = {
name: string;
value: AttributeType | Pattern;
}
type Pattern = { pattern: string; };
AttributeTypeはタイプAPIを参照してください。PatternもタイプAPIの一部です。
| Property | Type | Default Value | Description |
|---|---|---|---|
allowAttrs | (string | | undefined | 仕様に定義されていない属性名を、既知かつ許可された属性として扱うために指定します。no-unknown-attrが受け取るものと同じオプションです。要素が受け付ける属性を拡張する場合は、両方のルールに同じ値を設定してください。 |
ignoreAttrNamePrefix | string | | undefined | HTMLの仕様には存在しない、Viewライブラリやテンプレートエンジン固有の属性およびディレクティブを除外するために、プレフィックスを設定します。 |
Default Severity
error
詳細
allowAttrsオプションの設定
no-unknown-attrが受け取る同名のオプションと同じ形式です。詳細はそちらを参照してください。両方のルールに同じallowAttrsを設定してください。
ignoreAttrNamePrefixオプションの設定
no-unknown-attrが受け取る同名のオプションと同じ形式です。