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

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&lt;string, AttributeType | Pattern&gt;
"ignoreAttrNamePrefix"?: string | string[]
}
}
}
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が受け取るものと同じオプションです。要素が受け付ける属性を拡張する場合は、両方のルールに同じ値を設定してください。
ignoreAttrNamePrefixstring | string[]undefinedHTMLの仕様には存在しない、Viewライブラリやテンプレートエンジン固有の属性およびディレクティブを除外するために、プレフィックスを設定します。

Default Severity

error

詳細

allowAttrsオプションの設定

no-unknown-attrが受け取る同名のオプションと同じ形式です。詳細はそちらを参照してください。両方のルールに同じallowAttrsを設定してください。

ignoreAttrNamePrefixオプションの設定

no-unknown-attrが受け取る同名のオプションと同じ形式です。