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,104 +0,0 @@
1
- import { matchesExpression, convertSelector } from './matches';
2
-
3
- function createLocalVariables(vNodes, anyLevel, thisLevel, parentShadowId) {
4
- const retVal = {
5
- vNodes: vNodes.slice(),
6
- anyLevel: anyLevel,
7
- thisLevel: thisLevel,
8
- parentShadowId: parentShadowId
9
- };
10
- retVal.vNodes.reverse();
11
- return retVal;
12
- }
13
-
14
- function matchExpressions(domTree, expressions, filter) {
15
- const stack = [];
16
- const vNodes = Array.isArray(domTree) ? domTree : [domTree];
17
- let currentLevel = createLocalVariables(
18
- vNodes,
19
- expressions,
20
- [],
21
- domTree[0].shadowId
22
- );
23
- const result = [];
24
-
25
- while (currentLevel.vNodes.length) {
26
- const vNode = currentLevel.vNodes.pop();
27
- const childOnly = []; // we will add hierarchical '>' selectors here
28
- const childAny = [];
29
- const combined = currentLevel.anyLevel
30
- .slice()
31
- .concat(currentLevel.thisLevel);
32
- let added = false;
33
- // see if node matches
34
- for (let i = 0; i < combined.length; i++) {
35
- const exp = combined[i];
36
- if (
37
- (!exp[0].id || vNode.shadowId === currentLevel.parentShadowId) &&
38
- matchesExpression(vNode, exp[0])
39
- ) {
40
- if (exp.length === 1) {
41
- if (!added && (!filter || filter(vNode))) {
42
- result.push(vNode);
43
- added = true;
44
- }
45
- } else {
46
- const rest = exp.slice(1);
47
- if ([' ', '>'].includes(rest[0].combinator) === false) {
48
- throw new Error(
49
- 'axe.utils.querySelectorAll does not support the combinator: ' +
50
- exp[1].combinator
51
- );
52
- }
53
- if (rest[0].combinator === '>') {
54
- // add the rest to the childOnly array
55
- childOnly.push(rest);
56
- } else {
57
- // add the rest to the childAny array
58
- childAny.push(rest);
59
- }
60
- }
61
- }
62
- if (
63
- (!exp[0].id || vNode.shadowId === currentLevel.parentShadowId) &&
64
- currentLevel.anyLevel.includes(exp)
65
- ) {
66
- childAny.push(exp);
67
- }
68
- }
69
-
70
- if (vNode.children && vNode.children.length) {
71
- stack.push(currentLevel);
72
- currentLevel = createLocalVariables(
73
- vNode.children,
74
- childAny,
75
- childOnly,
76
- vNode.shadowId
77
- );
78
- }
79
- // check for "return"
80
- while (!currentLevel.vNodes.length && stack.length) {
81
- currentLevel = stack.pop();
82
- }
83
- }
84
- return result;
85
- }
86
-
87
- /**
88
- * querySelectorAllFilter implements querySelectorAll on the virtual DOM with
89
- * ability to filter the returned nodes using an optional supplied filter function
90
- *
91
- * @method querySelectorAllFilter
92
- * @memberof axe.utils
93
- * @param {NodeList} domTree flattened tree collection to search
94
- * @param {String} selector String containing one or more CSS selectors separated by commas
95
- * @param {Function} filter function (optional)
96
- * @return {Array} Elements matched by any of the selectors and filtered by the filter function
97
- */
98
- function querySelectorAllFilter(domTree, selector, filter) {
99
- domTree = Array.isArray(domTree) ? domTree : [domTree];
100
- const expressions = convertSelector(selector);
101
- return matchExpressions(domTree, expressions, filter);
102
- }
103
-
104
- export default querySelectorAllFilter;
@@ -1,15 +0,0 @@
1
- import querySelectorAllFilter from './query-selector-all-filter';
2
-
3
- /**
4
- * querySelectorAll implementation that operates on the flattened tree (supports shadow DOM)
5
- * @method querySelectorAll
6
- * @memberof axe.utils
7
- * @param {NodeList} domTree flattened tree collection to search
8
- * @param {String} selector String containing one or more CSS selectors separated by commas
9
- * @return {NodeList} Elements matched by any of the selectors
10
- */
11
- export function querySelectorAll(domTree, selector) {
12
- return querySelectorAllFilter(domTree, selector);
13
- }
14
-
15
- export default querySelectorAll;
@@ -1,137 +0,0 @@
1
- import log from '../log';
2
-
3
- function noop() {}
4
- function funcGuard(f) {
5
- if (typeof f !== 'function') {
6
- throw new TypeError('Queue methods require functions as arguments');
7
- }
8
- }
9
-
10
- /**
11
- * Create an asynchronous "queue", list of functions to be invoked in parallel, but not necessarily returned in order
12
- * @return {Queue} The newly generated "queue"
13
- */
14
- function queue() {
15
- var tasks = [];
16
- var started = 0;
17
- var remaining = 0; // number of tasks not yet finished
18
- var completeQueue = noop;
19
- var complete = false;
20
- var err;
21
-
22
- // By default, wait until the next tick,
23
- // if no catch was set, throw to console.
24
- var defaultFail = e => {
25
- err = e;
26
- setTimeout(() => {
27
- if (err !== undefined && err !== null) {
28
- log('Uncaught error (of queue)', err);
29
- }
30
- }, 1);
31
- };
32
- var failed = defaultFail;
33
-
34
- function createResolve(i) {
35
- return r => {
36
- tasks[i] = r;
37
- remaining -= 1;
38
- if (!remaining && completeQueue !== noop) {
39
- complete = true;
40
- completeQueue(tasks);
41
- }
42
- };
43
- }
44
-
45
- function abort(msg) {
46
- // reset tasks
47
- completeQueue = noop;
48
-
49
- // notify catch
50
- failed(msg);
51
- // return unfinished work
52
- return tasks;
53
- }
54
-
55
- function pop() {
56
- var length = tasks.length;
57
- for (; started < length; started++) {
58
- var task = tasks[started];
59
-
60
- try {
61
- task.call(null, createResolve(started), abort);
62
- } catch (e) {
63
- abort(e);
64
- }
65
- }
66
- }
67
-
68
- var q = {
69
- /**
70
- * Defer a function that may or may not run asynchronously.
71
- *
72
- * First parameter should be the function to execute with subsequent
73
- * parameters being passed as arguments to that function
74
- */
75
- defer(fn) {
76
- if (typeof fn === 'object' && fn.then && fn.catch) {
77
- var defer = fn;
78
- fn = (resolve, reject) => {
79
- defer.then(resolve).catch(reject);
80
- };
81
- }
82
- funcGuard(fn);
83
- if (err !== undefined) {
84
- return;
85
- } else if (complete) {
86
- throw new Error('Queue already completed');
87
- }
88
-
89
- tasks.push(fn);
90
- ++remaining;
91
- pop();
92
- return q;
93
- },
94
-
95
- /**
96
- * The callback to execute once all "deferred" functions have completed. Will only be invoked once.
97
- * @param {Function} f The callback, receives an array of the return/callbacked
98
- * values of each of the "deferred" functions
99
- */
100
- then(fn) {
101
- funcGuard(fn);
102
- if (completeQueue !== noop) {
103
- throw new Error('queue `then` already set');
104
- }
105
- if (!err) {
106
- completeQueue = fn;
107
- if (!remaining) {
108
- complete = true;
109
- completeQueue(tasks);
110
- }
111
- }
112
- return q;
113
- },
114
-
115
- catch: function(fn) {
116
- funcGuard(fn);
117
- if (failed !== defaultFail) {
118
- throw new Error('queue `catch` already set');
119
- }
120
- if (!err) {
121
- failed = fn;
122
- } else {
123
- fn(err);
124
- err = null;
125
- }
126
- return q;
127
- },
128
- /**
129
- * Abort the "queue" and prevent `then` function from firing
130
- * @param {Function} fn The callback to execute; receives an array of the results which have completed
131
- */
132
- abort: abort
133
- };
134
- return q;
135
- }
136
-
137
- export default queue;
@@ -1,108 +0,0 @@
1
- import { v4 as createUuid } from './uuid';
2
- import assert from './assert';
3
- import { setDefaultFrameMessenger } from './frame-messenger';
4
-
5
- let closeHandler;
6
- let postMessage;
7
-
8
- const topicHandlers = {};
9
-
10
- /**
11
- * Post a message to a window who may or may not respond to it.
12
- * @param {Window} win The window to post the message to
13
- * @param {String} topic The topic of the message
14
- * @param {Object} message The message content
15
- * @param {Boolean} keepalive Whether to allow multiple responses - default is false
16
- * @param {Function} replyHandler The function to invoke when/if the message is responded to
17
- */
18
- export default function respondable(
19
- win,
20
- topic,
21
- message,
22
- keepalive,
23
- replyHandler
24
- ) {
25
- const data = {
26
- topic,
27
- message,
28
- channelId: `${createUuid()}:${createUuid()}`,
29
- keepalive
30
- };
31
-
32
- return postMessage(win, data, replyHandler);
33
- }
34
-
35
- /**
36
- * Handle incoming window messages
37
- * @param {Object} data
38
- * @param {Function} responder
39
- */
40
- function messageListener(data, responder) {
41
- const { topic, message, keepalive } = data;
42
- const topicHandler = topicHandlers[topic];
43
- if (!topicHandler) {
44
- return;
45
- }
46
-
47
- try {
48
- topicHandler(message, keepalive, responder);
49
- } catch (error) {
50
- axe.log(error);
51
- responder(error, keepalive);
52
- }
53
- }
54
-
55
- /**
56
- * Update how respondable communicates with iframes.
57
- * @param {Function} frameHandler Object with open, post, and close functions
58
- */
59
- respondable.updateMessenger = function updateMessenger({ open, post }) {
60
- assert(typeof open === 'function', 'open callback must be a function');
61
- assert(typeof post === 'function', 'post callback must be a function');
62
-
63
- if (closeHandler) {
64
- closeHandler();
65
- }
66
-
67
- var close = open(messageListener);
68
-
69
- if (close) {
70
- assert(
71
- typeof close === 'function',
72
- 'open callback must return a cleanup function'
73
- );
74
- closeHandler = close;
75
- } else {
76
- closeHandler = null;
77
- }
78
-
79
- postMessage = post;
80
- };
81
-
82
- /**
83
- * Subscribe to messages sent via the `respondable` module.
84
- *
85
- * Axe._load uses this to listen for messages from other frames
86
- *
87
- * @param {String} topic The topic to listen to
88
- * @param {Function} topicHandler The function to invoke when a message is received
89
- */
90
- respondable.subscribe = function subscribe(topic, topicHandler) {
91
- assert(
92
- typeof topicHandler === 'function',
93
- 'Subscriber callback must be a function'
94
- );
95
- assert(!topicHandlers[topic], `Topic ${topic} is already registered to.`);
96
-
97
- topicHandlers[topic] = topicHandler;
98
- };
99
-
100
- /**
101
- * checks if the current context is inside a frame
102
- * @return {Boolean}
103
- */
104
- respondable.isInFrame = function isInFrame(win = window) {
105
- return !!win.frameElement;
106
- };
107
-
108
- setDefaultFrameMessenger(respondable);
@@ -1,83 +0,0 @@
1
- /**
2
- * Check if a rule matches the value of runOnly type=tag
3
- * @private
4
- * @param {object} rule
5
- * @param {object} runOnly Value of runOnly with type=tags
6
- * @return {bool}
7
- */
8
- function matchTags(rule, runOnly) {
9
- var include, exclude, matching;
10
- var defaultExclude =
11
- // TODO: es-modules_audit
12
- axe._audit && axe._audit.tagExclude ? axe._audit.tagExclude : [];
13
-
14
- // normalize include/exclude
15
- if (runOnly.hasOwnProperty('include') || runOnly.hasOwnProperty('exclude')) {
16
- // Wrap include and exclude if it's not already an array
17
- include = runOnly.include || [];
18
- include = Array.isArray(include) ? include : [include];
19
-
20
- exclude = runOnly.exclude || [];
21
- exclude = Array.isArray(exclude) ? exclude : [exclude];
22
- // add defaults, unless mentioned in include
23
- exclude = exclude.concat(
24
- defaultExclude.filter(tag => {
25
- return include.indexOf(tag) === -1;
26
- })
27
- );
28
-
29
- // Otherwise, only use the include value, ignore exclude
30
- } else {
31
- include = Array.isArray(runOnly) ? runOnly : [runOnly];
32
- // exclude the defaults not included
33
- exclude = defaultExclude.filter(tag => {
34
- return include.indexOf(tag) === -1;
35
- });
36
- }
37
-
38
- matching = include.some(tag => {
39
- return rule.tags.indexOf(tag) !== -1;
40
- });
41
- if (matching || (include.length === 0 && rule.enabled !== false)) {
42
- return exclude.every(tag => {
43
- return rule.tags.indexOf(tag) === -1;
44
- });
45
- } else {
46
- return false;
47
- }
48
- }
49
-
50
- /**
51
- * Determines whether a rule should run
52
- * @param {Rule} rule The rule to test
53
- * @param {Context} context The context of the Audit
54
- * @param {Object} options Options object
55
- * @return {Boolean}
56
- */
57
- function ruleShouldRun(rule, context, options) {
58
- var runOnly = options.runOnly || {};
59
- var ruleOptions = (options.rules || {})[rule.id];
60
-
61
- // Never run page level rules if the context is not on the page
62
- if (rule.pageLevel && !context.page) {
63
- return false;
64
-
65
- // First, runOnly type rule overrides anything else
66
- } else if (runOnly.type === 'rule') {
67
- return runOnly.values.indexOf(rule.id) !== -1;
68
-
69
- // Second, if options.rules[rule].enabled is set, it overrides all
70
- } else if (ruleOptions && typeof ruleOptions.enabled === 'boolean') {
71
- return ruleOptions.enabled;
72
-
73
- // Third, if tags are set, look at those
74
- } else if (runOnly.type === 'tag' && runOnly.values) {
75
- return matchTags(rule, runOnly.values);
76
-
77
- // If nothing is set, only check for default excludes
78
- } else {
79
- return matchTags(rule, []);
80
- }
81
- }
82
-
83
- export default ruleShouldRun;
@@ -1,87 +0,0 @@
1
- import contains from './contains';
2
- import querySelectorAllFilter from './query-selector-all-filter';
3
- import isNodeInContext from './is-node-in-context';
4
-
5
- /**
6
- * Pushes unique nodes that are in context to an array
7
- * @private
8
- * @param {Array} result The array to push to
9
- * @param {Array} nodes The list of nodes to push
10
- * @param {Object} context The "resolved" context object, @see resolveContext
11
- */
12
- function pushNode(result, nodes) {
13
- let temp;
14
-
15
- if (result.length === 0) {
16
- return nodes;
17
- }
18
- if (result.length < nodes.length) {
19
- // switch so the comparison is shortest
20
- temp = result;
21
- result = nodes;
22
- nodes = temp;
23
- }
24
- for (let i = 0, l = nodes.length; i < l; i++) {
25
- if (!result.includes(nodes[i])) {
26
- result.push(nodes[i]);
27
- }
28
- }
29
- return result;
30
- }
31
-
32
- /**
33
- * reduces the includes list to only the outermost includes
34
- * @param {Array} the array of include nodes
35
- * @return {Array} the modified array of nodes
36
- */
37
- function reduceIncludes(includes) {
38
- return includes.reduce((res, el) => {
39
- if (!res.length || !contains(res[res.length - 1], el)) {
40
- res.push(el);
41
- }
42
- return res;
43
- }, []);
44
- }
45
-
46
- /**
47
- * Selects elements which match `selector` that are included and excluded via the `Context` object
48
- * @param {String} selector CSS selector of the HTMLElements to select
49
- * @param {Context} context The "resolved" context object, @see Context
50
- * @return {Array} Matching virtual DOM nodes sorted by DOM order
51
- */
52
- function select(selector, context) {
53
- let result = [];
54
- let candidate;
55
- if (axe._selectCache) {
56
- // if used outside of run, it will still work
57
- for (let j = 0, l = axe._selectCache.length; j < l; j++) {
58
- // First see whether the item exists in the cache
59
- const item = axe._selectCache[j];
60
- if (item.selector === selector) {
61
- return item.result;
62
- }
63
- }
64
- }
65
- const curried = (context => {
66
- return node => {
67
- return isNodeInContext(node, context);
68
- };
69
- })(context);
70
- const reducedIncludes = reduceIncludes(context.include);
71
- for (let i = 0; i < reducedIncludes.length; i++) {
72
- candidate = reducedIncludes[i];
73
- result = pushNode(
74
- result,
75
- querySelectorAllFilter(candidate, selector, curried)
76
- );
77
- }
78
- if (axe._selectCache) {
79
- axe._selectCache.push({
80
- selector: selector,
81
- result: result
82
- });
83
- }
84
- return result;
85
- }
86
-
87
- export default select;
@@ -1,65 +0,0 @@
1
- import getSelector from './get-selector';
2
- import respondable from './respondable';
3
- import log from '../log';
4
-
5
- function err(message, node) {
6
- var selector;
7
- // TODO: es-modules_tree
8
- if (axe._tree) {
9
- selector = getSelector(node);
10
- }
11
- return new Error(message + ': ' + (selector || node));
12
- }
13
-
14
- /**
15
- * Sends a command to an instance of axe in the specified frame
16
- * @param {Element} node The frame element to send the message to
17
- * @param {Object} parameters Parameters to pass to the frame
18
- * @param {Function} callback Function to call when results from the frame has returned
19
- */
20
- function sendCommandToFrame(node, parameters, resolve, reject) {
21
- var win = node.contentWindow;
22
- if (!win) {
23
- log('Frame does not have a content window', node);
24
- resolve(null);
25
- return;
26
- }
27
-
28
- // give the frame .5s to respond to 'axe.ping', else log failed response
29
- var timeout = setTimeout(() => {
30
- // This double timeout is important for allowing iframes to respond
31
- // DO NOT REMOVE
32
- timeout = setTimeout(() => {
33
- if (!parameters.debug) {
34
- resolve(null);
35
- } else {
36
- reject(err('No response from frame', node));
37
- }
38
- }, 0);
39
- }, parameters.options?.pingWaitTime ?? 500);
40
-
41
- // send 'axe.ping' to the frame
42
- respondable(win, 'axe.ping', null, undefined, () => {
43
- clearTimeout(timeout);
44
-
45
- // Give axe 60s (or user-supplied value) to respond to 'axe.start'
46
- var frameWaitTime =
47
- (parameters.options && parameters.options.frameWaitTime) || 60000;
48
-
49
- timeout = setTimeout(function collectResultFramesTimeout() {
50
- reject(err('Axe in frame timed out', node));
51
- }, frameWaitTime);
52
-
53
- // send 'axe.start' and send the callback if it responded
54
- respondable(win, 'axe.start', parameters, undefined, data => {
55
- clearTimeout(timeout);
56
- if (data instanceof Error === false) {
57
- resolve(data);
58
- } else {
59
- reject(data);
60
- }
61
- });
62
- });
63
- }
64
-
65
- export default sendCommandToFrame;
@@ -1,21 +0,0 @@
1
- /**
2
- * set the scroll position of an element
3
- */
4
- function setScroll(elm, top, left) {
5
- if (elm === window) {
6
- return elm.scroll(left, top);
7
- } else {
8
- elm.scrollTop = top;
9
- elm.scrollLeft = left;
10
- }
11
- }
12
-
13
- /**
14
- * set the scroll position of all items in the scrollState array
15
- * @deprecated
16
- */
17
- export function setScrollState(scrollState) {
18
- scrollState.forEach(({ elm, top, left }) => setScroll(elm, top, left));
19
- }
20
-
21
- export default setScrollState;
@@ -1,10 +0,0 @@
1
- /**
2
- * Converts array-like (numerical indicies and `length` property) structures to actual, real arrays
3
- * @param {Mixed} thing Array-like thing to convert
4
- * @return {Array}
5
- */
6
- function toArray(thing) {
7
- return Array.prototype.slice.call(thing);
8
- }
9
-
10
- export default toArray;
@@ -1,15 +0,0 @@
1
- /**
2
- * Converts space delimited token list to an Array
3
- * @method tokenList
4
- * @memberof axe.utils
5
- * @param {String} str
6
- * @return {Array}
7
- */
8
- function tokenList(str) {
9
- return (str || '')
10
- .trim()
11
- .replace(/\s{2,}/g, ' ')
12
- .split(' ');
13
- }
14
-
15
- export default tokenList;
@@ -1,13 +0,0 @@
1
- /**
2
- * Creates an array without duplicate values from 2 array inputs
3
- * @param {Array} arr1 First array
4
- * @param {Array} arr2 Second array
5
- * @return {Array}
6
- */
7
- function uniqueArray(arr1, arr2) {
8
- return arr1.concat(arr2).filter((elem, pos, arr) => {
9
- return arr.indexOf(elem) === pos;
10
- });
11
- }
12
-
13
- export default uniqueArray;