axe-core 4.2.4 → 4.3.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 (681) hide show
  1. package/CHANGELOG.md +37 -2
  2. package/README.md +24 -2
  3. package/axe.d.ts +60 -4
  4. package/axe.js +1198 -830
  5. package/axe.min.js +2 -2
  6. package/locales/de.json +1 -1
  7. package/locales/pt_BR.json +163 -44
  8. package/package.json +7 -1
  9. package/.eslintrc.js +0 -112
  10. package/.prettierrc.json +0 -10
  11. package/CONTRIBUTING.md +0 -242
  12. package/bower.json +0 -40
  13. package/doc/API.md +0 -963
  14. package/doc/accessibility-supported.md +0 -37
  15. package/doc/act-rules-format.md +0 -37
  16. package/doc/aria-supported.md +0 -13
  17. package/doc/backwards-compatibility-doc.md +0 -94
  18. package/doc/check-message-template.md +0 -124
  19. package/doc/check-options.md +0 -437
  20. package/doc/code-submission-guidelines.md +0 -171
  21. package/doc/developer-guide.md +0 -515
  22. package/doc/examples/chrome-debugging-protocol/README.md +0 -13
  23. package/doc/examples/chrome-debugging-protocol/axe-cdp.js +0 -81
  24. package/doc/examples/chrome-debugging-protocol/package.json +0 -11
  25. package/doc/examples/html-handlebars.md +0 -164
  26. package/doc/examples/jasmine/README.md +0 -35
  27. package/doc/examples/jasmine/karma.conf.js +0 -29
  28. package/doc/examples/jasmine/package-lock.json +0 -1489
  29. package/doc/examples/jasmine/package.json +0 -21
  30. package/doc/examples/jasmine/spec/a11y.js +0 -36
  31. package/doc/examples/jest_react/README.md +0 -41
  32. package/doc/examples/jest_react/link.js +0 -7
  33. package/doc/examples/jest_react/link.test.js +0 -24
  34. package/doc/examples/jest_react/package-lock.json +0 -7525
  35. package/doc/examples/jest_react/package.json +0 -28
  36. package/doc/examples/jest_react/test-helpers.js +0 -21
  37. package/doc/examples/jsdom/package.json +0 -15
  38. package/doc/examples/mocha/README.md +0 -35
  39. package/doc/examples/mocha/karma.conf.js +0 -29
  40. package/doc/examples/mocha/package-lock.json +0 -1671
  41. package/doc/examples/mocha/package.json +0 -22
  42. package/doc/examples/phantomjs/README.md +0 -17
  43. package/doc/examples/phantomjs/axe-phantom.js +0 -53
  44. package/doc/examples/phantomjs/package-lock.json +0 -862
  45. package/doc/examples/phantomjs/package.json +0 -19
  46. package/doc/examples/puppeteer/README.md +0 -12
  47. package/doc/examples/puppeteer/axe-puppeteer.js +0 -60
  48. package/doc/examples/puppeteer/package.json +0 -13
  49. package/doc/examples/qunit/README.md +0 -37
  50. package/doc/examples/qunit/package-lock.json +0 -2951
  51. package/doc/examples/qunit/package.json +0 -21
  52. package/doc/examples/test-examples.js +0 -40
  53. package/doc/frame-messenger.md +0 -107
  54. package/doc/plugins.md +0 -123
  55. package/doc/projects.md +0 -56
  56. package/doc/rule-descriptions.md +0 -135
  57. package/doc/rule-development.md +0 -123
  58. package/doc/rule-proposal.md +0 -106
  59. package/doc/standards-object.md +0 -147
  60. package/lib/checks/aria/abstractrole-evaluate.js +0 -40
  61. package/lib/checks/aria/abstractrole.json +0 -14
  62. package/lib/checks/aria/aria-allowed-attr-evaluate.js +0 -58
  63. package/lib/checks/aria/aria-allowed-attr.json +0 -14
  64. package/lib/checks/aria/aria-allowed-role-evaluate.js +0 -42
  65. package/lib/checks/aria/aria-allowed-role.json +0 -22
  66. package/lib/checks/aria/aria-errormessage-evaluate.js +0 -68
  67. package/lib/checks/aria/aria-errormessage.json +0 -18
  68. package/lib/checks/aria/aria-hidden-body-evaluate.js +0 -11
  69. package/lib/checks/aria/aria-hidden-body.json +0 -11
  70. package/lib/checks/aria/aria-prohibited-attr-evaluate.js +0 -68
  71. package/lib/checks/aria/aria-prohibited-attr.json +0 -15
  72. package/lib/checks/aria/aria-required-attr-evaluate.js +0 -67
  73. package/lib/checks/aria/aria-required-attr.json +0 -14
  74. package/lib/checks/aria/aria-required-children-evaluate.js +0 -137
  75. package/lib/checks/aria/aria-required-children.json +0 -32
  76. package/lib/checks/aria/aria-required-parent-evaluate.js +0 -120
  77. package/lib/checks/aria/aria-required-parent.json +0 -17
  78. package/lib/checks/aria/aria-roledescription-evaluate.js +0 -25
  79. package/lib/checks/aria/aria-roledescription.json +0 -23
  80. package/lib/checks/aria/aria-unsupported-attr-evaluate.js +0 -53
  81. package/lib/checks/aria/aria-unsupported-attr.json +0 -11
  82. package/lib/checks/aria/aria-valid-attr-evaluate.js +0 -51
  83. package/lib/checks/aria/aria-valid-attr-value-evaluate.js +0 -122
  84. package/lib/checks/aria/aria-valid-attr-value.json +0 -19
  85. package/lib/checks/aria/aria-valid-attr.json +0 -15
  86. package/lib/checks/aria/fallbackrole-evaluate.js +0 -13
  87. package/lib/checks/aria/fallbackrole.json +0 -11
  88. package/lib/checks/aria/has-global-aria-attribute-evaluate.js +0 -11
  89. package/lib/checks/aria/has-global-aria-attribute.json +0 -14
  90. package/lib/checks/aria/has-widget-role-evaluate.js +0 -20
  91. package/lib/checks/aria/has-widget-role.json +0 -12
  92. package/lib/checks/aria/invalidrole-evaluate.js +0 -45
  93. package/lib/checks/aria/invalidrole.json +0 -14
  94. package/lib/checks/aria/is-element-focusable-evaluate.js +0 -7
  95. package/lib/checks/aria/is-element-focusable.json +0 -11
  96. package/lib/checks/aria/no-implicit-explicit-label-evaluate.js +0 -54
  97. package/lib/checks/aria/no-implicit-explicit-label.json +0 -11
  98. package/lib/checks/aria/unsupportedrole-evaluate.js +0 -15
  99. package/lib/checks/aria/unsupportedrole.json +0 -11
  100. package/lib/checks/aria/valid-scrollable-semantics-evaluate.js +0 -70
  101. package/lib/checks/aria/valid-scrollable-semantics.json +0 -14
  102. package/lib/checks/color/color-contrast-evaluate.js +0 -178
  103. package/lib/checks/color/color-contrast.json +0 -42
  104. package/lib/checks/color/link-in-text-block-evaluate.js +0 -94
  105. package/lib/checks/color/link-in-text-block.json +0 -19
  106. package/lib/checks/forms/autocomplete-appropriate-evaluate.js +0 -84
  107. package/lib/checks/forms/autocomplete-appropriate.json +0 -11
  108. package/lib/checks/forms/autocomplete-valid-evaluate.js +0 -8
  109. package/lib/checks/forms/autocomplete-valid.json +0 -11
  110. package/lib/checks/generic/README.md +0 -13
  111. package/lib/checks/generic/attr-non-space-content-evaluate.js +0 -28
  112. package/lib/checks/generic/has-descendant-after.js +0 -15
  113. package/lib/checks/generic/has-descendant-evaluate.js +0 -20
  114. package/lib/checks/generic/has-text-content-evaluate.js +0 -11
  115. package/lib/checks/generic/matches-definition-evaluate.js +0 -7
  116. package/lib/checks/generic/page-no-duplicate-after.js +0 -6
  117. package/lib/checks/generic/page-no-duplicate-evaluate.js +0 -42
  118. package/lib/checks/index.js +0 -11
  119. package/lib/checks/keyboard/accesskeys-after.js +0 -23
  120. package/lib/checks/keyboard/accesskeys-evaluate.js +0 -11
  121. package/lib/checks/keyboard/accesskeys.json +0 -12
  122. package/lib/checks/keyboard/focusable-content-evaluate.js +0 -20
  123. package/lib/checks/keyboard/focusable-content.json +0 -11
  124. package/lib/checks/keyboard/focusable-disabled-evaluate.js +0 -36
  125. package/lib/checks/keyboard/focusable-disabled.json +0 -11
  126. package/lib/checks/keyboard/focusable-element-evaluate.js +0 -47
  127. package/lib/checks/keyboard/focusable-element.json +0 -11
  128. package/lib/checks/keyboard/focusable-modal-open-evaluate.js +0 -20
  129. package/lib/checks/keyboard/focusable-modal-open.json +0 -11
  130. package/lib/checks/keyboard/focusable-no-name-evaluate.js +0 -18
  131. package/lib/checks/keyboard/focusable-no-name.json +0 -12
  132. package/lib/checks/keyboard/focusable-not-tabbable-evaluate.js +0 -36
  133. package/lib/checks/keyboard/focusable-not-tabbable.json +0 -11
  134. package/lib/checks/keyboard/frame-focusable-content.json +0 -12
  135. package/lib/checks/keyboard/landmark-is-top-level-evaluate.js +0 -31
  136. package/lib/checks/keyboard/landmark-is-top-level.json +0 -11
  137. package/lib/checks/keyboard/no-focusable-content-evaluate.js +0 -35
  138. package/lib/checks/keyboard/no-focusable-content.json +0 -12
  139. package/lib/checks/keyboard/page-has-heading-one.json +0 -15
  140. package/lib/checks/keyboard/page-has-main.json +0 -15
  141. package/lib/checks/keyboard/page-no-duplicate-banner.json +0 -16
  142. package/lib/checks/keyboard/page-no-duplicate-contentinfo.json +0 -16
  143. package/lib/checks/keyboard/page-no-duplicate-main.json +0 -15
  144. package/lib/checks/keyboard/tabindex-evaluate.js +0 -10
  145. package/lib/checks/keyboard/tabindex.json +0 -11
  146. package/lib/checks/label/alt-space-value-evaluate.js +0 -7
  147. package/lib/checks/label/alt-space-value.json +0 -11
  148. package/lib/checks/label/duplicate-img-label-evaluate.js +0 -23
  149. package/lib/checks/label/duplicate-img-label.json +0 -14
  150. package/lib/checks/label/explicit-evaluate.js +0 -34
  151. package/lib/checks/label/explicit.json +0 -12
  152. package/lib/checks/label/help-same-as-label-evaluate.js +0 -28
  153. package/lib/checks/label/help-same-as-label.json +0 -12
  154. package/lib/checks/label/hidden-explicit-label-evaluate.js +0 -30
  155. package/lib/checks/label/hidden-explicit-label.json +0 -12
  156. package/lib/checks/label/implicit-evaluate.js +0 -16
  157. package/lib/checks/label/implicit.json +0 -12
  158. package/lib/checks/label/label-content-name-mismatch-evaluate.js +0 -71
  159. package/lib/checks/label/label-content-name-mismatch.json +0 -15
  160. package/lib/checks/label/multiple-label-evaluate.js +0 -44
  161. package/lib/checks/label/multiple-label.json +0 -11
  162. package/lib/checks/label/title-only-evaluate.js +0 -11
  163. package/lib/checks/label/title-only.json +0 -11
  164. package/lib/checks/landmarks/landmark-is-unique-after.js +0 -27
  165. package/lib/checks/landmarks/landmark-is-unique-evaluate.js +0 -14
  166. package/lib/checks/landmarks/landmark-is-unique.json +0 -12
  167. package/lib/checks/language/has-lang-evaluate.js +0 -39
  168. package/lib/checks/language/has-lang.json +0 -17
  169. package/lib/checks/language/valid-lang-evaluate.js +0 -36
  170. package/lib/checks/language/valid-lang.json +0 -14
  171. package/lib/checks/language/xml-lang-mismatch-evaluate.js +0 -10
  172. package/lib/checks/language/xml-lang-mismatch.json +0 -11
  173. package/lib/checks/lists/dlitem-evaluate.js +0 -30
  174. package/lib/checks/lists/dlitem.json +0 -11
  175. package/lib/checks/lists/listitem-evaluate.js +0 -28
  176. package/lib/checks/lists/listitem.json +0 -14
  177. package/lib/checks/lists/only-dlitems-evaluate.js +0 -51
  178. package/lib/checks/lists/only-dlitems.json +0 -11
  179. package/lib/checks/lists/only-listitems-evaluate.js +0 -63
  180. package/lib/checks/lists/only-listitems.json +0 -14
  181. package/lib/checks/lists/structured-dlitems-evaluate.js +0 -26
  182. package/lib/checks/lists/structured-dlitems.json +0 -11
  183. package/lib/checks/media/caption-evaluate.js +0 -13
  184. package/lib/checks/media/caption.json +0 -11
  185. package/lib/checks/media/frame-tested-after.js +0 -31
  186. package/lib/checks/media/frame-tested-evaluate.js +0 -6
  187. package/lib/checks/media/frame-tested.json +0 -16
  188. package/lib/checks/media/no-autoplay-audio-evaluate.js +0 -97
  189. package/lib/checks/media/no-autoplay-audio.json +0 -15
  190. package/lib/checks/mobile/css-orientation-lock-evaluate.js +0 -254
  191. package/lib/checks/mobile/css-orientation-lock.json +0 -15
  192. package/lib/checks/mobile/meta-viewport-large.json +0 -15
  193. package/lib/checks/mobile/meta-viewport-scale-evaluate.js +0 -71
  194. package/lib/checks/mobile/meta-viewport.json +0 -14
  195. package/lib/checks/navigation/header-present.json +0 -15
  196. package/lib/checks/navigation/heading-order-after.js +0 -132
  197. package/lib/checks/navigation/heading-order-evaluate.js +0 -58
  198. package/lib/checks/navigation/heading-order.json +0 -13
  199. package/lib/checks/navigation/identical-links-same-purpose-after.js +0 -106
  200. package/lib/checks/navigation/identical-links-same-purpose-evaluate.js +0 -35
  201. package/lib/checks/navigation/identical-links-same-purpose.json +0 -12
  202. package/lib/checks/navigation/internal-link-present-evaluate.js +0 -10
  203. package/lib/checks/navigation/internal-link-present.json +0 -11
  204. package/lib/checks/navigation/landmark.json +0 -14
  205. package/lib/checks/navigation/meta-refresh-evaluate.js +0 -8
  206. package/lib/checks/navigation/meta-refresh.json +0 -11
  207. package/lib/checks/navigation/p-as-heading-evaluate.js +0 -98
  208. package/lib/checks/navigation/p-as-heading.json +0 -30
  209. package/lib/checks/navigation/region-evaluate.js +0 -106
  210. package/lib/checks/navigation/region.json +0 -14
  211. package/lib/checks/navigation/skip-link-evaluate.js +0 -11
  212. package/lib/checks/navigation/skip-link.json +0 -12
  213. package/lib/checks/navigation/unique-frame-title-after.js +0 -13
  214. package/lib/checks/navigation/unique-frame-title-evaluate.js +0 -9
  215. package/lib/checks/navigation/unique-frame-title.json +0 -12
  216. package/lib/checks/parsing/duplicate-id-active.json +0 -12
  217. package/lib/checks/parsing/duplicate-id-after.js +0 -12
  218. package/lib/checks/parsing/duplicate-id-aria.json +0 -12
  219. package/lib/checks/parsing/duplicate-id-evaluate.js +0 -24
  220. package/lib/checks/parsing/duplicate-id.json +0 -12
  221. package/lib/checks/shared/aria-label-evaluate.js +0 -8
  222. package/lib/checks/shared/aria-label.json +0 -11
  223. package/lib/checks/shared/aria-labelledby-evaluate.js +0 -12
  224. package/lib/checks/shared/aria-labelledby.json +0 -12
  225. package/lib/checks/shared/avoid-inline-spacing-evaluate.js +0 -16
  226. package/lib/checks/shared/avoid-inline-spacing.json +0 -17
  227. package/lib/checks/shared/button-has-visible-text.json +0 -12
  228. package/lib/checks/shared/doc-has-title-evaluate.js +0 -8
  229. package/lib/checks/shared/doc-has-title.json +0 -11
  230. package/lib/checks/shared/exists-evaluate.js +0 -5
  231. package/lib/checks/shared/exists.json +0 -11
  232. package/lib/checks/shared/has-alt-evaluate.js +0 -10
  233. package/lib/checks/shared/has-alt.json +0 -11
  234. package/lib/checks/shared/has-visible-text.json +0 -12
  235. package/lib/checks/shared/is-on-screen-evaluate.js +0 -8
  236. package/lib/checks/shared/is-on-screen.json +0 -11
  237. package/lib/checks/shared/non-empty-alt.json +0 -17
  238. package/lib/checks/shared/non-empty-if-present-evaluate.js +0 -19
  239. package/lib/checks/shared/non-empty-if-present.json +0 -14
  240. package/lib/checks/shared/non-empty-placeholder.json +0 -17
  241. package/lib/checks/shared/non-empty-title.json +0 -17
  242. package/lib/checks/shared/non-empty-value.json +0 -17
  243. package/lib/checks/shared/presentational-role-evaluate.js +0 -42
  244. package/lib/checks/shared/presentational-role.json +0 -16
  245. package/lib/checks/shared/role-none.json +0 -19
  246. package/lib/checks/shared/role-presentation.json +0 -19
  247. package/lib/checks/shared/svg-non-empty-title-evaluate.js +0 -33
  248. package/lib/checks/shared/svg-non-empty-title.json +0 -15
  249. package/lib/checks/tables/caption-faked-evaluate.js +0 -16
  250. package/lib/checks/tables/caption-faked.json +0 -11
  251. package/lib/checks/tables/html5-scope-evaluate.js +0 -11
  252. package/lib/checks/tables/html5-scope.json +0 -11
  253. package/lib/checks/tables/same-caption-summary-evaluate.js +0 -12
  254. package/lib/checks/tables/same-caption-summary.json +0 -11
  255. package/lib/checks/tables/scope-value-evaluate.js +0 -7
  256. package/lib/checks/tables/scope-value.json +0 -14
  257. package/lib/checks/tables/td-has-header-evaluate.js +0 -33
  258. package/lib/checks/tables/td-has-header.json +0 -11
  259. package/lib/checks/tables/td-headers-attr-evaluate.js +0 -67
  260. package/lib/checks/tables/td-headers-attr.json +0 -12
  261. package/lib/checks/tables/th-has-data-cells-evaluate.js +0 -82
  262. package/lib/checks/tables/th-has-data-cells.json +0 -12
  263. package/lib/checks/visibility/hidden-content-evaluate.js +0 -34
  264. package/lib/checks/visibility/hidden-content.json +0 -12
  265. package/lib/commons/aria/allowed-attr.js +0 -31
  266. package/lib/commons/aria/arialabel-text.js +0 -21
  267. package/lib/commons/aria/arialabelledby-text.js +0 -65
  268. package/lib/commons/aria/get-accessible-refs.js +0 -73
  269. package/lib/commons/aria/get-element-unallowed-roles.js +0 -110
  270. package/lib/commons/aria/get-explicit-role.js +0 -26
  271. package/lib/commons/aria/get-owned-virtual.js +0 -27
  272. package/lib/commons/aria/get-role-type.js +0 -21
  273. package/lib/commons/aria/get-role.js +0 -178
  274. package/lib/commons/aria/get-roles-by-type.js +0 -16
  275. package/lib/commons/aria/get-roles-with-name-from-contents.js +0 -15
  276. package/lib/commons/aria/implicit-nodes.js +0 -23
  277. package/lib/commons/aria/implicit-role.js +0 -44
  278. package/lib/commons/aria/index.js +0 -32
  279. package/lib/commons/aria/is-accessible-ref.js +0 -12
  280. package/lib/commons/aria/is-aria-role-allowed-on-element.js +0 -32
  281. package/lib/commons/aria/is-unsupported-role.js +0 -16
  282. package/lib/commons/aria/is-valid-role.js +0 -22
  283. package/lib/commons/aria/label-virtual.js +0 -46
  284. package/lib/commons/aria/label.js +0 -17
  285. package/lib/commons/aria/lookup-table.js +0 -2435
  286. package/lib/commons/aria/named-from-contents.js +0 -39
  287. package/lib/commons/aria/required-attr.js +0 -21
  288. package/lib/commons/aria/required-context.js +0 -21
  289. package/lib/commons/aria/required-owned.js +0 -21
  290. package/lib/commons/aria/validate-attr-value.js +0 -70
  291. package/lib/commons/aria/validate-attr.js +0 -16
  292. package/lib/commons/color/center-point-of-rect.js +0 -31
  293. package/lib/commons/color/color.js +0 -250
  294. package/lib/commons/color/element-has-image.js +0 -35
  295. package/lib/commons/color/element-is-distinct.js +0 -87
  296. package/lib/commons/color/filtered-rect-stack.js +0 -51
  297. package/lib/commons/color/flatten-colors.js +0 -22
  298. package/lib/commons/color/get-background-color.js +0 -84
  299. package/lib/commons/color/get-background-stack.js +0 -130
  300. package/lib/commons/color/get-contrast.js +0 -27
  301. package/lib/commons/color/get-foreground-color.js +0 -69
  302. package/lib/commons/color/get-own-background-color.js +0 -24
  303. package/lib/commons/color/get-rect-stack.js +0 -32
  304. package/lib/commons/color/get-text-shadow-colors.js +0 -121
  305. package/lib/commons/color/has-valid-contrast-ratio.js +0 -30
  306. package/lib/commons/color/incomplete-data.js +0 -47
  307. package/lib/commons/color/index.js +0 -20
  308. package/lib/commons/dom/find-elms-in-context.js +0 -31
  309. package/lib/commons/dom/find-up-virtual.js +0 -52
  310. package/lib/commons/dom/find-up.js +0 -20
  311. package/lib/commons/dom/focus-disabled.js +0 -30
  312. package/lib/commons/dom/get-composed-parent.js +0 -26
  313. package/lib/commons/dom/get-element-by-reference.js +0 -34
  314. package/lib/commons/dom/get-element-coordinates.js +0 -38
  315. package/lib/commons/dom/get-element-stack.js +0 -28
  316. package/lib/commons/dom/get-rect-stack.js +0 -514
  317. package/lib/commons/dom/get-root-node.js +0 -12
  318. package/lib/commons/dom/get-scroll-offset.js +0 -32
  319. package/lib/commons/dom/get-tabbable-elements.js +0 -26
  320. package/lib/commons/dom/get-text-element-stack.js +0 -89
  321. package/lib/commons/dom/get-viewport-size.js +0 -35
  322. package/lib/commons/dom/has-content-virtual.js +0 -53
  323. package/lib/commons/dom/has-content.js +0 -21
  324. package/lib/commons/dom/idrefs.js +0 -41
  325. package/lib/commons/dom/index.js +0 -38
  326. package/lib/commons/dom/inserted-into-focus-order.js +0 -24
  327. package/lib/commons/dom/is-focusable.js +0 -36
  328. package/lib/commons/dom/is-hidden-with-css.js +0 -76
  329. package/lib/commons/dom/is-html5.js +0 -17
  330. package/lib/commons/dom/is-in-text-block.js +0 -107
  331. package/lib/commons/dom/is-modal-open.js +0 -104
  332. package/lib/commons/dom/is-natively-focusable.js +0 -41
  333. package/lib/commons/dom/is-node.js +0 -14
  334. package/lib/commons/dom/is-offscreen.js +0 -66
  335. package/lib/commons/dom/is-opaque.js +0 -16
  336. package/lib/commons/dom/is-skip-link.js +0 -49
  337. package/lib/commons/dom/is-visible.js +0 -201
  338. package/lib/commons/dom/is-visual-content.js +0 -49
  339. package/lib/commons/dom/reduce-to-elements-below-floating.js +0 -36
  340. package/lib/commons/dom/shadow-elements-from-point.js +0 -47
  341. package/lib/commons/dom/url-props-from-attribute.js +0 -152
  342. package/lib/commons/dom/visually-contains.js +0 -113
  343. package/lib/commons/dom/visually-overlaps.js +0 -46
  344. package/lib/commons/forms/index.js +0 -12
  345. package/lib/commons/forms/is-aria-combobox.js +0 -15
  346. package/lib/commons/forms/is-aria-listbox.js +0 -15
  347. package/lib/commons/forms/is-aria-range.js +0 -17
  348. package/lib/commons/forms/is-aria-textbox.js +0 -15
  349. package/lib/commons/forms/is-disabled.js +0 -40
  350. package/lib/commons/forms/is-native-select.js +0 -17
  351. package/lib/commons/forms/is-native-textbox.js +0 -34
  352. package/lib/commons/index.js +0 -31
  353. package/lib/commons/matches/attributes.js +0 -32
  354. package/lib/commons/matches/condition.js +0 -20
  355. package/lib/commons/matches/explicit-role.js +0 -24
  356. package/lib/commons/matches/from-definition.js +0 -73
  357. package/lib/commons/matches/from-function.js +0 -40
  358. package/lib/commons/matches/from-primative.js +0 -44
  359. package/lib/commons/matches/implicit-role.js +0 -24
  360. package/lib/commons/matches/index.js +0 -29
  361. package/lib/commons/matches/matches.js +0 -39
  362. package/lib/commons/matches/node-name.js +0 -29
  363. package/lib/commons/matches/properties.js +0 -32
  364. package/lib/commons/matches/semantic-role.js +0 -24
  365. package/lib/commons/standards/get-aria-roles-by-type.js +0 -14
  366. package/lib/commons/standards/get-aria-roles-supporting-name-from-content.js +0 -22
  367. package/lib/commons/standards/get-element-spec.js +0 -54
  368. package/lib/commons/standards/get-elements-by-content-type.js +0 -30
  369. package/lib/commons/standards/get-global-aria-attrs.js +0 -22
  370. package/lib/commons/standards/implicit-html-roles.js +0 -186
  371. package/lib/commons/standards/index.js +0 -11
  372. package/lib/commons/table/get-all-cells.js +0 -28
  373. package/lib/commons/table/get-cell-position.js +0 -32
  374. package/lib/commons/table/get-headers.js +0 -102
  375. package/lib/commons/table/get-scope.js +0 -58
  376. package/lib/commons/table/index.js +0 -19
  377. package/lib/commons/table/is-column-header.js +0 -15
  378. package/lib/commons/table/is-data-cell.js +0 -24
  379. package/lib/commons/table/is-data-table.js +0 -195
  380. package/lib/commons/table/is-header.js +0 -26
  381. package/lib/commons/table/is-row-header.js +0 -15
  382. package/lib/commons/table/to-grid.js +0 -48
  383. package/lib/commons/table/traverse.js +0 -76
  384. package/lib/commons/text/accessible-text-virtual.js +0 -152
  385. package/lib/commons/text/accessible-text.js +0 -19
  386. package/lib/commons/text/form-control-value.js +0 -216
  387. package/lib/commons/text/has-unicode.js +0 -38
  388. package/lib/commons/text/index.js +0 -32
  389. package/lib/commons/text/is-human-interpretable.js +0 -54
  390. package/lib/commons/text/is-icon-ligature.js +0 -214
  391. package/lib/commons/text/is-valid-autocomplete.js +0 -118
  392. package/lib/commons/text/label-text.js +0 -70
  393. package/lib/commons/text/label-virtual.js +0 -50
  394. package/lib/commons/text/label.js +0 -19
  395. package/lib/commons/text/native-element-type.js +0 -101
  396. package/lib/commons/text/native-text-alternative.js +0 -46
  397. package/lib/commons/text/native-text-methods.js +0 -136
  398. package/lib/commons/text/remove-unicode.js +0 -38
  399. package/lib/commons/text/sanitize.js +0 -21
  400. package/lib/commons/text/subtree-text.js +0 -74
  401. package/lib/commons/text/title-text.js +0 -33
  402. package/lib/commons/text/unicode.js +0 -85
  403. package/lib/commons/text/unsupported.js +0 -5
  404. package/lib/commons/text/visible-text-nodes.js +0 -27
  405. package/lib/commons/text/visible-virtual.js +0 -46
  406. package/lib/commons/text/visible.js +0 -18
  407. package/lib/core/base/audit.js +0 -767
  408. package/lib/core/base/cache.js +0 -30
  409. package/lib/core/base/check-result.js +0 -31
  410. package/lib/core/base/check.js +0 -215
  411. package/lib/core/base/context.js +0 -280
  412. package/lib/core/base/metadata-function-map.js +0 -353
  413. package/lib/core/base/rule-result.js +0 -39
  414. package/lib/core/base/rule.js +0 -611
  415. package/lib/core/base/virtual-node/abstract-virtual-node.js +0 -43
  416. package/lib/core/base/virtual-node/serial-virtual-node.js +0 -117
  417. package/lib/core/base/virtual-node/virtual-node.js +0 -194
  418. package/lib/core/constants.js +0 -70
  419. package/lib/core/core.js +0 -91
  420. package/lib/core/imports/index.js +0 -39
  421. package/lib/core/index.js +0 -40
  422. package/lib/core/log.js +0 -13
  423. package/lib/core/public/cleanup.js +0 -51
  424. package/lib/core/public/configure.js +0 -134
  425. package/lib/core/public/frame-messenger.js +0 -5
  426. package/lib/core/public/get-rules.js +0 -29
  427. package/lib/core/public/load.js +0 -65
  428. package/lib/core/public/plugins.js +0 -39
  429. package/lib/core/public/reporter.js +0 -25
  430. package/lib/core/public/reset.js +0 -13
  431. package/lib/core/public/run-rules.js +0 -83
  432. package/lib/core/public/run-virtual-rule.js +0 -63
  433. package/lib/core/public/run.js +0 -186
  434. package/lib/core/public/setup.js +0 -20
  435. package/lib/core/public/teardown.js +0 -21
  436. package/lib/core/reporters/helpers/failure-summary.js +0 -33
  437. package/lib/core/reporters/helpers/get-environment-data.js +0 -39
  438. package/lib/core/reporters/helpers/incomplete-fallback-msg.js +0 -12
  439. package/lib/core/reporters/helpers/index.js +0 -21
  440. package/lib/core/reporters/helpers/process-aggregate.js +0 -110
  441. package/lib/core/reporters/na.js +0 -24
  442. package/lib/core/reporters/no-passes.js +0 -20
  443. package/lib/core/reporters/raw-env.js +0 -17
  444. package/lib/core/reporters/raw.js +0 -32
  445. package/lib/core/reporters/v1.js +0 -33
  446. package/lib/core/reporters/v2.js +0 -19
  447. package/lib/core/utils/aggregate-checks.js +0 -90
  448. package/lib/core/utils/aggregate-node-results.js +0 -65
  449. package/lib/core/utils/aggregate-result.js +0 -39
  450. package/lib/core/utils/aggregate.js +0 -21
  451. package/lib/core/utils/are-styles-set.js +0 -18
  452. package/lib/core/utils/assert.js +0 -12
  453. package/lib/core/utils/check-helper.js +0 -36
  454. package/lib/core/utils/clone.js +0 -28
  455. package/lib/core/utils/closest.js +0 -30
  456. package/lib/core/utils/collect-results-from-frames.js +0 -84
  457. package/lib/core/utils/contains.js +0 -46
  458. package/lib/core/utils/css-parser.js +0 -9
  459. package/lib/core/utils/deep-merge.js +0 -31
  460. package/lib/core/utils/dq-element.js +0 -131
  461. package/lib/core/utils/element-matches.js +0 -43
  462. package/lib/core/utils/escape-selector.js +0 -79
  463. package/lib/core/utils/extend-meta-data.js +0 -20
  464. package/lib/core/utils/filter-html-attrs.js +0 -75
  465. package/lib/core/utils/finalize-result.js +0 -28
  466. package/lib/core/utils/find-by.js +0 -16
  467. package/lib/core/utils/frame-messenger/assert-window.js +0 -21
  468. package/lib/core/utils/frame-messenger/channel-store.js +0 -23
  469. package/lib/core/utils/frame-messenger/create-responder.js +0 -15
  470. package/lib/core/utils/frame-messenger/message-handler.js +0 -72
  471. package/lib/core/utils/frame-messenger/message-id.js +0 -22
  472. package/lib/core/utils/frame-messenger/message-parser.js +0 -109
  473. package/lib/core/utils/frame-messenger/post-message.js +0 -54
  474. package/lib/core/utils/frame-messenger/process-error.js +0 -30
  475. package/lib/core/utils/frame-messenger.js +0 -40
  476. package/lib/core/utils/get-all-checks.js +0 -13
  477. package/lib/core/utils/get-ancestry.js +0 -31
  478. package/lib/core/utils/get-base-lang.js +0 -18
  479. package/lib/core/utils/get-check-message.js +0 -24
  480. package/lib/core/utils/get-check-option.js +0 -41
  481. package/lib/core/utils/get-flattened-tree.js +0 -151
  482. package/lib/core/utils/get-friendly-uri-end.js +0 -143
  483. package/lib/core/utils/get-node-attributes.js +0 -22
  484. package/lib/core/utils/get-node-from-tree.js +0 -14
  485. package/lib/core/utils/get-root-node.js +0 -17
  486. package/lib/core/utils/get-rule.js +0 -17
  487. package/lib/core/utils/get-scroll-state.js +0 -43
  488. package/lib/core/utils/get-scroll.js +0 -41
  489. package/lib/core/utils/get-selector.js +0 -395
  490. package/lib/core/utils/get-shadow-selector.js +0 -31
  491. package/lib/core/utils/get-standards.js +0 -6
  492. package/lib/core/utils/get-stylesheet-factory.js +0 -53
  493. package/lib/core/utils/get-xpath.js +0 -84
  494. package/lib/core/utils/index.js +0 -90
  495. package/lib/core/utils/inject-style.js +0 -33
  496. package/lib/core/utils/is-hidden.js +0 -55
  497. package/lib/core/utils/is-html-element.js +0 -137
  498. package/lib/core/utils/is-node-in-context.js +0 -46
  499. package/lib/core/utils/is-shadow-root.js +0 -40
  500. package/lib/core/utils/is-xhtml.js +0 -15
  501. package/lib/core/utils/matches.js +0 -263
  502. package/lib/core/utils/memoize.js +0 -22
  503. package/lib/core/utils/merge-results.js +0 -134
  504. package/lib/core/utils/node-sorter.js +0 -23
  505. package/lib/core/utils/parse-crossorigin-stylesheet.js +0 -66
  506. package/lib/core/utils/parse-sameorigin-stylesheet.js +0 -100
  507. package/lib/core/utils/parse-stylesheet.js +0 -75
  508. package/lib/core/utils/performance-timer.js +0 -126
  509. package/lib/core/utils/pollyfills.js +0 -347
  510. package/lib/core/utils/preload-cssom.js +0 -249
  511. package/lib/core/utils/preload-media.js +0 -70
  512. package/lib/core/utils/preload.js +0 -150
  513. package/lib/core/utils/process-message.js +0 -77
  514. package/lib/core/utils/publish-metadata.js +0 -109
  515. package/lib/core/utils/query-selector-all-filter.js +0 -104
  516. package/lib/core/utils/query-selector-all.js +0 -15
  517. package/lib/core/utils/queue.js +0 -137
  518. package/lib/core/utils/respondable.js +0 -108
  519. package/lib/core/utils/rule-should-run.js +0 -83
  520. package/lib/core/utils/select.js +0 -87
  521. package/lib/core/utils/send-command-to-frame.js +0 -65
  522. package/lib/core/utils/set-scroll-state.js +0 -21
  523. package/lib/core/utils/to-array.js +0 -10
  524. package/lib/core/utils/token-list.js +0 -15
  525. package/lib/core/utils/unique-array.js +0 -13
  526. package/lib/core/utils/uuid.js +0 -253
  527. package/lib/core/utils/valid-input-type.js +0 -35
  528. package/lib/core/utils/valid-langs.js +0 -105
  529. package/lib/intro.stub +0 -15
  530. package/lib/misc/any-failure-summary.json +0 -6
  531. package/lib/misc/incomplete-fallback.json +0 -3
  532. package/lib/misc/none-failure-summary.json +0 -6
  533. package/lib/outro.stub +0 -2
  534. package/lib/rules/accesskeys.json +0 -13
  535. package/lib/rules/area-alt.json +0 -22
  536. package/lib/rules/aria-allowed-attr-matches.js +0 -15
  537. package/lib/rules/aria-allowed-attr.json +0 -12
  538. package/lib/rules/aria-allowed-role-matches.js +0 -12
  539. package/lib/rules/aria-allowed-role.json +0 -14
  540. package/lib/rules/aria-command-name.json +0 -18
  541. package/lib/rules/aria-dialog-name.json +0 -13
  542. package/lib/rules/aria-has-attr-matches.js +0 -9
  543. package/lib/rules/aria-hidden-body.json +0 -14
  544. package/lib/rules/aria-hidden-focus-matches.js +0 -22
  545. package/lib/rules/aria-hidden-focus.json +0 -18
  546. package/lib/rules/aria-input-field-name.json +0 -13
  547. package/lib/rules/aria-meter-name.json +0 -13
  548. package/lib/rules/aria-progressbar-name.json +0 -13
  549. package/lib/rules/aria-required-attr.json +0 -12
  550. package/lib/rules/aria-required-children-matches.js +0 -8
  551. package/lib/rules/aria-required-children.json +0 -13
  552. package/lib/rules/aria-required-parent-matches.js +0 -8
  553. package/lib/rules/aria-required-parent.json +0 -13
  554. package/lib/rules/aria-roledescription.json +0 -12
  555. package/lib/rules/aria-roles.json +0 -13
  556. package/lib/rules/aria-text.json +0 -12
  557. package/lib/rules/aria-toggle-field-name.json +0 -18
  558. package/lib/rules/aria-tooltip-name.json +0 -18
  559. package/lib/rules/aria-treeitem-name.json +0 -18
  560. package/lib/rules/aria-valid-attr-value.json +0 -12
  561. package/lib/rules/aria-valid-attr.json +0 -12
  562. package/lib/rules/audio-caption.json +0 -20
  563. package/lib/rules/autocomplete-matches.js +0 -58
  564. package/lib/rules/autocomplete-valid.json +0 -12
  565. package/lib/rules/avoid-inline-spacing.json +0 -12
  566. package/lib/rules/blink.json +0 -19
  567. package/lib/rules/button-name.json +0 -26
  568. package/lib/rules/bypass-matches.js +0 -14
  569. package/lib/rules/bypass.json +0 -21
  570. package/lib/rules/color-contrast-matches.js +0 -156
  571. package/lib/rules/color-contrast.json +0 -13
  572. package/lib/rules/css-orientation-lock.json +0 -13
  573. package/lib/rules/data-table-large-matches.js +0 -17
  574. package/lib/rules/data-table-matches.js +0 -7
  575. package/lib/rules/definition-list.json +0 -13
  576. package/lib/rules/dlitem.json +0 -13
  577. package/lib/rules/document-title.json +0 -13
  578. package/lib/rules/duplicate-id-active-matches.js +0 -15
  579. package/lib/rules/duplicate-id-active.json +0 -14
  580. package/lib/rules/duplicate-id-aria-matches.js +0 -7
  581. package/lib/rules/duplicate-id-aria.json +0 -14
  582. package/lib/rules/duplicate-id-misc-matches.js +0 -17
  583. package/lib/rules/duplicate-id.json +0 -14
  584. package/lib/rules/empty-heading.json +0 -19
  585. package/lib/rules/empty-table-header.json +0 -13
  586. package/lib/rules/focus-order-semantics.json +0 -13
  587. package/lib/rules/form-field-multiple-labels.json +0 -13
  588. package/lib/rules/frame-focusable-content-matches.js +0 -9
  589. package/lib/rules/frame-focusable-content.json +0 -13
  590. package/lib/rules/frame-tested.json +0 -12
  591. package/lib/rules/frame-title-has-text-matches.js +0 -8
  592. package/lib/rules/frame-title-unique.json +0 -13
  593. package/lib/rules/frame-title.json +0 -24
  594. package/lib/rules/has-implicit-chromium-role-matches.js +0 -7
  595. package/lib/rules/heading-matches.js +0 -19
  596. package/lib/rules/heading-order.json +0 -13
  597. package/lib/rules/hidden-content.json +0 -13
  598. package/lib/rules/html-has-lang.json +0 -13
  599. package/lib/rules/html-lang-valid.json +0 -12
  600. package/lib/rules/html-namespace-matches.js +0 -7
  601. package/lib/rules/html-xml-lang-mismatch.json +0 -13
  602. package/lib/rules/identical-links-same-purpose-matches.js +0 -18
  603. package/lib/rules/identical-links-same-purpose.json +0 -14
  604. package/lib/rules/image-alt.json +0 -26
  605. package/lib/rules/img-redundant-alt.json +0 -12
  606. package/lib/rules/input-button-name.json +0 -26
  607. package/lib/rules/input-image-alt.json +0 -20
  608. package/lib/rules/inserted-into-focus-order-matches.js +0 -7
  609. package/lib/rules/is-initiator-matches.js +0 -5
  610. package/lib/rules/label-content-name-mismatch-matches.js +0 -52
  611. package/lib/rules/label-content-name-mismatch.json +0 -12
  612. package/lib/rules/label-matches.js +0 -15
  613. package/lib/rules/label-title-only.json +0 -13
  614. package/lib/rules/label.json +0 -29
  615. package/lib/rules/landmark-banner-is-top-level.json +0 -13
  616. package/lib/rules/landmark-complementary-is-top-level.json +0 -12
  617. package/lib/rules/landmark-contentinfo-is-top-level.json +0 -13
  618. package/lib/rules/landmark-has-body-context-matches.js +0 -13
  619. package/lib/rules/landmark-main-is-top-level.json +0 -12
  620. package/lib/rules/landmark-no-duplicate-banner.json +0 -12
  621. package/lib/rules/landmark-no-duplicate-contentinfo.json +0 -12
  622. package/lib/rules/landmark-no-duplicate-main.json +0 -12
  623. package/lib/rules/landmark-one-main.json +0 -12
  624. package/lib/rules/landmark-unique-matches.js +0 -50
  625. package/lib/rules/landmark-unique.json +0 -13
  626. package/lib/rules/layout-table-matches.js +0 -8
  627. package/lib/rules/link-in-text-block-matches.js +0 -21
  628. package/lib/rules/link-in-text-block.json +0 -14
  629. package/lib/rules/link-name.json +0 -25
  630. package/lib/rules/list.json +0 -13
  631. package/lib/rules/listitem.json +0 -13
  632. package/lib/rules/marquee.json +0 -13
  633. package/lib/rules/meta-refresh.json +0 -20
  634. package/lib/rules/meta-viewport-large.json +0 -14
  635. package/lib/rules/meta-viewport.json +0 -14
  636. package/lib/rules/nested-interactive-matches.js +0 -13
  637. package/lib/rules/nested-interactive.json +0 -12
  638. package/lib/rules/no-autoplay-audio-matches.js +0 -22
  639. package/lib/rules/no-autoplay-audio.json +0 -15
  640. package/lib/rules/no-empty-role-matches.js +0 -13
  641. package/lib/rules/no-explicit-name-required-matches.js +0 -22
  642. package/lib/rules/no-naming-method-matches.js +0 -24
  643. package/lib/rules/no-role-matches.js +0 -5
  644. package/lib/rules/not-html-matches.js +0 -5
  645. package/lib/rules/object-alt.json +0 -24
  646. package/lib/rules/p-as-heading-matches.js +0 -21
  647. package/lib/rules/p-as-heading.json +0 -13
  648. package/lib/rules/page-has-heading-one.json +0 -12
  649. package/lib/rules/presentation-role-conflict-matches.js +0 -7
  650. package/lib/rules/presentation-role-conflict.json +0 -13
  651. package/lib/rules/region.json +0 -12
  652. package/lib/rules/role-img-alt.json +0 -20
  653. package/lib/rules/scope-attr-valid.json +0 -12
  654. package/lib/rules/scrollable-region-focusable-matches.js +0 -75
  655. package/lib/rules/scrollable-region-focusable.json +0 -12
  656. package/lib/rules/select-name.json +0 -27
  657. package/lib/rules/server-side-image-map.json +0 -18
  658. package/lib/rules/skip-link-matches.js +0 -7
  659. package/lib/rules/skip-link.json +0 -13
  660. package/lib/rules/svg-img-alt.json +0 -25
  661. package/lib/rules/svg-namespace-matches.js +0 -18
  662. package/lib/rules/tabindex.json +0 -12
  663. package/lib/rules/table-duplicate-name.json +0 -12
  664. package/lib/rules/table-fake-caption.json +0 -20
  665. package/lib/rules/td-has-header.json +0 -20
  666. package/lib/rules/td-headers-attr.json +0 -12
  667. package/lib/rules/th-has-data-cells.json +0 -13
  668. package/lib/rules/valid-lang.json +0 -13
  669. package/lib/rules/video-caption.json +0 -19
  670. package/lib/rules/window-is-top-matches.js +0 -8
  671. package/lib/rules/xml-lang-mismatch-matches.js +0 -14
  672. package/lib/standards/aria-attrs.js +0 -209
  673. package/lib/standards/aria-roles.js +0 -835
  674. package/lib/standards/css-colors.js +0 -153
  675. package/lib/standards/dpub-roles.js +0 -219
  676. package/lib/standards/graphics-roles.js +0 -22
  677. package/lib/standards/html-elms.js +0 -933
  678. package/lib/standards/index.js +0 -37
  679. package/sri-history.json +0 -274
  680. package/typings/axe-core/axe-core-tests.js +0 -203
  681. package/typings/axe-core/axe-core-tests.ts +0 -233
