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,31 +0,0 @@
1
- /**
2
- * Gets a unique CSS selector
3
- * @param {HTMLElement} node The element to get the selector for
4
- * @param {Object} optional options
5
- * @returns {String|Array<String>} Unique CSS selector for the node
6
- */
7
- function getShadowSelector(generateSelector, elm, options = {}) {
8
- if (!elm) {
9
- return '';
10
- }
11
- let doc = (elm.getRootNode && elm.getRootNode()) || document;
12
- // Not a DOCUMENT_FRAGMENT - shadow DOM
13
- if (doc.nodeType !== 11) {
14
- return generateSelector(elm, options, doc);
15
- }
16
-
17
- const stack = [];
18
- while (doc.nodeType === 11) {
19
- if (!doc.host) {
20
- return '';
21
- }
22
- stack.unshift({ elm, doc });
23
- elm = doc.host;
24
- doc = elm.getRootNode();
25
- }
26
-
27
- stack.unshift({ elm, doc });
28
- return stack.map(({ elm, doc }) => generateSelector(elm, options, doc));
29
- }
30
-
31
- export default getShadowSelector;
@@ -1,6 +0,0 @@
1
- import standards from '../../standards';
2
- import clone from './clone';
3
-
4
- export default function getStandards() {
5
- return clone(standards);
6
- }
@@ -1,53 +0,0 @@
1
- /**
2
- * Function which converts given text to `CSSStyleSheet`
3
- * - used in `CSSOM` computation.
4
- * - factory (closure) function, initialized with `document.implementation.createHTMLDocument()`, which uses DOM API for creating `style` elements.
5
- *
6
- * @method axe.utils.getStyleSheetFactory
7
- * @memberof axe.utils
8
- * @param {Object} dynamicDoc `document.implementation.createHTMLDocument()
9
- * @param {Object} options an object with properties to construct stylesheet
10
- * @property {String} options.data text content of the stylesheet
11
- * @property {Boolean} options.isCrossOrigin flag to notify if the resource was fetched from the network
12
- * @property {String} options.shadowId (Optional) shadowId if shadowDOM
13
- * @property {Object} options.root implementation document to create style elements
14
- * @property {String} options.priority a number indicating the loaded priority of CSS, to denote specificity of styles contained in the sheet.
15
- * @returns {Function}
16
- */
17
- function getStyleSheetFactory(dynamicDoc) {
18
- if (!dynamicDoc) {
19
- throw new Error(
20
- 'axe.utils.getStyleSheetFactory should be invoked with an argument'
21
- );
22
- }
23
-
24
- return options => {
25
- const {
26
- data,
27
- isCrossOrigin = false,
28
- shadowId,
29
- root,
30
- priority,
31
- isLink = false
32
- } = options;
33
- const style = dynamicDoc.createElement('style');
34
- if (isLink) {
35
- // as creating a stylesheet as link will need to be awaited
36
- // till `onload`, it is wise to convert link href to @import statement
37
- const text = dynamicDoc.createTextNode(`@import "${data.href}"`);
38
- style.appendChild(text);
39
- } else {
40
- style.appendChild(dynamicDoc.createTextNode(data));
41
- }
42
- dynamicDoc.head.appendChild(style);
43
- return {
44
- sheet: style.sheet,
45
- isCrossOrigin,
46
- shadowId,
47
- root,
48
- priority
49
- };
50
- };
51
- }
52
-
53
- export default getStyleSheetFactory;
@@ -1,84 +0,0 @@
1
- import escapeSelector from './escape-selector';
2
-
3
- function getXPathArray(node, path) {
4
- var sibling, count;
5
- // Gets an XPath for an element which describes its hierarchical location.
6
- if (!node) {
7
- return [];
8
- }
9
- if (!path && node.nodeType === 9) {
10
- // special case for when we are called and give the document itself as the starting node
11
- path = [
12
- {
13
- str: 'html'
14
- }
15
- ];
16
- return path;
17
- }
18
- path = path || [];
19
- if (node.parentNode && node.parentNode !== node) {
20
- path = getXPathArray(node.parentNode, path);
21
- }
22
-
23
- if (node.previousSibling) {
24
- count = 1;
25
- sibling = node.previousSibling;
26
- do {
27
- if (sibling.nodeType === 1 && sibling.nodeName === node.nodeName) {
28
- count++;
29
- }
30
- sibling = sibling.previousSibling;
31
- } while (sibling);
32
- if (count === 1) {
33
- count = null;
34
- }
35
- } else if (node.nextSibling) {
36
- sibling = node.nextSibling;
37
- do {
38
- if (sibling.nodeType === 1 && sibling.nodeName === node.nodeName) {
39
- count = 1;
40
- sibling = null;
41
- } else {
42
- count = null;
43
- sibling = sibling.previousSibling;
44
- }
45
- } while (sibling);
46
- }
47
-
48
- if (node.nodeType === 1) {
49
- var element = {};
50
- element.str = node.nodeName.toLowerCase();
51
- // add the id and the count so we can construct robust versions of the xpath
52
- var id = node.getAttribute && escapeSelector(node.getAttribute('id'));
53
- if (id && node.ownerDocument.querySelectorAll('#' + id).length === 1) {
54
- element.id = node.getAttribute('id');
55
- }
56
- if (count > 1) {
57
- element.count = count;
58
- }
59
- path.push(element);
60
- }
61
- return path;
62
- }
63
-
64
- // Robust is intended to allow xpaths to be robust to changes in the HTML structure of the page
65
- // This means always use the id when present
66
- // Non robust means always use the count (i.e. the exact position of the element)
67
- // Ironically this is a bit of a misnomer because in very, very dynamic pages (e.g. where ids are generated on the fly)
68
- // the non-ribust Xpaths will work whereas the robust ones will not work
69
- function xpathToString(xpathArray) {
70
- return xpathArray.reduce((str, elm) => {
71
- if (elm.id) {
72
- return `/${elm.str}[@id='${elm.id}']`;
73
- } else {
74
- return str + `/${elm.str}` + (elm.count > 0 ? `[${elm.count}]` : '');
75
- }
76
- }, '');
77
- }
78
-
79
- function getXpath(node) {
80
- var xpathArray = getXPathArray(node);
81
- return xpathToString(xpathArray);
82
- }
83
-
84
- export default getXpath;
@@ -1,90 +0,0 @@
1
- import { setDefaultFrameMessenger } from './frame-messenger';
2
-
3
- /**
4
- * Namespace for utility helper methods.
5
- * @namespace utils
6
- * @memberof axe
7
- */
8
- export { default as aggregate } from './aggregate';
9
- export { default as aggregateChecks } from './aggregate-checks';
10
- export { default as aggregateNodeResults } from './aggregate-node-results';
11
- export { default as aggregateResult } from './aggregate-result';
12
- export { default as areStylesSet } from './are-styles-set';
13
- export { default as assert } from './assert';
14
- export { default as checkHelper } from './check-helper';
15
- export { default as clone } from './clone';
16
- export { default as closest } from './closest';
17
- export { default as collectResultsFromFrames } from './collect-results-from-frames';
18
- export { default as contains } from './contains';
19
- export { default as cssParser } from './css-parser';
20
- export { default as deepMerge } from './deep-merge';
21
- export { default as DqElement } from './dq-element';
22
- export { default as matchesSelector } from './element-matches';
23
- export { default as escapeSelector } from './escape-selector';
24
- export { default as extendMetaData } from './extend-meta-data';
25
- export { default as finalizeRuleResult } from './finalize-result';
26
- export { default as findBy } from './find-by';
27
- export { default as getFlattenedTree } from './get-flattened-tree';
28
- export { default as getAllChecks } from './get-all-checks';
29
- export { default as getBaseLang } from './get-base-lang';
30
- export { default as getCheckMessage } from './get-check-message';
31
- export { default as getCheckOption } from './get-check-option';
32
- export { default as getFriendlyUriEnd } from './get-friendly-uri-end';
33
- export { default as getNodeAttributes } from './get-node-attributes';
34
- export { default as getNodeFromTree } from './get-node-from-tree';
35
- export { default as getRootNode } from './get-root-node';
36
- export { default as getRule } from './get-rule';
37
- export { default as getScrollState } from './get-scroll-state';
38
- export { default as getScroll } from './get-scroll';
39
- export { default as getShadowSelector } from './get-shadow-selector';
40
- export { default as getSelector, getSelectorData } from './get-selector';
41
- export { default as getStandards } from './get-standards';
42
- export { default as getStyleSheetFactory } from './get-stylesheet-factory';
43
- export { default as getXpath } from './get-xpath';
44
- export { default as getAncestry } from './get-ancestry';
45
- export { default as injectStyle } from './inject-style';
46
- export { default as isHidden } from './is-hidden';
47
- export { default as isHtmlElement } from './is-html-element';
48
- export { default as isNodeInContext } from './is-node-in-context';
49
- export { default as isShadowRoot } from './is-shadow-root';
50
- export { default as isXHTML } from './is-xhtml';
51
- export {
52
- default as matches,
53
- matchesExpression,
54
- convertSelector
55
- } from './matches';
56
- export { default as memoize } from './memoize';
57
- export { default as mergeResults } from './merge-results';
58
- export { default as nodeSorter } from './node-sorter';
59
- export { default as parseCrossOriginStylesheet } from './parse-crossorigin-stylesheet';
60
- export { default as parseSameOriginStylesheet } from './parse-sameorigin-stylesheet';
61
- export { default as parseStylesheet } from './parse-stylesheet';
62
- export { default as performanceTimer } from './performance-timer';
63
- export { pollyfillElementsFromPoint } from './pollyfills';
64
- export { default as preloadCssom } from './preload-cssom';
65
- export { default as preloadMedia } from './preload-media';
66
- export { default as preload, shouldPreload, getPreloadConfig } from './preload';
67
- export { default as processMessage } from './process-message';
68
- export { default as publishMetaData } from './publish-metadata';
69
- export { default as querySelectorAllFilter } from './query-selector-all-filter';
70
- export { default as querySelectorAll } from './query-selector-all';
71
- export { default as queue } from './queue';
72
- export { default as respondable } from './respondable';
73
- export { default as ruleShouldRun } from './rule-should-run';
74
- export { default as filterHtmlAttrs } from './filter-html-attrs';
75
- export { default as select } from './select';
76
- export { default as sendCommandToFrame } from './send-command-to-frame';
77
- export { default as setScrollState } from './set-scroll-state';
78
- export { default as toArray } from './to-array';
79
- export { default as tokenList } from './token-list';
80
- export { default as uniqueArray } from './unique-array';
81
- export { default as uuid } from './uuid';
82
- export { default as validInputTypes } from './valid-input-type';
83
- export { default as isValidLang, validLangs } from './valid-langs';
84
-
85
- // Setting up this private/temp namespace for the tests (which cannot yet `import/export` things).
86
- // TODO: remove `_thisWillBeDeletedDoNotUse`
87
- axe._thisWillBeDeletedDoNotUse = axe._thisWillBeDeletedDoNotUse || {};
88
- axe._thisWillBeDeletedDoNotUse.utils = {
89
- setDefaultFrameMessenger
90
- };
@@ -1,33 +0,0 @@
1
- var styleSheet;
2
- function injectStyle(style) {
3
- if (styleSheet && styleSheet.parentNode) {
4
- // append the style to the existing sheet
5
- if (styleSheet.styleSheet === undefined) {
6
- // Not old IE
7
- styleSheet.appendChild(document.createTextNode(style));
8
- } else {
9
- styleSheet.styleSheet.cssText += style;
10
- }
11
- return styleSheet;
12
- }
13
- if (!style) {
14
- return;
15
- }
16
-
17
- var head = document.head || document.getElementsByTagName('head')[0];
18
- styleSheet = document.createElement('style');
19
- styleSheet.type = 'text/css';
20
-
21
- if (styleSheet.styleSheet === undefined) {
22
- // Not old IE
23
- styleSheet.appendChild(document.createTextNode(style));
24
- } else {
25
- styleSheet.styleSheet.cssText = style;
26
- }
27
-
28
- head.appendChild(styleSheet);
29
-
30
- return styleSheet;
31
- }
32
-
33
- export default injectStyle;
@@ -1,55 +0,0 @@
1
- import getNodeFromTree from './get-node-from-tree';
2
-
3
- /**
4
- * Determine whether an element is visible
5
- * @method isHidden
6
- * @memberof axe.utils
7
- * @param {HTMLElement} el The HTMLElement
8
- * @param {Boolean} recursed
9
- * @return {Boolean} The element's visibilty status
10
- */
11
- function isHidden(el, recursed) {
12
- const node = getNodeFromTree(el);
13
-
14
- // 9 === Node.DOCUMENT
15
- if (el.nodeType === 9) {
16
- return false;
17
- }
18
-
19
- // 11 === Node.DOCUMENT_FRAGMENT_NODE
20
- if (el.nodeType === 11) {
21
- el = el.host; // grab the host Node
22
- }
23
-
24
- if (node && node._isHidden !== null) {
25
- return node._isHidden;
26
- }
27
-
28
- const style = window.getComputedStyle(el, null);
29
-
30
- if (
31
- !style ||
32
- !el.parentNode ||
33
- style.getPropertyValue('display') === 'none' ||
34
- (!recursed &&
35
- // visibility is only accurate on the first element
36
- style.getPropertyValue('visibility') === 'hidden') ||
37
- el.getAttribute('aria-hidden') === 'true'
38
- ) {
39
- return true;
40
- }
41
-
42
- const parent = el.assignedSlot ? el.assignedSlot : el.parentNode;
43
- const hidden = isHidden(parent, true);
44
-
45
- // cache the results of the isHidden check on the parent tree
46
- // so we don't have to look at the parent tree again for all its
47
- // descendants
48
- if (node) {
49
- node._isHidden = hidden;
50
- }
51
-
52
- return hidden;
53
- }
54
-
55
- export default isHidden;
@@ -1,137 +0,0 @@
1
- const htmlTags = [
2
- 'a',
3
- 'abbr',
4
- 'address',
5
- 'area',
6
- 'article',
7
- 'aside',
8
- 'audio',
9
- 'b',
10
- 'base',
11
- 'bdi',
12
- 'bdo',
13
- 'blockquote',
14
- 'body',
15
- 'br',
16
- 'button',
17
- 'canvas',
18
- 'caption',
19
- 'cite',
20
- 'code',
21
- 'col',
22
- 'colgroup',
23
- 'data',
24
- 'datalist',
25
- 'dd',
26
- 'del',
27
- 'details',
28
- 'dfn',
29
- 'dialog',
30
- 'div',
31
- 'dl',
32
- 'dt',
33
- 'em',
34
- 'embed',
35
- 'fieldset',
36
- 'figcaption',
37
- 'figure',
38
- 'footer',
39
- 'form',
40
- 'h1',
41
- 'h2',
42
- 'h3',
43
- 'h4',
44
- 'h5',
45
- 'h6',
46
- 'head',
47
- 'header',
48
- 'hgroup',
49
- 'hr',
50
- 'html',
51
- 'i',
52
- 'iframe',
53
- 'img',
54
- 'input',
55
- 'ins',
56
- 'kbd',
57
- 'keygen',
58
- 'label',
59
- 'legend',
60
- 'li',
61
- 'link',
62
- 'main',
63
- 'map',
64
- 'mark',
65
- 'math',
66
- 'menu',
67
- 'menuitem',
68
- 'meta',
69
- 'meter',
70
- 'nav',
71
- 'noscript',
72
- 'object',
73
- 'ol',
74
- 'optgroup',
75
- 'option',
76
- 'output',
77
- 'p',
78
- 'param',
79
- 'picture',
80
- 'pre',
81
- 'progress',
82
- 'q',
83
- 'rb',
84
- 'rp',
85
- 'rt',
86
- 'rtc',
87
- 'ruby',
88
- 's',
89
- 'samp',
90
- 'script',
91
- 'section',
92
- 'select',
93
- 'slot',
94
- 'small',
95
- 'source',
96
- 'span',
97
- 'strong',
98
- 'style',
99
- 'sub',
100
- 'summary',
101
- 'sup',
102
- 'svg',
103
- 'table',
104
- 'tbody',
105
- 'td',
106
- 'template',
107
- 'textarea',
108
- 'tfoot',
109
- 'th',
110
- 'thead',
111
- 'time',
112
- 'title',
113
- 'tr',
114
- 'track',
115
- 'u',
116
- 'ul',
117
- 'var',
118
- 'video',
119
- 'wbr'
120
- ];
121
-
122
- /**
123
- * Verifies that if a given html tag is valid
124
- * @method isHtmlElement
125
- * @memberof axe.utils
126
- * @param htmlTag htmlTag to check if valid
127
- * @return {Boolean} true/ false
128
- */
129
- function isHtmlElement(node) {
130
- if (node.namespaceURI === 'http://www.w3.org/2000/svg') {
131
- return false;
132
- }
133
-
134
- return htmlTags.includes(node.nodeName.toLowerCase());
135
- }
136
-
137
- export default isHtmlElement;
@@ -1,46 +0,0 @@
1
- import contains from './contains';
2
-
3
- /**
4
- * Get the deepest node in a given collection
5
- * @private
6
- * @param {Array} collection Array of nodes to test
7
- * @return {Node} The deepest node
8
- */
9
- function getDeepest(collection) {
10
- return collection.sort((a, b) => {
11
- if (contains(a, b)) {
12
- return 1;
13
- }
14
- return -1;
15
- })[0];
16
- }
17
-
18
- /**
19
- * Determines if a node is included or excluded in a given context
20
- * @private
21
- * @param {Node} node The node to test
22
- * @param {Object} context "Resolved" context object, @see resolveContext
23
- * @return {Boolean} [description]
24
- */
25
- function isNodeInContext(node, context) {
26
- const include =
27
- context.include &&
28
- getDeepest(
29
- context.include.filter(candidate => {
30
- return contains(candidate, node);
31
- })
32
- );
33
- const exclude =
34
- context.exclude &&
35
- getDeepest(
36
- context.exclude.filter(candidate => {
37
- return contains(candidate, node);
38
- })
39
- );
40
- if ((!exclude && include) || (exclude && contains(exclude, include))) {
41
- return true;
42
- }
43
- return false;
44
- }
45
-
46
- export default isNodeInContext;
@@ -1,40 +0,0 @@
1
- const possibleShadowRoots = [
2
- 'article',
3
- 'aside',
4
- 'blockquote',
5
- 'body',
6
- 'div',
7
- 'footer',
8
- 'h1',
9
- 'h2',
10
- 'h3',
11
- 'h4',
12
- 'h5',
13
- 'h6',
14
- 'header',
15
- 'main',
16
- 'nav',
17
- 'p',
18
- 'section',
19
- 'span'
20
- ];
21
- /**
22
- * Test a node to see if it has a spec-conforming shadow root
23
- *
24
- * @param {Node} node The HTML DOM node
25
- * @return {Boolean}
26
- */
27
- function isShadowRoot(node) {
28
- if (node.shadowRoot) {
29
- const nodeName = node.nodeName.toLowerCase();
30
- if (
31
- possibleShadowRoots.includes(nodeName) ||
32
- /^[a-z][a-z0-9_.-]*-[a-z0-9_.-]*$/.test(nodeName)
33
- ) {
34
- return true;
35
- }
36
- }
37
- return false;
38
- }
39
-
40
- export default isShadowRoot;
@@ -1,15 +0,0 @@
1
- /**
2
- * Determines if a document node is XHTML
3
- * @method isXHTML
4
- * @memberof axe.utils
5
- * @param {Node} doc a document node
6
- * @return {Boolean}
7
- */
8
- function isXHTML(doc) {
9
- if (!doc.createElement) {
10
- return false;
11
- }
12
- return doc.createElement('A').localName === 'A';
13
- }
14
-
15
- export default isXHTML;