@markuplint/html-spec 3.0.0-dev.24 → 3.0.0-dev.38

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 (181) hide show
  1. package/package.json +3 -3
  2. package/src/spec-common.attributes.json +0 -1650
  3. package/src/spec-common.contents.json +0 -392
  4. package/src/spec.a.json +0 -58
  5. package/src/spec.abbr.json +0 -25
  6. package/src/spec.address.json +0 -25
  7. package/src/spec.area.json +0 -64
  8. package/src/spec.article.json +0 -24
  9. package/src/spec.aside.json +0 -38
  10. package/src/spec.audio.json +0 -48
  11. package/src/spec.b.json +0 -24
  12. package/src/spec.base.json +0 -21
  13. package/src/spec.bdi.json +0 -24
  14. package/src/spec.bdo.json +0 -24
  15. package/src/spec.blockquote.json +0 -31
  16. package/src/spec.body.json +0 -100
  17. package/src/spec.br.json +0 -32
  18. package/src/spec.button.json +0 -70
  19. package/src/spec.canvas.json +0 -33
  20. package/src/spec.caption.json +0 -30
  21. package/src/spec.cite.json +0 -24
  22. package/src/spec.code.json +0 -27
  23. package/src/spec.col.json +0 -31
  24. package/src/spec.colgroup.json +0 -41
  25. package/src/spec.data.json +0 -29
  26. package/src/spec.datalist.json +0 -38
  27. package/src/spec.dd.json +0 -30
  28. package/src/spec.del.json +0 -36
  29. package/src/spec.details.json +0 -35
  30. package/src/spec.dfn.json +0 -23
  31. package/src/spec.dialog.json +0 -36
  32. package/src/spec.div.json +0 -55
  33. package/src/spec.dl.json +0 -56
  34. package/src/spec.dt.json +0 -26
  35. package/src/spec.em.json +0 -27
  36. package/src/spec.embed.json +0 -30
  37. package/src/spec.fieldset.json +0 -27
  38. package/src/spec.figcaption.json +0 -24
  39. package/src/spec.figure.json +0 -52
  40. package/src/spec.footer.json +0 -37
  41. package/src/spec.form.json +0 -100
  42. package/src/spec.h1.json +0 -26
  43. package/src/spec.h2.json +0 -26
  44. package/src/spec.h3.json +0 -26
  45. package/src/spec.h4.json +0 -26
  46. package/src/spec.h5.json +0 -26
  47. package/src/spec.h6.json +0 -26
  48. package/src/spec.head.json +0 -30
  49. package/src/spec.header.json +0 -37
  50. package/src/spec.hgroup.json +0 -45
  51. package/src/spec.hr.json +0 -23
  52. package/src/spec.html.json +0 -27
  53. package/src/spec.i.json +0 -24
  54. package/src/spec.iframe.json +0 -70
  55. package/src/spec.img.json +0 -109
  56. package/src/spec.input.json +0 -792
  57. package/src/spec.ins.json +0 -36
  58. package/src/spec.kbd.json +0 -24
  59. package/src/spec.label.json +0 -29
  60. package/src/spec.legend.json +0 -24
  61. package/src/spec.li.json +0 -40
  62. package/src/spec.link.json +0 -140
  63. package/src/spec.main.json +0 -27
  64. package/src/spec.map.json +0 -30
  65. package/src/spec.mark.json +0 -24
  66. package/src/spec.math.json +0 -20
  67. package/src/spec.menu.json +0 -53
  68. package/src/spec.meta.json +0 -59
  69. package/src/spec.meter.json +0 -62
  70. package/src/spec.nav.json +0 -26
  71. package/src/spec.noscript.json +0 -24
  72. package/src/spec.object.json +0 -40
  73. package/src/spec.ol.json +0 -71
  74. package/src/spec.optgroup.json +0 -34
  75. package/src/spec.option.json +0 -70
  76. package/src/spec.output.json +0 -29
  77. package/src/spec.p.json +0 -27
  78. package/src/spec.picture.json +0 -46
  79. package/src/spec.portal.json +0 -25
  80. package/src/spec.pre.json +0 -24
  81. package/src/spec.progress.json +0 -44
  82. package/src/spec.q.json +0 -29
  83. package/src/spec.rp.json +0 -23
  84. package/src/spec.rt.json +0 -24
  85. package/src/spec.ruby.json +0 -55
  86. package/src/spec.s.json +0 -24
  87. package/src/spec.samp.json +0 -24
  88. package/src/spec.script.json +0 -73
  89. package/src/spec.section.json +0 -73
  90. package/src/spec.select.json +0 -66
  91. package/src/spec.slot.json +0 -29
  92. package/src/spec.small.json +0 -24
  93. package/src/spec.source.json +0 -52
  94. package/src/spec.span.json +0 -24
  95. package/src/spec.strong.json +0 -27
  96. package/src/spec.style.json +0 -35
  97. package/src/spec.sub.json +0 -27
  98. package/src/spec.summary.json +0 -38
  99. package/src/spec.sup.json +0 -27
  100. package/src/spec.svg_a.json +0 -118
  101. package/src/spec.svg_animate.json +0 -109
  102. package/src/spec.svg_animateMotion.json +0 -73
  103. package/src/spec.svg_animateTransform.json +0 -47
  104. package/src/spec.svg_circle.json +0 -113
  105. package/src/spec.svg_clipPath.json +0 -108
  106. package/src/spec.svg_defs.json +0 -109
  107. package/src/spec.svg_desc.json +0 -21
  108. package/src/spec.svg_discard.json +0 -31
  109. package/src/spec.svg_ellipse.json +0 -116
  110. package/src/spec.svg_feBlend.json +0 -115
  111. package/src/spec.svg_feColorMatrix.json +0 -104
  112. package/src/spec.svg_feComponentTransfer.json +0 -97
  113. package/src/spec.svg_feComposite.json +0 -146
  114. package/src/spec.svg_feConvolveMatrix.json +0 -147
  115. package/src/spec.svg_feDiffuseLighting.json +0 -126
  116. package/src/spec.svg_feDisplacementMap.json +0 -133
  117. package/src/spec.svg_feDistantLight.json +0 -32
  118. package/src/spec.svg_feDropShadow.json +0 -109
  119. package/src/spec.svg_feFlood.json +0 -101
  120. package/src/spec.svg_feFuncA.json +0 -20
  121. package/src/spec.svg_feFuncB.json +0 -20
  122. package/src/spec.svg_feFuncG.json +0 -20
  123. package/src/spec.svg_feFuncR.json +0 -20
  124. package/src/spec.svg_feGaussianBlur.json +0 -105
  125. package/src/spec.svg_feImage.json +0 -123
  126. package/src/spec.svg_feMerge.json +0 -90
  127. package/src/spec.svg_feMergeNode.json +0 -20
  128. package/src/spec.svg_feMorphology.json +0 -106
  129. package/src/spec.svg_feOffset.json +0 -103
  130. package/src/spec.svg_fePointLight.json +0 -38
  131. package/src/spec.svg_feSpecularLighting.json +0 -131
  132. package/src/spec.svg_feSpotLight.json +0 -67
  133. package/src/spec.svg_feTile.json +0 -90
  134. package/src/spec.svg_feTurbulence.json +0 -127
  135. package/src/spec.svg_filter.json +0 -138
  136. package/src/spec.svg_foreignObject.json +0 -97
  137. package/src/spec.svg_g.json +0 -115
  138. package/src/spec.svg_image.json +0 -128
  139. package/src/spec.svg_line.json +0 -136
  140. package/src/spec.svg_linearGradient.json +0 -152
  141. package/src/spec.svg_marker.json +0 -180
  142. package/src/spec.svg_mask.json +0 -142
  143. package/src/spec.svg_metadata.json +0 -21
  144. package/src/spec.svg_mpath.json +0 -26
  145. package/src/spec.svg_path.json +0 -114
  146. package/src/spec.svg_pattern.json +0 -157
  147. package/src/spec.svg_polygon.json +0 -117
  148. package/src/spec.svg_polyline.json +0 -117
  149. package/src/spec.svg_radialGradient.json +0 -162
  150. package/src/spec.svg_rect.json +0 -118
  151. package/src/spec.svg_script.json +0 -40
  152. package/src/spec.svg_set.json +0 -42
  153. package/src/spec.svg_stop.json +0 -110
  154. package/src/spec.svg_style.json +0 -36
  155. package/src/spec.svg_svg.json +0 -170
  156. package/src/spec.svg_switch.json +0 -105
  157. package/src/spec.svg_symbol.json +0 -77
  158. package/src/spec.svg_text.json +0 -153
  159. package/src/spec.svg_textPath.json +0 -169
  160. package/src/spec.svg_title.json +0 -21
  161. package/src/spec.svg_tspan.json +0 -147
  162. package/src/spec.svg_use.json +0 -115
  163. package/src/spec.svg_view.json +0 -45
  164. package/src/spec.table.json +0 -64
  165. package/src/spec.tbody.json +0 -23
  166. package/src/spec.td.json +0 -37
  167. package/src/spec.template.json +0 -20
  168. package/src/spec.textarea.json +0 -67
  169. package/src/spec.tfoot.json +0 -23
  170. package/src/spec.th.json +0 -66
  171. package/src/spec.thead.json +0 -23
  172. package/src/spec.time.json +0 -32
  173. package/src/spec.title.json +0 -24
  174. package/src/spec.tr.json +0 -29
  175. package/src/spec.track.json +0 -54
  176. package/src/spec.u.json +0 -24
  177. package/src/spec.ul.json +0 -53
  178. package/src/spec.var.json +0 -24
  179. package/src/spec.video.json +0 -78
  180. package/src/spec.wbr.json +0 -25
  181. 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
- "without": [
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
- "without": [
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
- "without": [
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
- "without": [
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
- "without": [
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
- "without": [
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
- "without": [
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
- "without": [
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
- "without": [
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
- "without": [
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
- }