@markuplint/html-spec 2.0.0-dev.26 → 2.0.0-rc.5

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.
Files changed (228) hide show
  1. package/index.json +8572 -5691
  2. package/package.json +5 -3
  3. package/src/aria-in-html/abbr.json +8 -0
  4. package/src/aria-in-html/address.json +8 -0
  5. package/src/aria-in-html/b.json +8 -0
  6. package/src/aria-in-html/base.json +8 -0
  7. package/src/aria-in-html/bdi.json +8 -0
  8. package/src/aria-in-html/bdo.json +8 -0
  9. package/src/aria-in-html/blockquote.json +8 -0
  10. package/src/aria-in-html/canvas.json +8 -0
  11. package/src/aria-in-html/caption.json +8 -0
  12. package/src/aria-in-html/cite.json +8 -0
  13. package/src/aria-in-html/code.json +8 -0
  14. package/src/aria-in-html/data.json +8 -0
  15. package/src/aria-in-html/del.json +8 -0
  16. package/src/aria-in-html/div.json +8 -0
  17. package/src/aria-in-html/em.json +8 -0
  18. package/src/aria-in-html/hgroup.json +8 -0
  19. package/src/aria-in-html/i.json +8 -0
  20. package/src/aria-in-html/ins.json +8 -0
  21. package/src/aria-in-html/kbd.json +8 -0
  22. package/src/aria-in-html/mark.json +8 -0
  23. package/src/aria-in-html/p.json +8 -0
  24. package/src/aria-in-html/pre.json +8 -0
  25. package/src/aria-in-html/q.json +8 -0
  26. package/src/aria-in-html/rp.json +8 -0
  27. package/src/aria-in-html/rt.json +8 -0
  28. package/src/aria-in-html/ruby.json +8 -0
  29. package/src/aria-in-html/s.json +8 -0
  30. package/src/aria-in-html/samp.json +8 -0
  31. package/src/aria-in-html/small.json +8 -0
  32. package/src/aria-in-html/span.json +8 -0
  33. package/src/aria-in-html/strong.json +8 -0
  34. package/src/aria-in-html/sub.json +8 -0
  35. package/src/aria-in-html/sup.json +8 -0
  36. package/src/aria-in-html/td.json +6 -2
  37. package/src/aria-in-html/time.json +8 -0
  38. package/src/aria-in-html/u.json +8 -0
  39. package/src/aria-in-html/var.json +8 -0
  40. package/src/aria-in-html/wbr.json +8 -0
  41. package/src/attributes/a.json +9 -40
  42. package/src/attributes/abbr.json +11 -0
  43. package/src/attributes/address.json +11 -0
  44. package/src/attributes/area.json +24 -44
  45. package/src/attributes/article.json +11 -0
  46. package/src/attributes/aside.json +11 -0
  47. package/src/attributes/audio.json +10 -32
  48. package/src/attributes/b.json +11 -0
  49. package/src/attributes/base.json +9 -13
  50. package/src/attributes/bdi.json +11 -0
  51. package/src/attributes/bdo.json +8 -8
  52. package/src/attributes/blockquote.json +11 -4
  53. package/src/attributes/body.json +57 -50
  54. package/src/attributes/br.json +11 -0
  55. package/src/attributes/button.json +27 -44
  56. package/src/attributes/canvas.json +16 -8
  57. package/src/attributes/caption.json +11 -0
  58. package/src/attributes/cite.json +11 -0
  59. package/src/attributes/code.json +11 -0
  60. package/src/attributes/col.json +18 -5
  61. package/src/attributes/colgroup.json +18 -5
  62. package/src/attributes/data.json +12 -5
  63. package/src/attributes/datalist.json +11 -0
  64. package/src/attributes/dd.json +11 -0
  65. package/src/attributes/del.json +14 -7
  66. package/src/attributes/details.json +11 -9
  67. package/src/attributes/dfn.json +11 -0
  68. package/src/attributes/dialog.json +15 -4
  69. package/src/attributes/div.json +11 -0
  70. package/src/attributes/dl.json +11 -0
  71. package/src/attributes/dt.json +11 -0
  72. package/src/attributes/em.json +11 -0
  73. package/src/attributes/embed.json +22 -16
  74. package/src/attributes/fieldset.json +9 -14
  75. package/src/attributes/figcaption.json +11 -0
  76. package/src/attributes/figure.json +11 -0
  77. package/src/attributes/footer.json +11 -0
  78. package/src/attributes/form.json +62 -29
  79. package/src/attributes/h1.json +11 -0
  80. package/src/attributes/h2.json +11 -0
  81. package/src/attributes/h3.json +11 -0
  82. package/src/attributes/h4.json +11 -0
  83. package/src/attributes/h5.json +11 -0
  84. package/src/attributes/h6.json +11 -0
  85. package/src/attributes/head.json +11 -0
  86. package/src/attributes/header.json +11 -0
  87. package/src/attributes/hgroup.json +11 -0
  88. package/src/attributes/hr.json +11 -0
  89. package/src/attributes/html.json +11 -0
  90. package/src/attributes/i.json +11 -0
  91. package/src/attributes/iframe.json +51 -57
  92. package/src/attributes/img.json +31 -50
  93. package/src/attributes/input.json +138 -121
  94. package/src/attributes/ins.json +14 -7
  95. package/src/attributes/kbd.json +11 -0
  96. package/src/attributes/label.json +11 -8
  97. package/src/attributes/legend.json +11 -0
  98. package/src/attributes/li.json +12 -5
  99. package/src/attributes/link.json +110 -51
  100. package/src/attributes/main.json +11 -0
  101. package/src/attributes/map.json +13 -5
  102. package/src/attributes/mark.json +11 -0
  103. package/src/attributes/math.json +8 -0
  104. package/src/attributes/menu.json +11 -0
  105. package/src/attributes/meta.json +36 -21
  106. package/src/attributes/meter.json +27 -20
  107. package/src/attributes/nav.json +11 -0
  108. package/src/attributes/noscript.json +11 -0
  109. package/src/attributes/object.json +20 -27
  110. package/src/attributes/ol.json +19 -9
  111. package/src/attributes/optgroup.json +13 -9
  112. package/src/attributes/option.json +18 -14
  113. package/src/attributes/output.json +12 -12
  114. package/src/attributes/p.json +11 -0
  115. package/src/attributes/param.json +17 -8
  116. package/src/attributes/picture.json +11 -0
  117. package/src/attributes/portal.json +17 -8
  118. package/src/attributes/pre.json +11 -0
  119. package/src/attributes/progress.json +16 -8
  120. package/src/attributes/q.json +11 -4
  121. package/src/attributes/rp.json +11 -0
  122. package/src/attributes/rt.json +11 -0
  123. package/src/attributes/ruby.json +11 -0
  124. package/src/attributes/s.json +11 -0
  125. package/src/attributes/samp.json +11 -0
  126. package/src/attributes/script.json +48 -27
  127. package/src/attributes/section.json +11 -0
  128. package/src/attributes/select.json +17 -29
  129. package/src/attributes/slot.json +12 -5
  130. package/src/attributes/small.json +11 -0
  131. package/src/attributes/source.json +34 -16
  132. package/src/attributes/span.json +11 -0
  133. package/src/attributes/strong.json +11 -0
  134. package/src/attributes/style.json +12 -5
  135. package/src/attributes/sub.json +11 -0
  136. package/src/attributes/summary.json +11 -0
  137. package/src/attributes/sup.json +11 -0
  138. package/src/attributes/svg_a.json +82 -47
  139. package/src/attributes/svg_animate.json +94 -13
  140. package/src/attributes/svg_animateMotion.json +36 -32
  141. package/src/attributes/svg_animateTransform.json +27 -14
  142. package/src/attributes/svg_circle.json +88 -26
  143. package/src/attributes/svg_clipPath.json +79 -15
  144. package/src/attributes/svg_defs.json +77 -1
  145. package/src/attributes/svg_desc.json +7 -1
  146. package/src/attributes/svg_discard.json +13 -10
  147. package/src/attributes/svg_ellipse.json +89 -27
  148. package/src/attributes/svg_feBlend.json +89 -40
  149. package/src/attributes/svg_feColorMatrix.json +86 -38
  150. package/src/attributes/svg_feComponentTransfer.json +76 -31
  151. package/src/attributes/svg_feComposite.json +114 -56
  152. package/src/attributes/svg_feConvolveMatrix.json +119 -62
  153. package/src/attributes/svg_feDiffuseLighting.json +91 -42
  154. package/src/attributes/svg_feDisplacementMap.json +101 -47
  155. package/src/attributes/svg_feDistantLight.json +16 -11
  156. package/src/attributes/svg_feDropShadow.json +92 -43
  157. package/src/attributes/svg_feFlood.json +83 -37
  158. package/src/attributes/svg_feFuncA.json +6 -10
  159. package/src/attributes/svg_feFuncB.json +6 -10
  160. package/src/attributes/svg_feFuncG.json +6 -10
  161. package/src/attributes/svg_feFuncR.json +6 -10
  162. package/src/attributes/svg_feGaussianBlur.json +86 -38
  163. package/src/attributes/svg_feImage.json +98 -31
  164. package/src/attributes/svg_feMerge.json +76 -15
  165. package/src/attributes/svg_feMergeNode.json +6 -19
  166. package/src/attributes/svg_feMorphology.json +88 -39
  167. package/src/attributes/svg_feOffset.json +87 -39
  168. package/src/attributes/svg_fePointLight.json +21 -15
  169. package/src/attributes/svg_feSpecularLighting.json +96 -47
  170. package/src/attributes/svg_feSpotLight.json +52 -58
  171. package/src/attributes/svg_feTile.json +76 -31
  172. package/src/attributes/svg_feTurbulence.json +101 -33
  173. package/src/attributes/svg_filter.json +103 -27
  174. package/src/attributes/svg_foreignObject.json +84 -38
  175. package/src/attributes/svg_g.json +80 -8
  176. package/src/attributes/svg_hatch.json +103 -29
  177. package/src/attributes/svg_hatchpath.json +79 -11
  178. package/src/attributes/svg_image.json +98 -46
  179. package/src/attributes/svg_line.json +105 -27
  180. package/src/attributes/svg_linearGradient.json +118 -37
  181. package/src/attributes/svg_marker.json +125 -44
  182. package/src/attributes/svg_mask.json +89 -22
  183. package/src/attributes/svg_mesh.json +83 -10
  184. package/src/attributes/svg_meshgradient.json +22 -29
  185. package/src/attributes/svg_meshpatch.json +76 -1
  186. package/src/attributes/svg_meshrow.json +76 -1
  187. package/src/attributes/svg_metadata.json +7 -1
  188. package/src/attributes/svg_mpath.json +11 -8
  189. package/src/attributes/svg_path.json +87 -15
  190. package/src/attributes/svg_pattern.json +110 -46
  191. package/src/attributes/svg_polygon.json +89 -14
  192. package/src/attributes/svg_polyline.json +89 -14
  193. package/src/attributes/svg_radialGradient.json +132 -49
  194. package/src/attributes/svg_rect.json +91 -51
  195. package/src/attributes/svg_script.json +20 -17
  196. package/src/attributes/svg_set.json +27 -13
  197. package/src/attributes/svg_stop.json +93 -18
  198. package/src/attributes/svg_style.json +16 -13
  199. package/src/attributes/svg_svg.json +115 -62
  200. package/src/attributes/svg_switch.json +80 -8
  201. package/src/attributes/svg_symbol.json +27 -44
  202. package/src/attributes/svg_text.json +115 -32
  203. package/src/attributes/svg_textPath.json +124 -37
  204. package/src/attributes/svg_title.json +7 -1
  205. package/src/attributes/svg_tspan.json +111 -32
  206. package/src/attributes/svg_use.json +88 -46
  207. package/src/attributes/svg_view.json +21 -17
  208. package/src/attributes/table.json +11 -0
  209. package/src/attributes/tbody.json +11 -0
  210. package/src/attributes/td.json +9 -14
  211. package/src/attributes/template.json +11 -0
  212. package/src/attributes/textarea.json +42 -50
  213. package/src/attributes/tfoot.json +11 -0
  214. package/src/attributes/th.json +18 -20
  215. package/src/attributes/thead.json +11 -0
  216. package/src/attributes/time.json +12 -23
  217. package/src/attributes/title.json +11 -0
  218. package/src/attributes/tr.json +11 -0
  219. package/src/attributes/track.json +38 -0
  220. package/src/attributes/u.json +11 -0
  221. package/src/attributes/ul.json +11 -0
  222. package/src/attributes/var.json +11 -0
  223. package/src/attributes/video.json +34 -48
  224. package/src/attributes/wbr.json +11 -0
  225. package/src/global-attributes/_global.json +1362 -1161
  226. package/src/permitted-structures/svg_a.json +1 -1
  227. package/src/structure.test.ts +64 -0
  228. package/src/attributes/_custom.json +0 -10
