@markuplint/html-spec 3.0.0-alpha.66 → 3.0.0-dev.176

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 (183) hide show
  1. package/README.md +8 -3
  2. package/index.json +15447 -2574
  3. package/package.json +13 -10
  4. package/src/spec-common.attributes.json +0 -1650
  5. package/src/spec-common.contents.json +0 -313
  6. package/src/spec.a.json +0 -59
  7. package/src/spec.abbr.json +0 -25
  8. package/src/spec.address.json +0 -26
  9. package/src/spec.area.json +0 -64
  10. package/src/spec.article.json +0 -24
  11. package/src/spec.aside.json +0 -38
  12. package/src/spec.audio.json +0 -50
  13. package/src/spec.b.json +0 -24
  14. package/src/spec.base.json +0 -21
  15. package/src/spec.bdi.json +0 -24
  16. package/src/spec.bdo.json +0 -24
  17. package/src/spec.blockquote.json +0 -31
  18. package/src/spec.body.json +0 -100
  19. package/src/spec.br.json +0 -32
  20. package/src/spec.button.json +0 -71
  21. package/src/spec.canvas.json +0 -34
  22. package/src/spec.caption.json +0 -30
  23. package/src/spec.cite.json +0 -24
  24. package/src/spec.code.json +0 -27
  25. package/src/spec.col.json +0 -31
  26. package/src/spec.colgroup.json +0 -41
  27. package/src/spec.data.json +0 -29
  28. package/src/spec.datalist.json +0 -38
  29. package/src/spec.dd.json +0 -30
  30. package/src/spec.del.json +0 -36
  31. package/src/spec.details.json +0 -35
  32. package/src/spec.dfn.json +0 -24
  33. package/src/spec.dialog.json +0 -36
  34. package/src/spec.div.json +0 -55
  35. package/src/spec.dl.json +0 -50
  36. package/src/spec.dt.json +0 -27
  37. package/src/spec.em.json +0 -27
  38. package/src/spec.embed.json +0 -30
  39. package/src/spec.fieldset.json +0 -27
  40. package/src/spec.figcaption.json +0 -24
  41. package/src/spec.figure.json +0 -41
  42. package/src/spec.footer.json +0 -38
  43. package/src/spec.form.json +0 -101
  44. package/src/spec.h1.json +0 -26
  45. package/src/spec.h2.json +0 -26
  46. package/src/spec.h3.json +0 -26
  47. package/src/spec.h4.json +0 -26
  48. package/src/spec.h5.json +0 -26
  49. package/src/spec.h6.json +0 -26
  50. package/src/spec.head.json +0 -32
  51. package/src/spec.header.json +0 -38
  52. package/src/spec.hgroup.json +0 -37
  53. package/src/spec.hr.json +0 -23
  54. package/src/spec.html.json +0 -27
  55. package/src/spec.i.json +0 -24
  56. package/src/spec.iframe.json +0 -74
  57. package/src/spec.img.json +0 -109
  58. package/src/spec.input.json +0 -792
  59. package/src/spec.ins.json +0 -36
  60. package/src/spec.kbd.json +0 -24
  61. package/src/spec.label.json +0 -30
  62. package/src/spec.legend.json +0 -24
  63. package/src/spec.li.json +0 -40
  64. package/src/spec.link.json +0 -140
  65. package/src/spec.main.json +0 -27
  66. package/src/spec.map.json +0 -30
  67. package/src/spec.mark.json +0 -24
  68. package/src/spec.math.json +0 -20
  69. package/src/spec.menu.json +0 -53
  70. package/src/spec.meta.json +0 -59
  71. package/src/spec.meter.json +0 -63
  72. package/src/spec.nav.json +0 -26
  73. package/src/spec.noscript.json +0 -24
  74. package/src/spec.object.json +0 -40
  75. package/src/spec.ol.json +0 -71
  76. package/src/spec.optgroup.json +0 -34
  77. package/src/spec.option.json +0 -70
  78. package/src/spec.output.json +0 -29
  79. package/src/spec.p.json +0 -27
  80. package/src/spec.picture.json +0 -46
  81. package/src/spec.portal.json +0 -25
  82. package/src/spec.pre.json +0 -24
  83. package/src/spec.progress.json +0 -45
  84. package/src/spec.q.json +0 -30
  85. package/src/spec.rp.json +0 -24
  86. package/src/spec.rt.json +0 -24
  87. package/src/spec.ruby.json +0 -56
  88. package/src/spec.s.json +0 -24
  89. package/src/spec.samp.json +0 -24
  90. package/src/spec.script.json +0 -73
  91. package/src/spec.section.json +0 -73
  92. package/src/spec.select.json +0 -66
  93. package/src/spec.slot.json +0 -29
  94. package/src/spec.small.json +0 -24
  95. package/src/spec.source.json +0 -52
  96. package/src/spec.span.json +0 -24
  97. package/src/spec.strong.json +0 -27
  98. package/src/spec.style.json +0 -35
  99. package/src/spec.sub.json +0 -27
  100. package/src/spec.summary.json +0 -38
  101. package/src/spec.sup.json +0 -27
  102. package/src/spec.svg_a.json +0 -119
  103. package/src/spec.svg_animate.json +0 -109
  104. package/src/spec.svg_animateMotion.json +0 -73
  105. package/src/spec.svg_animateTransform.json +0 -47
  106. package/src/spec.svg_circle.json +0 -113
  107. package/src/spec.svg_clipPath.json +0 -101
  108. package/src/spec.svg_defs.json +0 -109
  109. package/src/spec.svg_desc.json +0 -21
  110. package/src/spec.svg_discard.json +0 -31
  111. package/src/spec.svg_ellipse.json +0 -116
  112. package/src/spec.svg_feBlend.json +0 -115
  113. package/src/spec.svg_feColorMatrix.json +0 -104
  114. package/src/spec.svg_feComponentTransfer.json +0 -97
  115. package/src/spec.svg_feComposite.json +0 -146
  116. package/src/spec.svg_feConvolveMatrix.json +0 -147
  117. package/src/spec.svg_feDiffuseLighting.json +0 -126
  118. package/src/spec.svg_feDisplacementMap.json +0 -133
  119. package/src/spec.svg_feDistantLight.json +0 -32
  120. package/src/spec.svg_feDropShadow.json +0 -109
  121. package/src/spec.svg_feFlood.json +0 -101
  122. package/src/spec.svg_feFuncA.json +0 -20
  123. package/src/spec.svg_feFuncB.json +0 -20
  124. package/src/spec.svg_feFuncG.json +0 -20
  125. package/src/spec.svg_feFuncR.json +0 -20
  126. package/src/spec.svg_feGaussianBlur.json +0 -105
  127. package/src/spec.svg_feImage.json +0 -123
  128. package/src/spec.svg_feMerge.json +0 -90
  129. package/src/spec.svg_feMergeNode.json +0 -20
  130. package/src/spec.svg_feMorphology.json +0 -106
  131. package/src/spec.svg_feOffset.json +0 -103
  132. package/src/spec.svg_fePointLight.json +0 -38
  133. package/src/spec.svg_feSpecularLighting.json +0 -131
  134. package/src/spec.svg_feSpotLight.json +0 -67
  135. package/src/spec.svg_feTile.json +0 -90
  136. package/src/spec.svg_feTurbulence.json +0 -126
  137. package/src/spec.svg_filter.json +0 -138
  138. package/src/spec.svg_foreignObject.json +0 -97
  139. package/src/spec.svg_g.json +0 -115
  140. package/src/spec.svg_image.json +0 -128
  141. package/src/spec.svg_line.json +0 -136
  142. package/src/spec.svg_linearGradient.json +0 -152
  143. package/src/spec.svg_marker.json +0 -180
  144. package/src/spec.svg_mask.json +0 -142
  145. package/src/spec.svg_metadata.json +0 -21
  146. package/src/spec.svg_mpath.json +0 -26
  147. package/src/spec.svg_path.json +0 -114
  148. package/src/spec.svg_pattern.json +0 -157
  149. package/src/spec.svg_polygon.json +0 -117
  150. package/src/spec.svg_polyline.json +0 -117
  151. package/src/spec.svg_radialGradient.json +0 -162
  152. package/src/spec.svg_rect.json +0 -118
  153. package/src/spec.svg_script.json +0 -40
  154. package/src/spec.svg_set.json +0 -42
  155. package/src/spec.svg_stop.json +0 -110
  156. package/src/spec.svg_style.json +0 -36
  157. package/src/spec.svg_svg.json +0 -170
  158. package/src/spec.svg_switch.json +0 -105
  159. package/src/spec.svg_symbol.json +0 -77
  160. package/src/spec.svg_text.json +0 -153
  161. package/src/spec.svg_textPath.json +0 -169
  162. package/src/spec.svg_title.json +0 -21
  163. package/src/spec.svg_tspan.json +0 -147
  164. package/src/spec.svg_use.json +0 -115
  165. package/src/spec.svg_view.json +0 -45
  166. package/src/spec.table.json +0 -64
  167. package/src/spec.tbody.json +0 -23
  168. package/src/spec.td.json +0 -37
  169. package/src/spec.template.json +0 -24
  170. package/src/spec.textarea.json +0 -67
  171. package/src/spec.tfoot.json +0 -23
  172. package/src/spec.th.json +0 -67
  173. package/src/spec.thead.json +0 -23
  174. package/src/spec.time.json +0 -32
  175. package/src/spec.title.json +0 -24
  176. package/src/spec.tr.json +0 -29
  177. package/src/spec.track.json +0 -54
  178. package/src/spec.u.json +0 -24
  179. package/src/spec.ul.json +0 -53
  180. package/src/spec.var.json +0 -24
  181. package/src/spec.video.json +0 -80
  182. package/src/spec.wbr.json +0 -25
  183. package/src/structure.test.ts +0 -84
