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,134 +0,0 @@
1
- import { hasReporter } from './reporter';
2
- import { configureStandards } from '../../standards';
3
- import constants from '../constants';
4
-
5
- function configure(spec) {
6
- var audit;
7
-
8
- audit = axe._audit;
9
- if (!audit) {
10
- throw new Error('No audit configured');
11
- }
12
-
13
- if (spec.axeVersion || spec.ver) {
14
- const specVersion = spec.axeVersion || spec.ver;
15
- if (!/^\d+\.\d+\.\d+(-canary)?/.test(specVersion)) {
16
- throw new Error(`Invalid configured version ${specVersion}`);
17
- }
18
-
19
- const [version, canary] = specVersion.split('-');
20
- const [major, minor, patch] = version.split('.').map(Number);
21
-
22
- const [axeVersion, axeCanary] = axe.version.split('-');
23
- const [axeMajor, axeMinor, axePatch] = axeVersion.split('.').map(Number);
24
-
25
- if (
26
- major !== axeMajor ||
27
- axeMinor < minor ||
28
- (axeMinor === minor && axePatch < patch) ||
29
- (major === axeMajor &&
30
- minor === axeMinor &&
31
- patch === axePatch &&
32
- canary &&
33
- canary !== axeCanary)
34
- ) {
35
- throw new Error(
36
- `Configured version ${specVersion} is not compatible with current axe version ${axe.version}`
37
- );
38
- }
39
- }
40
-
41
- if (
42
- spec.reporter &&
43
- (typeof spec.reporter === 'function' || hasReporter(spec.reporter))
44
- ) {
45
- audit.reporter = spec.reporter;
46
- }
47
-
48
- if (spec.checks) {
49
- if (!Array.isArray(spec.checks)) {
50
- throw new TypeError('Checks property must be an array');
51
- }
52
-
53
- spec.checks.forEach(check => {
54
- if (!check.id) {
55
- throw new TypeError(
56
- // eslint-disable-next-line max-len
57
- `Configured check ${JSON.stringify(
58
- check
59
- )} is invalid. Checks must be an object with at least an id property`
60
- );
61
- }
62
-
63
- audit.addCheck(check);
64
- });
65
- }
66
-
67
- const modifiedRules = [];
68
- if (spec.rules) {
69
- if (!Array.isArray(spec.rules)) {
70
- throw new TypeError('Rules property must be an array');
71
- }
72
-
73
- spec.rules.forEach(rule => {
74
- if (!rule.id) {
75
- throw new TypeError(
76
- // eslint-disable-next-line max-len
77
- `Configured rule ${JSON.stringify(
78
- rule
79
- )} is invalid. Rules must be an object with at least an id property`
80
- );
81
- }
82
-
83
- modifiedRules.push(rule.id);
84
- audit.addRule(rule);
85
- });
86
- }
87
-
88
- if (spec.disableOtherRules) {
89
- audit.rules.forEach(rule => {
90
- if (modifiedRules.includes(rule.id) === false) {
91
- rule.enabled = false;
92
- }
93
- });
94
- }
95
-
96
- if (typeof spec.branding !== 'undefined') {
97
- audit.setBranding(spec.branding);
98
- } else {
99
- audit._constructHelpUrls();
100
- }
101
-
102
- if (spec.tagExclude) {
103
- audit.tagExclude = spec.tagExclude;
104
- }
105
-
106
- // Support runtime localization
107
- if (spec.locale) {
108
- audit.applyLocale(spec.locale);
109
- }
110
-
111
- if (spec.standards) {
112
- configureStandards(spec.standards);
113
- }
114
-
115
- if (spec.noHtml) {
116
- audit.noHtml = true;
117
- }
118
-
119
- if (spec.allowedOrigins) {
120
- if (!Array.isArray(spec.allowedOrigins)) {
121
- throw new TypeError('Allowed origins property must be an array');
122
- }
123
-
124
- if (spec.allowedOrigins.includes('*')) {
125
- throw new Error(
126
- `"*" is not allowed. Use "${constants.allOrigins}" instead`
127
- );
128
- }
129
-
130
- audit.setAllowedOrigins(spec.allowedOrigins);
131
- }
132
- }
133
-
134
- export default configure;
@@ -1,5 +0,0 @@
1
- import { respondable } from '../utils';
2
-
3
- export default function frameMessenger(frameHandler) {
4
- respondable.updateMessenger(frameHandler);
5
- }
@@ -1,29 +0,0 @@
1
- /**
2
- * Searches and returns rules that contain a tag in the list of tags.
3
- * @param {Array} tags Optional array of tags
4
- * @return {Array} Array of rules
5
- */
6
- function getRules(tags) {
7
- tags = tags || [];
8
- var matchingRules = !tags.length
9
- ? axe._audit.rules
10
- : axe._audit.rules.filter(item => {
11
- return !!tags.filter(tag => {
12
- return item.tags.indexOf(tag) !== -1;
13
- }).length;
14
- });
15
-
16
- var ruleData = axe._audit.data.rules || {};
17
- return matchingRules.map(matchingRule => {
18
- var rd = ruleData[matchingRule.id] || {};
19
- return {
20
- ruleId: matchingRule.id,
21
- description: rd.description,
22
- help: rd.help,
23
- helpUrl: rd.helpUrl,
24
- tags: matchingRule.tags
25
- };
26
- });
27
- }
28
-
29
- export default getRules;
@@ -1,65 +0,0 @@
1
- import Audit from '../base/audit';
2
- import cleanup from './cleanup';
3
- import runRules from './run-rules';
4
- import respondable from '../utils/respondable';
5
-
6
- function runCommand(data, keepalive, callback) {
7
- var resolve = callback;
8
- var reject = function reject(err) {
9
- if (err instanceof Error === false) {
10
- err = new Error(err);
11
- }
12
- callback(err);
13
- };
14
-
15
- var context = (data && data.context) || {};
16
- if (context.hasOwnProperty('include') && !context.include.length) {
17
- context.include = [document];
18
- }
19
- var options = (data && data.options) || {};
20
-
21
- switch (data.command) {
22
- case 'rules':
23
- return runRules(
24
- context,
25
- options,
26
- (results, cleanup) => {
27
- resolve(results);
28
- // Cleanup AFTER resolve so that selectors can be generated
29
- cleanup();
30
- },
31
- reject
32
- );
33
- case 'cleanup-plugin':
34
- return cleanup(resolve, reject);
35
- default:
36
- // go through the registered commands
37
- if (
38
- axe._audit &&
39
- axe._audit.commands &&
40
- axe._audit.commands[data.command]
41
- ) {
42
- return axe._audit.commands[data.command](data, callback);
43
- }
44
- }
45
- }
46
-
47
- if (window.top !== window) {
48
- respondable.subscribe('axe.start', runCommand);
49
- respondable.subscribe('axe.ping', (data, keepalive, respond) => {
50
- respond({
51
- axe: true
52
- });
53
- });
54
- }
55
-
56
- /**
57
- * Sets up Rules, Messages and default options for Checks, must be invoked before attempting analysis
58
- * @param {Object} audit The "audit specification" object
59
- * @private
60
- */
61
- function load(audit) {
62
- axe._audit = new Audit(audit);
63
- }
64
-
65
- export default load;
@@ -1,39 +0,0 @@
1
- /*eslint no-use-before-define:0 */
2
-
3
- function Plugin(spec) {
4
- this._run = spec.run;
5
- this._collect = spec.collect;
6
- this._registry = {};
7
- spec.commands.forEach(command => {
8
- axe._audit.registerCommand(command);
9
- });
10
- }
11
-
12
- Plugin.prototype.run = function run() {
13
- return this._run.apply(this, arguments);
14
- };
15
-
16
- Plugin.prototype.collect = function collect() {
17
- return this._collect.apply(this, arguments);
18
- };
19
-
20
- Plugin.prototype.cleanup = function cleanup(done) {
21
- var q = axe.utils.queue();
22
- var that = this;
23
- Object.keys(this._registry).forEach(key => {
24
- q.defer(_done => {
25
- that._registry[key].cleanup(_done);
26
- });
27
- });
28
- q.then(done);
29
- };
30
-
31
- Plugin.prototype.add = function add(impl) {
32
- this._registry[impl.id] = impl;
33
- };
34
-
35
- function registerPlugin(plugin) {
36
- axe.plugins[plugin.id] = new Plugin(plugin);
37
- }
38
-
39
- export default registerPlugin;
@@ -1,25 +0,0 @@
1
- const reporters = {};
2
- let defaultReporter;
3
-
4
- export function hasReporter(reporterName) {
5
- return reporters.hasOwnProperty(reporterName);
6
- }
7
-
8
- export function getReporter(reporter) {
9
- if (typeof reporter === 'string' && reporters[reporter]) {
10
- return reporters[reporter];
11
- }
12
-
13
- if (typeof reporter === 'function') {
14
- return reporter;
15
- }
16
-
17
- return defaultReporter;
18
- }
19
-
20
- export function addReporter(name, cb, isDefault) {
21
- reporters[name] = cb;
22
- if (isDefault) {
23
- defaultReporter = cb;
24
- }
25
- }
@@ -1,13 +0,0 @@
1
- import { resetStandards } from '../../standards';
2
-
3
- function reset() {
4
- var audit = axe._audit;
5
-
6
- if (!audit) {
7
- throw new Error('No audit configured');
8
- }
9
- audit.resetRulesAndChecks();
10
- resetStandards();
11
- }
12
-
13
- export default reset;
@@ -1,83 +0,0 @@
1
- import Context from '../base/context';
2
- import teardown from './teardown';
3
- import {
4
- getSelectorData,
5
- queue,
6
- performanceTimer,
7
- collectResultsFromFrames,
8
- mergeResults,
9
- publishMetaData,
10
- finalizeRuleResult
11
- } from '../utils';
12
- import log from '../log';
13
-
14
- /**
15
- * Starts analysis on the current document and its subframes
16
- * @private
17
- * @param {Object} context The `Context` specification object @see Context
18
- * @param {Array} options Optional RuleOptions
19
- * @param {Function} resolve Called when done running rules, receives ([results : Object], teardown : Function)
20
- * @param {Function} reject Called when execution failed, receives (err : Error)
21
- */
22
- function runRules(context, options, resolve, reject) {
23
- try {
24
- context = new Context(context);
25
- axe._tree = context.flatTree;
26
- axe._selectorData = getSelectorData(context.flatTree);
27
- } catch (e) {
28
- teardown();
29
- return reject(e);
30
- }
31
-
32
- var q = queue();
33
- var audit = axe._audit;
34
-
35
- if (options.performanceTimer) {
36
- performanceTimer.auditStart();
37
- }
38
-
39
- if (context.frames.length && options.iframes !== false) {
40
- q.defer((res, rej) => {
41
- collectResultsFromFrames(context, options, 'rules', null, res, rej);
42
- });
43
- }
44
- q.defer((res, rej) => {
45
- audit.run(context, options, res, rej);
46
- });
47
- q.then(data => {
48
- try {
49
- if (options.performanceTimer) {
50
- performanceTimer.auditEnd();
51
- }
52
-
53
- // Add wrapper object so that we may use the same "merge" function for results from inside and outside frames
54
- var results = mergeResults(
55
- data.map(results => {
56
- return { results };
57
- })
58
- );
59
-
60
- // after should only run once, so ensure we are in the top level window
61
- if (context.initiator) {
62
- results = audit.after(results, options);
63
-
64
- results.forEach(publishMetaData);
65
- results = results.map(finalizeRuleResult);
66
- }
67
- try {
68
- resolve(results, teardown);
69
- } catch (e) {
70
- teardown();
71
- log(e);
72
- }
73
- } catch (e) {
74
- teardown();
75
- reject(e);
76
- }
77
- }).catch(e => {
78
- teardown();
79
- reject(e);
80
- });
81
- }
82
-
83
- export default runRules;
@@ -1,63 +0,0 @@
1
- import SerialVirtualNode from '../base/virtual-node/serial-virtual-node';
2
- import AbstractVirtualNode from '../base/virtual-node/abstract-virtual-node';
3
- import * as helpers from '../reporters/helpers';
4
- import {
5
- publishMetaData,
6
- finalizeRuleResult,
7
- aggregateResult,
8
- getRule
9
- } from '../utils';
10
-
11
- /**
12
- * Run a rule in a non-browser environment
13
- * @param {String} ruleId Id of the rule
14
- * @param {VirtualNode} vNode The virtual node to run the rule against
15
- * @param {Object} options (optional) Set of options passed into rules or checks
16
- * @return {Object} axe results for the rule run
17
- */
18
- function runVirtualRule(ruleId, vNode, options = {}) {
19
- // TODO: es-modules axe._audit
20
- // TODO: es-modules axe._selectorData
21
- options.reporter = options.reporter || axe._audit.reporter || 'v1';
22
- axe._selectorData = {};
23
-
24
- if (!(vNode instanceof AbstractVirtualNode)) {
25
- vNode = new SerialVirtualNode(vNode);
26
- }
27
-
28
- let rule = getRule(ruleId);
29
-
30
- if (!rule) {
31
- throw new Error('unknown rule `' + ruleId + '`');
32
- }
33
-
34
- // rule.prototype.gather calls axe.utils.isHidden which in turn calls
35
- // window.getComputedStyle if the rule excludes hidden elements. we
36
- // can avoid this call by forcing the rule to not exclude hidden
37
- // elements
38
- rule = Object.create(rule, { excludeHidden: { value: false } });
39
-
40
- const context = {
41
- initiator: true,
42
- include: [vNode]
43
- };
44
-
45
- const rawResults = rule.runSync(context, options);
46
- publishMetaData(rawResults);
47
- finalizeRuleResult(rawResults);
48
- const results = aggregateResult([rawResults]);
49
-
50
- results.violations.forEach(result =>
51
- result.nodes.forEach(nodeResult => {
52
- nodeResult.failureSummary = helpers.failureSummary(nodeResult);
53
- })
54
- );
55
-
56
- return {
57
- ...helpers.getEnvironmentData(),
58
- ...results,
59
- toolOptions: options
60
- };
61
- }
62
-
63
- export default runVirtualRule;
@@ -1,186 +0,0 @@
1
- import { getReporter } from './reporter';
2
- import cache from '../base/cache';
3
-
4
- function isContext(potential) {
5
- switch (true) {
6
- case typeof potential === 'string':
7
- case Array.isArray(potential):
8
- case window.Node && potential instanceof window.Node:
9
- case window.NodeList && potential instanceof window.NodeList:
10
- return true;
11
-
12
- case typeof potential !== 'object':
13
- return false;
14
-
15
- case potential.include !== undefined:
16
- case potential.exclude !== undefined:
17
- case typeof potential.length === 'number':
18
- return true;
19
-
20
- default:
21
- return false;
22
- }
23
- }
24
-
25
- var noop = function noop() {};
26
-
27
- /**
28
- * Normalize the optional params of axe.run()
29
- * @param {object} context
30
- * @param {object} options
31
- * @param {Function} callback
32
- * @return {object} With 3 keys: context, options, callback
33
- */
34
- function normalizeRunParams(context, options, callback) {
35
- const typeErr = new TypeError('axe.run arguments are invalid');
36
-
37
- // Determine the context
38
- if (!isContext(context)) {
39
- if (callback !== undefined) {
40
- // Either context is invalid or there are too many params
41
- throw typeErr;
42
- }
43
- // Set default and shift one over
44
- callback = options;
45
- options = context;
46
- context = document;
47
- }
48
-
49
- // Determine the options
50
- if (typeof options !== 'object') {
51
- if (callback !== undefined) {
52
- // Either options is invalid or there are too many params
53
- throw typeErr;
54
- }
55
- // Set default and shift one over
56
- callback = options;
57
- options = {};
58
- }
59
-
60
- // Set the callback or noop;
61
- if (typeof callback !== 'function' && callback !== undefined) {
62
- throw typeErr;
63
- }
64
-
65
- return {
66
- context: context,
67
- options: options,
68
- callback: callback || noop
69
- };
70
- }
71
-
72
- /**
73
- * Runs a number of rules against the provided HTML page and returns the
74
- * resulting issue list
75
- *
76
- * @param {Object} context (optional) Defines the scope of the analysis
77
- * @param {Object} options (optional) Set of options passed into rules or checks
78
- * @param {Function} callback (optional) The callback when axe is done, given 2 params:
79
- * - Error If any errors occured, otherwise null
80
- * - Results The results object / array, or undefined on error
81
- * @return {Promise} Resolves with the axe results. Only available when natively supported
82
- */
83
- function run(context, options, callback) {
84
- if (!axe._audit) {
85
- throw new Error('No audit configured');
86
- }
87
-
88
- // if window or document are not defined and context was passed in
89
- // we can use it to configure them
90
- // NOTE: because our polyfills run first, the global window object
91
- // always exists but may not have things we expect
92
- const hasWindow = window && 'Node' in window && 'NodeList' in window;
93
- const hasDoc = !!document;
94
- if (!hasWindow || !hasDoc) {
95
- if (!context || !context.ownerDocument) {
96
- throw new Error(
97
- 'Required "window" or "document" globals not defined and cannot be deduced from the context. ' +
98
- 'Either set the globals before running or pass in a valid Element.'
99
- );
100
- }
101
-
102
- if (!hasDoc) {
103
- cache.set('globalDocumentSet', true);
104
- document = context.ownerDocument;
105
- }
106
-
107
- if (!hasWindow) {
108
- cache.set('globalWindowSet', true);
109
- window = document.defaultView;
110
- }
111
- }
112
-
113
- const args = normalizeRunParams(context, options, callback);
114
- context = args.context;
115
- options = args.options;
116
- callback = args.callback;
117
-
118
- // set defaults:
119
- options.reporter = options.reporter || axe._audit.reporter || 'v1';
120
-
121
- if (options.performanceTimer) {
122
- axe.utils.performanceTimer.start();
123
- }
124
- let p;
125
- let reject = noop;
126
- let resolve = noop;
127
-
128
- if (typeof Promise === 'function' && callback === noop) {
129
- p = new Promise((_resolve, _reject) => {
130
- reject = _reject;
131
- resolve = _resolve;
132
- });
133
- }
134
-
135
- if (axe._running) {
136
- const err =
137
- 'Axe is already running. Use `await axe.run()` to wait ' +
138
- 'for the previous run to finish before starting a new run.';
139
- callback(err);
140
- reject(err);
141
- return p;
142
- }
143
-
144
- axe._running = true;
145
- axe._runRules(
146
- context,
147
- options,
148
- (rawResults, cleanup) => {
149
- const respond = results => {
150
- axe._running = false;
151
- cleanup();
152
- try {
153
- callback(null, results);
154
- } catch (e) {
155
- axe.log(e);
156
- }
157
- resolve(results);
158
- };
159
- if (options.performanceTimer) {
160
- axe.utils.performanceTimer.end();
161
- }
162
-
163
- try {
164
- const reporter = getReporter(options.reporter);
165
- const results = reporter(rawResults, options, respond);
166
- if (results !== undefined) {
167
- respond(results);
168
- }
169
- } catch (err) {
170
- axe._running = false;
171
- cleanup();
172
- callback(err);
173
- reject(err);
174
- }
175
- },
176
- err => {
177
- axe._running = false;
178
- callback(err);
179
- reject(err);
180
- }
181
- );
182
-
183
- return p;
184
- }
185
-
186
- export default run;
@@ -1,20 +0,0 @@
1
- import { getFlattenedTree, getSelectorData } from '../utils';
2
-
3
- /**
4
- * Setup axe-core so axe.common functions can work properly.
5
- * @param {Node} [node=document.documentElement] optional node. NOTE: passing in anything other than body or the documentElement may result in incomplete results.
6
- */
7
- function setup(node) {
8
- if (axe._tree) {
9
- throw new Error(
10
- 'Axe is already setup. Call `axe.teardown()` before calling `axe.setup` again.'
11
- );
12
- }
13
-
14
- axe._tree = getFlattenedTree(node);
15
- axe._selectorData = getSelectorData(axe._tree);
16
-
17
- return axe._tree[0];
18
- }
19
-
20
- export default setup;
@@ -1,21 +0,0 @@
1
- import cache from '../base/cache';
2
-
3
- /**
4
- * Clean up axe-core tree and caches. `axe.run` will call this function at the end of the run so there's no need to call it yourself afterwards.
5
- */
6
- function teardown() {
7
- if (cache.get('globalDocumentSet')) {
8
- document = null;
9
- }
10
- if (cache.get('globalWindowSet')) {
11
- window = null;
12
- }
13
-
14
- axe._memoizedFns.forEach(fn => fn.clear());
15
- cache.clear();
16
- axe._tree = undefined;
17
- axe._selectorData = undefined;
18
- axe._selectCache = undefined;
19
- }
20
-
21
- export default teardown;