@markuplint/html-spec 2.0.0-dev.2021117.0 → 2.0.0-dev.20211213.0

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 (187) hide show
  1. package/index.json +8512 -5688
  2. package/package.json +5 -3
  3. package/src/attributes/a.json +9 -40
  4. package/src/attributes/address.json +11 -0
  5. package/src/attributes/area.json +24 -44
  6. package/src/attributes/article.json +11 -0
  7. package/src/attributes/aside.json +11 -0
  8. package/src/attributes/audio.json +10 -32
  9. package/src/attributes/b.json +11 -0
  10. package/src/attributes/base.json +9 -13
  11. package/src/attributes/bdi.json +11 -0
  12. package/src/attributes/bdo.json +8 -8
  13. package/src/attributes/blockquote.json +11 -4
  14. package/src/attributes/body.json +57 -50
  15. package/src/attributes/br.json +11 -0
  16. package/src/attributes/button.json +27 -44
  17. package/src/attributes/canvas.json +16 -8
  18. package/src/attributes/caption.json +11 -0
  19. package/src/attributes/cite.json +11 -0
  20. package/src/attributes/code.json +11 -0
  21. package/src/attributes/col.json +18 -5
  22. package/src/attributes/colgroup.json +18 -5
  23. package/src/attributes/data.json +12 -5
  24. package/src/attributes/datalist.json +11 -0
  25. package/src/attributes/dd.json +11 -0
  26. package/src/attributes/del.json +14 -7
  27. package/src/attributes/details.json +11 -9
  28. package/src/attributes/dfn.json +11 -0
  29. package/src/attributes/dialog.json +15 -4
  30. package/src/attributes/div.json +11 -0
  31. package/src/attributes/dl.json +11 -0
  32. package/src/attributes/dt.json +11 -0
  33. package/src/attributes/em.json +11 -0
  34. package/src/attributes/embed.json +22 -16
  35. package/src/attributes/fieldset.json +9 -14
  36. package/src/attributes/figcaption.json +11 -0
  37. package/src/attributes/figure.json +11 -0
  38. package/src/attributes/footer.json +11 -0
  39. package/src/attributes/form.json +62 -29
  40. package/src/attributes/h1.json +11 -0
  41. package/src/attributes/h2.json +11 -0
  42. package/src/attributes/h3.json +11 -0
  43. package/src/attributes/h4.json +11 -0
  44. package/src/attributes/h5.json +11 -0
  45. package/src/attributes/h6.json +11 -0
  46. package/src/attributes/head.json +11 -0
  47. package/src/attributes/header.json +11 -0
  48. package/src/attributes/hr.json +11 -0
  49. package/src/attributes/html.json +11 -0
  50. package/src/attributes/i.json +11 -0
  51. package/src/attributes/iframe.json +51 -57
  52. package/src/attributes/img.json +31 -50
  53. package/src/attributes/input.json +128 -120
  54. package/src/attributes/ins.json +14 -7
  55. package/src/attributes/kbd.json +11 -0
  56. package/src/attributes/label.json +11 -8
  57. package/src/attributes/legend.json +11 -0
  58. package/src/attributes/li.json +12 -5
  59. package/src/attributes/link.json +110 -51
  60. package/src/attributes/main.json +11 -0
  61. package/src/attributes/map.json +13 -5
  62. package/src/attributes/mark.json +11 -0
  63. package/src/attributes/menu.json +11 -0
  64. package/src/attributes/meta.json +36 -21
  65. package/src/attributes/meter.json +27 -20
  66. package/src/attributes/nav.json +11 -0
  67. package/src/attributes/noscript.json +11 -0
  68. package/src/attributes/object.json +20 -27
  69. package/src/attributes/ol.json +19 -9
  70. package/src/attributes/optgroup.json +13 -9
  71. package/src/attributes/option.json +18 -14
  72. package/src/attributes/output.json +12 -12
  73. package/src/attributes/p.json +11 -0
  74. package/src/attributes/param.json +17 -8
  75. package/src/attributes/picture.json +11 -0
  76. package/src/attributes/portal.json +17 -8
  77. package/src/attributes/pre.json +11 -0
  78. package/src/attributes/progress.json +16 -8
  79. package/src/attributes/q.json +11 -4
  80. package/src/attributes/rp.json +11 -0
  81. package/src/attributes/rt.json +11 -0
  82. package/src/attributes/ruby.json +11 -0
  83. package/src/attributes/s.json +11 -0
  84. package/src/attributes/samp.json +11 -0
  85. package/src/attributes/script.json +48 -27
  86. package/src/attributes/section.json +11 -0
  87. package/src/attributes/select.json +17 -29
  88. package/src/attributes/slot.json +12 -5
  89. package/src/attributes/small.json +11 -0
  90. package/src/attributes/source.json +34 -16
  91. package/src/attributes/span.json +11 -0
  92. package/src/attributes/strong.json +11 -0
  93. package/src/attributes/style.json +12 -5
  94. package/src/attributes/sub.json +11 -0
  95. package/src/attributes/summary.json +11 -0
  96. package/src/attributes/sup.json +11 -0
  97. package/src/attributes/svg_a.json +81 -47
  98. package/src/attributes/svg_animate.json +93 -13
  99. package/src/attributes/svg_animateMotion.json +36 -32
  100. package/src/attributes/svg_animateTransform.json +27 -14
  101. package/src/attributes/svg_circle.json +87 -26
  102. package/src/attributes/svg_clipPath.json +79 -15
  103. package/src/attributes/svg_defs.json +76 -1
  104. package/src/attributes/svg_desc.json +7 -1
  105. package/src/attributes/svg_discard.json +13 -10
  106. package/src/attributes/svg_ellipse.json +88 -27
  107. package/src/attributes/svg_feBlend.json +88 -40
  108. package/src/attributes/svg_feColorMatrix.json +85 -38
  109. package/src/attributes/svg_feComponentTransfer.json +75 -31
  110. package/src/attributes/svg_feComposite.json +113 -56
  111. package/src/attributes/svg_feConvolveMatrix.json +118 -62
  112. package/src/attributes/svg_feDiffuseLighting.json +90 -42
  113. package/src/attributes/svg_feDisplacementMap.json +100 -47
  114. package/src/attributes/svg_feDistantLight.json +16 -11
  115. package/src/attributes/svg_feDropShadow.json +91 -43
  116. package/src/attributes/svg_feFlood.json +82 -37
  117. package/src/attributes/svg_feFuncA.json +6 -10
  118. package/src/attributes/svg_feFuncB.json +6 -10
  119. package/src/attributes/svg_feFuncG.json +6 -10
  120. package/src/attributes/svg_feFuncR.json +6 -10
  121. package/src/attributes/svg_feGaussianBlur.json +85 -38
  122. package/src/attributes/svg_feImage.json +97 -31
  123. package/src/attributes/svg_feMerge.json +75 -15
  124. package/src/attributes/svg_feMergeNode.json +6 -19
  125. package/src/attributes/svg_feMorphology.json +87 -39
  126. package/src/attributes/svg_feOffset.json +86 -39
  127. package/src/attributes/svg_fePointLight.json +21 -15
  128. package/src/attributes/svg_feSpecularLighting.json +95 -47
  129. package/src/attributes/svg_feSpotLight.json +52 -58
  130. package/src/attributes/svg_feTile.json +75 -31
  131. package/src/attributes/svg_feTurbulence.json +100 -33
  132. package/src/attributes/svg_filter.json +102 -27
  133. package/src/attributes/svg_foreignObject.json +83 -38
  134. package/src/attributes/svg_g.json +79 -8
  135. package/src/attributes/svg_hatch.json +103 -29
  136. package/src/attributes/svg_hatchpath.json +79 -11
  137. package/src/attributes/svg_image.json +97 -46
  138. package/src/attributes/svg_line.json +104 -27
  139. package/src/attributes/svg_linearGradient.json +118 -37
  140. package/src/attributes/svg_marker.json +124 -44
  141. package/src/attributes/svg_mask.json +89 -22
  142. package/src/attributes/svg_mesh.json +82 -10
  143. package/src/attributes/svg_meshgradient.json +22 -29
  144. package/src/attributes/svg_meshpatch.json +75 -1
  145. package/src/attributes/svg_meshrow.json +75 -1
  146. package/src/attributes/svg_metadata.json +7 -1
  147. package/src/attributes/svg_mpath.json +11 -8
  148. package/src/attributes/svg_path.json +86 -15
  149. package/src/attributes/svg_pattern.json +110 -46
  150. package/src/attributes/svg_polygon.json +88 -14
  151. package/src/attributes/svg_polyline.json +88 -14
  152. package/src/attributes/svg_radialGradient.json +132 -49
  153. package/src/attributes/svg_rect.json +90 -51
  154. package/src/attributes/svg_script.json +20 -17
  155. package/src/attributes/svg_set.json +27 -13
  156. package/src/attributes/svg_stop.json +92 -18
  157. package/src/attributes/svg_style.json +16 -13
  158. package/src/attributes/svg_svg.json +114 -62
  159. package/src/attributes/svg_switch.json +79 -8
  160. package/src/attributes/svg_symbol.json +27 -44
  161. package/src/attributes/svg_text.json +114 -32
  162. package/src/attributes/svg_textPath.json +123 -37
  163. package/src/attributes/svg_title.json +7 -1
  164. package/src/attributes/svg_tspan.json +110 -32
  165. package/src/attributes/svg_use.json +87 -46
  166. package/src/attributes/svg_view.json +21 -17
  167. package/src/attributes/table.json +11 -0
  168. package/src/attributes/tbody.json +11 -0
  169. package/src/attributes/td.json +9 -14
  170. package/src/attributes/template.json +11 -0
  171. package/src/attributes/textarea.json +42 -50
  172. package/src/attributes/tfoot.json +11 -0
  173. package/src/attributes/th.json +18 -20
  174. package/src/attributes/thead.json +11 -0
  175. package/src/attributes/time.json +12 -23
  176. package/src/attributes/title.json +11 -0
  177. package/src/attributes/tr.json +11 -0
  178. package/src/attributes/track.json +38 -0
  179. package/src/attributes/u.json +11 -0
  180. package/src/attributes/ul.json +11 -0
  181. package/src/attributes/var.json +11 -0
  182. package/src/attributes/video.json +34 -48
  183. package/src/attributes/wbr.json +11 -0
  184. package/src/global-attributes/_global.json +1334 -1161
  185. package/src/permitted-structures/svg_a.json +1 -1
  186. package/src/structure.test.ts +64 -0
  187. package/src/attributes/_custom.json +0 -10
