@markuplint/config-presets 5.0.0-rc.1 → 5.0.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +5 -0
- package/package.json +7 -3
- package/preset.a11y.json +1 -1
- package/preset.html-standard.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [5.0.0-rc.4](https://github.com/markuplint/markuplint/compare/v5.0.0-rc.3...v5.0.0-rc.4) (2026-04-19)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @markuplint/config-presets
|
|
9
|
+
|
|
10
|
+
# [5.0.0-rc.3](https://github.com/markuplint/markuplint/compare/v5.0.0-rc.2...v5.0.0-rc.3) (2026-04-19)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @markuplint/config-presets
|
|
13
|
+
|
|
14
|
+
# [5.0.0-rc.2](https://github.com/markuplint/markuplint/compare/v5.0.0-rc.1...v5.0.0-rc.2) (2026-04-15)
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
- **config-presets:** add document uniqueness rules to html-standard preset ([6ed848b](https://github.com/markuplint/markuplint/commit/6ed848bd800416d1220b9de95ece7a3d752d881f))
|
|
19
|
+
- **config-presets:** split a11y/wai-aria into 16 namedRuleGroup entries ([7ab707b](https://github.com/markuplint/markuplint/commit/7ab707b4ae1c1843a0576d31bf3fb20f0f5f7686))
|
|
20
|
+
- **html-spec:** use #nonEmptyText for title and option elements ([ede5d4c](https://github.com/markuplint/markuplint/commit/ede5d4c87c72b7e2e95f17799f3632eb9108feef))
|
|
21
|
+
|
|
6
22
|
# [5.0.0-rc.1](https://github.com/markuplint/markuplint/compare/v5.0.0-rc.0...v5.0.0-rc.1) (2026-03-27)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @markuplint/config-presets
|
package/README.md
CHANGED
|
@@ -53,6 +53,8 @@ No use deprecated attr|Authors must not use deprecated attributes from the viewp
|
|
|
53
53
|
No use deprecated element|Authors must not use deprecated elements from the viewpoint of compatibility.|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
54
54
|
[Require `doctype`](https://html.spec.whatwg.org/multipage/syntax.html#syntax-doctype)|It has the effect of avoiding quirks mode.|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
55
55
|
Must not skip heading levels| |✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
56
|
+
[No duplicate autofocus](https://html.spec.whatwg.org/multipage/interaction.html#the-autofocus-attribute)|There must not be two elements with the autofocus attribute specified in the same document.|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
57
|
+
[No duplicate visible main](https://html.spec.whatwg.org/multipage/grouping-content.html#the-main-element)|There must not be more than one visible main element in a document.|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
56
58
|
No use ineffective attr| |✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
57
59
|
[No duplicate names in `<dl>`](https://html.spec.whatwg.org/multipage/grouping-content.html#the-dl-element:~:text=Within%20a%20single%20dl%20element%2C%20there%20should%20not%20be%20more%20than%20one%20dt%20element%20for%20each%20name)|Within a single dl element, there should not be more than one dt element for each name.|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
58
60
|
No use **orphaned end tag**| |✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
@@ -63,6 +65,9 @@ Specify required attr| |✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
|
63
65
|
[Enforce WHATWG constraints between `srcset`, `sizes`, and `loading` attributes](https://html.spec.whatwg.org/multipage/images.html#srcset-attributes)| |✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
64
66
|
[Validate link type keywords](https://html.spec.whatwg.org/multipage/links.html#linkTypes)|Validates that `rel` attribute keywords are allowed on the given element and context (e.g., body-ok for `<link>` inside `<body>`).|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
65
67
|
[Specify `charset=UTF-8`](https://html.spec.whatwg.org/multipage/semantics.html#charset)| |✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
68
|
+
[No duplicate meta charset](https://html.spec.whatwg.org/multipage/semantics.html#attr-meta-charset)|There must not be more than one meta element with a charset attribute per document.|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
69
|
+
[No duplicate meta description](https://html.spec.whatwg.org/multipage/semantics.html#standard-metadata-names)|There must not be more than one meta element where the name attribute value is an ASCII case-insensitive match for "description" per document.|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
70
|
+
[No coexistence of meta charset and meta http-equiv content-type](https://html.spec.whatwg.org/multipage/semantics.html#attr-meta-charset)|A document must not contain both a meta element with an http-equiv attribute in the Encoding declaration state and a meta element with the charset attribute.|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
66
71
|
[No use `<small>` as **subheadings**](https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-small-element)|The small element must not be used for subheadings.|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
67
72
|
[No use `<caption>` within `<figure>`](https://html.spec.whatwg.org/multipage/tables.html#the-caption-element)|When `<table>` is the only content in `<figure>` other than `<figcaption>`, `<caption>` should be omitted in favor of `<figcaption>`.|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
|
68
73
|
[Require `title` attr in `<input pattern>`](https://html.spec.whatwg.org/multipage/input.html#attr-input-pattern)|When an `<input>` element has a `pattern` attribute specified, authors should include a `title` attribute to give a description of the pattern.|✅|✅|✅|✅|✅|❌|❌|❌|✅|❌|❌|❌|
|
package/package.json
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@markuplint/config-presets",
|
|
3
|
-
"version": "5.0.0-rc.
|
|
3
|
+
"version": "5.0.0-rc.4",
|
|
4
4
|
"description": "markuplint config presets",
|
|
5
|
-
"repository":
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/markuplint/markuplint.git",
|
|
8
|
+
"directory": "packages/@markuplint/config-presets"
|
|
9
|
+
},
|
|
6
10
|
"author": "Yusuke Hirao <yusukehirao@me.com>",
|
|
7
11
|
"license": "MIT",
|
|
8
12
|
"engines": {
|
|
@@ -20,5 +24,5 @@
|
|
|
20
24
|
"jsonc-parser": "3.3.1",
|
|
21
25
|
"mustache": "4.2.0"
|
|
22
26
|
},
|
|
23
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "97a6339bbae23f556de5d307b3ce2ef7cfd9402d"
|
|
24
28
|
}
|
package/preset.a11y.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"rules":{"a11y/id-duplication":{"specConformance":"normative","rules":{"id-duplication":true}},"a11y/no-accesskey":{"specConformance":"non-normative","rules":{"invalid-attr":{"options":{"disallowAttrs":["accesskey"]}}}},"a11y/label-has-control":{"specConformance":"non-normative","rules":{"label-has-control":true}},"a11y/landmark-roles":{"specConformance":"non-normative","rules":{"landmark-roles":true}},"a11y/neighbor-popovers":{"specConformance":"non-normative","rules":{"neighbor-popovers":true}},"a11y/no-ambiguous-navigable-target-names":{"specConformance":"non-normative","rules":{"no-ambiguous-navigable-target-names":true}},"a11y/no-consecutive-br":{"specConformance":"non-normative","rules":{"no-consecutive-br":true}},"a11y/no-refer-to-non-existent-id":{"specConformance":"normative","rules":{"no-refer-to-non-existent-id":true}},"a11y/redundant-accessible-name":{"specConformance":"non-normative","rules":{"redundant-accessible-name":true}},"a11y/require-accessible-name":{"specConformance":"non-normative","rules":{"require-accessible-name":true}},"a11y/require-dialog-autofocus":{"specConformance":"non-normative","rules":{"require-dialog-autofocus":true}},"a11y/required-h1":{"specConformance":"non-normative","rules":{"required-h1":true}},"a11y/table-row-column-alignment":{"specConformance":"non-normative","rules":{"table-row-column-alignment":true}},"a11y/use-list":{"specConformance":"non-normative","rules":{"use-list":true}},"a11y/wai-aria":{"specConformance":"normative","rules":{"wai-aria":true}}},"nodeRules":[{"name":"a11y/html-lang","specConformance":"non-normative","selector":":where(html)","rules":{"required-attr":["lang"]}},{"name":"a11y/abbr-title","specConformance":"non-normative","selector":":where(abbr)","rules":{"required-attr":["title"]}},{"name":"a11y/media-track","specConformance":"non-normative","selector":":where(video, audio)","rules":{"required-element":["track"]}},{"name":"a11y/video-autoplay-muted","specConformance":"non-normative","selector":":where(video[autoplay])","rules":{"required-attr":["muted"]}},{"name":"a11y/no-merge-cells","specConformance":"non-normative","selector":":where(th, td)","rules":{"invalid-attr":{"options":{"disallowAttrs":["colspan","rowspan"]}}}},{"name":"a11y/summary-no-interactive","specConformance":"non-normative","selector":":where(summary)","rules":{"disallowed-element":[":model(interactive)"]}},{"name":"a11y/no-autofocus-outside-dialog","specConformance":"non-normative","selector":":where(:not(dialog, dialog *))","rules":{"invalid-attr":{"options":{"disallowAttrs":["autofocus"]}}}},{"name":"a11y/tabindex-restrict","specConformance":"non-normative","selector":":where(:not(dialog))","rules":{"invalid-attr":{"options":{"allowAttrs":[{"name":"tabindex","value":{"enum":["-1","0"]}}]}}}},{"name":"a11y/viewport-no-user-scalable","specConformance":"non-normative","selector":":where(meta[name='viewport' i])","rules":{"invalid-attr":{"options":{"disallowAttrs":[{"name":"content","value":{"pattern":"/user-scalable\\s*=\\s*(no|0)\\b/i"}}]}}}}]}
|
|
1
|
+
{"rules":{"a11y/id-duplication":{"specConformance":"normative","rules":{"id-duplication":true}},"a11y/no-accesskey":{"specConformance":"non-normative","rules":{"invalid-attr":{"options":{"disallowAttrs":["accesskey"]}}}},"a11y/label-has-control":{"specConformance":"non-normative","rules":{"label-has-control":true}},"a11y/landmark-roles":{"specConformance":"non-normative","rules":{"landmark-roles":true}},"a11y/neighbor-popovers":{"specConformance":"non-normative","rules":{"neighbor-popovers":true}},"a11y/no-ambiguous-navigable-target-names":{"specConformance":"non-normative","rules":{"no-ambiguous-navigable-target-names":true}},"a11y/no-consecutive-br":{"specConformance":"non-normative","rules":{"no-consecutive-br":true}},"a11y/no-refer-to-non-existent-id":{"specConformance":"normative","rules":{"no-refer-to-non-existent-id":true}},"a11y/redundant-accessible-name":{"specConformance":"non-normative","rules":{"redundant-accessible-name":true}},"a11y/require-accessible-name":{"specConformance":"non-normative","rules":{"require-accessible-name":true}},"a11y/require-dialog-autofocus":{"specConformance":"non-normative","rules":{"require-dialog-autofocus":true}},"a11y/required-h1":{"specConformance":"non-normative","rules":{"required-h1":true}},"a11y/table-row-column-alignment":{"specConformance":"non-normative","rules":{"table-row-column-alignment":true}},"a11y/use-list":{"specConformance":"non-normative","rules":{"use-list":true}},"a11y/wai-aria/non-existent-role":{"specConformance":"normative","rules":{"wai-aria-non-existent-role":true}},"a11y/wai-aria/abstract-role":{"specConformance":"normative","rules":{"wai-aria-abstract-role":true}},"a11y/wai-aria/permitted-roles":{"specConformance":"normative","rules":{"wai-aria-permitted-roles":true}},"a11y/wai-aria/implicit-role":{"specConformance":"non-normative","severity":"warning","rules":{"wai-aria-implicit-role":true}},"a11y/wai-aria/implicit-props":{"specConformance":"non-normative","severity":"warning","rules":{"wai-aria-implicit-props":true}},"a11y/wai-aria/required-props":{"specConformance":"normative","rules":{"wai-aria-required-props":true}},"a11y/wai-aria/disallowed-props":{"specConformance":"normative","rules":{"wai-aria-disallowed-props":true}},"a11y/wai-aria/deprecated-role":{"specConformance":"non-normative","severity":"warning","rules":{"wai-aria-deprecated-role":true}},"a11y/wai-aria/deprecated-props":{"specConformance":"non-normative","severity":"warning","rules":{"wai-aria-deprecated-props":true}},"a11y/wai-aria/value":{"specConformance":"normative","rules":{"wai-aria-value":true}},"a11y/wai-aria/required-owned-elements":{"specConformance":"normative","severity":"warning","rules":{"wai-aria-required-owned-elements":true}},"a11y/wai-aria/required-parent-role":{"specConformance":"normative","rules":{"wai-aria-required-parent-role":true}},"a11y/wai-aria/presentational-children":{"specConformance":"non-normative","severity":"warning","rules":{"wai-aria-presentational-children":true}},"a11y/wai-aria/no-global-prop":{"specConformance":"normative","rules":{"wai-aria-no-global-prop":true}},"a11y/wai-aria/default-value":{"specConformance":"non-normative","severity":"warning","rules":{"wai-aria-default-value":true}},"a11y/wai-aria/interaction-in-hidden":{"specConformance":"non-normative","severity":"warning","rules":{"wai-aria-interaction-in-hidden":true}}},"nodeRules":[{"name":"a11y/html-lang","specConformance":"non-normative","selector":":where(html)","rules":{"required-attr":["lang"]}},{"name":"a11y/abbr-title","specConformance":"non-normative","selector":":where(abbr)","rules":{"required-attr":["title"]}},{"name":"a11y/media-track","specConformance":"non-normative","selector":":where(video, audio)","rules":{"required-element":["track"]}},{"name":"a11y/video-autoplay-muted","specConformance":"non-normative","selector":":where(video[autoplay])","rules":{"required-attr":["muted"]}},{"name":"a11y/no-merge-cells","specConformance":"non-normative","selector":":where(th, td)","rules":{"invalid-attr":{"options":{"disallowAttrs":["colspan","rowspan"]}}}},{"name":"a11y/summary-no-interactive","specConformance":"non-normative","selector":":where(summary)","rules":{"disallowed-element":[":model(interactive)"]}},{"name":"a11y/no-autofocus-outside-dialog","specConformance":"non-normative","selector":":where(:not(dialog, dialog *))","rules":{"invalid-attr":{"options":{"disallowAttrs":["autofocus"]}}}},{"name":"a11y/tabindex-restrict","specConformance":"non-normative","selector":":where(:not(dialog))","rules":{"invalid-attr":{"options":{"allowAttrs":[{"name":"tabindex","value":{"enum":["-1","0"]}}]}}}},{"name":"a11y/viewport-no-user-scalable","specConformance":"non-normative","selector":":where(meta[name='viewport' i])","rules":{"invalid-attr":{"options":{"disallowAttrs":[{"name":"content","value":{"pattern":"/user-scalable\\s*=\\s*(no|0)\\b/i"}}]}}}}]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"rules":{"html-standard/attr-duplication":{"specConformance":"normative","rules":{"attr-duplication":true}},"html-standard/deprecated-attr":{"specConformance":"normative","rules":{"deprecated-attr":true}},"html-standard/deprecated-element":{"specConformance":"normative","rules":{"deprecated-element":true}},"html-standard/doctype":{"specConformance":"normative","rules":{"doctype":true}},"html-standard/heading-levels":{"specConformance":"non-normative","rules":{"heading-levels":true}},"html-standard/id-duplication":{"specConformance":"normative","rules":{"id-duplication":true}},"html-standard/ineffective-attr":{"specConformance":"non-normative","rules":{"ineffective-attr":true}},"html-standard/no-duplicate-dt":{"specConformance":"non-normative","rules":{"no-duplicate-dt":true}},"html-standard/no-refer-to-non-existent-id":{"specConformance":"normative","rules":{"no-refer-to-non-existent-id":true}},"html-standard/no-orphaned-end-tag":{"specConformance":"normative","rules":{"no-orphaned-end-tag":true}},"html-standard/permitted-contents":{"specConformance":"normative","rules":{"permitted-contents":true}},"html-standard/placeholder-label-option":{"specConformance":"normative","rules":{"placeholder-label-option":true}},"html-standard/require-datetime":{"specConformance":"normative","rules":{"require-datetime":true}},"html-standard/required-attr":{"specConformance":"normative","rules":{"required-attr":true}},"html-standard/srcset-sizes-constraint":{"specConformance":"normative","rules":{"srcset-sizes-constraint":true}},"html-standard/link-types":{"specConformance":"normative","rules":{"link-types":{"options":{"allowMicroformats":true}}}}},"nodeRules":[{"name":"html-standard/head-charset-utf8","specConformance":"normative","selector":":where(head)","rules":{"required-element":["meta[charset=\"UTF-8\" i]"]}},{"name":"html-standard/no-small-in-heading","specConformance":"normative","selector":"h1, h2, h3, h4, h5, h6","rules":{"disallowed-element":{"value":["small"],"reason":"The small element must not be used for subheadings. https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-small-element"}}},{"name":"html-standard/figure-no-caption","specConformance":"non-normative","selector":":where(figcaption ~ table, table:has(~ figcaption))","rules":{"disallowed-element":{"value":["caption"],"reason":"When a table element is the only content in a figure element other than the figcaption, the caption element should be omitted in favor of the figcaption. (https://html.spec.whatwg.org/multipage/tables.html#the-caption-element)"},"require-accessible-name":false}},{"name":"html-standard/input-pattern-title","specConformance":"non-normative","selector":":where(input[pattern])","rules":{"required-attr":{"value":[{"name":"title"}]}}},{"name":"html-standard/no-nested-details-name","specConformance":"normative","regexSelector":{"nodeName":"details","attrName":"name","attrValue":"^(?<value>.+)$","combination":{"combinator":" ","nodeName":"details"}},"rules":{"invalid-attr":{"options":{"disallowAttrs":[{"name":"name","value":{"pattern":"{{ value }}"}}]},"reason":"A document must not contain a details element that is a descendant of another details element in the same details name group."}}},{"name":"html-standard/no-shortcut-icon","specConformance":"non-normative","selector":"link","rules":{"invalid-attr":{"options":{"disallowAttrs":[{"name":"rel","value":{"pattern":"/\\bshortcut\\b/i"}}]},"reason":"The \"shortcut\" keyword is unnecessary. Use rel=\"icon\" instead. https://html.spec.whatwg.org/multipage/links.html#rel-shortcut-icon"}}}]}
|
|
1
|
+
{"rules":{"html-standard/attr-duplication":{"specConformance":"normative","rules":{"attr-duplication":true}},"html-standard/deprecated-attr":{"specConformance":"normative","rules":{"deprecated-attr":true}},"html-standard/deprecated-element":{"specConformance":"normative","rules":{"deprecated-element":true}},"html-standard/doctype":{"specConformance":"normative","rules":{"doctype":true}},"html-standard/heading-levels":{"specConformance":"non-normative","rules":{"heading-levels":true}},"html-standard/id-duplication":{"specConformance":"normative","rules":{"id-duplication":true}},"html-standard/no-duplicate-autofocus":{"specConformance":"normative","rules":{"no-duplicate-autofocus":true}},"html-standard/no-duplicate-visible-main":{"specConformance":"normative","rules":{"no-duplicate-visible-main":true}},"html-standard/ineffective-attr":{"specConformance":"non-normative","rules":{"ineffective-attr":true}},"html-standard/no-duplicate-dt":{"specConformance":"non-normative","rules":{"no-duplicate-dt":true}},"html-standard/no-refer-to-non-existent-id":{"specConformance":"normative","rules":{"no-refer-to-non-existent-id":true}},"html-standard/no-orphaned-end-tag":{"specConformance":"normative","rules":{"no-orphaned-end-tag":true}},"html-standard/permitted-contents":{"specConformance":"normative","rules":{"permitted-contents":true}},"html-standard/placeholder-label-option":{"specConformance":"normative","rules":{"placeholder-label-option":true}},"html-standard/require-datetime":{"specConformance":"normative","rules":{"require-datetime":true}},"html-standard/required-attr":{"specConformance":"normative","rules":{"required-attr":true}},"html-standard/srcset-sizes-constraint":{"specConformance":"normative","rules":{"srcset-sizes-constraint":true}},"html-standard/link-types":{"specConformance":"normative","rules":{"link-types":{"options":{"allowMicroformats":true}}}}},"nodeRules":[{"name":"html-standard/head-charset-utf8","specConformance":"normative","selector":":where(head)","rules":{"required-element":["meta[charset=\"UTF-8\" i]"]}},{"name":"html-standard/no-duplicate-charset","specConformance":"normative","selector":":where(head)","rules":{"disallowed-element":{"value":["meta[charset] ~ meta[charset]"]}}},{"name":"html-standard/no-duplicate-description","specConformance":"normative","selector":":where(head)","rules":{"disallowed-element":{"value":["meta[name=\"description\" i] ~ meta[name=\"description\" i]"]}}},{"name":"html-standard/no-charset-http-equiv-coexist","specConformance":"normative","selector":":where(head)","rules":{"disallowed-element":{"value":["meta[charset] ~ meta[http-equiv=\"content-type\" i]","meta[http-equiv=\"content-type\" i] ~ meta[charset]"]}}},{"name":"html-standard/no-small-in-heading","specConformance":"normative","selector":"h1, h2, h3, h4, h5, h6","rules":{"disallowed-element":{"value":["small"],"reason":"The small element must not be used for subheadings. https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-small-element"}}},{"name":"html-standard/figure-no-caption","specConformance":"non-normative","selector":":where(figcaption ~ table, table:has(~ figcaption))","rules":{"disallowed-element":{"value":["caption"],"reason":"When a table element is the only content in a figure element other than the figcaption, the caption element should be omitted in favor of the figcaption. (https://html.spec.whatwg.org/multipage/tables.html#the-caption-element)"},"require-accessible-name":false}},{"name":"html-standard/input-pattern-title","specConformance":"non-normative","selector":":where(input[pattern])","rules":{"required-attr":{"value":[{"name":"title"}]}}},{"name":"html-standard/no-nested-details-name","specConformance":"normative","regexSelector":{"nodeName":"details","attrName":"name","attrValue":"^(?<value>.+)$","combination":{"combinator":" ","nodeName":"details"}},"rules":{"invalid-attr":{"options":{"disallowAttrs":[{"name":"name","value":{"pattern":"{{ value }}"}}]},"reason":"A document must not contain a details element that is a descendant of another details element in the same details name group."}}},{"name":"html-standard/no-shortcut-icon","specConformance":"non-normative","selector":"link","rules":{"invalid-attr":{"options":{"disallowAttrs":[{"name":"rel","value":{"pattern":"/\\bshortcut\\b/i"}}]},"reason":"The \"shortcut\" keyword is unnecessary. Use rel=\"icon\" instead. https://html.spec.whatwg.org/multipage/links.html#rel-shortcut-icon"}}}]}
|