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,933 +0,0 @@
1
- // Source: https://www.w3.org/TR/html-aria/#allowed-aria-roles-states-and-properties
2
- // Source: https://www.w3.org/TR/html-aam-1.0/#html-element-role-mappings
3
- // Source https://html.spec.whatwg.org/multipage/dom.html#content-models
4
- // Source https://dom.spec.whatwg.org/#dom-element-attachshadow
5
- const htmlElms = {
6
- a: {
7
- // Note: variants work by matching the node against the
8
- // `matches` attribute. if the variant matches AND has the
9
- // desired property (contentTypes, etc.) then we use it,
10
- // otherwise we move on to the next matching variant
11
- variant: {
12
- href: {
13
- matches: '[href]',
14
- contentTypes: ['interactive', 'phrasing', 'flow'],
15
- allowedRoles: [
16
- 'button',
17
- 'checkbox',
18
- 'menuitem',
19
- 'menuitemcheckbox',
20
- 'menuitemradio',
21
- 'option',
22
- 'radio',
23
- 'switch',
24
- 'tab',
25
- 'treeitem',
26
- 'doc-backlink',
27
- 'doc-biblioref',
28
- 'doc-glossref',
29
- 'doc-noteref'
30
- ],
31
- namingMethods: ['subtreeText']
32
- },
33
- // Note: the default variant is a special variant and is
34
- // used as the last match if none of the other variants
35
- // match or have the desired attribute
36
- default: {
37
- contentTypes: ['phrasing', 'flow'],
38
- allowedRoles: true
39
- }
40
- }
41
- },
42
- abbr: {
43
- contentTypes: ['phrasing', 'flow'],
44
- allowedRoles: true
45
- },
46
- addres: {
47
- contentTypes: ['flow'],
48
- allowedRoles: true
49
- },
50
- area: {
51
- contentTypes: ['phrasing', 'flow'],
52
- allowedRoles: false,
53
- namingMethods: ['altText']
54
- },
55
- article: {
56
- contentTypes: ['sectioning', 'flow'],
57
- allowedRoles: [
58
- 'feed',
59
- 'presentation',
60
- 'none',
61
- 'document',
62
- 'application',
63
- 'main',
64
- 'region'
65
- ],
66
- shadowRoot: true
67
- },
68
- aside: {
69
- contentTypes: ['sectioning', 'flow'],
70
- allowedRoles: [
71
- 'feed',
72
- 'note',
73
- 'presentation',
74
- 'none',
75
- 'region',
76
- 'search',
77
- 'doc-dedication',
78
- 'doc-example',
79
- 'doc-footnote',
80
- 'doc-pullquote',
81
- 'doc-tip'
82
- ]
83
- },
84
- audio: {
85
- variant: {
86
- controls: {
87
- matches: '[controls]',
88
- contentTypes: ['interactive', 'embedded', 'phrasing', 'flow']
89
- },
90
- default: {
91
- contentTypes: ['embedded', 'phrasing', 'flow']
92
- }
93
- },
94
- // Note: if the property applies regardless of variants it is
95
- // placed at the top level instead of the default variant
96
- allowedRoles: ['application'],
97
- chromiumRole: 'Audio'
98
- },
99
- b: {
100
- contentTypes: ['phrasing', 'flow'],
101
- allowedRoles: false
102
- },
103
- base: {
104
- allowedRoles: false,
105
- noAriaAttrs: true
106
- },
107
- bdi: {
108
- contentTypes: ['phrasing', 'flow'],
109
- allowedRoles: true
110
- },
111
- bdo: {
112
- contentTypes: ['phrasing', 'flow'],
113
- allowedRoles: true
114
- },
115
- blockquote: {
116
- contentTypes: ['flow'],
117
- allowedRoles: true,
118
- shadowRoot: true
119
- },
120
- body: {
121
- allowedRoles: false,
122
- shadowRoot: true
123
- },
124
- br: {
125
- contentTypes: ['phrasing', 'flow'],
126
- allowedRoles: ['presentation', 'none'],
127
- namingMethods: ['titleText', 'singleSpace']
128
- },
129
- button: {
130
- contentTypes: ['interactive', 'phrasing', 'flow'],
131
- allowedRoles: [
132
- 'checkbox',
133
- 'link',
134
- 'menuitem',
135
- 'menuitemcheckbox',
136
- 'menuitemradio',
137
- 'option',
138
- 'radio',
139
- 'switch',
140
- 'tab'
141
- ],
142
- // 5.4 button Element
143
- namingMethods: ['subtreeText']
144
- },
145
- canvas: {
146
- allowedRoles: true,
147
- contentTypes: ['embedded', 'phrasing', 'flow'],
148
- chromiumRole: 'Canvas'
149
- },
150
- caption: {
151
- allowedRoles: false
152
- },
153
- cite: {
154
- contentTypes: ['phrasing', 'flow'],
155
- allowedRoles: true
156
- },
157
- code: {
158
- contentTypes: ['phrasing', 'flow'],
159
- allowedRoles: true
160
- },
161
- col: {
162
- allowedRoles: false,
163
- noAriaAttrs: true
164
- },
165
- colgroup: {
166
- allowedRoles: false,
167
- noAriaAttrs: true
168
- },
169
- data: {
170
- contentTypes: ['phrasing', 'flow'],
171
- allowedRoles: true
172
- },
173
- datalist: {
174
- contentTypes: ['phrasing', 'flow'],
175
- allowedRoles: false,
176
- implicitAttrs: {
177
- // Note: even though the value of aria-multiselectable is based
178
- // on the attributes, we don't currently need to know the
179
- // precise value. however, this allows us to make the attribute
180
- // future proof in case we ever do need to know it
181
- 'aria-multiselectable': 'false'
182
- }
183
- },
184
- dd: {
185
- allowedRoles: false
186
- },
187
- del: {
188
- contentTypes: ['phrasing', 'flow'],
189
- allowedRoles: true
190
- },
191
- dfn: {
192
- contentTypes: ['phrasing', 'flow'],
193
- allowedRoles: true
194
- },
195
- details: {
196
- contentTypes: ['interactive', 'flow'],
197
- allowedRoles: false
198
- },
199
- dialog: {
200
- contentTypes: ['flow'],
201
- allowedRoles: ['alertdialog']
202
- },
203
- div: {
204
- contentTypes: ['flow'],
205
- allowedRoles: true,
206
- shadowRoot: true
207
- },
208
- dl: {
209
- contentTypes: ['flow'],
210
- allowedRoles: ['group', 'list', 'presentation', 'none'],
211
- chromiumRole: 'DescriptionList'
212
- },
213
- dt: {
214
- allowedRoles: ['listitem']
215
- },
216
- em: {
217
- contentTypes: ['phrasing', 'flow'],
218
- allowedRoles: true
219
- },
220
- embed: {
221
- contentTypes: ['interactive', 'embedded', 'phrasing', 'flow'],
222
- allowedRoles: ['application', 'document', 'img', 'presentation', 'none'],
223
- chromiumRole: 'EmbeddedObject'
224
- },
225
- fieldset: {
226
- contentTypes: ['flow'],
227
- allowedRoles: ['none', 'presentation', 'radiogroup'],
228
- // 5.5 fieldset and legend Elements
229
- namingMethods: ['fieldsetLegendText']
230
- },
231
- figcaption: {
232
- allowedRoles: ['group', 'none', 'presentation']
233
- },
234
- figure: {
235
- contentTypes: ['flow'],
236
- // Note: technically you're allowed no role when a figcaption
237
- // descendant, but we can't match that so we'll go with any role
238
- allowedRoles: true,
239
- // 5.9 figure and figcaption Elements
240
- namingMethods: ['figureText', 'titleText']
241
- },
242
- footer: {
243
- contentTypes: ['flow'],
244
- allowedRoles: ['group', 'none', 'presentation', 'doc-footnote'],
245
- shadowRoot: true
246
- },
247
- form: {
248
- contentTypes: ['flow'],
249
- allowedRoles: ['search', 'none', 'presentation']
250
- },
251
- h1: {
252
- contentTypes: ['heading', 'flow'],
253
- allowedRoles: ['none', 'presentation', 'tab', 'doc-subtitle'],
254
- shadowRoot: true,
255
- implicitAttrs: {
256
- 'aria-level': '1'
257
- }
258
- },
259
- h2: {
260
- contentTypes: ['heading', 'flow'],
261
- allowedRoles: ['none', 'presentation', 'tab', 'doc-subtitle'],
262
- shadowRoot: true,
263
- implicitAttrs: {
264
- 'aria-level': '2'
265
- }
266
- },
267
- h3: {
268
- contentTypes: ['heading', 'flow'],
269
- allowedRoles: ['none', 'presentation', 'tab', 'doc-subtitle'],
270
- shadowRoot: true,
271
- implicitAttrs: {
272
- 'aria-level': '3'
273
- }
274
- },
275
- h4: {
276
- contentTypes: ['heading', 'flow'],
277
- allowedRoles: ['none', 'presentation', 'tab', 'doc-subtitle'],
278
- shadowRoot: true,
279
- implicitAttrs: {
280
- 'aria-level': '4'
281
- }
282
- },
283
- h5: {
284
- contentTypes: ['heading', 'flow'],
285
- allowedRoles: ['none', 'presentation', 'tab', 'doc-subtitle'],
286
- shadowRoot: true,
287
- implicitAttrs: {
288
- 'aria-level': '5'
289
- }
290
- },
291
- h6: {
292
- contentTypes: ['heading', 'flow'],
293
- allowedRoles: ['none', 'presentation', 'tab', 'doc-subtitle'],
294
- shadowRoot: true,
295
- implicitAttrs: {
296
- 'aria-level': '6'
297
- }
298
- },
299
- head: {
300
- allowedRoles: false,
301
- noAriaAttrs: true
302
- },
303
- header: {
304
- contentTypes: ['flow'],
305
- allowedRoles: ['group', 'none', 'presentation', 'doc-footnote'],
306
- shadowRoot: true
307
- },
308
- hgroup: {
309
- contentTypes: ['heading', 'flow'],
310
- allowedRoles: true
311
- },
312
- hr: {
313
- contentTypes: ['flow'],
314
- allowedRoles: ['none', 'presentation', 'doc-pagebreak'],
315
- namingMethods: ['titleText', 'singleSpace']
316
- },
317
- html: {
318
- allowedRoles: false,
319
- noAriaAttrs: true
320
- },
321
- i: {
322
- contentTypes: ['phrasing', 'flow'],
323
- allowedRoles: true
324
- },
325
- iframe: {
326
- contentTypes: ['interactive', 'embedded', 'phrasing', 'flow'],
327
- allowedRoles: ['application', 'document', 'img', 'none', 'presentation'],
328
- chromiumRole: 'Iframe'
329
- },
330
- img: {
331
- variant: {
332
- nonEmptyAlt: {
333
- matches: {
334
- attributes: {
335
- alt: '/.+/'
336
- }
337
- },
338
- allowedRoles: [
339
- 'button',
340
- 'checkbox',
341
- 'link',
342
- 'menuitem',
343
- 'menuitemcheckbox',
344
- 'menuitemradio',
345
- 'option',
346
- 'progressbar',
347
- 'scrollbar',
348
- 'separator',
349
- 'slider',
350
- 'switch',
351
- 'tab',
352
- 'treeitem',
353
- 'doc-cover'
354
- ]
355
- },
356
- usemap: {
357
- matches: '[usemap]',
358
- contentTypes: ['interactive', 'embedded', 'phrasing', 'flow']
359
- },
360
- default: {
361
- // Note: allow role presentation and none on image with no
362
- // alt as a way to prevent axe from flagging the image as
363
- // needing an alt
364
- allowedRoles: ['presentation', 'none'],
365
- contentTypes: ['embedded', 'phrasing', 'flow']
366
- }
367
- },
368
- // 5.10 img Element
369
- namingMethods: ['altText']
370
- },
371
- input: {
372
- variant: {
373
- button: {
374
- matches: {
375
- properties: {
376
- type: 'button'
377
- }
378
- },
379
- allowedRoles: [
380
- 'link',
381
- 'menuitem',
382
- 'menuitemcheckbox',
383
- 'menuitemradio',
384
- 'option',
385
- 'radio',
386
- 'switch',
387
- 'tab'
388
- ]
389
- },
390
- // 5.2 input type="button", input type="submit" and input type="reset"
391
- buttonType: {
392
- matches: {
393
- properties: {
394
- type: ['button', 'submit', 'reset']
395
- }
396
- },
397
- namingMethods: ['valueText', 'titleText', 'buttonDefaultText']
398
- },
399
- checkboxPressed: {
400
- matches: {
401
- properties: {
402
- type: 'checkbox'
403
- },
404
- attributes: {
405
- 'aria-pressed': '/.*/'
406
- }
407
- },
408
- allowedRoles: ['button', 'menuitemcheckbox', 'option', 'switch'],
409
- implicitAttrs: {
410
- 'aria-checked': 'false'
411
- }
412
- },
413
- checkbox: {
414
- matches: {
415
- properties: {
416
- type: 'checkbox'
417
- },
418
- attributes: {
419
- 'aria-pressed': null
420
- }
421
- },
422
- allowedRoles: ['menuitemcheckbox', 'option', 'switch'],
423
- implicitAttrs: {
424
- 'aria-checked': 'false'
425
- }
426
- },
427
- noRoles: {
428
- matches: {
429
- properties: {
430
- // Note: types of url, search, tel, and email are listed
431
- // as not allowed roles however since they are text
432
- // types they should be allowed to have role=combobox
433
- type: [
434
- 'color',
435
- 'date',
436
- 'datetime-local',
437
- 'file',
438
- 'month',
439
- 'number',
440
- 'password',
441
- 'range',
442
- 'reset',
443
- 'submit',
444
- 'time',
445
- 'week'
446
- ]
447
- }
448
- },
449
- allowedRoles: false
450
- },
451
- hidden: {
452
- matches: {
453
- properties: {
454
- type: 'hidden'
455
- }
456
- },
457
- // Note: spec change (do not count as phrasing)
458
- contentTypes: ['flow'],
459
- allowedRoles: false,
460
- noAriaAttrs: true
461
- },
462
- image: {
463
- matches: {
464
- properties: {
465
- type: 'image'
466
- }
467
- },
468
- allowedRoles: [
469
- 'link',
470
- 'menuitem',
471
- 'menuitemcheckbox',
472
- 'menuitemradio',
473
- 'radio',
474
- 'switch'
475
- ],
476
- // 5.3 input type="image"
477
- namingMethods: [
478
- 'altText',
479
- 'valueText',
480
- 'labelText',
481
- 'titleText',
482
- 'buttonDefaultText'
483
- ]
484
- },
485
- radio: {
486
- matches: {
487
- properties: {
488
- type: 'radio'
489
- }
490
- },
491
- allowedRoles: ['menuitemradio'],
492
- implicitAttrs: {
493
- 'aria-checked': 'false'
494
- }
495
- },
496
- textWithList: {
497
- matches: {
498
- properties: {
499
- type: 'text'
500
- },
501
- attributes: {
502
- list: '/.*/'
503
- }
504
- },
505
- allowedRoles: false
506
- },
507
- default: {
508
- // Note: spec change (do not count as phrasing)
509
- contentTypes: ['interactive', 'flow'],
510
- allowedRoles: ['combobox', 'searchbox', 'spinbutton'],
511
- implicitAttrs: {
512
- 'aria-valuenow': ''
513
- },
514
- // 5.1 input type="text", input type="password", input type="search", input type="tel", input type="url"
515
- // 5.7 Other Form Elements
516
- namingMethods: ['labelText', 'placeholderText']
517
- }
518
- }
519
- },
520
- ins: {
521
- contentTypes: ['phrasing', 'flow'],
522
- allowedRoles: true
523
- },
524
- kbd: {
525
- contentTypes: ['phrasing', 'flow'],
526
- allowedRoles: true
527
- },
528
- label: {
529
- contentTypes: ['interactive', 'phrasing', 'flow'],
530
- allowedRoles: false,
531
- chromiumRole: 'Label'
532
- },
533
- legend: {
534
- allowedRoles: false
535
- },
536
- li: {
537
- allowedRoles: [
538
- 'menuitem',
539
- 'menuitemcheckbox',
540
- 'menuitemradio',
541
- 'option',
542
- 'none',
543
- 'presentation',
544
- 'radio',
545
- 'separator',
546
- 'tab',
547
- 'treeitem',
548
- 'doc-biblioentry',
549
- 'doc-endnote'
550
- ],
551
- implicitAttrs: {
552
- 'aria-setsize': '1',
553
- 'aria-posinset': '1'
554
- }
555
- },
556
- link: {
557
- contentTypes: ['phrasing', 'flow'],
558
- allowedRoles: false,
559
- noAriaAttrs: true
560
- },
561
- main: {
562
- contentTypes: ['flow'],
563
- allowedRoles: false,
564
- shadowRoot: true
565
- },
566
- map: {
567
- contentTypes: ['phrasing', 'flow'],
568
- allowedRoles: false,
569
- noAriaAttrs: true
570
- },
571
- math: {
572
- contentTypes: ['embedded', 'phrasing', 'flow'],
573
- allowedRoles: false
574
- },
575
- mark: {
576
- contentTypes: ['phrasing', 'flow'],
577
- allowedRoles: true
578
- },
579
- menu: {
580
- contentTypes: ['flow'],
581
- allowedRoles: [
582
- 'directory',
583
- 'group',
584
- 'listbox',
585
- 'menu',
586
- 'menubar',
587
- 'none',
588
- 'presentation',
589
- 'radiogroup',
590
- 'tablist',
591
- 'toolbar',
592
- 'tree'
593
- ]
594
- },
595
- meta: {
596
- variant: {
597
- itemprop: {
598
- matches: '[itemprop]',
599
- contentTypes: ['phrasing', 'flow']
600
- }
601
- },
602
- allowedRoles: false,
603
- noAriaAttrs: true
604
- },
605
- meter: {
606
- contentTypes: ['phrasing', 'flow'],
607
- allowedRoles: false,
608
- chromiumRole: 'progressbar'
609
- },
610
- nav: {
611
- contentTypes: ['sectioning', 'flow'],
612
- allowedRoles: ['doc-index', 'doc-pagelist', 'doc-toc'],
613
- shadowRoot: true
614
- },
615
- noscript: {
616
- contentTypes: ['phrasing', 'flow'],
617
- allowedRoles: false,
618
- noAriaAttrs: true
619
- },
620
- object: {
621
- variant: {
622
- usemap: {
623
- matches: '[usemap]',
624
- contentTypes: ['interactive', 'embedded', 'phrasing', 'flow']
625
- },
626
- default: {
627
- contentTypes: ['embedded', 'phrasing', 'flow']
628
- }
629
- },
630
- allowedRoles: ['application', 'document', 'img'],
631
- chromiumRole: 'PluginObject'
632
- },
633
- ol: {
634
- contentTypes: ['flow'],
635
- allowedRoles: [
636
- 'directory',
637
- 'group',
638
- 'listbox',
639
- 'menu',
640
- 'menubar',
641
- 'none',
642
- 'presentation',
643
- 'radiogroup',
644
- 'tablist',
645
- 'toolbar',
646
- 'tree'
647
- ]
648
- },
649
- optgroup: {
650
- allowedRoles: false
651
- },
652
- option: {
653
- allowedRoles: false,
654
- implicitAttrs: {
655
- 'aria-selected': 'false'
656
- }
657
- },
658
- output: {
659
- contentTypes: ['phrasing', 'flow'],
660
- allowedRoles: true,
661
- // 5.6 output Element
662
- namingMethods: ['subtreeText']
663
- },
664
- p: {
665
- contentTypes: ['flow'],
666
- allowedRoles: true,
667
- shadowRoot: true
668
- },
669
- param: {
670
- allowedRoles: false,
671
- noAriaAttrs: true
672
- },
673
- picture: {
674
- // Note: spec change (do not count as embedded), because browsers do not hide text inside the picture element
675
- contentTypes: ['phrasing', 'flow'],
676
- allowedRoles: false,
677
- noAriaAttrs: true
678
- },
679
- pre: {
680
- contentTypes: ['flow'],
681
- allowedRoles: true
682
- },
683
- progress: {
684
- contentTypes: ['phrasing', 'flow'],
685
- allowedRoles: true,
686
- implicitAttrs: {
687
- 'aria-valuemax': '100',
688
- 'aria-valuemin': '0',
689
- 'aria-valuenow': '0'
690
- }
691
- },
692
- q: {
693
- contentTypes: ['phrasing', 'flow'],
694
- allowedRoles: true
695
- },
696
- rp: {
697
- allowedRoles: true
698
- },
699
- rt: {
700
- allowedRoles: true
701
- },
702
- ruby: {
703
- contentTypes: ['phrasing', 'flow'],
704
- allowedRoles: true
705
- },
706
- s: {
707
- contentTypes: ['phrasing', 'flow'],
708
- allowedRoles: true
709
- },
710
- samp: {
711
- contentTypes: ['phrasing', 'flow'],
712
- allowedRoles: true
713
- },
714
- script: {
715
- contentTypes: ['phrasing', 'flow'],
716
- allowedRoles: false,
717
- noAriaAttrs: true
718
- },
719
- section: {
720
- contentTypes: ['sectioning', 'flow'],
721
- allowedRoles: [
722
- 'alert',
723
- 'alertdialog',
724
- 'application',
725
- 'banner',
726
- 'complementary',
727
- 'contentinfo',
728
- 'dialog',
729
- 'document',
730
- 'feed',
731
- 'log',
732
- 'main',
733
- 'marquee',
734
- 'navigation',
735
- 'none',
736
- 'note',
737
- 'presentation',
738
- 'search',
739
- 'status',
740
- 'tabpanel',
741
- 'doc-abstract',
742
- 'doc-acknowledgments',
743
- 'doc-afterword',
744
- 'doc-appendix',
745
- 'doc-bibliography',
746
- 'doc-chapter',
747
- 'doc-colophon',
748
- 'doc-conclusion',
749
- 'doc-credit',
750
- 'doc-credits',
751
- 'doc-dedication',
752
- 'doc-endnotes',
753
- 'doc-epigraph',
754
- 'doc-epilogue',
755
- 'doc-errata',
756
- 'doc-example',
757
- 'doc-foreword',
758
- 'doc-glossary',
759
- 'doc-index',
760
- 'doc-introduction',
761
- 'doc-notice',
762
- 'doc-pagelist',
763
- 'doc-part',
764
- 'doc-preface',
765
- 'doc-prologue',
766
- 'doc-pullquote',
767
- 'doc-qna',
768
- 'doc-toc'
769
- ],
770
- shadowRoot: true
771
- },
772
- select: {
773
- variant: {
774
- combobox: {
775
- matches: {
776
- attributes: {
777
- multiple: null,
778
- size: [null, '1']
779
- }
780
- },
781
- allowedRoles: ['menu']
782
- },
783
- default: {
784
- allowedRoles: false
785
- }
786
- },
787
- contentTypes: ['interactive', 'phrasing', 'flow'],
788
- implicitAttrs: {
789
- 'aria-valuenow': ''
790
- },
791
- // 5.7 Other form elements
792
- namingMethods: ['labelText']
793
- },
794
- slot: {
795
- contentTypes: ['phrasing', 'flow'],
796
- allowedRoles: false,
797
- noAriaAttrs: true
798
- },
799
- small: {
800
- contentTypes: ['phrasing', 'flow'],
801
- allowedRoles: true
802
- },
803
- source: {
804
- allowedRoles: false,
805
- noAriaAttrs: true
806
- },
807
- span: {
808
- contentTypes: ['phrasing', 'flow'],
809
- allowedRoles: true,
810
- shadowRoot: true
811
- },
812
- strong: {
813
- contentTypes: ['phrasing', 'flow'],
814
- allowedRoles: true
815
- },
816
- style: {
817
- allowedRoles: false,
818
- noAriaAttrs: true
819
- },
820
- svg: {
821
- contentTypes: ['embedded', 'phrasing', 'flow'],
822
- allowedRoles: ['application', 'document', 'img'],
823
- chromiumRole: 'SVGRoot',
824
- namingMethods: ['svgTitleText']
825
- },
826
- sub: {
827
- contentTypes: ['phrasing', 'flow'],
828
- allowedRoles: true
829
- },
830
- summary: {
831
- allowedRoles: false,
832
- // 5.8 summary Element
833
- namingMethods: ['subtreeText']
834
- },
835
- sup: {
836
- contentTypes: ['phrasing', 'flow'],
837
- allowedRoles: true
838
- },
839
- table: {
840
- contentTypes: ['flow'],
841
- allowedRoles: true,
842
- // 5.11 table Element
843
- namingMethods: ['tableCaptionText', 'tableSummaryText']
844
- },
845
- tbody: {
846
- allowedRoles: true
847
- },
848
- template: {
849
- contentTypes: ['phrasing', 'flow'],
850
- allowedRoles: false,
851
- noAriaAttrs: true
852
- },
853
- textarea: {
854
- contentTypes: ['interactive', 'phrasing', 'flow'],
855
- allowedRoles: false,
856
- implicitAttrs: {
857
- 'aria-valuenow': '',
858
- 'aria-multiline': 'true'
859
- },
860
- // 5.1 textarea
861
- namingMethods: ['labelText', 'placeholderText']
862
- },
863
- tfoot: {
864
- allowedRoles: true
865
- },
866
- thead: {
867
- allowedRoles: true
868
- },
869
- time: {
870
- contentTypes: ['phrasing', 'flow'],
871
- allowedRoles: true
872
- },
873
- title: {
874
- allowedRoles: false,
875
- noAriaAttrs: true
876
- },
877
- td: {
878
- allowedRoles: true
879
- },
880
- th: {
881
- allowedRoles: true
882
- },
883
- tr: {
884
- allowedRoles: true
885
- },
886
- track: {
887
- allowedRoles: false,
888
- noAriaAttrs: true
889
- },
890
- u: {
891
- contentTypes: ['phrasing', 'flow'],
892
- allowedRoles: true
893
- },
894
- ul: {
895
- contentTypes: ['flow'],
896
- allowedRoles: [
897
- 'directory',
898
- 'group',
899
- 'listbox',
900
- 'menu',
901
- 'menubar',
902
- 'none',
903
- 'presentation',
904
- 'radiogroup',
905
- 'tablist',
906
- 'toolbar',
907
- 'tree'
908
- ]
909
- },
910
- var: {
911
- contentTypes: ['phrasing', 'flow'],
912
- allowedRoles: true
913
- },
914
- video: {
915
- variant: {
916
- controls: {
917
- matches: '[controls]',
918
- contentTypes: ['interactive', 'embedded', 'phrasing', 'flow']
919
- },
920
- default: {
921
- contentTypes: ['embedded', 'phrasing', 'flow']
922
- }
923
- },
924
- allowedRoles: ['application'],
925
- chromiumRole: 'video'
926
- },
927
- wbr: {
928
- contentTypes: ['phrasing', 'flow'],
929
- allowedRoles: true
930
- }
931
- };
932
-
933
- export default htmlElms;