@@ -1,66 +1,60 @@
1
1
  {
2
2
  "tag": "iframe",
3
- "attributes": [
4
- {
5
- "name": "src",
6
- "type": "URL"
7
- },
8
- {
9
- "name": "srcdoc",
10
- "type": "String"
11
- },
12
- {
13
- "name": "name",
14
- "type": "String"
15
- },
16
- {
17
- "name": "sandbox",
3
+ "ref": "https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element",
4
+ "global": {
5
+ "#HTMLGlobalAttrs": true,
6
+ "#GlobalEventAttrs": true,
7
+ "#DocumentElementEventAttrs": true,
8
+ "#ARIAAttrs": true,
9
+ "#HTMLEmbededAndMediaContentAttrs": ["src", "height", "width"],
10
+ "#HTMLLinkAndFetchingAttrs": ["referrerpolicy", "loading"]
11
+ },
12
+ "attributes": {
13
+ "src": {
14
+ "ref": "https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-src",
15
+ "required": { "self": "[itemprop]" }
16
+ },
17
+ "srcdoc": {
18
+ "ref": "https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-srcdoc",
19
+ "type": "Any",
20
+ "_TODO_": "The type is HTML syntax, but it does not support"
21
+ },
22
+ "name": {
23
+ "ref": "https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-name",
24
+ "type": "BrowsingContextName"
25
+ },
26
+ "sandbox": {
27
+ "ref": "https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-sandbox",
18
28
  "type": {
19
- "enum": [
20
- "allow-forms",
21
- "allow-modals",
22
- "allow-orientation-lock",
23
- "allow-pointer-lock",
24
- "allow-popups",
25
- "allow-popups-to-escape-sandbox",
26
- "allow-presentation",
27
- "allow-same-origin",
28
- "allow-scripts",
29
- "allow-top-navigation",
30
- "allow-top-navigation-by-user-activation",
31
- "allow-downloads"
32
- ]
29
+ "token": {
30
+ "enum": [
31
+ "allow-forms",
32
+ "allow-modals",
33
+ "allow-orientation-lock",
34
+ "allow-pointer-lock",
35
+ "allow-popups",
36
+ "allow-popups-to-escape-sandbox",
37
+ "allow-presentation",
38
+ "allow-same-origin",
39
+ "allow-scripts",
40
+ "allow-top-navigation",
41
+ "allow-top-navigation-by-user-activation",
42
+ "allow-downloads"
43
+ ]
44
+ },
45
+ "caseInsensitive": true,
46
+ "ordered": true,
47
+ "unique": true,
48
+ "separator": "space"
33
49
  }
34
50
  },
35
- {
36
- "name": "allow",
37
- "type": "String"
51
+ "allow": {
52
+ "ref": "https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-allow",
53
+ "type": "SerializedPermissionsPolicy"
38
54
  },
39
- {
40
- "name": "allowfullscreen",
55
+ "allowfullscreen": {
56
+ "ref": "https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-allowfullscreen",
41
57
  "type": "Boolean"
42
- },
43
- {
44
- "name": "allowpaymentrequest",
45
- "type": "Boolean"
46
- },
47
- {
48
- "name": "width",
49
- "type": "Uint"
50
- },
51
- {
52
- "name": "height",
53
- "type": "Uint"
54
- },
55
- {
56
- "name": "referrerpolicy",
57
- "type": "ReferrerPolicy"
58
- },
59
- {
60
- "name": "loading",
61
- "type": {
62
- "enum": ["eager", "lazy"]
63
- }
64
58
  }
65
- ]
59
+ }
66
60
  }
@@ -1,64 +1,45 @@
1
1
  {
2
2
  "tag": "img",
3
- "attributes": [
4
- {
5
- "name": "alt",
6
- "type": "String"
7
- },
8
- {
9
- "name": "crossorigin",
10
- "type": "Crossorigin"
3
+ "ref": "https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element",
4
+ "global": {
5
+ "#HTMLGlobalAttrs": true,
6
+ "#GlobalEventAttrs": true,
7
+ "#DocumentElementEventAttrs": true,
8
+ "#ARIAAttrs": true,
9
+ "#HTMLEmbededAndMediaContentAttrs": ["src", "height", "srcset", "sizes", "width"],
10
+ "#HTMLLinkAndFetchingAttrs": ["crossorigin", "referrerpolicy", "loading"]
11
+ },
12
+ "attributes": {
13
+ "alt": {
14
+ "ref": "https://html.spec.whatwg.org/multipage/embedded-content.html#attr-img-alt",
15
+ "type": "Any"
16
+ },
17
+ "src": {
18
+ "ref": "https://html.spec.whatwg.org/multipage/embedded-content.html#attr-img-src",
19
+ "type": "URL",
20
+ "required": true
11
21
  },
12
- {
13
- "name": "decoding",
14
- "type": {
15
- "enum": ["sync", "async", "auto"]
22
+ "usemap": {
23
+ "ref": "https://html.spec.whatwg.org/multipage/image-maps.html#attr-hyperlink-usemap",
24
+ "type": "HashName",
25
+ "condition": {
26
+ "ancestor": ":not(a):not(button)"
16
27
  }
17
28
  },
18
- {
19
- "name": "height",
20
- "type": "Uint"
21
- },
22
- {
23
- "name": "ismap",
29
+ "ismap": {
30
+ "ref": "https://html.spec.whatwg.org/multipage/embedded-content.html#attr-img-ismap",
24
31
  "type": "Boolean",
25
32
  "condition": {
26
33
  "ancestor": "a[href]"
27
34
  }
28
35
  },
29
- {
30
- "name": "loading",
36
+ "decoding": {
37
+ "ref": "https://html.spec.whatwg.org/multipage/embedded-content.html#attr-img-decoding",
31
38
  "type": {
32
- "enum": ["eager", "lazy"]
33
- }
34
- },
35
- {
36
- "name": "referrerpolicy",
37
- "type": "ReferrerPolicy"
38
- },
39
- {
40
- "name": "sizes",
41
- "type": "SourceSizeList"
42
- },
43
- {
44
- "name": "src",
45
- "type": "URL",
46
- "required": true
47
- },
48
- {
49
- "name": "srcset",
50
- "type": "SrcSet"
51
- },
52
- {
53
- "name": "width",
54
- "type": "Uint"
55
- },
56
- {
57
- "name": "usemap",
58
- "type": "URLHash",
59
- "condition": {
60
- "ancestor": ":not(a):not(button)"
39
+ "enum": ["sync", "async", "auto"],
40
+ "invalidValueDefault": "auto",
41
+ "missingValueDefault": "auto"
61
42
  }
62
43
  }
63
- ]
44
+ }
64
45
  }
@@ -1,23 +1,51 @@
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": [
23
51
  "[type='hidden' i]",
@@ -38,80 +66,29 @@
38
66
  ]
39
67
  }
40
68
  },
41
- {
42
- "name": "checked",
69
+ "checked": {
70
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-checked",
43
71
  "type": "Boolean",
44
72
  "condition": {
45
73
  "self": ["[type='checkbox' i]", "[type='radio' i]"]
46
74
  }
47
75
  },
48
- {
49
- "name": "dirname",
50
- "type": "String",
76
+ "dirname": {
77
+ "ref": "https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-dirname",
51
78
  "condition": {
52
79
  "self": ["[type='text' i]", "[type='search' i]"]
53
80
  }
54
81
  },
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",
101
- "condition": {
102
- "self": ["[type='submit' i]", "[type='image' i]"]
103
- }
104
- },
105
- {
106
- "name": "height",
107
- "type": "Uint",
82
+ "height": {
83
+ "ref": "https://html.spec.whatwg.org/multipage/embedded-content-other.html#attr-dim-height",
108
84
  "condition": {
109
85
  "self": "[type='image' i]"
110
86
  }
111
87
  },
112
- {
113
- "name": "list",
88
+ "list": {
89
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-list",
114
90
  "type": "DOMID",
91
+ "_TODO_": "must be the ID of a `datalist` element",
115
92
  "condition": {
116
93
  "self": [
117
94
  "[type='text' i]",
@@ -130,9 +107,10 @@
130
107
  ]
131
108
  }
132
109
  },
133
- {
134
- "name": "max",
135
- "type": "String",
110
+ "max": {
111
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-max",
112
+ "type": ["DateTime", "Number"],
113
+ "_TODO_": "The `type` attribute determines the type either DateTime of Number",
136
114
  "condition": {
137
115
  "self": [
138
116
  "[type='date' i]",
@@ -145,9 +123,8 @@
145
123
  ]
146
124
  }
147
125
  },
148
- {
149
- "name": "maxlength",
150
- "type": "Uint",
126
+ "maxlength": {
127
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-maxlength",
151
128
  "condition": {
152
129
  "self": [
153
130
  "[type='text' i]",
@@ -159,9 +136,10 @@
159
136
  ]
160
137
  }
161
138
  },
162
- {
163
- "name": "min",
164
- "type": "String",
139
+ "min": {
140
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-min",
141
+ "type": ["DateTime", "Number"],
142
+ "_TODO_": "The `type` attribute determines the type either DateTime of Number",
165
143
  "condition": {
166
144
  "self": [
167
145
  "[type='date' i]",
@@ -174,9 +152,8 @@
174
152
  ]
175
153
  }
176
154
  },
177
- {
178
- "name": "minlength",
179
- "type": "Uint",
155
+ "minlength": {
156
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-minlength",
180
157
  "condition": {
181
158
  "self": [
182
159
  "[type='text' i]",
@@ -188,20 +165,16 @@
188
165
  ]
189
166
  }
190
167
  },
191
- {
192
- "name": "multiple",
168
+ "multiple": {
169
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-multiple",
193
170
  "type": "Boolean",
194
171
  "condition": {
195
172
  "self": ["[type='email' i]", "[type='file' i]"]
196
173
  }
197
174
  },
198
- {
199
- "name": "name",
200
- "type": "Boolean"
201
- },
202
- {
203
- "name": "pattern",
204
- "type": "String",
175
+ "pattern": {
176
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-pattern",
177
+ "type": "Pattern",
205
178
  "condition": {
206
179
  "self": [
207
180
  "[type='text' i]",
@@ -213,9 +186,9 @@
213
186
  ]
214
187
  }
215
188
  },
216
- {
217
- "name": "placeholder",
218
- "type": "String",
189
+ "placeholder": {
190
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-placeholder",
191
+ "type": "OneLineAny",
219
192
  "condition": {
220
193
  "self": [
221
194
  "[type='text' i]",
@@ -228,9 +201,8 @@
228
201
  ]
229
202
  }
230
203
  },
231
- {
232
- "name": "readonly",
233
- "type": "Boolean",
204
+ "readonly": {
205
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-readonly",
234
206
  "condition": {
235
207
  "self": [
236
208
  "[type='text' i]",
@@ -248,9 +220,8 @@
248
220
  ]
249
221
  }
250
222
  },
251
- {
252
- "name": "required",
253
- "type": "Boolean",
223
+ "required": {
224
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-required",
254
225
  "condition": {
255
226
  "self": [
256
227
  "[type='text' i]",
@@ -271,9 +242,12 @@
271
242
  ]
272
243
  }
273
244
  },
274
- {
275
- "name": "size",
276
- "type": "NonZeroUint",
245
+ "size": {
246
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-size",
247
+ "type": {
248
+ "type": "integer",
249
+ "gt": 0
250
+ },
277
251
  "condition": {
278
252
  "self": [
279
253
  "[type='text' i]",
@@ -283,18 +257,24 @@
283
257
  "[type='email' i]",
284
258
  "[type='password' i]"
285
259
  ]
286
- }
260
+ },
261
+ "defaultValue": "20"
287
262
  },
288
- {
289
- "name": "src",
290
- "type": "URL",
263
+ "src": {
264
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-src",
291
265
  "condition": {
292
266
  "self": "[type='image' i]"
293
267
  }
294
268
  },
295
- {
296
- "name": "step",
297
- "type": "String",
269
+ "step": {
270
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-step",
271
+ "type": [
272
+ "Number",
273
+ {
274
+ "enum": ["any"],
275
+ "caseInsensitive": true
276
+ }
277
+ ],
298
278
  "condition": {
299
279
  "self": [
300
280
  "[type='date' i]",
@@ -307,20 +287,48 @@
307
287
  ]
308
288
  }
309
289
  },
310
- {
311
- "name": "type",
312
- "type": "Boolean"
290
+ "type": {
291
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-type",
292
+ "type": {
293
+ "enum": [
294
+ "hidden",
295
+ "text",
296
+ "search",
297
+ "tel",
298
+ "url",
299
+ "email",
300
+ "password",
301
+ "date",
302
+ "month",
303
+ "week",
304
+ "time",
305
+ "datetime-local",
306
+ "number",
307
+ "range",
308
+ "color",
309
+ "checkbox",
310
+ "radio",
311
+ "file",
312
+ "submit",
313
+ "image",
314
+ "reset",
315
+ "button"
316
+ ],
317
+ "invalidValueDefault": "text",
318
+ "missingValueDefault": "text"
319
+ },
320
+ "defaultValue": "text"
313
321
  },
314
- {
315
- "name": "value",
316
- "type": "Boolean"
322
+ "value": {
323
+ "ref": "https://html.spec.whatwg.org/multipage/input.html#attr-input-value",
324
+ "type": "Any",
325
+ "_TODO_": "The `type` attribute determines the type"
317
326
  },
318
- {
319
- "name": "width",
320
- "type": "Uint",
327
+ "width": {
328
+ "ref": "https://html.spec.whatwg.org/multipage/embedded-content-other.html#attr-dim-width",
321
329
  "condition": {
322
330
  "self": "[type='image' i]"
323
331
  }
324
332
  }
325
- ]
333
+ }
326
334
  }
@@ -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
+ }