@@ -1,792 +0,0 @@
1
- // https://html.spec.whatwg.org/multipage/input.html#the-input-element
2
- // https://www.w3.org/TR/html-aria/#el-input
3
- // https://w3c.github.io/html-aria/#el-input
4
- {
5
- "contentModel": {
6
- "contents": false
7
- },
8
- "globalAttrs": {
9
- "#HTMLGlobalAttrs": true,
10
- "#GlobalEventAttrs": true,
11
- "#DocumentElementEventAttrs": true,
12
- "#ARIAAttrs": true,
13
- "#HTMLEmbededAndMediaContentAttrs": ["src", "height", "width"],
14
- "#HTMLFormControlElementAttrs": [
15
- "autocomplete",
16
- "dirname",
17
- "disabled",
18
- "form",
19
- "formaction",
20
- "formenctype",
21
- "formmethod",
22
- "formnovalidate",
23
- "formtarget",
24
- "name",
25
- "maxlength",
26
- "minlength",
27
- "readonly",
28
- "required"
29
- ]
30
- },
31
- "attributes": {
32
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-accept
33
- "accept": {
34
- "type": {
35
- "token": "Accept",
36
- "caseInsensitive": true,
37
- "unique": true,
38
- "separator": "comma"
39
- },
40
- "condition": "[type='file' i]"
41
- },
42
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-alt
43
- "alt": {
44
- "type": "Any",
45
- "condition": "[type='image' i]"
46
- },
47
- // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-autocomplete
48
- "autocomplete": {
49
- "condition": [
50
- ":not([type])",
51
- "[type='hidden' i]",
52
- "[type='text' i]",
53
- "[type='search' i]",
54
- "[type='url' i]",
55
- "[type='tel' i]",
56
- "[type='email' i]",
57
- "[type='password' i]",
58
- "[type='date' i]",
59
- "[type='month' i]",
60
- "[type='week' i]",
61
- "[type='time' i]",
62
- "[type='datetime-local' i]",
63
- "[type='number' i]",
64
- "[type='range' i]",
65
- "[type='color' i]"
66
- ]
67
- },
68
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-checked
69
- "checked": {
70
- "type": "Boolean",
71
- "condition": ["[type='checkbox' i]", "[type='radio' i]"]
72
- },
73
- // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-dirname
74
- "dirname": {
75
- "condition": [":not([type])", "[type='text' i]", "[type='search' i]"]
76
- },
77
- // https://html.spec.whatwg.org/multipage/embedded-content-other.html#attr-dim-height
78
- "height": {
79
- "condition": "[type='image' i]"
80
- },
81
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-list
82
- "list": {
83
- "type": "DOMID",
84
- "condition": [
85
- ":not([type])",
86
- "[type='text' i]",
87
- "[type='search' i]",
88
- "[type='url' i]",
89
- "[type='tel' i]",
90
- "[type='email' i]",
91
- "[type='date' i]",
92
- "[type='month' i]",
93
- "[type='week' i]",
94
- "[type='time' i]",
95
- "[type='datetime-local' i]",
96
- "[type='number' i]",
97
- "[type='range' i]",
98
- "[type='color' i]"
99
- ]
100
- },
101
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-max
102
- "max": {
103
- "type": ["DateTime", "Number"],
104
- "condition": [
105
- "[type='date' i]",
106
- "[type='month' i]",
107
- "[type='week' i]",
108
- "[type='time' i]",
109
- "[type='datetime-local' i]",
110
- "[type='number' i]",
111
- "[type='range' i]"
112
- ]
113
- },
114
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-maxlength
115
- "maxlength": {
116
- "condition": [
117
- ":not([type])",
118
- "[type='text' i]",
119
- "[type='search' i]",
120
- "[type='url' i]",
121
- "[type='tel' i]",
122
- "[type='email' i]",
123
- "[type='password' i]"
124
- ]
125
- },
126
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-min
127
- "min": {
128
- "type": ["DateTime", "Number"],
129
- "condition": [
130
- "[type='date' i]",
131
- "[type='month' i]",
132
- "[type='week' i]",
133
- "[type='time' i]",
134
- "[type='datetime-local' i]",
135
- "[type='number' i]",
136
- "[type='range' i]"
137
- ]
138
- },
139
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-minlength
140
- "minlength": {
141
- "condition": [
142
- ":not([type])",
143
- "[type='text' i]",
144
- "[type='search' i]",
145
- "[type='url' i]",
146
- "[type='tel' i]",
147
- "[type='email' i]",
148
- "[type='password' i]"
149
- ]
150
- },
151
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-multiple
152
- "multiple": {
153
- "type": "Boolean",
154
- "condition": ["[type='email' i]", "[type='file' i]"]
155
- },
156
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-pattern
157
- "pattern": {
158
- "type": "Pattern",
159
- "condition": [
160
- ":not([type])",
161
- "[type='text' i]",
162
- "[type='search' i]",
163
- "[type='url' i]",
164
- "[type='tel' i]",
165
- "[type='email' i]",
166
- "[type='password' i]"
167
- ]
168
- },
169
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-placeholder
170
- "placeholder": {
171
- "type": "OneLineAny",
172
- "condition": [
173
- ":not([type])",
174
- "[type='text' i]",
175
- "[type='search' i]",
176
- "[type='url' i]",
177
- "[type='tel' i]",
178
- "[type='email' i]",
179
- "[type='password' i]",
180
- "[type='number' i]"
181
- ]
182
- },
183
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-readonly
184
- "readonly": {
185
- "condition": [
186
- ":not([type])",
187
- "[type='text' i]",
188
- "[type='search' i]",
189
- "[type='url' i]",
190
- "[type='tel' i]",
191
- "[type='email' i]",
192
- "[type='password' i]",
193
- "[type='date' i]",
194
- "[type='month' i]",
195
- "[type='week' i]",
196
- "[type='time' i]",
197
- "[type='datetime-local' i]",
198
- "[type='number' i]"
199
- ]
200
- },
201
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-required
202
- "required": {
203
- "condition": [
204
- ":not([type])",
205
- "[type='text' i]",
206
- "[type='search' i]",
207
- "[type='url' i]",
208
- "[type='tel' i]",
209
- "[type='email' i]",
210
- "[type='password' i]",
211
- "[type='date' i]",
212
- "[type='month' i]",
213
- "[type='week' i]",
214
- "[type='time' i]",
215
- "[type='datetime-local' i]",
216
- "[type='number' i]",
217
- "[type='checkbox' i]",
218
- "[type='radio' i]",
219
- "[type='file' i]"
220
- ]
221
- },
222
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-size
223
- "size": {
224
- "type": {
225
- "type": "integer",
226
- "gt": 0
227
- },
228
- "condition": [
229
- ":not([type])",
230
- "[type='text' i]",
231
- "[type='search' i]",
232
- "[type='url' i]",
233
- "[type='tel' i]",
234
- "[type='email' i]",
235
- "[type='password' i]"
236
- ],
237
- "defaultValue": "20"
238
- },
239
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-src
240
- "src": {
241
- "condition": "[type='image' i]"
242
- },
243
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-step
244
- "step": {
245
- "type": [
246
- "Number",
247
- {
248
- "enum": ["any"],
249
- "caseInsensitive": true
250
- }
251
- ],
252
- "condition": [
253
- "[type='date' i]",
254
- "[type='month' i]",
255
- "[type='week' i]",
256
- "[type='time' i]",
257
- "[type='datetime-local' i]",
258
- "[type='number' i]",
259
- "[type='range' i]"
260
- ]
261
- },
262
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-type
263
- "type": {
264
- "type": {
265
- "enum": [
266
- "hidden",
267
- "text",
268
- "search",
269
- "tel",
270
- "url",
271
- "email",
272
- "password",
273
- "date",
274
- "month",
275
- "week",
276
- "time",
277
- "datetime-local",
278
- "number",
279
- "range",
280
- "color",
281
- "checkbox",
282
- "radio",
283
- "file",
284
- "submit",
285
- "image",
286
- "reset",
287
- "button"
288
- ],
289
- "invalidValueDefault": "text",
290
- "missingValueDefault": "text"
291
- },
292
- "defaultValue": "text"
293
- },
294
- // https://html.spec.whatwg.org/multipage/input.html#attr-input-value
295
- "value": {
296
- // The `type` attribute determines the type
297
- "type": "Any"
298
- },
299
- // https://html.spec.whatwg.org/multipage/embedded-content-other.html#attr-dim-width
300
- "width": {
301
- "condition": "[type='image' i]"
302
- }
303
- },
304
- "aria": {
305
- // No condition:
306
- // > input type=text or with a missing or invalid type, with no list attribute
307
- // @see https://w3c.github.io/html-aria/#el-input-text
308
- "implicitRole": "textbox",
309
- "permittedRoles": ["combobox", "searchbox", "spinbutton"],
310
- "conditions": {
311
- "[type='button' i]": {
312
- "implicitRole": "button",
313
- "permittedRoles": [
314
- "checkbox",
315
- "combobox",
316
- "link",
317
- "menuitem",
318
- "menuitemcheckbox",
319
- "menuitemradio",
320
- "option",
321
- "radio",
322
- "switch",
323
- "tab"
324
- ]
325
- },
326
- "[type='checkbox' i]": {
327
- "implicitRole": "checkbox",
328
- // Roles: menuitemcheckbox, option or switch;
329
- "permittedRoles": ["menuitemcheckbox", "option", "switch"],
330
- "properties": {
331
- // Otherwise, any global aria-* attributes and any aria-* attributes applicable to the allowed roles.
332
- "global": true,
333
- "role": true,
334
- "whithout": [
335
- {
336
- // Authors MUST NOT use the aria-checked attribute on input type=checkbox elements.
337
- "type": "must-not",
338
- "name": "aria-checked",
339
- // The HTML checked attribute can be used instead of the aria-checked attribute for menuitemcheckbox, option or switch roles when used on type=checkbox.
340
- "alt": {
341
- "method": "set-attr",
342
- "target": "checked"
343
- }
344
- }
345
- ]
346
- }
347
- },
348
- "[type='checkbox' i][aria-pressed]": {
349
- "implicitRole": "checkbox",
350
- // button if used with aria-pressed.
351
- "permittedRoles": ["button"],
352
- "properties": {
353
- // Otherwise, any global aria-* attributes and any aria-* attributes applicable to the allowed roles.
354
- "global": true,
355
- "role": true,
356
- "whithout": [
357
- {
358
- // Authors MUST NOT use the aria-checked attribute on input type=checkbox elements.
359
- "type": "must-not",
360
- "name": "aria-checked",
361
- // The HTML checked attribute can be used instead of the aria-checked attribute for menuitemcheckbox, option or switch roles when used on type=checkbox.
362
- "alt": {
363
- "method": "set-attr",
364
- "target": "checked"
365
- }
366
- }
367
- ]
368
- }
369
- },
370
- "[type='color' i]": {
371
- "implicitRole": false,
372
- "permittedRoles": false,
373
- "properties": {
374
- "global": true
375
- }
376
- },
377
- "[type='date' i]": {
378
- "implicitRole": false,
379
- "permittedRoles": false,
380
- "properties": {
381
- "global": true,
382
- "role": "textbox"
383
- }
384
- },
385
- "[type='datetime-local' i]": {
386
- "permittedRoles": false,
387
- "properties": {
388
- "global": true,
389
- "role": "textbox"
390
- }
391
- },
392
- "[type='email' i]:not([list])": {
393
- "implicitRole": "textbox",
394
- "permittedRoles": false,
395
- "properties": {
396
- "global": true,
397
- "role": "textbox"
398
- }
399
- },
400
- "[type='file' i]": {
401
- "implicitRole": false,
402
- "permittedRoles": false,
403
- "properties": {
404
- "global": true
405
- }
406
- },
407
- "[type='hidden' i]": {
408
- "implicitRole": false,
409
- "permittedRoles": false,
410
- "properties": false
411
- },
412
- "[type='image' i]": {
413
- "implicitRole": "button",
414
- "permittedRoles": ["link", "menuitem", "menuitemcheckbox", "menuitemradio", "radio", "switch"]
415
- },
416
- "[type='month' i]": {
417
- "implicitRole": false,
418
- "permittedRoles": false,
419
- "properties": {
420
- "global": true,
421
- "role": "textbox"
422
- }
423
- },
424
- "[type='number' i]": {
425
- "implicitRole": "spinbutton",
426
- "permittedRoles": false,
427
- "properties": {
428
- "global": true,
429
- "role": "spinbutton"
430
- }
431
- },
432
- "[type='password' i]": {
433
- "implicitRole": false,
434
- "permittedRoles": false,
435
- "properties": {
436
- "global": true,
437
- "role": "textbox"
438
- }
439
- },
440
- "[type='radio' i]": {
441
- "implicitRole": "radio",
442
- "permittedRoles": ["menuitemradio"],
443
- "properties": {
444
- "global": true,
445
- "role": true,
446
- "whithout": [
447
- {
448
- // Authors MUST NOT use the aria-checked attribute on input type=radio elements.
449
- "type": "must-not",
450
- "name": "aria-checked",
451
- // The HTML checked attribute can be used instead of the aria-checked attribute for the menuitemradio role when used on type=radio.
452
- "alt": {
453
- "method": "set-attr",
454
- "target": "checked"
455
- }
456
- }
457
- ]
458
- }
459
- },
460
- "[type='range' i]": {
461
- "implicitRole": "slider",
462
- "permittedRoles": false,
463
- "properties": {
464
- "global": true,
465
- "role": "slider",
466
- // Authors SHOULD NOT use the aria-valuemax or aria-valuemin attributes on input type=range.
467
- "whithout": [
468
- {
469
- "type": "should-not",
470
- "name": "aria-valuemax"
471
- },
472
- {
473
- "type": "should-not",
474
- "name": "aria-valuemin"
475
- }
476
- ]
477
- }
478
- },
479
- "[type='reset' i]": {
480
- "implicitRole": "button",
481
- "permittedRoles": false,
482
- "properties": {
483
- "global": true,
484
- "role": "button"
485
- }
486
- },
487
- "[type='search' i]:not([list])": {
488
- "implicitRole": "searchbox",
489
- "permittedRoles": false,
490
- "properties": {
491
- "global": true,
492
- "role": "searchbox"
493
- }
494
- },
495
- "[type='submit' i]": {
496
- "implicitRole": "button",
497
- "permittedRoles": false,
498
- "properties": {
499
- "global": true,
500
- "role": "button"
501
- }
502
- },
503
- "[type='tel' i]:not([list])": {
504
- "implicitRole": "textbox",
505
- "permittedRoles": false,
506
- "properties": {
507
- "global": true,
508
- "role": "textbox"
509
- }
510
- },
511
- ":is(:not([type]), [type='text' i], [type='search' i], [type='tel' i], [type='url' i], [type='email' i])[list]": {
512
- "implicitRole": "combobox",
513
- "permittedRoles": false,
514
- "properties": {
515
- "global": true,
516
- "role": "combobox",
517
- // Authors SHOULD NOT use the aria-haspopup attribute on the indicated inputs with a list attribute.
518
- "whithout": [
519
- {
520
- "type": "should-not",
521
- "name": "aria-haspopup"
522
- }
523
- ]
524
- }
525
- },
526
- "[type='time' i]": {
527
- "implicitRole": false,
528
- "permittedRoles": false,
529
- "properties": {
530
- "global": true,
531
- "role": "textbox"
532
- }
533
- },
534
- "[type='url' i]:not([list])": {
535
- "implicitRole": "textbox",
536
- "permittedRoles": false,
537
- "properties": {
538
- "global": true,
539
- "role": "textbox"
540
- }
541
- },
542
- "[type='week' i]": {
543
- "implicitRole": false,
544
- "permittedRoles": false,
545
- "properties": {
546
- "global": true,
547
- "role": "textbox"
548
- }
549
- }
550
- },
551
- "1.1": {
552
- // No condition:
553
- // > input type=text or with a missing or invalid type, with no list attribute
554
- // https://www.w3.org/TR/html-aria/#el-input-text
555
- "implicitRole": "textbox",
556
- "permittedRoles": ["combobox", "searchbox", "spinbutton"],
557
- "conditions": {
558
- "[type='button' i]": {
559
- "implicitRole": "button",
560
- "permittedRoles": [
561
- "link",
562
- "menuitem",
563
- "menuitemcheckbox",
564
- "menuitemradio",
565
- "option",
566
- "radio",
567
- "switch",
568
- "tab"
569
- ]
570
- },
571
- "[type='checkbox' i]": {
572
- "implicitRole": "checkbox",
573
- // Roles: menuitemcheckbox, option or switch;
574
- "permittedRoles": ["menuitemcheckbox", "option", "switch"],
575
- "properties": {
576
- // Authors SHOULD NOT use the aria-checked attribute on input type=checkbox elements.
577
- // Otherwise, any global aria-* attributes and any aria-* attributes applicable to the allowed roles.
578
- "global": true,
579
- "role": true,
580
- "whithout": [
581
- {
582
- "type": "should-not",
583
- "name": "aria-checked", // The HTML checked attribute can be used instead of the aria-checked attribute for menuitemcheckbox, option or switch roles when used on type=checkbox.
584
- "alt": {
585
- "method": "set-attr",
586
- "target": "checked"
587
- }
588
- }
589
- ]
590
- }
591
- },
592
- "[type='checkbox' i][aria-pressed]": {
593
- "implicitRole": "checkbox",
594
- // button if used with aria-pressed.
595
- "permittedRoles": ["button"],
596
- "properties": {
597
- // Authors SHOULD NOT use the aria-checked attribute on input type=checkbox elements.
598
- // Otherwise, any global aria-* attributes and any aria-* attributes applicable to the allowed roles.
599
- "global": true,
600
- "role": true,
601
- "whithout": [
602
- {
603
- "type": "should-not",
604
- "name": "aria-hecked"
605
- }
606
- ]
607
- }
608
- },
609
- "[type='color' i]": {
610
- "implicitRole": false,
611
- "permittedRoles": false,
612
- "properties": {
613
- "global": true
614
- }
615
- },
616
- "[type='date' i]": {
617
- "implicitRole": false,
618
- "permittedRoles": false,
619
- "properties": {
620
- "global": true,
621
- "role": "textbox"
622
- }
623
- },
624
- "[type='datetime-local' i]": {
625
- "permittedRoles": false,
626
- "properties": {
627
- "global": true,
628
- "role": "textbox"
629
- }
630
- },
631
- "[type='email' i]:not([list])": {
632
- "implicitRole": "textbox",
633
- "permittedRoles": false,
634
- "properties": {
635
- "global": true,
636
- "role": "textbox"
637
- }
638
- },
639
- "[type='file' i]": {
640
- "implicitRole": false,
641
- "permittedRoles": false,
642
- "properties": {
643
- "global": true
644
- }
645
- },
646
- "[type='hidden' i]": {
647
- "implicitRole": false,
648
- "permittedRoles": false,
649
- "properties": false
650
- },
651
- "[type='image' i]": {
652
- "implicitRole": "button",
653
- "permittedRoles": ["link", "menuitem", "menuitemcheckbox", "menuitemradio", "radio", "switch"]
654
- },
655
- "[type='month' i]": {
656
- "implicitRole": false,
657
- "permittedRoles": false,
658
- "properties": {
659
- "global": true,
660
- "role": "textbox"
661
- }
662
- },
663
- "[type='number' i]": {
664
- "implicitRole": "spinbutton",
665
- "permittedRoles": false,
666
- "properties": {
667
- "global": true,
668
- "role": "spinbutton"
669
- }
670
- },
671
- "[type='password' i]": {
672
- "implicitRole": false,
673
- "permittedRoles": false,
674
- "properties": {
675
- "global": true,
676
- "role": "textbox"
677
- }
678
- },
679
- "[type='radio' i]": {
680
- "implicitRole": "radio",
681
- "permittedRoles": ["menuitemradio"],
682
- "properties": {
683
- "global": true,
684
- "role": true,
685
- // Authors SHOULD NOT use the aria-checked attribute on input type=radio elements.
686
- "whithout": [
687
- {
688
- "type": "should-not",
689
- "name": "aria-checked",
690
- // The HTML checked attribute can be used instead of the aria-checked attribute for the menuitemradio role when used on type=radio.
691
- "alt": {
692
- "method": "set-attr",
693
- "target": "checked"
694
- }
695
- }
696
- ]
697
- }
698
- },
699
- "[type='range' i]": {
700
- "implicitRole": "slider",
701
- "permittedRoles": false,
702
- "properties": {
703
- "global": true,
704
- "role": "slider",
705
- // Authors SHOULD NOT use the aria-valuemax or aria-valuemin attributes on input type=range.
706
- "whithout": [
707
- {
708
- "type": "should-not",
709
- "name": "aria-valuemax"
710
- },
711
- {
712
- "type": "should-not",
713
- "name": "aria-valuemin"
714
- }
715
- ]
716
- }
717
- },
718
- "[type='reset' i]": {
719
- "implicitRole": "button",
720
- "permittedRoles": false,
721
- "properties": {
722
- "global": true,
723
- "role": "button"
724
- }
725
- },
726
- "[type='search' i]:not([list])": {
727
- "implicitRole": "searchbox",
728
- "permittedRoles": false,
729
- "properties": {
730
- "global": true,
731
- "role": "searchbox"
732
- }
733
- },
734
- "[type='submit' i]": {
735
- "implicitRole": "button",
736
- "permittedRoles": false,
737
- "properties": {
738
- "global": true,
739
- "role": "button"
740
- }
741
- },
742
- "[type='tel' i]:not([list])": {
743
- "implicitRole": "textbox",
744
- "permittedRoles": false,
745
- "properties": {
746
- "global": true,
747
- "role": "textbox"
748
- }
749
- },
750
- ":is(:not([type]), [type='text' i], [type='search' i], [type='tel' i], [type='url' i], [type='email' i])[list]": {
751
- "implicitRole": "combobox",
752
- "permittedRoles": false,
753
- "properties": {
754
- "global": true,
755
- "role": "combobox",
756
- // Authors SHOULD NOT use the aria-haspopup attribute on the indicated inputs with a list attribute.
757
- "whithout": [
758
- {
759
- "type": "should-not",
760
- "name": "aria-haspopup"
761
- }
762
- ]
763
- }
764
- },
765
- "[type='time' i]": {
766
- "implicitRole": false,
767
- "permittedRoles": false,
768
- "properties": {
769
- "global": true,
770
- "role": "textbox"
771
- }
772
- },
773
- "[type='url' i]:not([list])": {
774
- "implicitRole": "textbox",
775
- "permittedRoles": false,
776
- "properties": {
777
- "global": true,
778
- "role": "textbox"
779
- }
780
- },
781
- "[type='week' i]": {
782
- "implicitRole": false,
783
- "permittedRoles": false,
784
- "properties": {
785
- "global": true,
786
- "role": "textbox"
787
- }
788
- }
789
- }
790
- }
791
- }
792
- }