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,117 +0,0 @@
1
- import AbstractVirtualNode from './abstract-virtual-node';
2
- import { assert, validInputTypes } from '../../utils';
3
-
4
- class SerialVirtualNode extends AbstractVirtualNode {
5
- /**
6
- * Convert a serialised node into a VirtualNode object
7
- * @param {Object} node Serialised node
8
- */
9
- constructor(serialNode) {
10
- super();
11
- this._props = normaliseProps(serialNode);
12
- this._attrs = normaliseAttrs(serialNode);
13
- }
14
-
15
- // Accessof for DOM node properties
16
- get props() {
17
- return this._props;
18
- }
19
-
20
- /**
21
- * Get the value of the given attribute name.
22
- * @param {String} attrName The name of the attribute.
23
- * @return {String|null} The value of the attribute or null if the attribute does not exist
24
- */
25
- attr(attrName) {
26
- return this._attrs[attrName] || null;
27
- }
28
-
29
- /**
30
- * Determine if the element has the given attribute.
31
- * @param {String} attrName The name of the attribute
32
- * @return {Boolean} True if the element has the attribute, false otherwise.
33
- */
34
- hasAttr(attrName) {
35
- return this._attrs[attrName] !== undefined;
36
- }
37
-
38
- /**
39
- * Return a list of attribute names for the element.
40
- * @return {String[]}
41
- */
42
- get attrNames() {
43
- return Object.keys(this._attrs);
44
- }
45
- }
46
-
47
- /**
48
- * Convert between serialised props and DOM-like properties
49
- * @param {Object} serialNode
50
- * @return {Object} normalProperties
51
- */
52
- function normaliseProps(serialNode) {
53
- let { nodeName } = serialNode;
54
- const { nodeType = 1 } = serialNode;
55
- assert(
56
- typeof nodeType === 'number',
57
- `nodeType has to be a number, got '${nodeType}'`
58
- );
59
- assert(
60
- typeof nodeName === 'string',
61
- `nodeName has to be a string, got '${nodeName}'`
62
- );
63
-
64
- nodeName = nodeName.toLowerCase();
65
- let type = null;
66
- if (nodeName === 'input') {
67
- type = (
68
- serialNode.type ||
69
- (serialNode.attributes && serialNode.attributes.type) ||
70
- ''
71
- ).toLowerCase();
72
-
73
- if (!validInputTypes().includes(type)) {
74
- type = 'text';
75
- }
76
- }
77
-
78
- const props = {
79
- ...serialNode,
80
- nodeType,
81
- nodeName
82
- };
83
- if (type) {
84
- props.type = type;
85
- }
86
-
87
- delete props.attributes;
88
- return Object.freeze(props);
89
- }
90
-
91
- /**
92
- * Convert between serialised attributes and DOM-like attributes
93
- * @param {Object} serialNode
94
- * @return {Object} normalAttributes
95
- */
96
- function normaliseAttrs({ attributes = {} }) {
97
- const attrMap = {
98
- htmlFor: 'for',
99
- className: 'class'
100
- };
101
-
102
- return Object.keys(attributes).reduce((attrs, attrName) => {
103
- const value = attributes[attrName];
104
- assert(
105
- typeof value !== 'object' || value === null,
106
- `expects attributes not to be an object, '${attrName}' was`
107
- );
108
-
109
- if (value !== undefined) {
110
- const mappedName = attrMap[attrName] || attrName;
111
- attrs[mappedName] = value !== null ? String(value) : null;
112
- }
113
- return attrs;
114
- }, {});
115
- }
116
-
117
- export default SerialVirtualNode;
@@ -1,194 +0,0 @@
1
- import AbstractVirtualNode from './abstract-virtual-node';
2
- import { isXHTML, validInputTypes } from '../../utils';
3
- import { isFocusable, getTabbableElements } from '../../../commons/dom';
4
- import cache from '../cache';
5
-
6
- let isXHTMLGlobal;
7
- let nodeIndex = 0;
8
-
9
- class VirtualNode extends AbstractVirtualNode {
10
- /**
11
- * Wrap the real node and provide list of the flattened children
12
- * @param {Node} node the node in question
13
- * @param {VirtualNode} parent The parent VirtualNode
14
- * @param {String} shadowId the ID of the shadow DOM to which this node belongs
15
- */
16
- constructor(node, parent, shadowId) {
17
- super();
18
- this.shadowId = shadowId;
19
- this.children = [];
20
- this.actualNode = node;
21
- this.parent = parent;
22
-
23
- if (!parent) {
24
- nodeIndex = 0;
25
- }
26
- this.nodeIndex = nodeIndex++;
27
-
28
- this._isHidden = null; // will be populated by axe.utils.isHidden
29
- this._cache = {};
30
-
31
- if (typeof isXHTMLGlobal === 'undefined') {
32
- isXHTMLGlobal = isXHTML(node.ownerDocument);
33
- }
34
- this._isXHTML = isXHTMLGlobal;
35
-
36
- // we will normalize the type prop for inputs by looking strictly
37
- // at the attribute and not what the browser resolves the type
38
- // to be
39
- if (node.nodeName.toLowerCase() === 'input') {
40
- let type = node.getAttribute('type');
41
- type = this._isXHTML ? type : (type || '').toLowerCase();
42
-
43
- if (!validInputTypes().includes(type)) {
44
- type = 'text';
45
- }
46
-
47
- this._type = type;
48
- }
49
-
50
- if (cache.get('nodeMap')) {
51
- cache.get('nodeMap').set(node, this);
52
- }
53
- }
54
-
55
- // abstract Node properties so we can run axe in DOM-less environments.
56
- // add to the prototype so memory is shared across all virtual nodes
57
- get props() {
58
- const {
59
- nodeType,
60
- nodeName,
61
- id,
62
- multiple,
63
- nodeValue,
64
- value
65
- } = this.actualNode;
66
-
67
- return {
68
- nodeType,
69
- nodeName: this._isXHTML ? nodeName : nodeName.toLowerCase(),
70
- id,
71
- type: this._type,
72
- multiple,
73
- nodeValue,
74
- value
75
- };
76
- }
77
-
78
- /**
79
- * Get the value of the given attribute name.
80
- * @param {String} attrName The name of the attribute.
81
- * @return {String|null} The value of the attribute or null if the attribute does not exist
82
- */
83
- attr(attrName) {
84
- if (typeof this.actualNode.getAttribute !== 'function') {
85
- return null;
86
- }
87
-
88
- return this.actualNode.getAttribute(attrName);
89
- }
90
-
91
- /**
92
- * Determine if the element has the given attribute.
93
- * @param {String} attrName The name of the attribute
94
- * @return {Boolean} True if the element has the attribute, false otherwise.
95
- */
96
- hasAttr(attrName) {
97
- if (typeof this.actualNode.hasAttribute !== 'function') {
98
- return false;
99
- }
100
-
101
- return this.actualNode.hasAttribute(attrName);
102
- }
103
-
104
- /**
105
- * Return a list of attribute names for the element.
106
- * @return {String[]}
107
- */
108
- get attrNames() {
109
- if (!this._cache.hasOwnProperty('attrNames')) {
110
- let attrs;
111
-
112
- // eslint-disable-next-line no-restricted-syntax
113
- if (this.actualNode.attributes instanceof window.NamedNodeMap) {
114
- // eslint-disable-next-line no-restricted-syntax
115
- attrs = this.actualNode.attributes;
116
- }
117
- // if the attributes property is not of type NamedNodeMap
118
- // then the DOM has been clobbered. E.g. <form><input name="attributes"></form>.
119
- // We can clone the node to isolate it and then return
120
- // the attributes
121
- else {
122
- attrs = this.actualNode.cloneNode(false).attributes;
123
- }
124
-
125
- this._cache.attrNames = Array.from(attrs).map(attr => attr.name);
126
- }
127
- return this._cache.attrNames;
128
- }
129
-
130
- /**
131
- * Return a property of the computed style for this element and cache the result. This is much faster than called `getPropteryValue` every time.
132
- * @see https://jsperf.com/get-property-value
133
- * @return {String}
134
- */
135
- getComputedStylePropertyValue(property) {
136
- const key = 'computedStyle_' + property;
137
- if (!this._cache.hasOwnProperty(key)) {
138
- if (!this._cache.hasOwnProperty('computedStyle')) {
139
- this._cache.computedStyle = window.getComputedStyle(this.actualNode);
140
- }
141
-
142
- this._cache[key] = this._cache.computedStyle.getPropertyValue(property);
143
- }
144
- return this._cache[key];
145
- }
146
-
147
- /**
148
- * Determine if the element is focusable and cache the result.
149
- * @return {Boolean} True if the element is focusable, false otherwise.
150
- */
151
- get isFocusable() {
152
- if (!this._cache.hasOwnProperty('isFocusable')) {
153
- this._cache.isFocusable = isFocusable(this.actualNode);
154
- }
155
- return this._cache.isFocusable;
156
- }
157
-
158
- /**
159
- * Return the list of tabbable elements for this element and cache the result.
160
- * @return {VirtualNode[]}
161
- */
162
- get tabbableElements() {
163
- if (!this._cache.hasOwnProperty('tabbableElements')) {
164
- this._cache.tabbableElements = getTabbableElements(this);
165
- }
166
- return this._cache.tabbableElements;
167
- }
168
-
169
- /**
170
- * Return the client rects for this element and cache the result.
171
- * @return {DOMRect[]}
172
- */
173
- get clientRects() {
174
- if (!this._cache.hasOwnProperty('clientRects')) {
175
- this._cache.clientRects = Array.from(
176
- this.actualNode.getClientRects()
177
- ).filter(rect => rect.width > 0);
178
- }
179
- return this._cache.clientRects;
180
- }
181
-
182
- /**
183
- * Return the bounding rect for this element and cache the result.
184
- * @return {DOMRect}
185
- */
186
- get boundingClientRect() {
187
- if (!this._cache.hasOwnProperty('boundingClientRect')) {
188
- this._cache.boundingClientRect = this.actualNode.getBoundingClientRect();
189
- }
190
- return this._cache.boundingClientRect;
191
- }
192
- }
193
-
194
- export default VirtualNode;
@@ -1,70 +0,0 @@
1
- const definitions = [
2
- {
3
- name: 'NA',
4
- value: 'inapplicable',
5
- priority: 0,
6
- group: 'inapplicable'
7
- },
8
- {
9
- name: 'PASS',
10
- value: 'passed',
11
- priority: 1,
12
- group: 'passes'
13
- },
14
- {
15
- name: 'CANTTELL',
16
- value: 'cantTell',
17
- priority: 2,
18
- group: 'incomplete'
19
- },
20
- {
21
- name: 'FAIL',
22
- value: 'failed',
23
- priority: 3,
24
- group: 'violations'
25
- }
26
- ];
27
-
28
- const constants = {
29
- helpUrlBase: 'https://dequeuniversity.com/rules/',
30
- results: [],
31
- resultGroups: [],
32
- resultGroupMap: {},
33
- impact: Object.freeze(['minor', 'moderate', 'serious', 'critical']),
34
- preload: Object.freeze({
35
- /**
36
- * array of supported & preload(able) asset types.
37
- */
38
- assets: ['cssom', 'media'],
39
- /**
40
- * timeout value when resolving preload(able) assets
41
- */
42
- timeout: 10000
43
- }),
44
- allOrigins: '<unsafe_all_origins>',
45
- sameOrigin: '<same_origin>'
46
- };
47
-
48
- definitions.forEach(definition => {
49
- const name = definition.name;
50
- const value = definition.value;
51
- const priority = definition.priority;
52
- const group = definition.group;
53
-
54
- constants[name] = value;
55
- constants[name + '_PRIO'] = priority;
56
- constants[name + '_GROUP'] = group;
57
-
58
- constants.results[priority] = value;
59
- constants.resultGroups[priority] = group;
60
-
61
- constants.resultGroupMap[value] = group;
62
- });
63
-
64
- // Freeze everything
65
- Object.freeze(constants.results);
66
- Object.freeze(constants.resultGroups);
67
- Object.freeze(constants.resultGroupMap);
68
- Object.freeze(constants);
69
-
70
- export default constants;
package/lib/core/core.js DELETED
@@ -1,91 +0,0 @@
1
- import constants from './constants';
2
- import log from './log';
3
-
4
- import AbstractVirtualNode from './base/virtual-node/abstract-virtual-node';
5
- import SerialVirtualNode from './base/virtual-node/serial-virtual-node';
6
- import VirtualNode from './base/virtual-node/virtual-node';
7
- import cache from './base/cache';
8
-
9
- import Audit from './base/audit';
10
- import CheckResult from './base/check-result';
11
- import Check from './base/check';
12
- import Context from './base/context';
13
- import metadataFunctionMap from './base/metadata-function-map';
14
- import RuleResult from './base/rule-result';
15
- import Rule from './base/rule';
16
-
17
- import * as imports from './imports';
18
-
19
- import cleanup from './public/cleanup';
20
- import configure from './public/configure';
21
- import frameMessenger from './public/frame-messenger';
22
- import getRules from './public/get-rules';
23
- import load from './public/load';
24
- import registerPlugin from './public/plugins';
25
- import { hasReporter, getReporter, addReporter } from './public/reporter';
26
- import reset from './public/reset';
27
- import runRules from './public/run-rules';
28
- import runVirtualRule from './public/run-virtual-rule';
29
- import run from './public/run';
30
- import setup from './public/setup';
31
- import teardown from './public/teardown';
32
-
33
- import naReporter from './reporters/na';
34
- import noPassesReporter from './reporters/no-passes';
35
- import rawEnvReporter from './reporters/raw-env';
36
- import rawReporter from './reporters/raw';
37
- import v1Reporter from './reporters/v1';
38
- import v2Reporter from './reporters/v2';
39
-
40
- import * as commons from '../commons';
41
- import * as utils from './utils';
42
-
43
- axe.constants = constants;
44
- axe.log = log;
45
-
46
- axe.AbstractVirtualNode = AbstractVirtualNode;
47
- axe.SerialVirtualNode = SerialVirtualNode;
48
- axe.VirtualNode = VirtualNode;
49
- axe._cache = cache;
50
-
51
- // Setting up this private/temp namespace for the tests (which cannot yet `import/export` things).
52
- // TODO: remove `_thisWillBeDeletedDoNotUse`
53
- axe._thisWillBeDeletedDoNotUse = axe._thisWillBeDeletedDoNotUse || {};
54
- axe._thisWillBeDeletedDoNotUse.base = {
55
- Audit,
56
- CheckResult,
57
- Check,
58
- Context,
59
- RuleResult,
60
- Rule,
61
- metadataFunctionMap
62
- };
63
-
64
- axe.imports = imports;
65
-
66
- axe.cleanup = cleanup;
67
- axe.configure = configure;
68
- axe.frameMessenger = frameMessenger;
69
- axe.getRules = getRules;
70
- axe._load = load;
71
- axe.plugins = {};
72
- axe.registerPlugin = registerPlugin;
73
- axe.hasReporter = hasReporter;
74
- axe.getReporter = getReporter;
75
- axe.addReporter = addReporter;
76
- axe.reset = reset;
77
- axe._runRules = runRules;
78
- axe.runVirtualRule = runVirtualRule;
79
- axe.run = run;
80
- axe.setup = setup;
81
- axe.teardown = teardown;
82
-
83
- axe.commons = commons;
84
- axe.utils = utils;
85
-
86
- axe.addReporter('na', naReporter);
87
- axe.addReporter('no-passes', noPassesReporter);
88
- axe.addReporter('rawEnv', rawEnvReporter);
89
- axe.addReporter('raw', rawReporter);
90
- axe.addReporter('v1', v1Reporter);
91
- axe.addReporter('v2', v2Reporter, true);
@@ -1,39 +0,0 @@
1
- import { CssSelectorParser } from 'css-selector-parser';
2
- import doT from '@deque/dot';
3
- import emojiRegexText from 'emoji-regex';
4
- import memoize from 'memoizee';
5
-
6
- import es6promise from 'es6-promise';
7
- import { Uint32Array } from 'typedarray';
8
- import 'weakmap-polyfill';
9
-
10
- if (!('Promise' in window)) {
11
- es6promise.polyfill();
12
- }
13
-
14
- if (!('Uint32Array' in window)) {
15
- window.Uint32Array = Uint32Array;
16
- }
17
- if (window.Uint32Array) {
18
- // @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/some
19
- if (!('some' in window.Uint32Array.prototype)) {
20
- Object.defineProperty(window.Uint32Array.prototype, 'some', {
21
- value: Array.prototype.some
22
- });
23
- }
24
-
25
- if (!('reduce' in window.Uint32Array.prototype)) {
26
- // @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduce
27
- Object.defineProperty(window.Uint32Array.prototype, 'reduce', {
28
- value: Array.prototype.reduce
29
- });
30
- }
31
- }
32
-
33
- /**
34
- * Namespace `axe.imports` which holds required external dependencies
35
- *
36
- * @namespace imports
37
- * @memberof axe
38
- */
39
- export { CssSelectorParser, doT, emojiRegexText, memoize };
package/lib/core/index.js DELETED
@@ -1,40 +0,0 @@
1
- /*exported axe, commons */
2
- /*global axeFunction, module, define */
3
- // exported namespace for axe
4
- /*eslint no-use-before-define: 0, no-unused-vars: 0*/
5
- var axe = axe || {};
6
- axe.version = '<%= pkg.version %>';
7
-
8
- if (typeof define === 'function' && define.amd) {
9
- // Explicitly naming the module to avoid mismatched anonymous define() modules when injected in a page
10
- define('axe-core', [], () => axe);
11
- }
12
- if (
13
- typeof module === 'object' &&
14
- module.exports &&
15
- typeof axeFunction.toString === 'function'
16
- ) {
17
- axe.source =
18
- '(' +
19
- axeFunction.toString() +
20
- ')(typeof window === "object" ? window : this);';
21
- module.exports = axe;
22
- }
23
- if (typeof window.getComputedStyle === 'function') {
24
- window.axe = axe;
25
- }
26
- // local namespace for common functions
27
- var commons;
28
-
29
- function SupportError(error) {
30
- this.name = 'SupportError';
31
- this.cause = error.cause;
32
- this.message = `\`${error.cause}\` - feature unsupported in your environment.`;
33
- if (error.ruleId) {
34
- this.ruleId = error.ruleId;
35
- this.message += ` Skipping ${this.ruleId} rule.`;
36
- }
37
- this.stack = new Error().stack;
38
- }
39
- SupportError.prototype = Object.create(Error.prototype);
40
- SupportError.prototype.constructor = SupportError;
package/lib/core/log.js DELETED
@@ -1,13 +0,0 @@
1
- /*eslint no-console: 0 */
2
-
3
- /**
4
- * Logs a message to the developer console (if it exists and is active).
5
- */
6
- function log() {
7
- if (typeof console === 'object' && console.log) {
8
- // IE does not support console.log.apply
9
- Function.prototype.apply.call(console.log, console, arguments);
10
- }
11
- }
12
-
13
- export default log;
@@ -1,51 +0,0 @@
1
- function cleanup(resolve, reject) {
2
- resolve = resolve || function res() {};
3
- reject = reject || axe.log;
4
-
5
- if (!axe._audit) {
6
- throw new Error('No audit configured');
7
- }
8
-
9
- var q = axe.utils.queue();
10
- // If a plugin fails it's cleanup, we still want the others to run
11
- var cleanupErrors = [];
12
-
13
- Object.keys(axe.plugins).forEach(key => {
14
- q.defer(res => {
15
- var rej = function rej(err) {
16
- cleanupErrors.push(err);
17
- res();
18
- };
19
- try {
20
- axe.plugins[key].cleanup(res, rej);
21
- } catch (err) {
22
- rej(err);
23
- }
24
- });
25
- });
26
-
27
- var flattenedTree = axe.utils.getFlattenedTree(document.body);
28
-
29
- axe.utils.querySelectorAll(flattenedTree, 'iframe, frame').forEach(node => {
30
- q.defer((res, rej) => {
31
- return axe.utils.sendCommandToFrame(
32
- node.actualNode,
33
- {
34
- command: 'cleanup-plugin'
35
- },
36
- res,
37
- rej
38
- );
39
- });
40
- });
41
-
42
- q.then(results => {
43
- if (cleanupErrors.length === 0) {
44
- resolve(results);
45
- } else {
46
- reject(cleanupErrors);
47
- }
48
- }).catch(reject);
49
- }
50
-
51
- export default cleanup;