@@ -1,25 +1,54 @@
1
1
  {
2
2
  "tag": "input",
3
- "attributes": [
4
- {
5
- "name": "accept",
6
- "type": "AcceptList",
3
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#the-input-element",
4
+ "global": {
5
+ "#HTMLGlobalAttrs": true,
6
+ "#GlobalEventAttrs": true,
7
+ "#DocumentElementEventAttrs": true,
8
+ "#ARIAAttrs": true,
9
+ "#HTMLEmbededAndMediaContentAttrs": ["src", "height", "width"],
10
+ "#HTMLFormControlElementAttrs": [
11
+ "autocomplete",
12
+ "dirname",
13
+ "disabled",
14
+ "form",
15
+ "formaction",
16
+ "formenctype",
17
+ "formmethod",
18
+ "formnovalidate",
19
+ "formtarget",
20
+ "name",
21
+ "maxlength",
22
+ "minlength",
23
+ "readonly",
24
+ "required"
25
+ ]
26
+ },
27
+ "attributes": {
28
+ "accept": {
29
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-accept",
30
+ "type": {
31
+ "token": "Accept",
32
+ "caseInsensitive": true,
33
+ "unique": true,
34
+ "separator": "comma"
35
+ },
7
36
  "condition": {
8
37
  "self": "[type='file' i]"
9
38
  }
10
39
  },
11
- {
12
- "name": "alt",
13
- "type": "String",
40
+ "alt": {
41
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-alt",
42
+ "type": "Any",
14
43
  "condition": {
15
44
  "self": "[type='image' i]"
16
45
  }
17
46
  },
18
- {
19
- "name": "autocomplete",
20
- "type": "AutoComplete",
47
+ "autocomplete": {
48
+ "ref": "https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-autocomplete",
21
49
  "condition": {
22
50
  "self": [
51
+ ":not([type])",
23
52
  "[type='hidden' i]",
24
53
  "[type='text' i]",
25
54
  "[type='search' i]",
@@ -38,82 +67,32 @@
38
67
  ]
39
68
  }
40
69
  },
41
- {
42
- "name": "checked",
70
+ "checked": {
71
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-checked",
43
72
  "type": "Boolean",
44
73
  "condition": {
45
74
  "self": ["[type='checkbox' i]", "[type='radio' i]"]
46
75
  }
47
76
  },
48
- {
49
- "name": "dirname",
50
- "type": "String",
51
- "condition": {
52
- "self": ["[type='text' i]", "[type='search' i]"]
53
- }
54
- },
55
- {
56
- "name": "disabled",
57
- "type": "Boolean"
58
- },
59
- {
60
- "name": "form",
61
- "type": "DOMID",
62
- "condition": {
63
- "self": ["[type='file' i]", "[type='file' i]"]
64
- }
65
- },
66
- {
67
- "name": "formaction",
68
- "type": "URL",
69
- "condition": {
70
- "self": ["[type='submit' i]", "[type='image' i]"]
71
- }
72
- },
73
- {
74
- "name": "formenctype",
75
- "type": {
76
- "enum": ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"]
77
- },
78
- "condition": {
79
- "self": ["[type='submit' i]", "[type='image' i]"]
80
- }
81
- },
82
- {
83
- "name": "formmethod",
84
- "type": {
85
- "enum": ["post", "get", "dialog"]
86
- },
87
- "condition": {
88
- "self": ["[type='submit' i]", "[type='image' i]"]
89
- }
90
- },
91
- {
92
- "name": "formnovalidate",
93
- "type": "Boolean",
94
- "condition": {
95
- "self": ["[type='submit' i]", "[type='image' i]"]
96
- }
97
- },
98
- {
99
- "name": "formtarget",
100
- "type": "Target",
77
+ "dirname": {
78
+ "ref": "https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-dirname",
101
79
  "condition": {
102
- "self": ["[type='submit' i]", "[type='image' i]"]
80
+ "self": [":not([type])", "[type='text' i]", "[type='search' i]"]
103
81
  }
104
82
  },
105
- {
106
- "name": "height",
107
- "type": "Uint",
83
+ "height": {
84
+ "ref": "https://html.spec.whatwg.org/multipage/embedded-content-other.html#attr-dim-height",
108
85
  "condition": {
109
86
  "self": "[type='image' i]"
110
87
  }
111
88
  },
112
- {
113
- "name": "list",
89
+ "list": {
90
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-list",
114
91
  "type": "DOMID",
92
+ "_TODO_": "must be the ID of a `datalist` element",
115
93
  "condition": {
116
94
  "self": [
95
+ ":not([type])",
117
96
  "[type='text' i]",
118
97
  "[type='search' i]",
119
98
  "[type='url' i]",
@@ -130,9 +109,10 @@
130
109
  ]
131
110
  }
132
111
  },
133
- {
134
- "name": "max",
135
- "type": "String",
112
+ "max": {
113
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-max",
114
+ "type": ["DateTime", "Number"],
115
+ "_TODO_": "The `type` attribute determines the type either DateTime of Number",
136
116
  "condition": {
137
117
  "self": [
138
118
  "[type='date' i]",
@@ -145,11 +125,11 @@
145
125
  ]
146
126
  }
147
127
  },
148
- {
149
- "name": "maxlength",
150
- "type": "Uint",
128
+ "maxlength": {
129
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-maxlength",
151
130
  "condition": {
152
131
  "self": [
132
+ ":not([type])",
153
133
  "[type='text' i]",
154
134
  "[type='search' i]",
155
135
  "[type='url' i]",
@@ -159,9 +139,10 @@
159
139
  ]
160
140
  }
161
141
  },
162
- {
163
- "name": "min",
164
- "type": "String",
142
+ "min": {
143
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-min",
144
+ "type": ["DateTime", "Number"],
145
+ "_TODO_": "The `type` attribute determines the type either DateTime of Number",
165
146
  "condition": {
166
147
  "self": [
167
148
  "[type='date' i]",
@@ -174,11 +155,11 @@
174
155
  ]
175
156
  }
176
157
  },
177
- {
178
- "name": "minlength",
179
- "type": "Uint",
158
+ "minlength": {
159
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-minlength",
180
160
  "condition": {
181
161
  "self": [
162
+ ":not([type])",
182
163
  "[type='text' i]",
183
164
  "[type='search' i]",
184
165
  "[type='url' i]",
@@ -188,22 +169,19 @@
188
169
  ]
189
170
  }
190
171
  },
191
- {
192
- "name": "multiple",
172
+ "multiple": {
173
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-multiple",
193
174
  "type": "Boolean",
194
175
  "condition": {
195
176
  "self": ["[type='email' i]", "[type='file' i]"]
196
177
  }
197
178
  },
198
- {
199
- "name": "name",
200
- "type": "Boolean"
201
- },
202
- {
203
- "name": "pattern",
204
- "type": "String",
179
+ "pattern": {
180
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-pattern",
181
+ "type": "Pattern",
205
182
  "condition": {
206
183
  "self": [
184
+ ":not([type])",
207
185
  "[type='text' i]",
208
186
  "[type='search' i]",
209
187
  "[type='url' i]",
@@ -213,11 +191,12 @@
213
191
  ]
214
192
  }
215
193
  },
216
- {
217
- "name": "placeholder",
218
- "type": "String",
194
+ "placeholder": {
195
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-placeholder",
196
+ "type": "OneLineAny",
219
197
  "condition": {
220
198
  "self": [
199
+ ":not([type])",
221
200
  "[type='text' i]",
222
201
  "[type='search' i]",
223
202
  "[type='url' i]",
@@ -228,11 +207,11 @@
228
207
  ]
229
208
  }
230
209
  },
231
- {
232
- "name": "readonly",
233
- "type": "Boolean",
210
+ "readonly": {
211
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-readonly",
234
212
  "condition": {
235
213
  "self": [
214
+ ":not([type])",
236
215
  "[type='text' i]",
237
216
  "[type='search' i]",
238
217
  "[type='url' i]",
@@ -248,11 +227,11 @@
248
227
  ]
249
228
  }
250
229
  },
251
- {
252
- "name": "required",
253
- "type": "Boolean",
230
+ "required": {
231
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-required",
254
232
  "condition": {
255
233
  "self": [
234
+ ":not([type])",
256
235
  "[type='text' i]",
257
236
  "[type='search' i]",
258
237
  "[type='url' i]",
@@ -271,11 +250,15 @@
271
250
  ]
272
251
  }
273
252
  },
274
- {
275
- "name": "size",
276
- "type": "NonZeroUint",
253
+ "size": {
254
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-size",
255
+ "type": {
256
+ "type": "integer",
257
+ "gt": 0
258
+ },
277
259
  "condition": {
278
260
  "self": [
261
+ ":not([type])",
279
262
  "[type='text' i]",
280
263
  "[type='search' i]",
281
264
  "[type='url' i]",
@@ -283,18 +266,24 @@
283
266
  "[type='email' i]",
284
267
  "[type='password' i]"
285
268
  ]
286
- }
269
+ },
270
+ "defaultValue": "20"
287
271
  },
288
- {
289
- "name": "src",
290
- "type": "URL",
272
+ "src": {
273
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-src",
291
274
  "condition": {
292
275
  "self": "[type='image' i]"
293
276
  }
294
277
  },
295
- {
296
- "name": "step",
297
- "type": "String",
278
+ "step": {
279
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-step",
280
+ "type": [
281
+ "Number",
282
+ {
283
+ "enum": ["any"],
284
+ "caseInsensitive": true
285
+ }
286
+ ],
298
287
  "condition": {
299
288
  "self": [
300
289
  "[type='date' i]",
@@ -307,20 +296,48 @@
307
296
  ]
308
297
  }
309
298
  },
310
- {
311
- "name": "type",
312
- "type": "Boolean"
299
+ "type": {
300
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-type",
301
+ "type": {
302
+ "enum": [
303
+ "hidden",
304
+ "text",
305
+ "search",
306
+ "tel",
307
+ "url",
308
+ "email",
309
+ "password",
310
+ "date",
311
+ "month",
312
+ "week",
313
+ "time",
314
+ "datetime-local",
315
+ "number",
316
+ "range",
317
+ "color",
318
+ "checkbox",
319
+ "radio",
320
+ "file",
321
+ "submit",
322
+ "image",
323
+ "reset",
324
+ "button"
325
+ ],
326
+ "invalidValueDefault": "text",
327
+ "missingValueDefault": "text"
328
+ },
329
+ "defaultValue": "text"
313
330
  },
314
- {
315
- "name": "value",
316
- "type": "Boolean"
331
+ "value": {
332
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-value",
333
+ "type": "Any",
334
+ "_TODO_": "The `type` attribute determines the type"
317
335
  },
318
- {
319
- "name": "width",
320
- "type": "Uint",
336
+ "width": {
337
+ "ref": "https://html.spec.whatwg.org/multipage/embedded-content-other.html#attr-dim-width",
321
338
  "condition": {
322
339
  "self": "[type='image' i]"
323
340
  }
324
341
  }
325
- ]
342
+ }
326
343
  }
@@ -1,13 +1,20 @@
1
1
  {
2
2
  "tag": "ins",
3
- "attributes": [
4
- {
5
- "name": "cite",
3
+ "ref": "https://html.spec.whatwg.org/multipage/edits.html#the-ins-element",
4
+ "global": {
5
+ "#HTMLGlobalAttrs": true,
6
+ "#GlobalEventAttrs": true,
7
+ "#DocumentElementEventAttrs": true,
8
+ "#ARIAAttrs": true
9
+ },
10
+ "attributes": {
11
+ "cite": {
12
+ "ref": "https://html.spec.whatwg.org/multipage/edits.html#attr-mod-cite",
6
13
  "type": "URL"
7
14
  },
8
- {
9
- "name": "datetime",
10
- "type": "Date"
15
+ "datetime": {
16
+ "ref": "https://html.spec.whatwg.org/multipage/edits.html#attr-mod-datetime",
17
+ "type": "DateTime"
11
18
  }
12
- ]
19
+ }
13
20
  }
@@ -0,0 +1,11 @@
1
+ {
2
+ "tag": "kbd",
3
+ "ref": "https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-kbd-element",
4
+ "global": {
5
+ "#HTMLGlobalAttrs": true,
6
+ "#GlobalEventAttrs": true,
7
+ "#DocumentElementEventAttrs": true,
8
+ "#ARIAAttrs": true
9
+ },
10
+ "attributes": {}
11
+ }
@@ -1,13 +1,16 @@
1
1
  {
2
2
  "tag": "label",
3
- "attributes": [
4
- {
5
- "name": "for",
6
- "type": "DOMID"
7
- },
8
- {
9
- "name": "form",
3
+ "ref": "https://html.spec.whatwg.org/multipage/forms.html#the-label-element",
4
+ "global": {
5
+ "#HTMLGlobalAttrs": true,
6
+ "#GlobalEventAttrs": true,
7
+ "#DocumentElementEventAttrs": true,
8
+ "#ARIAAttrs": true
9
+ },
10
+ "attributes": {
11
+ "for": {
12
+ "ref": "https://html.spec.whatwg.org/multipage/forms.html#attr-label-for",
10
13
  "type": "DOMID"
11
14
  }
12
- ]
15
+ }
13
16
  }
@@ -0,0 +1,11 @@
1
+ {
2
+ "tag": "legend",
3
+ "ref": "https://html.spec.whatwg.org/multipage/form-elements.html#the-legend-element",
4
+ "global": {
5
+ "#HTMLGlobalAttrs": true,
6
+ "#GlobalEventAttrs": true,
7
+ "#DocumentElementEventAttrs": true,
8
+ "#ARIAAttrs": true
9
+ },
10
+ "attributes": {}
11
+ }
@@ -1,12 +1,19 @@
1
1
  {
2
2
  "tag": "li",
3
- "attributes": [
4
- {
5
- "name": "value",
3
+ "ref": "https://html.spec.whatwg.org/multipage/grouping-content.html#the-li-element",
4
+ "global": {
5
+ "#HTMLGlobalAttrs": true,
6
+ "#GlobalEventAttrs": true,
7
+ "#DocumentElementEventAttrs": true,
8
+ "#ARIAAttrs": true
9
+ },
10
+ "attributes": {
11
+ "value": {
12
+ "ref": "https://html.spec.whatwg.org/multipage/grouping-content.html#attr-li-value",
6
13
  "type": "Int",
7
14
  "condition": {
8
- "ancestor": "ul, menu"
15
+ "ancestor": "ol"
9
16
  }
10
17
  }
11
- ]
18
+ }
12
19
  }
@@ -1,69 +1,128 @@
1
1
  {
2
2
  "tag": "link",
3
- "attributes": [
4
- {
5
- "name": "href",
6
- "type": "URL"
3
+ "ref": "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link",
4
+ "global": {
5
+ "#HTMLGlobalAttrs": true,
6
+ "#GlobalEventAttrs": true,
7
+ "#DocumentElementEventAttrs": true,
8
+ "#ARIAAttrs": true,
9
+ "#HTMLLinkAndFetchingAttrs": ["crossorigin", "href", "hreflang", "type", "referrerpolicy", "integrity", "media"]
10
+ },
11
+ "attributes": {
12
+ "rel": {
13
+ "ref": "https://html.spec.whatwg.org/multipage/semantics.html#attr-link-rel",
14
+ "type": [
15
+ "Any",
16
+ {
17
+ "token": {
18
+ "enum": [
19
+ "alternate",
20
+ "canonical",
21
+ "author",
22
+ "dns-prefetch",
23
+ "help",
24
+ "icon",
25
+ "manifest",
26
+ "modulepreload",
27
+ "license",
28
+ "next",
29
+ "pingback",
30
+ "preconnect",
31
+ "prefetch",
32
+ "preload",
33
+ "prerender",
34
+ "prev",
35
+ "search",
36
+ "stylesheet"
37
+ ]
38
+ },
39
+ "unique": true,
40
+ "separator": "space"
41
+ }
42
+ ],
43
+ "requiredEither": ["itemprop"]
7
44
  },
8
- {
9
- "name": "crossorigin",
10
- "type": "Crossorigin"
45
+ "itemprop": {
46
+ "ref": "https://html.spec.whatwg.org/multipage/semantics.html#the-link-element:names:-the-itemprop-attribute",
47
+ "requiredEither": ["rel"]
11
48
  },
12
- {
13
- "name": "rel",
14
- "type": "LinkTypeList"
15
- },
16
- {
17
- "name": "media",
18
- "type": "MediaQueryList"
19
- },
20
- {
21
- "name": "integrity",
22
- "type": "String"
23
- },
24
- {
25
- "name": "hreflang",
26
- "type": "BCP47"
27
- },
28
- {
29
- "name": "type",
30
- "type": "MIMEType"
31
- },
32
- {
33
- "name": "referrerpolicy",
34
- "type": "ReferrerPolicy"
35
- },
36
- {
37
- "name": "sizes",
38
- "type": "LinkSizes"
49
+ "integrity": {
50
+ "ref": "https://html.spec.whatwg.org/multipage/semantics.html#attr-link-integrity",
51
+ "condition": {
52
+ "self": ["[rel~='stylesheet' i]", "[rel~='preload' i]", "[rel~='modulepreload' i]"]
53
+ }
39
54
  },
40
- {
41
- "name": "imagesrcset",
42
- "type": "SrcSet",
55
+ "sizes": {
56
+ "ref": "https://html.spec.whatwg.org/multipage/semantics.html#attr-link-sizes",
57
+ "type": {
58
+ "token": "IconSize",
59
+ "caseInsensitive": true,
60
+ "ordered": false,
61
+ "unique": true,
62
+ "separator": "space"
63
+ },
43
64
  "condition": {
44
- "self": "[imagesizes]"
65
+ "self": ["[rel~='icon' i]", "[rel~='apple-touch-icon' i]"]
45
66
  }
46
67
  },
47
- {
48
- "name": "imagesizes",
68
+ "imagesrcset": {
69
+ "ref": "https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset",
70
+ "type": "Srcset",
71
+ "condition": {
72
+ "self": "[imagesizes][rel~='preload' i][as='image' i]"
73
+ },
74
+ "required": { "self": "[imagesizes]" }
75
+ },
76
+ "imagesizes": {
77
+ "ref": "https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesizes",
49
78
  "type": "SourceSizeList",
50
79
  "condition": {
51
- "self": "[imagesrcset]"
52
- }
80
+ "self": "[imagesrcset][rel~='preload' i][as='image' i]"
81
+ },
82
+ "required": { "self": "[imagesrcset]" }
53
83
  },
54
- {
55
- "name": "as",
56
- "type": "Destination",
84
+ "as": {
85
+ "ref": "https://html.spec.whatwg.org/multipage/semantics.html#attr-link-as",
86
+ "type": {
87
+ "enum": [
88
+ "fetch",
89
+ "audio",
90
+ "audioworklet",
91
+ "document",
92
+ "embed",
93
+ "font",
94
+ "frame",
95
+ "iframe",
96
+ "image",
97
+ "manifest",
98
+ "object",
99
+ "paintworklet",
100
+ "report",
101
+ "script",
102
+ "serviceworker",
103
+ "sharedworker",
104
+ "style",
105
+ "track",
106
+ "video",
107
+ "worker",
108
+ "xslt"
109
+ ]
110
+ },
111
+ "_TODO_": "If the rel attribute is modulepreload, invalidValueDefault and missingValueDefault will be `script`",
57
112
  "condition": {
58
- "self": ["[rel=preload]", "[rel=modulepreload]"]
113
+ "self": ["[rel='preload' i]", "[rel='modulepreload' i]"]
59
114
  }
60
115
  },
61
- {
62
- "name": "color",
63
- "type": "Color",
116
+ "color": {
117
+ "ref": "https://html.spec.whatwg.org/multipage/semantics.html#attr-link-color",
118
+ "type": "<color>",
64
119
  "condition": {
65
- "self": "[rel=mask-icon]"
120
+ "self": "[rel~='mask-icon' i]"
66
121
  }
122
+ },
123
+ "disabled": {
124
+ "ref": "https://html.spec.whatwg.org/multipage/semantics.html#attr-link-disabled",
125
+ "type": "Boolean"
67
126
  }
68
- ]
127
+ }
69
128
  }