@@ -1,2435 +0,0 @@
1
- // @deprecated use standards object instead
2
- import implicitHtmlRoles from '../standards/implicit-html-roles';
3
-
4
- const isNull = value => value === null;
5
- const isNotNull = value => value !== null;
6
-
7
- const lookupTable = {};
8
-
9
- lookupTable.attributes = {
10
- 'aria-activedescendant': {
11
- type: 'idref',
12
- allowEmpty: true,
13
- unsupported: false
14
- },
15
- 'aria-atomic': {
16
- type: 'boolean',
17
- values: ['true', 'false'],
18
- unsupported: false
19
- },
20
- 'aria-autocomplete': {
21
- type: 'nmtoken',
22
- values: ['inline', 'list', 'both', 'none'],
23
- unsupported: false
24
- },
25
- 'aria-busy': {
26
- type: 'boolean',
27
- values: ['true', 'false'],
28
- unsupported: false
29
- },
30
- 'aria-checked': {
31
- type: 'nmtoken',
32
- values: ['true', 'false', 'mixed', 'undefined'],
33
- unsupported: false
34
- },
35
- 'aria-colcount': {
36
- type: 'int',
37
- unsupported: false
38
- },
39
- 'aria-colindex': {
40
- type: 'int',
41
- unsupported: false
42
- },
43
- 'aria-colspan': {
44
- type: 'int',
45
- unsupported: false
46
- },
47
- 'aria-controls': {
48
- type: 'idrefs',
49
- allowEmpty: true,
50
- unsupported: false
51
- },
52
- 'aria-current': {
53
- type: 'nmtoken',
54
- allowEmpty: true,
55
- values: ['page', 'step', 'location', 'date', 'time', 'true', 'false'],
56
- unsupported: false
57
- },
58
- 'aria-describedby': {
59
- type: 'idrefs',
60
- allowEmpty: true,
61
- unsupported: false
62
- },
63
- 'aria-describedat': {
64
- unsupported: true,
65
- unstandardized: true
66
- },
67
- 'aria-details': {
68
- type: 'idref',
69
- allowEmpty: true,
70
- unsupported: false
71
- },
72
- 'aria-disabled': {
73
- type: 'boolean',
74
- values: ['true', 'false'],
75
- unsupported: false
76
- },
77
- 'aria-dropeffect': {
78
- type: 'nmtokens',
79
- values: ['copy', 'move', 'reference', 'execute', 'popup', 'none'],
80
- unsupported: false
81
- },
82
- 'aria-errormessage': {
83
- type: 'idref',
84
- allowEmpty: true,
85
- unsupported: false
86
- },
87
- 'aria-expanded': {
88
- type: 'nmtoken',
89
- values: ['true', 'false', 'undefined'],
90
- unsupported: false
91
- },
92
- 'aria-flowto': {
93
- type: 'idrefs',
94
- allowEmpty: true,
95
- unsupported: false
96
- },
97
- 'aria-grabbed': {
98
- type: 'nmtoken',
99
- values: ['true', 'false', 'undefined'],
100
- unsupported: false
101
- },
102
- 'aria-haspopup': {
103
- type: 'nmtoken',
104
- allowEmpty: true,
105
- values: ['true', 'false', 'menu', 'listbox', 'tree', 'grid', 'dialog'],
106
- unsupported: false
107
- },
108
- 'aria-hidden': {
109
- type: 'boolean',
110
- values: ['true', 'false'],
111
- unsupported: false
112
- },
113
- 'aria-invalid': {
114
- type: 'nmtoken',
115
- allowEmpty: true,
116
- values: ['true', 'false', 'spelling', 'grammar'],
117
- unsupported: false
118
- },
119
- 'aria-keyshortcuts': {
120
- type: 'string',
121
- allowEmpty: true,
122
- unsupported: false
123
- },
124
- 'aria-label': {
125
- type: 'string',
126
- allowEmpty: true,
127
- unsupported: false
128
- },
129
- 'aria-labelledby': {
130
- type: 'idrefs',
131
- allowEmpty: true,
132
- unsupported: false
133
- },
134
- 'aria-level': {
135
- type: 'int',
136
- unsupported: false
137
- },
138
- 'aria-live': {
139
- type: 'nmtoken',
140
- values: ['off', 'polite', 'assertive'],
141
- unsupported: false
142
- },
143
- 'aria-modal': {
144
- type: 'boolean',
145
- values: ['true', 'false'],
146
- unsupported: false
147
- },
148
- 'aria-multiline': {
149
- type: 'boolean',
150
- values: ['true', 'false'],
151
- unsupported: false
152
- },
153
- 'aria-multiselectable': {
154
- type: 'boolean',
155
- values: ['true', 'false'],
156
- unsupported: false
157
- },
158
- 'aria-orientation': {
159
- type: 'nmtoken',
160
- values: ['horizontal', 'vertical'],
161
- unsupported: false
162
- },
163
- 'aria-owns': {
164
- type: 'idrefs',
165
- allowEmpty: true,
166
- unsupported: false
167
- },
168
- 'aria-placeholder': {
169
- type: 'string',
170
- allowEmpty: true,
171
- unsupported: false
172
- },
173
- 'aria-posinset': {
174
- type: 'int',
175
- unsupported: false
176
- },
177
- 'aria-pressed': {
178
- type: 'nmtoken',
179
- values: ['true', 'false', 'mixed', 'undefined'],
180
- unsupported: false
181
- },
182
- 'aria-readonly': {
183
- type: 'boolean',
184
- values: ['true', 'false'],
185
- unsupported: false
186
- },
187
- 'aria-relevant': {
188
- type: 'nmtokens',
189
- values: ['additions', 'removals', 'text', 'all'],
190
- unsupported: false
191
- },
192
- 'aria-required': {
193
- type: 'boolean',
194
- values: ['true', 'false'],
195
- unsupported: false
196
- },
197
- 'aria-roledescription': {
198
- type: 'string',
199
- allowEmpty: true,
200
- unsupported: false
201
- },
202
- 'aria-rowcount': {
203
- type: 'int',
204
- unsupported: false
205
- },
206
- 'aria-rowindex': {
207
- type: 'int',
208
- unsupported: false
209
- },
210
- 'aria-rowspan': {
211
- type: 'int',
212
- unsupported: false
213
- },
214
- 'aria-selected': {
215
- type: 'nmtoken',
216
- values: ['true', 'false', 'undefined'],
217
- unsupported: false
218
- },
219
- 'aria-setsize': {
220
- type: 'int',
221
- unsupported: false
222
- },
223
- 'aria-sort': {
224
- type: 'nmtoken',
225
- values: ['ascending', 'descending', 'other', 'none'],
226
- unsupported: false
227
- },
228
- 'aria-valuemax': {
229
- type: 'decimal',
230
- unsupported: false
231
- },
232
- 'aria-valuemin': {
233
- type: 'decimal',
234
- unsupported: false
235
- },
236
- 'aria-valuenow': {
237
- type: 'decimal',
238
- unsupported: false
239
- },
240
- 'aria-valuetext': {
241
- type: 'string',
242
- unsupported: false
243
- }
244
- };
245
-
246
- lookupTable.globalAttributes = [
247
- 'aria-atomic',
248
- 'aria-busy',
249
- 'aria-controls',
250
- 'aria-current',
251
- 'aria-describedby',
252
- 'aria-details',
253
- 'aria-disabled',
254
- 'aria-dropeffect',
255
- 'aria-flowto',
256
- 'aria-grabbed',
257
- 'aria-haspopup',
258
- 'aria-hidden',
259
- 'aria-invalid',
260
- 'aria-keyshortcuts',
261
- 'aria-label',
262
- 'aria-labelledby',
263
- 'aria-live',
264
- 'aria-owns',
265
- 'aria-relevant',
266
- 'aria-roledescription'
267
- ];
268
-
269
- lookupTable.role = {
270
- // valid roles below
271
- alert: {
272
- type: 'widget',
273
- attributes: {
274
- allowed: ['aria-expanded', 'aria-errormessage']
275
- },
276
- owned: null,
277
- nameFrom: ['author'],
278
- context: null,
279
- unsupported: false,
280
- allowedElements: ['section']
281
- },
282
- alertdialog: {
283
- type: 'widget',
284
- attributes: {
285
- allowed: ['aria-expanded', 'aria-modal', 'aria-errormessage']
286
- },
287
- owned: null,
288
- nameFrom: ['author'],
289
- context: null,
290
- unsupported: false,
291
- allowedElements: ['dialog', 'section']
292
- },
293
- application: {
294
- type: 'landmark',
295
- attributes: {
296
- allowed: ['aria-expanded', 'aria-errormessage', 'aria-activedescendant']
297
- },
298
- owned: null,
299
- nameFrom: ['author'],
300
- context: null,
301
- unsupported: false,
302
- allowedElements: [
303
- 'article',
304
- 'audio',
305
- 'embed',
306
- 'iframe',
307
- 'object',
308
- 'section',
309
- 'svg',
310
- 'video'
311
- ]
312
- },
313
- article: {
314
- type: 'structure',
315
- attributes: {
316
- allowed: [
317
- 'aria-expanded',
318
- 'aria-posinset',
319
- 'aria-setsize',
320
- 'aria-errormessage'
321
- ]
322
- },
323
- owned: null,
324
- nameFrom: ['author'],
325
- context: null,
326
- implicit: ['article'],
327
- unsupported: false
328
- },
329
- banner: {
330
- type: 'landmark',
331
- attributes: {
332
- allowed: ['aria-expanded', 'aria-errormessage']
333
- },
334
- owned: null,
335
- nameFrom: ['author'],
336
- context: null,
337
- implicit: ['header'],
338
- unsupported: false,
339
- allowedElements: ['section']
340
- },
341
- button: {
342
- type: 'widget',
343
- attributes: {
344
- allowed: ['aria-expanded', 'aria-pressed', 'aria-errormessage']
345
- },
346
- owned: null,
347
- nameFrom: ['author', 'contents'],
348
- context: null,
349
- implicit: [
350
- 'button',
351
- 'input[type="button"]',
352
- 'input[type="image"]',
353
- 'input[type="reset"]',
354
- 'input[type="submit"]',
355
- 'summary'
356
- ],
357
- unsupported: false,
358
- allowedElements: [
359
- {
360
- nodeName: 'a',
361
- attributes: {
362
- href: isNotNull
363
- }
364
- }
365
- ]
366
- },
367
- cell: {
368
- type: 'structure',
369
- attributes: {
370
- allowed: [
371
- 'aria-colindex',
372
- 'aria-colspan',
373
- 'aria-rowindex',
374
- 'aria-rowspan',
375
- 'aria-errormessage'
376
- ]
377
- },
378
- owned: null,
379
- nameFrom: ['author', 'contents'],
380
- context: ['row'],
381
- implicit: ['td', 'th'],
382
- unsupported: false
383
- },
384
- checkbox: {
385
- type: 'widget',
386
- attributes: {
387
- allowed: [
388
- 'aria-checked',
389
- 'aria-required',
390
- 'aria-readonly',
391
- 'aria-errormessage'
392
- ]
393
- },
394
- owned: null,
395
- nameFrom: ['author', 'contents'],
396
- context: null,
397
- implicit: ['input[type="checkbox"]'],
398
- unsupported: false,
399
- allowedElements: ['button']
400
- },
401
- columnheader: {
402
- type: 'structure',
403
- attributes: {
404
- allowed: [
405
- 'aria-colindex',
406
- 'aria-colspan',
407
- 'aria-expanded',
408
- 'aria-rowindex',
409
- 'aria-rowspan',
410
- 'aria-required',
411
- 'aria-readonly',
412
- 'aria-selected',
413
- 'aria-sort',
414
- 'aria-errormessage'
415
- ]
416
- },
417
- owned: null,
418
- nameFrom: ['author', 'contents'],
419
- context: ['row'],
420
- implicit: ['th'],
421
- unsupported: false
422
- },
423
- combobox: {
424
- type: 'composite',
425
- attributes: {
426
- allowed: [
427
- 'aria-autocomplete',
428
- 'aria-required',
429
- 'aria-activedescendant',
430
- 'aria-orientation',
431
- 'aria-errormessage'
432
- ],
433
- required: ['aria-expanded']
434
- },
435
- owned: {
436
- all: ['listbox', 'tree', 'grid', 'dialog', 'textbox']
437
- },
438
- nameFrom: ['author'],
439
- context: null,
440
- unsupported: false,
441
- allowedElements: [
442
- {
443
- nodeName: 'input',
444
- properties: {
445
- type: ['text', 'search', 'tel', 'url', 'email']
446
- }
447
- }
448
- ]
449
- },
450
- command: {
451
- nameFrom: ['author'],
452
- type: 'abstract',
453
- unsupported: false
454
- },
455
- complementary: {
456
- type: 'landmark',
457
- attributes: {
458
- allowed: ['aria-expanded', 'aria-errormessage']
459
- },
460
- owned: null,
461
- nameFrom: ['author'],
462
- context: null,
463
- implicit: ['aside'],
464
- unsupported: false,
465
- allowedElements: ['section']
466
- },
467
- composite: {
468
- nameFrom: ['author'],
469
- type: 'abstract',
470
- unsupported: false
471
- },
472
- contentinfo: {
473
- type: 'landmark',
474
- attributes: {
475
- allowed: ['aria-expanded', 'aria-errormessage']
476
- },
477
- owned: null,
478
- nameFrom: ['author'],
479
- context: null,
480
- implicit: ['footer'],
481
- unsupported: false,
482
- allowedElements: ['section']
483
- },
484
- definition: {
485
- type: 'structure',
486
- attributes: {
487
- allowed: ['aria-expanded', 'aria-errormessage']
488
- },
489
- owned: null,
490
- nameFrom: ['author'],
491
- context: null,
492
- implicit: ['dd', 'dfn'],
493
- unsupported: false
494
- },
495
- dialog: {
496
- type: 'widget',
497
- attributes: {
498
- allowed: ['aria-expanded', 'aria-modal', 'aria-errormessage']
499
- },
500
- owned: null,
501
- nameFrom: ['author'],
502
- context: null,
503
- implicit: ['dialog'],
504
- unsupported: false,
505
- allowedElements: ['section']
506
- },
507
- directory: {
508
- type: 'structure',
509
- attributes: {
510
- allowed: ['aria-expanded', 'aria-errormessage']
511
- },
512
- owned: null,
513
- nameFrom: ['author', 'contents'],
514
- context: null,
515
- unsupported: false,
516
- allowedElements: ['ol', 'ul']
517
- },
518
- document: {
519
- type: 'structure',
520
- attributes: {
521
- allowed: ['aria-expanded', 'aria-errormessage']
522
- },
523
- owned: null,
524
- nameFrom: ['author'],
525
- context: null,
526
- implicit: ['body'],
527
- unsupported: false,
528
- allowedElements: ['article', 'embed', 'iframe', 'object', 'section', 'svg']
529
- },
530
- 'doc-abstract': {
531
- type: 'section',
532
- attributes: {
533
- allowed: ['aria-expanded', 'aria-errormessage']
534
- },
535
- owned: null,
536
- nameFrom: ['author'],
537
- context: null,
538
- unsupported: false,
539
- allowedElements: ['section']
540
- },
541
- 'doc-acknowledgments': {
542
- type: 'landmark',
543
- attributes: {
544
- allowed: ['aria-expanded', 'aria-errormessage']
545
- },
546
- owned: null,
547
- nameFrom: ['author'],
548
- context: null,
549
- unsupported: false,
550
- allowedElements: ['section']
551
- },
552
- 'doc-afterword': {
553
- type: 'landmark',
554
- attributes: {
555
- allowed: ['aria-expanded', 'aria-errormessage']
556
- },
557
- owned: null,
558
- nameFrom: ['author'],
559
- context: null,
560
- unsupported: false,
561
- allowedElements: ['section']
562
- },
563
- 'doc-appendix': {
564
- type: 'landmark',
565
- attributes: {
566
- allowed: ['aria-expanded', 'aria-errormessage']
567
- },
568
- owned: null,
569
- nameFrom: ['author'],
570
- context: null,
571
- unsupported: false,
572
- allowedElements: ['section']
573
- },
574
- 'doc-backlink': {
575
- type: 'link',
576
- attributes: {
577
- allowed: ['aria-expanded', 'aria-errormessage']
578
- },
579
- owned: null,
580
- nameFrom: ['author', 'contents'],
581
- context: null,
582
- unsupported: false,
583
- allowedElements: [
584
- {
585
- nodeName: 'a',
586
- attributes: {
587
- href: isNotNull
588
- }
589
- }
590
- ]
591
- },
592
- 'doc-biblioentry': {
593
- type: 'listitem',
594
- attributes: {
595
- allowed: [
596
- 'aria-expanded',
597
- 'aria-level',
598
- 'aria-posinset',
599
- 'aria-setsize',
600
- 'aria-errormessage'
601
- ]
602
- },
603
- owned: null,
604
- nameFrom: ['author'],
605
- context: ['doc-bibliography'],
606
- unsupported: false,
607
- allowedElements: ['li']
608
- },
609
- 'doc-bibliography': {
610
- type: 'landmark',
611
- attributes: {
612
- allowed: ['aria-expanded', 'aria-errormessage']
613
- },
614
- owned: {
615
- one: ['doc-biblioentry']
616
- },
617
- nameFrom: ['author'],
618
- context: null,
619
- unsupported: false,
620
- allowedElements: ['section']
621
- },
622
- 'doc-biblioref': {
623
- type: 'link',
624
- attributes: {
625
- allowed: ['aria-expanded', 'aria-errormessage']
626
- },
627
- owned: null,
628
- nameFrom: ['author', 'contents'],
629
- context: null,
630
- unsupported: false,
631
- allowedElements: [
632
- {
633
- nodeName: 'a',
634
- attributes: {
635
- href: isNotNull
636
- }
637
- }
638
- ]
639
- },
640
- 'doc-chapter': {
641
- type: 'landmark',
642
- attributes: {
643
- allowed: ['aria-expanded', 'aria-errormessage']
644
- },
645
- owned: null,
646
- namefrom: ['author'],
647
- context: null,
648
- unsupported: false,
649
- allowedElements: ['section']
650
- },
651
- 'doc-colophon': {
652
- type: 'section',
653
- attributes: {
654
- allowed: ['aria-expanded', 'aria-errormessage']
655
- },
656
- owned: null,
657
- namefrom: ['author'],
658
- context: null,
659
- unsupported: false,
660
- allowedElements: ['section']
661
- },
662
- 'doc-conclusion': {
663
- type: 'landmark',
664
- attributes: {
665
- allowed: ['aria-expanded', 'aria-errormessage']
666
- },
667
- owned: null,
668
- namefrom: ['author'],
669
- context: null,
670
- unsupported: false,
671
- allowedElements: ['section']
672
- },
673
- 'doc-cover': {
674
- type: 'img',
675
- attributes: {
676
- allowed: ['aria-expanded', 'aria-errormessage']
677
- },
678
- owned: null,
679
- namefrom: ['author'],
680
- context: null,
681
- unsupported: false
682
- },
683
- 'doc-credit': {
684
- type: 'section',
685
- attributes: {
686
- allowed: ['aria-expanded', 'aria-errormessage']
687
- },
688
- owned: null,
689
- namefrom: ['author'],
690
- context: null,
691
- unsupported: false,
692
- allowedElements: ['section']
693
- },
694
- 'doc-credits': {
695
- type: 'landmark',
696
- attributes: {
697
- allowed: ['aria-expanded', 'aria-errormessage']
698
- },
699
- owned: null,
700
- namefrom: ['author'],
701
- context: null,
702
- unsupported: false,
703
- allowedElements: ['section']
704
- },
705
- 'doc-dedication': {
706
- type: 'section',
707
- attributes: {
708
- allowed: ['aria-expanded', 'aria-errormessage']
709
- },
710
- owned: null,
711
- namefrom: ['author'],
712
- context: null,
713
- unsupported: false,
714
- allowedElements: ['section']
715
- },
716
- 'doc-endnote': {
717
- type: 'listitem',
718
- attributes: {
719
- allowed: [
720
- 'aria-expanded',
721
- 'aria-level',
722
- 'aria-posinset',
723
- 'aria-setsize',
724
- 'aria-errormessage'
725
- ]
726
- },
727
- owned: null,
728
- namefrom: ['author'],
729
- context: ['doc-endnotes'],
730
- unsupported: false,
731
- allowedElements: ['li']
732
- },
733
- 'doc-endnotes': {
734
- type: 'landmark',
735
- attributes: {
736
- allowed: ['aria-expanded', 'aria-errormessage']
737
- },
738
- owned: {
739
- one: ['doc-endnote']
740
- },
741
- namefrom: ['author'],
742
- context: null,
743
- unsupported: false,
744
- allowedElements: ['section']
745
- },
746
- 'doc-epigraph': {
747
- type: 'section',
748
- attributes: {
749
- allowed: ['aria-expanded', 'aria-errormessage']
750
- },
751
- owned: null,
752
- namefrom: ['author'],
753
- context: null,
754
- unsupported: false
755
- },
756
- 'doc-epilogue': {
757
- type: 'landmark',
758
- attributes: {
759
- allowed: ['aria-expanded', 'aria-errormessage']
760
- },
761
- owned: null,
762
- namefrom: ['author'],
763
- context: null,
764
- unsupported: false,
765
- allowedElements: ['section']
766
- },
767
- 'doc-errata': {
768
- type: 'landmark',
769
- attributes: {
770
- allowed: ['aria-expanded', 'aria-errormessage']
771
- },
772
- owned: null,
773
- namefrom: ['author'],
774
- context: null,
775
- unsupported: false,
776
- allowedElements: ['section']
777
- },
778
- 'doc-example': {
779
- type: 'section',
780
- attributes: {
781
- allowed: ['aria-expanded', 'aria-errormessage']
782
- },
783
- owned: null,
784
- namefrom: ['author'],
785
- context: null,
786
- unsupported: false,
787
- allowedElements: ['aside', 'section']
788
- },
789
- 'doc-footnote': {
790
- type: 'section',
791
- attributes: {
792
- allowed: ['aria-expanded', 'aria-errormessage']
793
- },
794
- owned: null,
795
- namefrom: ['author'],
796
- context: null,
797
- unsupported: false,
798
- allowedElements: ['aside', 'footer', 'header']
799
- },
800
- 'doc-foreword': {
801
- type: 'landmark',
802
- attributes: {
803
- allowed: ['aria-expanded', 'aria-errormessage']
804
- },
805
- owned: null,
806
- namefrom: ['author'],
807
- context: null,
808
- unsupported: false,
809
- allowedElements: ['section']
810
- },
811
- 'doc-glossary': {
812
- type: 'landmark',
813
- attributes: {
814
- allowed: ['aria-expanded', 'aria-errormessage']
815
- },
816
- owned: ['term', 'definition'],
817
- namefrom: ['author'],
818
- context: null,
819
- unsupported: false,
820
- allowedElements: ['dl']
821
- },
822
- 'doc-glossref': {
823
- type: 'link',
824
- attributes: {
825
- allowed: ['aria-expanded', 'aria-errormessage']
826
- },
827
- owned: null,
828
- namefrom: ['author', 'contents'],
829
- context: null,
830
- unsupported: false,
831
- allowedElements: [
832
- {
833
- nodeName: 'a',
834
- attributes: {
835
- href: isNotNull
836
- }
837
- }
838
- ]
839
- },
840
- 'doc-index': {
841
- type: 'navigation',
842
- attributes: {
843
- allowed: ['aria-expanded', 'aria-errormessage']
844
- },
845
- owned: null,
846
- namefrom: ['author'],
847
- context: null,
848
- unsupported: false,
849
- allowedElements: ['nav', 'section']
850
- },
851
- 'doc-introduction': {
852
- type: 'landmark',
853
- attributes: {
854
- allowed: ['aria-expanded', 'aria-errormessage']
855
- },
856
- owned: null,
857
- namefrom: ['author'],
858
- context: null,
859
- unsupported: false,
860
- allowedElements: ['section']
861
- },
862
- 'doc-noteref': {
863
- type: 'link',
864
- attributes: {
865
- allowed: ['aria-expanded']
866
- },
867
- owned: null,
868
- namefrom: ['author', 'contents'],
869
- context: null,
870
- unsupported: false,
871
- allowedElements: [
872
- {
873
- nodeName: 'a',
874
- attributes: {
875
- href: isNotNull
876
- }
877
- }
878
- ]
879
- },
880
- 'doc-notice': {
881
- type: 'note',
882
- attributes: {
883
- allowed: ['aria-expanded']
884
- },
885
- owned: null,
886
- namefrom: ['author'],
887
- context: null,
888
- unsupported: false,
889
- allowedElements: ['section']
890
- },
891
- 'doc-pagebreak': {
892
- type: 'separator',
893
- attributes: {
894
- allowed: ['aria-expanded']
895
- },
896
- owned: null,
897
- namefrom: ['author'],
898
- context: null,
899
- unsupported: false,
900
- allowedElements: ['hr']
901
- },
902
- 'doc-pagelist': {
903
- type: 'navigation',
904
- attributes: {
905
- allowed: ['aria-expanded']
906
- },
907
- owned: null,
908
- namefrom: ['author'],
909
- context: null,
910
- unsupported: false,
911
- allowedElements: ['nav', 'section']
912
- },
913
- 'doc-part': {
914
- type: 'landmark',
915
- attributes: {
916
- allowed: ['aria-expanded']
917
- },
918
- owned: null,
919
- namefrom: ['author'],
920
- context: null,
921
- unsupported: false,
922
- allowedElements: ['section']
923
- },
924
- 'doc-preface': {
925
- type: 'landmark',
926
- attributes: {
927
- allowed: ['aria-expanded']
928
- },
929
- owned: null,
930
- namefrom: ['author'],
931
- context: null,
932
- unsupported: false,
933
- allowedElements: ['section']
934
- },
935
- 'doc-prologue': {
936
- type: 'landmark',
937
- attributes: {
938
- allowed: ['aria-expanded', 'aria-errormessage']
939
- },
940
- owned: null,
941
- namefrom: ['author'],
942
- context: null,
943
- unsupported: false,
944
- allowedElements: ['section']
945
- },
946
- 'doc-pullquote': {
947
- type: 'none',
948
- attributes: {
949
- allowed: ['aria-expanded']
950
- },
951
- owned: null,
952
- namefrom: ['author'],
953
- context: null,
954
- unsupported: false,
955
- allowedElements: ['aside', 'section']
956
- },
957
- 'doc-qna': {
958
- type: 'section',
959
- attributes: {
960
- allowed: ['aria-expanded']
961
- },
962
- owned: null,
963
- namefrom: ['author'],
964
- context: null,
965
- unsupported: false,
966
- allowedElements: ['section']
967
- },
968
- 'doc-subtitle': {
969
- type: 'sectionhead',
970
- attributes: {
971
- allowed: ['aria-expanded']
972
- },
973
- owned: null,
974
- namefrom: ['author'],
975
- context: null,
976
- unsupported: false,
977
- allowedElements: {
978
- nodeName: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']
979
- }
980
- },
981
- 'doc-tip': {
982
- type: 'note',
983
- attributes: {
984
- allowed: ['aria-expanded']
985
- },
986
- owned: null,
987
- namefrom: ['author'],
988
- context: null,
989
- unsupported: false,
990
- allowedElements: ['aside']
991
- },
992
- 'doc-toc': {
993
- type: 'navigation',
994
- attributes: {
995
- allowed: ['aria-expanded', 'aria-errormessage']
996
- },
997
- owned: null,
998
- namefrom: ['author'],
999
- context: null,
1000
- unsupported: false,
1001
- allowedElements: ['nav', 'section']
1002
- },
1003
- feed: {
1004
- type: 'structure',
1005
- attributes: {
1006
- allowed: ['aria-expanded', 'aria-errormessage']
1007
- },
1008
- owned: {
1009
- one: ['article']
1010
- },
1011
- nameFrom: ['author'],
1012
- context: null,
1013
- unsupported: false,
1014
- allowedElements: ['article', 'aside', 'section']
1015
- },
1016
- figure: {
1017
- type: 'structure',
1018
- attributes: {
1019
- allowed: ['aria-expanded', 'aria-errormessage']
1020
- },
1021
- owned: null,
1022
- nameFrom: ['author', 'contents'],
1023
- context: null,
1024
- implicit: ['figure'],
1025
- unsupported: false
1026
- },
1027
- form: {
1028
- type: 'landmark',
1029
- attributes: {
1030
- allowed: ['aria-expanded', 'aria-errormessage']
1031
- },
1032
- owned: null,
1033
- nameFrom: ['author'],
1034
- context: null,
1035
- implicit: ['form'],
1036
- unsupported: false
1037
- },
1038
- grid: {
1039
- type: 'composite',
1040
- attributes: {
1041
- allowed: [
1042
- 'aria-activedescendant',
1043
- 'aria-expanded',
1044
- 'aria-colcount',
1045
- 'aria-level',
1046
- 'aria-multiselectable',
1047
- 'aria-readonly',
1048
- 'aria-rowcount',
1049
- 'aria-errormessage'
1050
- ]
1051
- },
1052
- owned: {
1053
- one: ['rowgroup', 'row']
1054
- },
1055
- nameFrom: ['author'],
1056
- context: null,
1057
- implicit: ['table'],
1058
- unsupported: false
1059
- },
1060
- gridcell: {
1061
- type: 'widget',
1062
- attributes: {
1063
- allowed: [
1064
- 'aria-colindex',
1065
- 'aria-colspan',
1066
- 'aria-expanded',
1067
- 'aria-rowindex',
1068
- 'aria-rowspan',
1069
- 'aria-selected',
1070
- 'aria-readonly',
1071
- 'aria-required',
1072
- 'aria-errormessage'
1073
- ]
1074
- },
1075
- owned: null,
1076
- nameFrom: ['author', 'contents'],
1077
- context: ['row'],
1078
- implicit: ['td', 'th'],
1079
- unsupported: false
1080
- },
1081
- group: {
1082
- type: 'structure',
1083
- attributes: {
1084
- allowed: ['aria-activedescendant', 'aria-expanded', 'aria-errormessage']
1085
- },
1086
- owned: null,
1087
- nameFrom: ['author'],
1088
- context: null,
1089
- implicit: ['details', 'optgroup'],
1090
- unsupported: false,
1091
- allowedElements: [
1092
- 'dl',
1093
- 'figcaption',
1094
- 'fieldset',
1095
- 'figure',
1096
- 'footer',
1097
- 'header',
1098
- 'ol',
1099
- 'ul'
1100
- ]
1101
- },
1102
- heading: {
1103
- type: 'structure',
1104
- attributes: {
1105
- required: ['aria-level'],
1106
- allowed: ['aria-expanded', 'aria-errormessage']
1107
- },
1108
- owned: null,
1109
- nameFrom: ['author', 'contents'],
1110
- context: null,
1111
- implicit: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
1112
- unsupported: false
1113
- },
1114
- img: {
1115
- type: 'structure',
1116
- attributes: {
1117
- allowed: ['aria-expanded', 'aria-errormessage']
1118
- },
1119
- owned: null,
1120
- nameFrom: ['author'],
1121
- context: null,
1122
- implicit: ['img'],
1123
- unsupported: false,
1124
- allowedElements: ['embed', 'iframe', 'object', 'svg']
1125
- },
1126
- input: {
1127
- nameFrom: ['author'],
1128
- type: 'abstract',
1129
- unsupported: false
1130
- },
1131
- landmark: {
1132
- nameFrom: ['author'],
1133
- type: 'abstract',
1134
- unsupported: false
1135
- },
1136
- link: {
1137
- type: 'widget',
1138
- attributes: {
1139
- allowed: ['aria-expanded', 'aria-errormessage']
1140
- },
1141
- owned: null,
1142
- nameFrom: ['author', 'contents'],
1143
- context: null,
1144
- implicit: ['a[href]', 'area[href]'],
1145
- unsupported: false,
1146
- allowedElements: [
1147
- 'button',
1148
- {
1149
- nodeName: 'input',
1150
- properties: {
1151
- type: ['image', 'button']
1152
- }
1153
- }
1154
- ]
1155
- },
1156
- list: {
1157
- type: 'structure',
1158
- attributes: {
1159
- allowed: ['aria-expanded', 'aria-errormessage']
1160
- },
1161
- owned: {
1162
- all: ['listitem']
1163
- },
1164
- nameFrom: ['author'],
1165
- context: null,
1166
- implicit: ['ol', 'ul', 'dl'],
1167
- unsupported: false
1168
- },
1169
- listbox: {
1170
- type: 'composite',
1171
- attributes: {
1172
- allowed: [
1173
- 'aria-activedescendant',
1174
- 'aria-multiselectable',
1175
- 'aria-readonly',
1176
- 'aria-required',
1177
- 'aria-expanded',
1178
- 'aria-orientation',
1179
- 'aria-errormessage'
1180
- ]
1181
- },
1182
- owned: {
1183
- all: ['option']
1184
- },
1185
- nameFrom: ['author'],
1186
- context: null,
1187
- implicit: ['select'],
1188
- unsupported: false,
1189
- allowedElements: ['ol', 'ul']
1190
- },
1191
- listitem: {
1192
- type: 'structure',
1193
- attributes: {
1194
- allowed: [
1195
- 'aria-level',
1196
- 'aria-posinset',
1197
- 'aria-setsize',
1198
- 'aria-expanded',
1199
- 'aria-errormessage'
1200
- ]
1201
- },
1202
- owned: null,
1203
- nameFrom: ['author', 'contents'],
1204
- context: ['list'],
1205
- implicit: ['li', 'dt'],
1206
- unsupported: false
1207
- },
1208
- log: {
1209
- type: 'widget',
1210
- attributes: {
1211
- allowed: ['aria-expanded', 'aria-errormessage']
1212
- },
1213
- owned: null,
1214
- nameFrom: ['author'],
1215
- context: null,
1216
- unsupported: false,
1217
- allowedElements: ['section']
1218
- },
1219
- main: {
1220
- type: 'landmark',
1221
- attributes: {
1222
- allowed: ['aria-expanded', 'aria-errormessage']
1223
- },
1224
- owned: null,
1225
- nameFrom: ['author'],
1226
- context: null,
1227
- implicit: ['main'],
1228
- unsupported: false,
1229
- allowedElements: ['article', 'section']
1230
- },
1231
- marquee: {
1232
- type: 'widget',
1233
- attributes: {
1234
- allowed: ['aria-expanded', 'aria-errormessage']
1235
- },
1236
- owned: null,
1237
- nameFrom: ['author'],
1238
- context: null,
1239
- unsupported: false,
1240
- allowedElements: ['section']
1241
- },
1242
- math: {
1243
- type: 'structure',
1244
- attributes: {
1245
- allowed: ['aria-expanded', 'aria-errormessage']
1246
- },
1247
- owned: null,
1248
- nameFrom: ['author'],
1249
- context: null,
1250
- implicit: ['math'],
1251
- unsupported: false
1252
- },
1253
- menu: {
1254
- type: 'composite',
1255
- attributes: {
1256
- allowed: [
1257
- 'aria-activedescendant',
1258
- 'aria-expanded',
1259
- 'aria-orientation',
1260
- 'aria-errormessage'
1261
- ]
1262
- },
1263
- owned: {
1264
- one: ['menuitem', 'menuitemradio', 'menuitemcheckbox']
1265
- },
1266
- nameFrom: ['author'],
1267
- context: null,
1268
- implicit: ['menu[type="context"]'],
1269
- unsupported: false,
1270
- allowedElements: ['ol', 'ul']
1271
- },
1272
- menubar: {
1273
- type: 'composite',
1274
- attributes: {
1275
- allowed: [
1276
- 'aria-activedescendant',
1277
- 'aria-expanded',
1278
- 'aria-orientation',
1279
- 'aria-errormessage'
1280
- ]
1281
- },
1282
- owned: {
1283
- one: ['menuitem', 'menuitemradio', 'menuitemcheckbox']
1284
- },
1285
- nameFrom: ['author'],
1286
- context: null,
1287
- unsupported: false,
1288
- allowedElements: ['ol', 'ul']
1289
- },
1290
- menuitem: {
1291
- type: 'widget',
1292
- attributes: {
1293
- allowed: [
1294
- 'aria-posinset',
1295
- 'aria-setsize',
1296
- 'aria-expanded',
1297
- 'aria-errormessage'
1298
- ]
1299
- },
1300
- owned: null,
1301
- nameFrom: ['author', 'contents'],
1302
- context: ['menu', 'menubar'],
1303
- implicit: ['menuitem[type="command"]'],
1304
- unsupported: false,
1305
- allowedElements: [
1306
- 'button',
1307
- 'li',
1308
- {
1309
- nodeName: 'iput',
1310
- properties: {
1311
- type: ['image', 'button']
1312
- }
1313
- },
1314
- {
1315
- nodeName: 'a',
1316
- attributes: {
1317
- href: isNotNull
1318
- }
1319
- }
1320
- ]
1321
- },
1322
- menuitemcheckbox: {
1323
- type: 'widget',
1324
- attributes: {
1325
- allowed: [
1326
- 'aria-checked',
1327
- 'aria-posinset',
1328
- 'aria-setsize',
1329
- 'aria-errormessage'
1330
- ]
1331
- },
1332
- owned: null,
1333
- nameFrom: ['author', 'contents'],
1334
- context: ['menu', 'menubar'],
1335
- implicit: ['menuitem[type="checkbox"]'],
1336
- unsupported: false,
1337
- allowedElements: [
1338
- {
1339
- nodeName: ['button', 'li']
1340
- },
1341
- {
1342
- nodeName: 'input',
1343
- properties: {
1344
- type: ['checkbox', 'image', 'button']
1345
- }
1346
- },
1347
- {
1348
- nodeName: 'a',
1349
- attributes: {
1350
- href: isNotNull
1351
- }
1352
- }
1353
- ]
1354
- },
1355
- menuitemradio: {
1356
- type: 'widget',
1357
- attributes: {
1358
- allowed: [
1359
- 'aria-checked',
1360
- 'aria-selected',
1361
- 'aria-posinset',
1362
- 'aria-setsize',
1363
- 'aria-errormessage'
1364
- ]
1365
- },
1366
- owned: null,
1367
- nameFrom: ['author', 'contents'],
1368
- context: ['menu', 'menubar'],
1369
- implicit: ['menuitem[type="radio"]'],
1370
- unsupported: false,
1371
- allowedElements: [
1372
- {
1373
- nodeName: ['button', 'li']
1374
- },
1375
- {
1376
- nodeName: 'input',
1377
- properties: {
1378
- type: ['image', 'button', 'radio']
1379
- }
1380
- },
1381
- {
1382
- nodeName: 'a',
1383
- attributes: {
1384
- href: isNotNull
1385
- }
1386
- }
1387
- ]
1388
- },
1389
- navigation: {
1390
- type: 'landmark',
1391
- attributes: {
1392
- allowed: ['aria-expanded', 'aria-errormessage']
1393
- },
1394
- owned: null,
1395
- nameFrom: ['author'],
1396
- context: null,
1397
- implicit: ['nav'],
1398
- unsupported: false,
1399
- allowedElements: ['section']
1400
- },
1401
- none: {
1402
- type: 'structure',
1403
- attributes: null,
1404
- owned: null,
1405
- nameFrom: ['author'],
1406
- context: null,
1407
- unsupported: false,
1408
- allowedElements: [
1409
- {
1410
- nodeName: [
1411
- 'article',
1412
- 'aside',
1413
- 'dl',
1414
- 'embed',
1415
- 'figcaption',
1416
- 'fieldset',
1417
- 'figure',
1418
- 'footer',
1419
- 'form',
1420
- 'h1',
1421
- 'h2',
1422
- 'h3',
1423
- 'h4',
1424
- 'h5',
1425
- 'h6',
1426
- 'header',
1427
- 'hr',
1428
- 'iframe',
1429
- 'li',
1430
- 'ol',
1431
- 'section',
1432
- 'ul'
1433
- ]
1434
- },
1435
- {
1436
- nodeName: 'img',
1437
- attributes: {
1438
- alt: isNotNull
1439
- }
1440
- }
1441
- ]
1442
- },
1443
- note: {
1444
- type: 'structure',
1445
- attributes: {
1446
- allowed: ['aria-expanded', 'aria-errormessage']
1447
- },
1448
- owned: null,
1449
- nameFrom: ['author'],
1450
- context: null,
1451
- unsupported: false,
1452
- allowedElements: ['aside']
1453
- },
1454
- option: {
1455
- type: 'widget',
1456
- attributes: {
1457
- allowed: [
1458
- 'aria-selected',
1459
- 'aria-posinset',
1460
- 'aria-setsize',
1461
- 'aria-checked',
1462
- 'aria-errormessage'
1463
- ]
1464
- },
1465
- owned: null,
1466
- nameFrom: ['author', 'contents'],
1467
- context: ['listbox'],
1468
- implicit: ['option'],
1469
- unsupported: false,
1470
- allowedElements: [
1471
- {
1472
- nodeName: ['button', 'li']
1473
- },
1474
- {
1475
- nodeName: 'input',
1476
- properties: {
1477
- type: ['checkbox', 'button']
1478
- }
1479
- },
1480
- {
1481
- nodeName: 'a',
1482
- attributes: {
1483
- href: isNotNull
1484
- }
1485
- }
1486
- ]
1487
- },
1488
- presentation: {
1489
- type: 'structure',
1490
- attributes: null,
1491
- owned: null,
1492
- nameFrom: ['author'],
1493
- context: null,
1494
- unsupported: false,
1495
- allowedElements: [
1496
- {
1497
- nodeName: [
1498
- 'article',
1499
- 'aside',
1500
- 'dl',
1501
- 'embed',
1502
- 'figcaption',
1503
- 'fieldset',
1504
- 'figure',
1505
- 'footer',
1506
- 'form',
1507
- 'h1',
1508
- 'h2',
1509
- 'h3',
1510
- 'h4',
1511
- 'h5',
1512
- 'h6',
1513
- 'header',
1514
- 'hr',
1515
- 'iframe',
1516
- 'li',
1517
- 'ol',
1518
- 'section',
1519
- 'ul'
1520
- ]
1521
- },
1522
- {
1523
- nodeName: 'img',
1524
- attributes: {
1525
- alt: isNotNull
1526
- }
1527
- }
1528
- ]
1529
- },
1530
- progressbar: {
1531
- type: 'widget',
1532
- attributes: {
1533
- allowed: [
1534
- 'aria-valuetext',
1535
- 'aria-valuenow',
1536
- 'aria-valuemax',
1537
- 'aria-valuemin',
1538
- 'aria-expanded',
1539
- 'aria-errormessage'
1540
- ]
1541
- },
1542
- owned: null,
1543
- nameFrom: ['author'],
1544
- context: null,
1545
- implicit: ['progress'],
1546
- unsupported: false
1547
- },
1548
- radio: {
1549
- type: 'widget',
1550
- attributes: {
1551
- allowed: [
1552
- 'aria-selected',
1553
- 'aria-posinset',
1554
- 'aria-setsize',
1555
- 'aria-required',
1556
- 'aria-errormessage',
1557
- 'aria-checked'
1558
- ]
1559
- },
1560
- owned: null,
1561
- nameFrom: ['author', 'contents'],
1562
- context: null,
1563
- implicit: ['input[type="radio"]'],
1564
- unsupported: false,
1565
- allowedElements: [
1566
- {
1567
- nodeName: ['button', 'li']
1568
- },
1569
- {
1570
- nodeName: 'input',
1571
- properties: {
1572
- type: ['image', 'button']
1573
- }
1574
- }
1575
- ]
1576
- },
1577
- radiogroup: {
1578
- type: 'composite',
1579
- attributes: {
1580
- allowed: [
1581
- 'aria-activedescendant',
1582
- 'aria-required',
1583
- 'aria-expanded',
1584
- 'aria-readonly',
1585
- 'aria-errormessage',
1586
- 'aria-orientation'
1587
- ]
1588
- },
1589
- owned: {
1590
- all: ['radio']
1591
- },
1592
- nameFrom: ['author'],
1593
- context: null,
1594
- unsupported: false,
1595
- allowedElements: {
1596
- nodeName: ['ol', 'ul', 'fieldset']
1597
- }
1598
- },
1599
- range: {
1600
- nameFrom: ['author'],
1601
- type: 'abstract',
1602
- // @marcysutton, @wilco
1603
- // - there is no unsupported here (noticed when resolving conflicts) from PR - https://github.com/dequelabs/axe-core/pull/1064
1604
- // - https://github.com/dequelabs/axe-core/pull/1064/files#diff-ec67bb6113bfd9a900ee27ecef942f74R1229
1605
- // - adding unsupported flag (false)
1606
- unsupported: false
1607
- },
1608
- region: {
1609
- type: 'landmark',
1610
- attributes: {
1611
- allowed: ['aria-expanded', 'aria-errormessage']
1612
- },
1613
- owned: null,
1614
- nameFrom: ['author'],
1615
- context: null,
1616
- implicit: [
1617
- 'section[aria-label]',
1618
- 'section[aria-labelledby]',
1619
- 'section[title]'
1620
- ],
1621
- unsupported: false,
1622
- allowedElements: {
1623
- nodeName: ['article', 'aside']
1624
- }
1625
- },
1626
- roletype: {
1627
- type: 'abstract',
1628
- unsupported: false
1629
- },
1630
- row: {
1631
- type: 'structure',
1632
- attributes: {
1633
- allowed: [
1634
- 'aria-activedescendant',
1635
- 'aria-colindex',
1636
- 'aria-expanded',
1637
- 'aria-level',
1638
- 'aria-selected',
1639
- 'aria-rowindex',
1640
- 'aria-errormessage'
1641
- ]
1642
- },
1643
- owned: {
1644
- one: ['cell', 'columnheader', 'rowheader', 'gridcell']
1645
- },
1646
- nameFrom: ['author', 'contents'],
1647
- context: ['rowgroup', 'grid', 'treegrid', 'table'],
1648
- implicit: ['tr'],
1649
- unsupported: false
1650
- },
1651
- rowgroup: {
1652
- type: 'structure',
1653
- attributes: {
1654
- allowed: ['aria-activedescendant', 'aria-expanded', 'aria-errormessage']
1655
- },
1656
- owned: {
1657
- all: ['row']
1658
- },
1659
- nameFrom: ['author', 'contents'],
1660
- context: ['grid', 'table', 'treegrid'],
1661
- implicit: ['tbody', 'thead', 'tfoot'],
1662
- unsupported: false
1663
- },
1664
- rowheader: {
1665
- type: 'structure',
1666
- attributes: {
1667
- allowed: [
1668
- 'aria-colindex',
1669
- 'aria-colspan',
1670
- 'aria-expanded',
1671
- 'aria-rowindex',
1672
- 'aria-rowspan',
1673
- 'aria-required',
1674
- 'aria-readonly',
1675
- 'aria-selected',
1676
- 'aria-sort',
1677
- 'aria-errormessage'
1678
- ]
1679
- },
1680
- owned: null,
1681
- nameFrom: ['author', 'contents'],
1682
- context: ['row'],
1683
- implicit: ['th'],
1684
- unsupported: false
1685
- },
1686
- scrollbar: {
1687
- type: 'widget',
1688
- attributes: {
1689
- required: ['aria-controls', 'aria-valuenow'],
1690
- allowed: [
1691
- 'aria-valuetext',
1692
- 'aria-orientation',
1693
- 'aria-errormessage',
1694
- 'aria-valuemax',
1695
- 'aria-valuemin'
1696
- ]
1697
- },
1698
- owned: null,
1699
- nameFrom: ['author'],
1700
- context: null,
1701
- unsupported: false
1702
- },
1703
- search: {
1704
- type: 'landmark',
1705
- attributes: {
1706
- allowed: ['aria-expanded', 'aria-errormessage']
1707
- },
1708
- owned: null,
1709
- nameFrom: ['author'],
1710
- context: null,
1711
- unsupported: false,
1712
- allowedElements: {
1713
- nodeName: ['aside', 'form', 'section']
1714
- }
1715
- },
1716
- searchbox: {
1717
- type: 'widget',
1718
- attributes: {
1719
- allowed: [
1720
- 'aria-activedescendant',
1721
- 'aria-autocomplete',
1722
- 'aria-multiline',
1723
- 'aria-readonly',
1724
- 'aria-required',
1725
- 'aria-placeholder',
1726
- 'aria-errormessage'
1727
- ]
1728
- },
1729
- owned: null,
1730
- nameFrom: ['author'],
1731
- context: null,
1732
- implicit: ['input[type="search"]'],
1733
- unsupported: false,
1734
- allowedElements: {
1735
- nodeName: 'input',
1736
- properties: {
1737
- type: 'text'
1738
- }
1739
- }
1740
- },
1741
- section: {
1742
- nameFrom: ['author', 'contents'],
1743
- type: 'abstract',
1744
- unsupported: false
1745
- },
1746
- sectionhead: {
1747
- nameFrom: ['author', 'contents'],
1748
- type: 'abstract',
1749
- unsupported: false
1750
- },
1751
- select: {
1752
- nameFrom: ['author'],
1753
- type: 'abstract',
1754
- unsupported: false
1755
- },
1756
- separator: {
1757
- type: 'structure',
1758
- attributes: {
1759
- allowed: [
1760
- 'aria-expanded',
1761
- 'aria-orientation',
1762
- 'aria-valuenow',
1763
- 'aria-valuemax',
1764
- 'aria-valuemin',
1765
- 'aria-valuetext',
1766
- 'aria-errormessage'
1767
- ]
1768
- },
1769
- owned: null,
1770
- nameFrom: ['author'],
1771
- context: null,
1772
- implicit: ['hr'],
1773
- unsupported: false,
1774
- allowedElements: ['li']
1775
- },
1776
- slider: {
1777
- type: 'widget',
1778
- attributes: {
1779
- allowed: [
1780
- 'aria-valuetext',
1781
- 'aria-orientation',
1782
- 'aria-readonly',
1783
- 'aria-errormessage',
1784
- 'aria-valuemax',
1785
- 'aria-valuemin'
1786
- ],
1787
- required: ['aria-valuenow']
1788
- },
1789
- owned: null,
1790
- nameFrom: ['author'],
1791
- context: null,
1792
- implicit: ['input[type="range"]'],
1793
- unsupported: false
1794
- },
1795
- spinbutton: {
1796
- type: 'widget',
1797
- attributes: {
1798
- allowed: [
1799
- 'aria-valuetext',
1800
- 'aria-required',
1801
- 'aria-readonly',
1802
- 'aria-errormessage',
1803
- 'aria-valuemax',
1804
- 'aria-valuemin'
1805
- ],
1806
- required: ['aria-valuenow']
1807
- },
1808
- owned: null,
1809
- nameFrom: ['author'],
1810
- context: null,
1811
- implicit: ['input[type="number"]'],
1812
- unsupported: false,
1813
- allowedElements: {
1814
- nodeName: 'input',
1815
- properties: {
1816
- type: ['text', 'tel']
1817
- }
1818
- }
1819
- },
1820
- status: {
1821
- type: 'widget',
1822
- attributes: {
1823
- allowed: ['aria-expanded', 'aria-errormessage']
1824
- },
1825
- owned: null,
1826
- nameFrom: ['author'],
1827
- context: null,
1828
- implicit: ['output'],
1829
- unsupported: false,
1830
- allowedElements: ['section']
1831
- },
1832
- structure: {
1833
- type: 'abstract',
1834
- unsupported: false
1835
- },
1836
- switch: {
1837
- type: 'widget',
1838
- attributes: {
1839
- allowed: ['aria-errormessage'],
1840
- required: ['aria-checked']
1841
- },
1842
- owned: null,
1843
- nameFrom: ['author', 'contents'],
1844
- context: null,
1845
- unsupported: false,
1846
- allowedElements: [
1847
- 'button',
1848
- {
1849
- nodeName: 'input',
1850
- properties: {
1851
- type: ['checkbox', 'image', 'button']
1852
- }
1853
- },
1854
- {
1855
- nodeName: 'a',
1856
- attributes: {
1857
- href: isNotNull
1858
- }
1859
- }
1860
- ]
1861
- },
1862
- tab: {
1863
- type: 'widget',
1864
- attributes: {
1865
- allowed: [
1866
- 'aria-selected',
1867
- 'aria-expanded',
1868
- 'aria-setsize',
1869
- 'aria-posinset',
1870
- 'aria-errormessage'
1871
- ]
1872
- },
1873
- owned: null,
1874
- nameFrom: ['author', 'contents'],
1875
- context: ['tablist'],
1876
- unsupported: false,
1877
- allowedElements: [
1878
- {
1879
- nodeName: ['button', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li']
1880
- },
1881
- {
1882
- nodeName: 'input',
1883
- properties: {
1884
- type: 'button'
1885
- }
1886
- },
1887
- {
1888
- nodeName: 'a',
1889
- attributes: {
1890
- href: isNotNull
1891
- }
1892
- }
1893
- ]
1894
- },
1895
- table: {
1896
- type: 'structure',
1897
- attributes: {
1898
- allowed: ['aria-colcount', 'aria-rowcount', 'aria-errormessage']
1899
- },
1900
- owned: {
1901
- one: ['rowgroup', 'row']
1902
- },
1903
- nameFrom: ['author', 'contents'],
1904
- context: null,
1905
- implicit: ['table'],
1906
- unsupported: false
1907
- },
1908
- tablist: {
1909
- type: 'composite',
1910
- attributes: {
1911
- allowed: [
1912
- 'aria-activedescendant',
1913
- 'aria-expanded',
1914
- 'aria-level',
1915
- 'aria-multiselectable',
1916
- 'aria-orientation',
1917
- 'aria-errormessage'
1918
- ]
1919
- },
1920
- owned: {
1921
- all: ['tab']
1922
- },
1923
- nameFrom: ['author'],
1924
- context: null,
1925
- unsupported: false,
1926
- allowedElements: ['ol', 'ul']
1927
- },
1928
- tabpanel: {
1929
- type: 'widget',
1930
- attributes: {
1931
- allowed: ['aria-expanded', 'aria-errormessage']
1932
- },
1933
- owned: null,
1934
- nameFrom: ['author'],
1935
- context: null,
1936
- unsupported: false,
1937
- allowedElements: ['section']
1938
- },
1939
- term: {
1940
- type: 'structure',
1941
- attributes: {
1942
- allowed: ['aria-expanded', 'aria-errormessage']
1943
- },
1944
- owned: null,
1945
- nameFrom: ['author', 'contents'],
1946
- context: null,
1947
- implicit: ['dt'],
1948
- unsupported: false
1949
- },
1950
- textbox: {
1951
- type: 'widget',
1952
- attributes: {
1953
- allowed: [
1954
- 'aria-activedescendant',
1955
- 'aria-autocomplete',
1956
- 'aria-multiline',
1957
- 'aria-readonly',
1958
- 'aria-required',
1959
- 'aria-placeholder',
1960
- 'aria-errormessage'
1961
- ]
1962
- },
1963
- owned: null,
1964
- nameFrom: ['author'],
1965
- context: null,
1966
- implicit: [
1967
- 'input[type="text"]',
1968
- 'input[type="email"]',
1969
- 'input[type="password"]',
1970
- 'input[type="tel"]',
1971
- 'input[type="url"]',
1972
- 'input:not([type])',
1973
- 'textarea'
1974
- ],
1975
- unsupported: false
1976
- },
1977
- timer: {
1978
- type: 'widget',
1979
- attributes: {
1980
- allowed: ['aria-expanded', 'aria-errormessage']
1981
- },
1982
- owned: null,
1983
- nameFrom: ['author'],
1984
- context: null,
1985
- unsupported: false
1986
- },
1987
- toolbar: {
1988
- type: 'structure',
1989
- attributes: {
1990
- allowed: [
1991
- 'aria-activedescendant',
1992
- 'aria-expanded',
1993
- 'aria-orientation',
1994
- 'aria-errormessage'
1995
- ]
1996
- },
1997
- owned: null,
1998
- nameFrom: ['author'],
1999
- context: null,
2000
- implicit: ['menu[type="toolbar"]'],
2001
- unsupported: false,
2002
- allowedElements: ['ol', 'ul']
2003
- },
2004
- tooltip: {
2005
- type: 'structure',
2006
- attributes: {
2007
- allowed: ['aria-expanded', 'aria-errormessage']
2008
- },
2009
- owned: null,
2010
- nameFrom: ['author', 'contents'],
2011
- context: null,
2012
- unsupported: false
2013
- },
2014
- tree: {
2015
- type: 'composite',
2016
- attributes: {
2017
- allowed: [
2018
- 'aria-activedescendant',
2019
- 'aria-multiselectable',
2020
- 'aria-required',
2021
- 'aria-expanded',
2022
- 'aria-orientation',
2023
- 'aria-errormessage'
2024
- ]
2025
- },
2026
- owned: {
2027
- all: ['treeitem']
2028
- },
2029
- nameFrom: ['author'],
2030
- context: null,
2031
- unsupported: false,
2032
- allowedElements: ['ol', 'ul']
2033
- },
2034
- treegrid: {
2035
- type: 'composite',
2036
- attributes: {
2037
- allowed: [
2038
- 'aria-activedescendant',
2039
- 'aria-colcount',
2040
- 'aria-expanded',
2041
- 'aria-level',
2042
- 'aria-multiselectable',
2043
- 'aria-readonly',
2044
- 'aria-required',
2045
- 'aria-rowcount',
2046
- 'aria-orientation',
2047
- 'aria-errormessage'
2048
- ]
2049
- },
2050
- owned: {
2051
- one: ['rowgroup', 'row']
2052
- },
2053
- nameFrom: ['author'],
2054
- context: null,
2055
- unsupported: false
2056
- },
2057
- treeitem: {
2058
- type: 'widget',
2059
- attributes: {
2060
- allowed: [
2061
- 'aria-checked',
2062
- 'aria-selected',
2063
- 'aria-expanded',
2064
- 'aria-level',
2065
- 'aria-posinset',
2066
- 'aria-setsize',
2067
- 'aria-errormessage'
2068
- ]
2069
- },
2070
- owned: null,
2071
- nameFrom: ['author', 'contents'],
2072
- context: ['group', 'tree'],
2073
- unsupported: false,
2074
- allowedElements: [
2075
- 'li',
2076
- {
2077
- nodeName: 'a',
2078
- attributes: {
2079
- href: isNotNull
2080
- }
2081
- }
2082
- ]
2083
- },
2084
- widget: {
2085
- type: 'abstract',
2086
- unsupported: false
2087
- },
2088
- window: {
2089
- nameFrom: ['author'],
2090
- type: 'abstract',
2091
- unsupported: false
2092
- }
2093
- };
2094
-
2095
- lookupTable.implicitHtmlRole = implicitHtmlRoles;
2096
-
2097
- // Source: https://www.w3.org/TR/html-aria/
2098
- lookupTable.elementsAllowedNoRole = [
2099
- {
2100
- // Plain HTML nodes
2101
- nodeName: [
2102
- 'base',
2103
- 'body',
2104
- 'caption',
2105
- 'col',
2106
- 'colgroup',
2107
- 'datalist',
2108
- 'dd',
2109
- 'details',
2110
- 'dt',
2111
- 'head',
2112
- 'html',
2113
- 'keygen',
2114
- 'label',
2115
- 'legend',
2116
- 'main',
2117
- 'map',
2118
- 'math',
2119
- 'meta',
2120
- 'meter',
2121
- 'noscript',
2122
- 'optgroup',
2123
- 'param',
2124
- 'picture',
2125
- 'progress',
2126
- 'script',
2127
- 'source',
2128
- 'style',
2129
- 'template',
2130
- 'textarea',
2131
- 'title',
2132
- 'track'
2133
- ]
2134
- },
2135
- {
2136
- nodeName: 'area',
2137
- attributes: {
2138
- href: isNotNull
2139
- }
2140
- },
2141
- {
2142
- nodeName: 'input',
2143
- properties: {
2144
- type: [
2145
- 'color',
2146
- 'data',
2147
- 'datatime',
2148
- 'file',
2149
- 'hidden',
2150
- 'month',
2151
- 'number',
2152
- 'password',
2153
- 'range',
2154
- 'reset',
2155
- 'submit',
2156
- 'time',
2157
- 'week'
2158
- ]
2159
- }
2160
- },
2161
- {
2162
- nodeName: 'link',
2163
- attributes: {
2164
- href: isNotNull
2165
- }
2166
- },
2167
- {
2168
- nodeName: 'menu',
2169
- attributes: {
2170
- type: 'context'
2171
- }
2172
- },
2173
- {
2174
- nodeName: 'menuitem',
2175
- attributes: {
2176
- type: ['command', 'checkbox', 'radio']
2177
- }
2178
- },
2179
- {
2180
- nodeName: 'select',
2181
- condition: vNode => {
2182
- if (!(vNode instanceof axe.AbstractVirtualNode)) {
2183
- vNode = axe.utils.getNodeFromTree(vNode);
2184
- }
2185
-
2186
- return Number(vNode.attr('size')) > 1;
2187
- },
2188
- properties: {
2189
- multiple: true
2190
- }
2191
- },
2192
- // svg elements (below)
2193
- {
2194
- nodeName: [
2195
- 'clippath',
2196
- 'cursor',
2197
- 'defs',
2198
- 'desc',
2199
- 'feblend',
2200
- 'fecolormatrix',
2201
- 'fecomponenttransfer',
2202
- 'fecomposite',
2203
- 'feconvolvematrix',
2204
- 'fediffuselighting',
2205
- 'fedisplacementmap',
2206
- 'fedistantlight',
2207
- 'fedropshadow',
2208
- 'feflood',
2209
- 'fefunca',
2210
- 'fefuncb',
2211
- 'fefuncg',
2212
- 'fefuncr',
2213
- 'fegaussianblur',
2214
- 'feimage',
2215
- 'femerge',
2216
- 'femergenode',
2217
- 'femorphology',
2218
- 'feoffset',
2219
- 'fepointlight',
2220
- 'fespecularlighting',
2221
- 'fespotlight',
2222
- 'fetile',
2223
- 'feturbulence',
2224
- 'filter',
2225
- 'hatch',
2226
- 'hatchpath',
2227
- 'lineargradient',
2228
- 'marker',
2229
- 'mask',
2230
- 'meshgradient',
2231
- 'meshpatch',
2232
- 'meshrow',
2233
- 'metadata',
2234
- 'mpath',
2235
- 'pattern',
2236
- 'radialgradient',
2237
- 'solidcolor',
2238
- 'stop',
2239
- 'switch',
2240
- 'view'
2241
- ]
2242
- }
2243
- ];
2244
-
2245
- // Source: https://www.w3.org/TR/html-aria/
2246
- lookupTable.elementsAllowedAnyRole = [
2247
- {
2248
- nodeName: 'a',
2249
- attributes: {
2250
- href: isNull
2251
- }
2252
- },
2253
- {
2254
- nodeName: 'img',
2255
- attributes: {
2256
- alt: isNull
2257
- }
2258
- },
2259
- {
2260
- nodeName: [
2261
- 'abbr',
2262
- 'address',
2263
- 'canvas',
2264
- 'div',
2265
- 'p',
2266
- 'pre',
2267
- 'blockquote',
2268
- 'ins',
2269
- 'del',
2270
- 'output',
2271
- 'span',
2272
- 'table',
2273
- 'tbody',
2274
- 'thead',
2275
- 'tfoot',
2276
- 'td',
2277
- 'em',
2278
- 'strong',
2279
- 'small',
2280
- 's',
2281
- 'cite',
2282
- 'q',
2283
- 'dfn',
2284
- 'abbr',
2285
- 'time',
2286
- 'code',
2287
- 'var',
2288
- 'samp',
2289
- 'kbd',
2290
- 'sub',
2291
- 'sup',
2292
- 'i',
2293
- 'b',
2294
- 'u',
2295
- 'mark',
2296
- 'ruby',
2297
- 'rt',
2298
- 'rp',
2299
- 'bdi',
2300
- 'bdo',
2301
- 'br',
2302
- 'wbr',
2303
- 'th',
2304
- 'tr'
2305
- ]
2306
- }
2307
- ];
2308
-
2309
- lookupTable.evaluateRoleForElement = {
2310
- A: ({ node, out }) => {
2311
- if (node.namespaceURI === 'http://www.w3.org/2000/svg') {
2312
- return true;
2313
- }
2314
- if (node.href.length) {
2315
- return out;
2316
- }
2317
- return true;
2318
- },
2319
- AREA: ({ node }) => !node.href,
2320
- BUTTON: ({ node, role, out }) => {
2321
- if (node.getAttribute('type') === 'menu') {
2322
- return role === 'menuitem';
2323
- }
2324
- return out;
2325
- },
2326
- IMG: ({ node, role, out }) => {
2327
- switch (node.alt) {
2328
- case null:
2329
- return out;
2330
- case '':
2331
- return role === 'presentation' || role === 'none';
2332
- default:
2333
- return role !== 'presentation' && role !== 'none';
2334
- }
2335
- },
2336
- INPUT: ({ node, role, out }) => {
2337
- switch (node.type) {
2338
- case 'button':
2339
- case 'image':
2340
- return out;
2341
- case 'checkbox':
2342
- if (role === 'button' && node.hasAttribute('aria-pressed')) {
2343
- return true;
2344
- }
2345
- return out;
2346
- case 'radio':
2347
- return role === 'menuitemradio';
2348
- case 'text':
2349
- return (
2350
- role === 'combobox' || role === 'searchbox' || role === 'spinbutton'
2351
- );
2352
- case 'tel':
2353
- return role === 'combobox' || role === 'spinbutton';
2354
- case 'url':
2355
- case 'search':
2356
- case 'email':
2357
- return role === 'combobox';
2358
- default:
2359
- return false;
2360
- }
2361
- },
2362
- LI: ({ node, out }) => {
2363
- const hasImplicitListitemRole = axe.utils.matchesSelector(
2364
- node,
2365
- 'ol li, ul li'
2366
- );
2367
- if (hasImplicitListitemRole) {
2368
- return out;
2369
- }
2370
- return true;
2371
- },
2372
- MENU: ({ node }) => {
2373
- if (node.getAttribute('type') === 'context') {
2374
- return false;
2375
- }
2376
- return true;
2377
- },
2378
- OPTION: ({ node }) => {
2379
- const withinOptionList = axe.utils.matchesSelector(
2380
- node,
2381
- 'select > option, datalist > option, optgroup > option'
2382
- );
2383
- return !withinOptionList;
2384
- },
2385
- SELECT: ({ node, role }) =>
2386
- !node.multiple && node.size <= 1 && role === 'menu',
2387
- SVG: ({ node, out }) => {
2388
- // if in svg context it all roles may be used
2389
- if (
2390
- node.parentNode &&
2391
- node.parentNode.namespaceURI === 'http://www.w3.org/2000/svg'
2392
- ) {
2393
- return true;
2394
- }
2395
- return out;
2396
- }
2397
- };
2398
-
2399
- /**
2400
- * Note:
2401
- * Usage of `rolesOfType` is deprecated within the source code.
2402
- * Leaving this here for now, to keep support for custom rules.
2403
- */
2404
- lookupTable.rolesOfType = {
2405
- widget: [
2406
- 'button',
2407
- 'checkbox',
2408
- 'dialog',
2409
- 'gridcell',
2410
- 'link',
2411
- 'log',
2412
- 'marquee',
2413
- 'menuitem',
2414
- 'menuitemcheckbox',
2415
- 'menuitemradio',
2416
- 'option',
2417
- 'progressbar',
2418
- 'radio',
2419
- 'scrollbar',
2420
- 'searchbox',
2421
- 'slider',
2422
- 'spinbutton',
2423
- 'status',
2424
- 'switch',
2425
- 'tab',
2426
- 'tabpanel',
2427
- 'textbox',
2428
- 'timer',
2429
- 'tooltip',
2430
- 'tree',
2431
- 'treeitem'
2432
- ]
2433
- };
2434
-
2435
- export default lookupTable;