axe-core 4.1.2-canary.ec00dc7 → 4.1.2

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 (640) hide show
  1. package/CHANGELOG.md +0 -46
  2. package/CONTRIBUTING.md +57 -112
  3. package/README.md +50 -59
  4. package/axe.d.ts +281 -282
  5. package/axe.js +678 -1285
  6. package/axe.min.js +2 -2
  7. package/bower.json +38 -44
  8. package/doc/API.md +133 -178
  9. package/doc/check-message-template.md +3 -3
  10. package/doc/check-options.md +25 -25
  11. package/doc/developer-guide.md +48 -48
  12. package/doc/examples/chrome-debugging-protocol/axe-cdp.js +56 -56
  13. package/doc/examples/chrome-debugging-protocol/package.json +9 -9
  14. package/doc/examples/html-handlebars.md +52 -52
  15. package/doc/examples/jasmine/karma.conf.js +15 -15
  16. package/doc/examples/jasmine/package.json +19 -19
  17. package/doc/examples/jasmine/spec/a11y.js +29 -29
  18. package/doc/examples/jest_react/link.js +3 -3
  19. package/doc/examples/jest_react/link.test.js +15 -15
  20. package/doc/examples/jest_react/package.json +26 -26
  21. package/doc/examples/jest_react/test-helpers.js +12 -12
  22. package/doc/examples/jsdom/package.json +13 -13
  23. package/doc/examples/mocha/karma.conf.js +15 -15
  24. package/doc/examples/mocha/package.json +20 -20
  25. package/doc/examples/phantomjs/axe-phantom.js +36 -36
  26. package/doc/examples/phantomjs/package.json +17 -17
  27. package/doc/examples/puppeteer/axe-puppeteer.js +37 -37
  28. package/doc/examples/puppeteer/package.json +11 -11
  29. package/doc/examples/qunit/package.json +19 -19
  30. package/doc/examples/test-examples.js +22 -22
  31. package/doc/plugins.md +64 -64
  32. package/doc/projects.md +9 -13
  33. package/doc/rule-descriptions.md +100 -104
  34. package/doc/rule-development.md +2 -2
  35. package/doc/standards-object.md +8 -14
  36. package/lib/checks/aria/abstractrole-evaluate.js +8 -8
  37. package/lib/checks/aria/abstractrole.json +12 -12
  38. package/lib/checks/aria/aria-allowed-attr-evaluate.js +25 -24
  39. package/lib/checks/aria/aria-allowed-attr.json +12 -12
  40. package/lib/checks/aria/aria-allowed-role-evaluate.js +21 -21
  41. package/lib/checks/aria/aria-allowed-role.json +20 -20
  42. package/lib/checks/aria/aria-errormessage-evaluate.js +30 -38
  43. package/lib/checks/aria/aria-errormessage.json +16 -16
  44. package/lib/checks/aria/aria-hidden-body-evaluate.js +1 -1
  45. package/lib/checks/aria/aria-hidden-body.json +9 -9
  46. package/lib/checks/aria/aria-required-attr-evaluate.js +34 -34
  47. package/lib/checks/aria/aria-required-attr.json +12 -12
  48. package/lib/checks/aria/aria-required-children-evaluate.js +103 -108
  49. package/lib/checks/aria/aria-required-children.json +30 -30
  50. package/lib/checks/aria/aria-required-parent-evaluate.js +65 -72
  51. package/lib/checks/aria/aria-required-parent.json +12 -12
  52. package/lib/checks/aria/aria-roledescription-evaluate.js +9 -9
  53. package/lib/checks/aria/aria-roledescription.json +21 -21
  54. package/lib/checks/aria/aria-unsupported-attr-evaluate.js +20 -17
  55. package/lib/checks/aria/aria-unsupported-attr.json +9 -9
  56. package/lib/checks/aria/aria-valid-attr-evaluate.js +20 -20
  57. package/lib/checks/aria/aria-valid-attr-value-evaluate.js +71 -82
  58. package/lib/checks/aria/aria-valid-attr-value.json +17 -17
  59. package/lib/checks/aria/aria-valid-attr.json +13 -13
  60. package/lib/checks/aria/fallbackrole-evaluate.js +1 -1
  61. package/lib/checks/aria/fallbackrole.json +9 -9
  62. package/lib/checks/aria/has-global-aria-attribute-evaluate.js +5 -5
  63. package/lib/checks/aria/has-global-aria-attribute.json +12 -12
  64. package/lib/checks/aria/has-widget-role-evaluate.js +6 -6
  65. package/lib/checks/aria/has-widget-role.json +10 -10
  66. package/lib/checks/aria/invalidrole-evaluate.js +12 -12
  67. package/lib/checks/aria/invalidrole.json +12 -12
  68. package/lib/checks/aria/is-element-focusable-evaluate.js +1 -1
  69. package/lib/checks/aria/is-element-focusable.json +9 -9
  70. package/lib/checks/aria/no-implicit-explicit-label-evaluate.js +18 -20
  71. package/lib/checks/aria/no-implicit-explicit-label.json +9 -9
  72. package/lib/checks/aria/unsupportedrole-evaluate.js +2 -2
  73. package/lib/checks/aria/unsupportedrole.json +9 -9
  74. package/lib/checks/aria/valid-scrollable-semantics-evaluate.js +23 -23
  75. package/lib/checks/aria/valid-scrollable-semantics.json +10 -10
  76. package/lib/checks/color/color-contrast-evaluate.js +164 -164
  77. package/lib/checks/color/color-contrast.json +40 -40
  78. package/lib/checks/color/link-in-text-block-evaluate.js +70 -70
  79. package/lib/checks/color/link-in-text-block.json +17 -17
  80. package/lib/checks/forms/autocomplete-appropriate-evaluate.js +68 -68
  81. package/lib/checks/forms/autocomplete-appropriate.json +9 -9
  82. package/lib/checks/forms/autocomplete-valid-evaluate.js +2 -2
  83. package/lib/checks/forms/autocomplete-valid.json +9 -9
  84. package/lib/checks/generic/README.md +5 -5
  85. package/lib/checks/generic/attr-non-space-content-evaluate.js +20 -20
  86. package/lib/checks/generic/has-descendant-after.js +10 -10
  87. package/lib/checks/generic/has-descendant-evaluate.js +12 -12
  88. package/lib/checks/generic/has-text-content-evaluate.js +5 -5
  89. package/lib/checks/generic/matches-definition-evaluate.js +1 -1
  90. package/lib/checks/generic/page-no-duplicate-after.js +2 -2
  91. package/lib/checks/generic/page-no-duplicate-evaluate.js +29 -29
  92. package/lib/checks/keyboard/accesskeys-after.js +19 -19
  93. package/lib/checks/keyboard/accesskeys-evaluate.js +5 -5
  94. package/lib/checks/keyboard/accesskeys.json +10 -10
  95. package/lib/checks/keyboard/focusable-content-evaluate.js +13 -13
  96. package/lib/checks/keyboard/focusable-content.json +9 -9
  97. package/lib/checks/keyboard/focusable-disabled-evaluate.js +30 -30
  98. package/lib/checks/keyboard/focusable-disabled.json +9 -9
  99. package/lib/checks/keyboard/focusable-element-evaluate.js +41 -41
  100. package/lib/checks/keyboard/focusable-element.json +9 -9
  101. package/lib/checks/keyboard/focusable-modal-open-evaluate.js +11 -11
  102. package/lib/checks/keyboard/focusable-modal-open.json +9 -9
  103. package/lib/checks/keyboard/focusable-no-name-evaluate.js +10 -10
  104. package/lib/checks/keyboard/focusable-no-name.json +10 -10
  105. package/lib/checks/keyboard/focusable-not-tabbable-evaluate.js +30 -30
  106. package/lib/checks/keyboard/focusable-not-tabbable.json +9 -9
  107. package/lib/checks/keyboard/landmark-is-top-level-evaluate.js +17 -22
  108. package/lib/checks/keyboard/landmark-is-top-level.json +9 -9
  109. package/lib/checks/keyboard/page-has-heading-one.json +13 -13
  110. package/lib/checks/keyboard/page-has-main.json +13 -13
  111. package/lib/checks/keyboard/page-no-duplicate-banner.json +14 -14
  112. package/lib/checks/keyboard/page-no-duplicate-contentinfo.json +14 -14
  113. package/lib/checks/keyboard/page-no-duplicate-main.json +13 -13
  114. package/lib/checks/keyboard/tabindex-evaluate.js +5 -5
  115. package/lib/checks/keyboard/tabindex.json +9 -9
  116. package/lib/checks/label/alt-space-value-evaluate.js +3 -3
  117. package/lib/checks/label/alt-space-value.json +9 -9
  118. package/lib/checks/label/duplicate-img-label-evaluate.js +12 -12
  119. package/lib/checks/label/duplicate-img-label.json +12 -12
  120. package/lib/checks/label/explicit-evaluate.js +20 -25
  121. package/lib/checks/label/explicit.json +10 -10
  122. package/lib/checks/label/help-same-as-label-evaluate.js +17 -17
  123. package/lib/checks/label/help-same-as-label.json +10 -10
  124. package/lib/checks/label/hidden-explicit-label-evaluate.js +15 -21
  125. package/lib/checks/label/hidden-explicit-label.json +10 -10
  126. package/lib/checks/label/implicit-evaluate.js +9 -9
  127. package/lib/checks/label/implicit.json +10 -10
  128. package/lib/checks/label/label-content-name-mismatch-evaluate.js +42 -42
  129. package/lib/checks/label/label-content-name-mismatch.json +13 -13
  130. package/lib/checks/label/multiple-label-evaluate.js +32 -32
  131. package/lib/checks/label/multiple-label.json +9 -9
  132. package/lib/checks/label/title-only-evaluate.js +4 -4
  133. package/lib/checks/label/title-only.json +9 -9
  134. package/lib/checks/landmarks/landmark-is-unique-after.js +20 -20
  135. package/lib/checks/landmarks/landmark-is-unique-evaluate.js +6 -6
  136. package/lib/checks/landmarks/landmark-is-unique.json +10 -10
  137. package/lib/checks/language/has-lang-evaluate.js +25 -25
  138. package/lib/checks/language/has-lang.json +15 -15
  139. package/lib/checks/language/valid-lang-evaluate.js +25 -25
  140. package/lib/checks/language/valid-lang.json +12 -12
  141. package/lib/checks/language/xml-lang-mismatch-evaluate.js +3 -3
  142. package/lib/checks/language/xml-lang-mismatch.json +9 -9
  143. package/lib/checks/lists/dlitem-evaluate.js +19 -19
  144. package/lib/checks/lists/dlitem.json +9 -9
  145. package/lib/checks/lists/listitem-evaluate.js +17 -17
  146. package/lib/checks/lists/listitem.json +12 -12
  147. package/lib/checks/lists/only-dlitems-evaluate.js +44 -44
  148. package/lib/checks/lists/only-dlitems.json +9 -9
  149. package/lib/checks/lists/only-listitems-evaluate.js +56 -56
  150. package/lib/checks/lists/only-listitems.json +12 -12
  151. package/lib/checks/lists/structured-dlitems-evaluate.js +20 -20
  152. package/lib/checks/lists/structured-dlitems.json +9 -9
  153. package/lib/checks/media/caption-evaluate.js +6 -6
  154. package/lib/checks/media/caption.json +9 -9
  155. package/lib/checks/media/frame-tested-evaluate.js +20 -20
  156. package/lib/checks/media/frame-tested.json +13 -13
  157. package/lib/checks/media/no-autoplay-audio-evaluate.js +81 -81
  158. package/lib/checks/media/no-autoplay-audio.json +13 -13
  159. package/lib/checks/mobile/css-orientation-lock-evaluate.js +250 -250
  160. package/lib/checks/mobile/css-orientation-lock.json +13 -13
  161. package/lib/checks/mobile/meta-viewport-large.json +13 -13
  162. package/lib/checks/mobile/meta-viewport-scale-evaluate.js +56 -56
  163. package/lib/checks/mobile/meta-viewport.json +12 -12
  164. package/lib/checks/navigation/header-present.json +13 -13
  165. package/lib/checks/navigation/heading-order-after.js +11 -134
  166. package/lib/checks/navigation/heading-order-evaluate.js +13 -51
  167. package/lib/checks/navigation/heading-order.json +10 -10
  168. package/lib/checks/navigation/identical-links-same-purpose-after.js +86 -86
  169. package/lib/checks/navigation/identical-links-same-purpose-evaluate.js +23 -23
  170. package/lib/checks/navigation/identical-links-same-purpose.json +10 -10
  171. package/lib/checks/navigation/internal-link-present-evaluate.js +4 -4
  172. package/lib/checks/navigation/internal-link-present.json +9 -9
  173. package/lib/checks/navigation/landmark.json +12 -12
  174. package/lib/checks/navigation/meta-refresh-evaluate.js +3 -3
  175. package/lib/checks/navigation/meta-refresh.json +9 -9
  176. package/lib/checks/navigation/p-as-heading-evaluate.js +72 -72
  177. package/lib/checks/navigation/p-as-heading.json +28 -28
  178. package/lib/checks/navigation/region-evaluate.js +73 -73
  179. package/lib/checks/navigation/region.json +12 -12
  180. package/lib/checks/navigation/skip-link-evaluate.js +5 -5
  181. package/lib/checks/navigation/skip-link.json +10 -10
  182. package/lib/checks/navigation/unique-frame-title-after.js +8 -8
  183. package/lib/checks/navigation/unique-frame-title-evaluate.js +3 -3
  184. package/lib/checks/navigation/unique-frame-title.json +10 -10
  185. package/lib/checks/parsing/duplicate-id-active.json +10 -10
  186. package/lib/checks/parsing/duplicate-id-after.js +8 -8
  187. package/lib/checks/parsing/duplicate-id-aria.json +10 -10
  188. package/lib/checks/parsing/duplicate-id-evaluate.js +15 -15
  189. package/lib/checks/parsing/duplicate-id.json +10 -10
  190. package/lib/checks/shared/aria-label-evaluate.js +1 -1
  191. package/lib/checks/shared/aria-label.json +9 -9
  192. package/lib/checks/shared/aria-labelledby-evaluate.js +5 -5
  193. package/lib/checks/shared/aria-labelledby.json +10 -10
  194. package/lib/checks/shared/avoid-inline-spacing-evaluate.js +10 -10
  195. package/lib/checks/shared/avoid-inline-spacing.json +15 -15
  196. package/lib/checks/shared/button-has-visible-text.json +10 -10
  197. package/lib/checks/shared/doc-has-title-evaluate.js +2 -2
  198. package/lib/checks/shared/doc-has-title.json +9 -9
  199. package/lib/checks/shared/exists-evaluate.js +1 -1
  200. package/lib/checks/shared/exists.json +9 -9
  201. package/lib/checks/shared/has-alt-evaluate.js +5 -5
  202. package/lib/checks/shared/has-alt.json +9 -9
  203. package/lib/checks/shared/has-visible-text.json +10 -10
  204. package/lib/checks/shared/is-on-screen-evaluate.js +2 -2
  205. package/lib/checks/shared/is-on-screen.json +9 -9
  206. package/lib/checks/shared/non-empty-alt.json +15 -15
  207. package/lib/checks/shared/non-empty-if-present-evaluate.js +13 -13
  208. package/lib/checks/shared/non-empty-if-present.json +12 -12
  209. package/lib/checks/shared/non-empty-placeholder.json +15 -15
  210. package/lib/checks/shared/non-empty-title.json +15 -15
  211. package/lib/checks/shared/non-empty-value.json +15 -15
  212. package/lib/checks/shared/presentational-role-evaluate.js +29 -29
  213. package/lib/checks/shared/presentational-role.json +14 -14
  214. package/lib/checks/shared/role-none.json +17 -17
  215. package/lib/checks/shared/role-presentation.json +17 -17
  216. package/lib/checks/shared/svg-non-empty-title-evaluate.js +20 -24
  217. package/lib/checks/shared/svg-non-empty-title.json +13 -13
  218. package/lib/checks/tables/caption-faked-evaluate.js +8 -8
  219. package/lib/checks/tables/caption-faked.json +9 -9
  220. package/lib/checks/tables/html5-scope-evaluate.js +4 -4
  221. package/lib/checks/tables/html5-scope.json +9 -9
  222. package/lib/checks/tables/same-caption-summary-evaluate.js +6 -6
  223. package/lib/checks/tables/same-caption-summary.json +9 -9
  224. package/lib/checks/tables/scope-value-evaluate.js +2 -2
  225. package/lib/checks/tables/scope-value.json +12 -12
  226. package/lib/checks/tables/td-has-header-evaluate.js +21 -21
  227. package/lib/checks/tables/td-has-header.json +9 -9
  228. package/lib/checks/tables/td-headers-attr-evaluate.js +48 -48
  229. package/lib/checks/tables/td-headers-attr.json +10 -10
  230. package/lib/checks/tables/th-has-data-cells-evaluate.js +64 -64
  231. package/lib/checks/tables/th-has-data-cells.json +10 -10
  232. package/lib/checks/visibility/hidden-content-evaluate.js +28 -28
  233. package/lib/checks/visibility/hidden-content.json +10 -10
  234. package/lib/commons/aria/allowed-attr.js +12 -12
  235. package/lib/commons/aria/arialabel-text.js +7 -7
  236. package/lib/commons/aria/arialabelledby-text.js +41 -41
  237. package/lib/commons/aria/get-accessible-refs.js +41 -41
  238. package/lib/commons/aria/get-element-unallowed-roles.js +69 -69
  239. package/lib/commons/aria/get-explicit-role.js +14 -14
  240. package/lib/commons/aria/get-owned-virtual.js +14 -14
  241. package/lib/commons/aria/get-role-type.js +5 -5
  242. package/lib/commons/aria/get-role.js +89 -89
  243. package/lib/commons/aria/get-roles-by-type.js +1 -1
  244. package/lib/commons/aria/get-roles-with-name-from-contents.js +1 -1
  245. package/lib/commons/aria/implicit-nodes.js +6 -6
  246. package/lib/commons/aria/implicit-role.js +32 -32
  247. package/lib/commons/aria/is-accessible-ref.js +1 -1
  248. package/lib/commons/aria/is-aria-role-allowed-on-element.js +12 -12
  249. package/lib/commons/aria/is-unsupported-role.js +2 -2
  250. package/lib/commons/aria/is-valid-role.js +6 -6
  251. package/lib/commons/aria/label-virtual.js +24 -24
  252. package/lib/commons/aria/label.js +2 -2
  253. package/lib/commons/aria/lookup-table.js +2395 -2395
  254. package/lib/commons/aria/named-from-contents.js +19 -19
  255. package/lib/commons/aria/required-attr.js +5 -5
  256. package/lib/commons/aria/required-context.js +5 -5
  257. package/lib/commons/aria/required-owned.js +5 -5
  258. package/lib/commons/aria/validate-attr-value.js +40 -44
  259. package/lib/commons/aria/validate-attr.js +2 -2
  260. package/lib/commons/color/center-point-of-rect.js +15 -15
  261. package/lib/commons/color/color.js +224 -224
  262. package/lib/commons/color/element-has-image.js +14 -14
  263. package/lib/commons/color/element-is-distinct.js +56 -55
  264. package/lib/commons/color/filtered-rect-stack.js +32 -32
  265. package/lib/commons/color/flatten-colors.js +6 -6
  266. package/lib/commons/color/get-background-color.js +40 -40
  267. package/lib/commons/color/get-background-stack.js +71 -71
  268. package/lib/commons/color/get-contrast.js +9 -9
  269. package/lib/commons/color/get-foreground-color.js +34 -34
  270. package/lib/commons/color/get-own-background-color.js +7 -7
  271. package/lib/commons/color/get-rect-stack.js +14 -14
  272. package/lib/commons/color/get-text-shadow-colors.js +87 -87
  273. package/lib/commons/color/has-valid-contrast-ratio.js +10 -10
  274. package/lib/commons/color/incomplete-data.js +37 -37
  275. package/lib/commons/dom/find-elms-in-context.js +11 -11
  276. package/lib/commons/dom/find-up-virtual.js +31 -31
  277. package/lib/commons/dom/find-up.js +1 -1
  278. package/lib/commons/dom/focus-disabled.js +13 -13
  279. package/lib/commons/dom/get-composed-parent.js +14 -14
  280. package/lib/commons/dom/get-element-by-reference.js +18 -18
  281. package/lib/commons/dom/get-element-coordinates.js +12 -12
  282. package/lib/commons/dom/get-element-stack.js +10 -10
  283. package/lib/commons/dom/get-rect-stack.js +427 -427
  284. package/lib/commons/dom/get-scroll-offset.js +17 -17
  285. package/lib/commons/dom/get-tabbable-elements.js +9 -9
  286. package/lib/commons/dom/get-text-element-stack.js +49 -64
  287. package/lib/commons/dom/get-viewport-size.js +19 -19
  288. package/lib/commons/dom/has-content-virtual.js +29 -29
  289. package/lib/commons/dom/has-content.js +2 -2
  290. package/lib/commons/dom/idrefs.js +15 -15
  291. package/lib/commons/dom/inserted-into-focus-order.js +6 -6
  292. package/lib/commons/dom/is-focusable.js +12 -16
  293. package/lib/commons/dom/is-hidden-with-css.js +47 -47
  294. package/lib/commons/dom/is-html5.js +5 -5
  295. package/lib/commons/dom/is-in-text-block.js +74 -74
  296. package/lib/commons/dom/is-modal-open.js +78 -78
  297. package/lib/commons/dom/is-natively-focusable.js +22 -22
  298. package/lib/commons/dom/is-node.js +1 -1
  299. package/lib/commons/dom/is-offscreen.js +43 -43
  300. package/lib/commons/dom/is-opaque.js +4 -4
  301. package/lib/commons/dom/is-skip-link.js +27 -27
  302. package/lib/commons/dom/is-visible.js +147 -147
  303. package/lib/commons/dom/is-visual-content.js +33 -33
  304. package/lib/commons/dom/reduce-to-elements-below-floating.js +18 -18
  305. package/lib/commons/dom/shadow-elements-from-point.js +29 -29
  306. package/lib/commons/dom/url-props-from-attribute.js +100 -100
  307. package/lib/commons/dom/visually-contains.js +77 -77
  308. package/lib/commons/dom/visually-overlaps.js +29 -29
  309. package/lib/commons/forms/is-aria-combobox.js +2 -2
  310. package/lib/commons/forms/is-aria-listbox.js +2 -2
  311. package/lib/commons/forms/is-aria-range.js +2 -2
  312. package/lib/commons/forms/is-aria-textbox.js +2 -2
  313. package/lib/commons/forms/is-disabled.js +20 -20
  314. package/lib/commons/forms/is-native-select.js +3 -3
  315. package/lib/commons/forms/is-native-textbox.js +17 -17
  316. package/lib/commons/index.js +9 -9
  317. package/lib/commons/matches/attributes.js +4 -4
  318. package/lib/commons/matches/condition.js +1 -1
  319. package/lib/commons/matches/explicit-role.js +1 -1
  320. package/lib/commons/matches/from-definition.js +30 -30
  321. package/lib/commons/matches/from-function.js +12 -12
  322. package/lib/commons/matches/from-primative.js +20 -20
  323. package/lib/commons/matches/implicit-role.js +1 -1
  324. package/lib/commons/matches/matches.js +1 -1
  325. package/lib/commons/matches/node-name.js +4 -4
  326. package/lib/commons/matches/properties.js +4 -4
  327. package/lib/commons/matches/semantic-role.js +1 -1
  328. package/lib/commons/standards/get-aria-roles-by-type.js +3 -3
  329. package/lib/commons/standards/get-aria-roles-supporting-name-from-content.js +8 -8
  330. package/lib/commons/standards/get-element-spec.js +42 -42
  331. package/lib/commons/standards/get-elements-by-content-type.js +15 -15
  332. package/lib/commons/standards/get-global-aria-attrs.js +8 -8
  333. package/lib/commons/standards/implicit-html-roles.js +140 -140
  334. package/lib/commons/table/get-all-cells.js +16 -16
  335. package/lib/commons/table/get-cell-position.js +15 -15
  336. package/lib/commons/table/get-headers.js +65 -72
  337. package/lib/commons/table/get-scope.js +42 -42
  338. package/lib/commons/table/is-column-header.js +1 -1
  339. package/lib/commons/table/is-data-cell.js +10 -10
  340. package/lib/commons/table/is-data-table.js +176 -176
  341. package/lib/commons/table/is-header.js +8 -8
  342. package/lib/commons/table/is-row-header.js +1 -1
  343. package/lib/commons/table/to-grid.js +20 -31
  344. package/lib/commons/table/traverse.js +55 -55
  345. package/lib/commons/text/accessible-text-virtual.js +90 -90
  346. package/lib/commons/text/accessible-text.js +2 -2
  347. package/lib/commons/text/form-control-value.js +112 -113
  348. package/lib/commons/text/has-unicode.js +17 -17
  349. package/lib/commons/text/index.js +4 -4
  350. package/lib/commons/text/is-human-interpretable.js +34 -34
  351. package/lib/commons/text/is-icon-ligature.js +194 -194
  352. package/lib/commons/text/is-valid-autocomplete.js +104 -104
  353. package/lib/commons/text/label-text.js +39 -39
  354. package/lib/commons/text/label-virtual.js +26 -26
  355. package/lib/commons/text/label.js +2 -2
  356. package/lib/commons/text/native-element-type.js +97 -97
  357. package/lib/commons/text/native-text-alternative.js +19 -19
  358. package/lib/commons/text/native-text-methods.js +113 -113
  359. package/lib/commons/text/remove-unicode.js +15 -15
  360. package/lib/commons/text/sanitize.js +8 -8
  361. package/lib/commons/text/subtree-text.js +89 -47
  362. package/lib/commons/text/title-text.js +14 -14
  363. package/lib/commons/text/unicode.js +56 -56
  364. package/lib/commons/text/unsupported.js +1 -1
  365. package/lib/commons/text/visible-text-nodes.js +12 -12
  366. package/lib/commons/text/visible-virtual.js +21 -21
  367. package/lib/commons/text/visible.js +2 -2
  368. package/lib/core/base/audit.js +613 -613
  369. package/lib/core/base/cache.js +22 -22
  370. package/lib/core/base/check-result.js +20 -20
  371. package/lib/core/base/check.js +132 -132
  372. package/lib/core/base/context.js +175 -179
  373. package/lib/core/base/metadata-function-map.js +167 -179
  374. package/lib/core/base/rule-result.js +25 -25
  375. package/lib/core/base/rule.js +473 -475
  376. package/lib/core/base/virtual-node/abstract-virtual-node.js +33 -37
  377. package/lib/core/base/virtual-node/serial-virtual-node.js +76 -85
  378. package/lib/core/base/virtual-node/virtual-node.js +151 -177
  379. package/lib/core/constants.js +50 -50
  380. package/lib/core/core.js +7 -11
  381. package/lib/core/imports/index.js +14 -14
  382. package/lib/core/index.js +21 -19
  383. package/lib/core/log.js +4 -4
  384. package/lib/core/public/cleanup.js +43 -41
  385. package/lib/core/public/configure.js +112 -112
  386. package/lib/core/public/get-rules.js +19 -19
  387. package/lib/core/public/load.js +49 -47
  388. package/lib/core/public/plugins.js +24 -22
  389. package/lib/core/public/reporter.js +12 -12
  390. package/lib/core/public/reset.js +6 -6
  391. package/lib/core/public/run-rules.js +76 -61
  392. package/lib/core/public/run-virtual-rule.js +42 -47
  393. package/lib/core/public/run.js +154 -154
  394. package/lib/core/reporters/helpers/failure-summary.js +22 -22
  395. package/lib/core/reporters/helpers/get-environment-data.js +29 -29
  396. package/lib/core/reporters/helpers/incomplete-fallback-msg.js +3 -3
  397. package/lib/core/reporters/helpers/index.js +8 -8
  398. package/lib/core/reporters/helpers/process-aggregate.js +69 -69
  399. package/lib/core/reporters/na.js +16 -16
  400. package/lib/core/reporters/no-passes.js +12 -12
  401. package/lib/core/reporters/raw-env.js +9 -9
  402. package/lib/core/reporters/raw.js +24 -24
  403. package/lib/core/reporters/v1.js +23 -23
  404. package/lib/core/reporters/v2.js +13 -13
  405. package/lib/core/utils/aggregate-checks.js +63 -63
  406. package/lib/core/utils/aggregate-node-results.js +44 -44
  407. package/lib/core/utils/aggregate-result.js +24 -24
  408. package/lib/core/utils/aggregate.js +6 -6
  409. package/lib/core/utils/are-styles-set.js +14 -14
  410. package/lib/core/utils/assert.js +3 -3
  411. package/lib/core/utils/check-helper.js +23 -23
  412. package/lib/core/utils/clone.js +18 -18
  413. package/lib/core/utils/closest.js +12 -12
  414. package/lib/core/utils/collect-results-from-frames.js +45 -63
  415. package/lib/core/utils/contains.js +29 -29
  416. package/lib/core/utils/css-parser.js +0 -1
  417. package/lib/core/utils/deep-merge.js +18 -18
  418. package/lib/core/utils/dq-element.js +88 -88
  419. package/lib/core/utils/element-matches.js +29 -29
  420. package/lib/core/utils/escape-selector.js +63 -63
  421. package/lib/core/utils/extend-meta-data.js +11 -11
  422. package/lib/core/utils/finalize-result.js +13 -15
  423. package/lib/core/utils/find-by.js +3 -3
  424. package/lib/core/utils/get-all-checks.js +5 -5
  425. package/lib/core/utils/get-ancestry.js +16 -16
  426. package/lib/core/utils/get-base-lang.js +7 -7
  427. package/lib/core/utils/get-check-message.js +9 -9
  428. package/lib/core/utils/get-check-option.js +26 -26
  429. package/lib/core/utils/get-flattened-tree.js +88 -88
  430. package/lib/core/utils/get-friendly-uri-end.js +87 -87
  431. package/lib/core/utils/get-node-attributes.js +9 -10
  432. package/lib/core/utils/get-node-from-tree.js +2 -2
  433. package/lib/core/utils/get-root-node.js +6 -6
  434. package/lib/core/utils/get-scroll-state.js +26 -26
  435. package/lib/core/utils/get-scroll.js +26 -26
  436. package/lib/core/utils/get-selector.js +256 -256
  437. package/lib/core/utils/get-shadow-selector.js +19 -19
  438. package/lib/core/utils/get-stylesheet-factory.js +32 -32
  439. package/lib/core/utils/get-xpath.js +65 -65
  440. package/lib/core/utils/index.js +3 -6
  441. package/lib/core/utils/inject-style.js +24 -24
  442. package/lib/core/utils/is-hidden.js +41 -41
  443. package/lib/core/utils/is-html-element.js +122 -122
  444. package/lib/core/utils/is-node-in-context.js +24 -24
  445. package/lib/core/utils/is-shadow-root.js +28 -28
  446. package/lib/core/utils/is-xhtml.js +4 -4
  447. package/lib/core/utils/matches.js +170 -176
  448. package/lib/core/utils/memoize.js +7 -7
  449. package/lib/core/utils/merge-results.js +91 -91
  450. package/lib/core/utils/node-sorter.js +11 -11
  451. package/lib/core/utils/parse-crossorigin-stylesheet.js +41 -41
  452. package/lib/core/utils/parse-sameorigin-stylesheet.js +70 -70
  453. package/lib/core/utils/parse-stylesheet.js +41 -41
  454. package/lib/core/utils/performance-timer.js +112 -112
  455. package/lib/core/utils/pollyfills.js +263 -263
  456. package/lib/core/utils/preload-cssom.js +134 -134
  457. package/lib/core/utils/preload-media.js +42 -42
  458. package/lib/core/utils/preload.js +110 -110
  459. package/lib/core/utils/process-message.js +43 -45
  460. package/lib/core/utils/publish-metadata.js +68 -68
  461. package/lib/core/utils/query-selector-all-filter.js +77 -79
  462. package/lib/core/utils/query-selector-all.js +1 -1
  463. package/lib/core/utils/queue.js +113 -113
  464. package/lib/core/utils/respondable.js +218 -119
  465. package/lib/core/utils/rule-should-run.js +53 -53
  466. package/lib/core/utils/select.js +54 -54
  467. package/lib/core/utils/send-command-to-frame.js +43 -43
  468. package/lib/core/utils/set-scroll-state.js +7 -7
  469. package/lib/core/utils/to-array.js +1 -1
  470. package/lib/core/utils/token-list.js +4 -4
  471. package/lib/core/utils/unique-array.js +3 -3
  472. package/lib/core/utils/uuid.js +161 -170
  473. package/lib/core/utils/valid-input-type.js +25 -25
  474. package/lib/core/utils/valid-langs.js +30 -30
  475. package/lib/misc/any-failure-summary.json +4 -4
  476. package/lib/misc/incomplete-fallback.json +1 -1
  477. package/lib/misc/none-failure-summary.json +4 -4
  478. package/lib/rules/accesskeys.json +11 -11
  479. package/lib/rules/area-alt.json +20 -20
  480. package/lib/rules/aria-allowed-attr-matches.js +13 -11
  481. package/lib/rules/aria-allowed-attr.json +10 -10
  482. package/lib/rules/aria-allowed-role-matches.js +6 -6
  483. package/lib/rules/aria-allowed-role.json +12 -12
  484. package/lib/rules/aria-command-name.json +16 -16
  485. package/lib/rules/aria-dialog-name.json +11 -11
  486. package/lib/rules/aria-has-attr-matches.js +10 -10
  487. package/lib/rules/aria-hidden-body.json +12 -12
  488. package/lib/rules/aria-hidden-focus-matches.js +8 -8
  489. package/lib/rules/aria-hidden-focus.json +16 -16
  490. package/lib/rules/aria-input-field-name.json +11 -11
  491. package/lib/rules/aria-meter-name.json +11 -11
  492. package/lib/rules/aria-progressbar-name.json +11 -11
  493. package/lib/rules/aria-required-attr.json +10 -10
  494. package/lib/rules/aria-required-children.json +10 -11
  495. package/lib/rules/aria-required-parent.json +10 -11
  496. package/lib/rules/aria-roledescription.json +10 -10
  497. package/lib/rules/aria-roles.json +11 -11
  498. package/lib/rules/aria-toggle-field-name.json +16 -16
  499. package/lib/rules/aria-tooltip-name.json +16 -16
  500. package/lib/rules/aria-treeitem-name.json +16 -16
  501. package/lib/rules/aria-valid-attr-value.json +10 -10
  502. package/lib/rules/aria-valid-attr.json +10 -10
  503. package/lib/rules/audio-caption.json +18 -18
  504. package/lib/rules/autocomplete-matches.js +50 -50
  505. package/lib/rules/autocomplete-valid.json +10 -10
  506. package/lib/rules/avoid-inline-spacing.json +10 -10
  507. package/lib/rules/blink.json +17 -17
  508. package/lib/rules/button-name.json +24 -24
  509. package/lib/rules/bypass-matches.js +7 -7
  510. package/lib/rules/bypass.json +18 -19
  511. package/lib/rules/color-contrast-matches.js +137 -145
  512. package/lib/rules/color-contrast.json +11 -11
  513. package/lib/rules/css-orientation-lock.json +11 -11
  514. package/lib/rules/data-table-large-matches.js +10 -10
  515. package/lib/rules/data-table-matches.js +1 -1
  516. package/lib/rules/definition-list.json +11 -11
  517. package/lib/rules/dlitem.json +11 -11
  518. package/lib/rules/document-title.json +11 -11
  519. package/lib/rules/duplicate-id-active-matches.js +6 -6
  520. package/lib/rules/duplicate-id-active.json +12 -12
  521. package/lib/rules/duplicate-id-aria-matches.js +1 -1
  522. package/lib/rules/duplicate-id-aria.json +12 -12
  523. package/lib/rules/duplicate-id-misc-matches.js +8 -8
  524. package/lib/rules/duplicate-id.json +12 -12
  525. package/lib/rules/empty-heading.json +17 -17
  526. package/lib/rules/focus-order-semantics.json +11 -11
  527. package/lib/rules/form-field-multiple-labels.json +11 -11
  528. package/lib/rules/frame-tested.json +10 -10
  529. package/lib/rules/frame-title-has-text-matches.js +2 -2
  530. package/lib/rules/frame-title-unique.json +11 -11
  531. package/lib/rules/frame-title.json +22 -22
  532. package/lib/rules/heading-matches.js +14 -14
  533. package/lib/rules/heading-order.json +11 -11
  534. package/lib/rules/hidden-content.json +11 -11
  535. package/lib/rules/html-has-lang.json +11 -11
  536. package/lib/rules/html-lang-valid.json +10 -10
  537. package/lib/rules/html-namespace-matches.js +1 -1
  538. package/lib/rules/html-xml-lang-mismatch.json +11 -11
  539. package/lib/rules/identical-links-same-purpose-matches.js +9 -9
  540. package/lib/rules/identical-links-same-purpose.json +12 -12
  541. package/lib/rules/image-alt.json +24 -24
  542. package/lib/rules/img-redundant-alt.json +10 -10
  543. package/lib/rules/input-button-name.json +24 -24
  544. package/lib/rules/input-image-alt.json +18 -18
  545. package/lib/rules/inserted-into-focus-order-matches.js +1 -1
  546. package/lib/rules/is-initiator-matches.js +1 -1
  547. package/lib/rules/label-content-name-mismatch-matches.js +38 -38
  548. package/lib/rules/label-content-name-mismatch.json +10 -10
  549. package/lib/rules/label-matches.js +10 -10
  550. package/lib/rules/label-title-only.json +11 -11
  551. package/lib/rules/label.json +27 -27
  552. package/lib/rules/landmark-banner-is-top-level.json +11 -11
  553. package/lib/rules/landmark-complementary-is-top-level.json +10 -10
  554. package/lib/rules/landmark-contentinfo-is-top-level.json +11 -11
  555. package/lib/rules/landmark-has-body-context-matches.js +6 -6
  556. package/lib/rules/landmark-main-is-top-level.json +10 -10
  557. package/lib/rules/landmark-no-duplicate-banner.json +10 -10
  558. package/lib/rules/landmark-no-duplicate-contentinfo.json +10 -10
  559. package/lib/rules/landmark-no-duplicate-main.json +10 -10
  560. package/lib/rules/landmark-one-main.json +10 -10
  561. package/lib/rules/landmark-unique-matches.js +36 -36
  562. package/lib/rules/landmark-unique.json +11 -11
  563. package/lib/rules/layout-table-matches.js +2 -1
  564. package/lib/rules/link-in-text-block-matches.js +12 -12
  565. package/lib/rules/link-in-text-block.json +12 -12
  566. package/lib/rules/link-name.json +23 -23
  567. package/lib/rules/list.json +11 -11
  568. package/lib/rules/listitem.json +11 -11
  569. package/lib/rules/marquee.json +11 -11
  570. package/lib/rules/meta-refresh.json +18 -18
  571. package/lib/rules/meta-viewport-large.json +11 -11
  572. package/lib/rules/meta-viewport.json +11 -11
  573. package/lib/rules/no-autoplay-audio-matches.js +16 -16
  574. package/lib/rules/no-autoplay-audio.json +13 -13
  575. package/lib/rules/no-empty-role-matches.js +7 -7
  576. package/lib/rules/no-explicit-name-required-matches.js +9 -9
  577. package/lib/rules/no-naming-method-matches.js +12 -12
  578. package/lib/rules/no-role-matches.js +1 -1
  579. package/lib/rules/not-html-matches.js +2 -2
  580. package/lib/rules/object-alt.json +22 -22
  581. package/lib/rules/p-as-heading-matches.js +14 -14
  582. package/lib/rules/p-as-heading.json +11 -11
  583. package/lib/rules/page-has-heading-one.json +10 -10
  584. package/lib/rules/presentation-role-conflict.json +10 -10
  585. package/lib/rules/region.json +10 -10
  586. package/lib/rules/role-img-alt.json +18 -18
  587. package/lib/rules/scope-attr-valid.json +10 -10
  588. package/lib/rules/scrollable-region-focusable-matches.js +59 -59
  589. package/lib/rules/scrollable-region-focusable.json +10 -10
  590. package/lib/rules/select-name.json +25 -25
  591. package/lib/rules/server-side-image-map.json +16 -16
  592. package/lib/rules/skip-link-matches.js +1 -1
  593. package/lib/rules/skip-link.json +11 -11
  594. package/lib/rules/svg-img-alt.json +23 -23
  595. package/lib/rules/svg-namespace-matches.js +10 -10
  596. package/lib/rules/tabindex.json +10 -10
  597. package/lib/rules/table-duplicate-name.json +10 -10
  598. package/lib/rules/table-fake-caption.json +18 -18
  599. package/lib/rules/td-has-header.json +18 -18
  600. package/lib/rules/td-headers-attr.json +10 -10
  601. package/lib/rules/th-has-data-cells.json +11 -11
  602. package/lib/rules/valid-lang.json +11 -11
  603. package/lib/rules/video-caption.json +17 -17
  604. package/lib/rules/window-is-top-matches.js +3 -3
  605. package/lib/rules/xml-lang-mismatch-matches.js +6 -6
  606. package/lib/standards/aria-attrs.js +195 -204
  607. package/lib/standards/aria-roles.js +781 -812
  608. package/lib/standards/css-colors.js +148 -148
  609. package/lib/standards/dpub-roles.js +213 -214
  610. package/lib/standards/html-elms.js +912 -914
  611. package/lib/standards/index.js +16 -18
  612. package/locales/de.json +572 -909
  613. package/package.json +151 -174
  614. package/sri-history.json +1 -5
  615. package/typings/axe-core/axe-core-tests.ts +144 -144
  616. package/.eslintrc.js +0 -111
  617. package/lib/checks/aria/aria-prohibited-attr-evaluate.js +0 -67
  618. package/lib/checks/aria/aria-prohibited-attr.json +0 -12
  619. package/lib/checks/keyboard/frame-focusable-content.json +0 -12
  620. package/lib/checks/keyboard/no-focusable-content-evaluate.js +0 -35
  621. package/lib/checks/keyboard/no-focusable-content.json +0 -12
  622. package/lib/core/public/setup.js +0 -20
  623. package/lib/core/public/teardown.js +0 -21
  624. package/lib/core/utils/filter-html-attrs.js +0 -75
  625. package/lib/core/utils/get-rule.js +0 -17
  626. package/lib/core/utils/respondable/assert-window.js +0 -21
  627. package/lib/core/utils/respondable/callback-store.js +0 -36
  628. package/lib/core/utils/respondable/message-id.js +0 -22
  629. package/lib/core/utils/respondable/message-parser.js +0 -109
  630. package/lib/core/utils/respondable/post.js +0 -32
  631. package/lib/rules/aria-required-children-matches.js +0 -8
  632. package/lib/rules/aria-required-parent-matches.js +0 -8
  633. package/lib/rules/aria-text.json +0 -12
  634. package/lib/rules/empty-table-header.json +0 -13
  635. package/lib/rules/frame-focusable-content-matches.js +0 -9
  636. package/lib/rules/frame-focusable-content.json +0 -13
  637. package/lib/rules/nested-interactive-matches.js +0 -13
  638. package/lib/rules/nested-interactive.json +0 -12
  639. package/lib/standards/graphics-roles.js +0 -22
  640. package/locales/pl.json +0 -911
@@ -6,74 +6,74 @@
6
6
  * @return {String} The escaped selector
7
7
  */
8
8
  function escapeSelector(value) {
9
- /*eslint no-bitwise: 0, eqeqeq: 0, one-var: 0 */
10
- var string = String(value);
11
- var length = string.length;
12
- var index = -1;
13
- var codeUnit;
14
- var result = '';
15
- var firstCodeUnit = string.charCodeAt(0);
16
- while (++index < length) {
17
- codeUnit = string.charCodeAt(index);
18
- // Note: there’s no need to special-case astral symbols, surrogate
19
- // pairs, or lone surrogates.
9
+ /*eslint no-bitwise: 0, eqeqeq: 0, one-var: 0 */
10
+ var string = String(value);
11
+ var length = string.length;
12
+ var index = -1;
13
+ var codeUnit;
14
+ var result = '';
15
+ var firstCodeUnit = string.charCodeAt(0);
16
+ while (++index < length) {
17
+ codeUnit = string.charCodeAt(index);
18
+ // Note: there’s no need to special-case astral symbols, surrogate
19
+ // pairs, or lone surrogates.
20
20
 
21
- // If the character is NULL (U+0000), then the REPLACEMENT CHARACTER
22
- // (U+FFFD).
23
- if (codeUnit == 0x0000) {
24
- result += '\uFFFD';
25
- continue;
26
- }
21
+ // If the character is NULL (U+0000), then the REPLACEMENT CHARACTER
22
+ // (U+FFFD).
23
+ if (codeUnit == 0x0000) {
24
+ result += '\uFFFD';
25
+ continue;
26
+ }
27
27
 
28
- if (
29
- // If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
30
- // U+007F, […]
31
- (codeUnit >= 0x0001 && codeUnit <= 0x001f) ||
32
- codeUnit == 0x007f ||
33
- // If the character is the first character and is in the range [0-9]
34
- // (U+0030 to U+0039), […]
35
- (index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
36
- // If the character is the second character and is in the range [0-9]
37
- // (U+0030 to U+0039) and the first character is a `-` (U+002D), […]
38
- (index == 1 &&
39
- codeUnit >= 0x0030 &&
40
- codeUnit <= 0x0039 &&
41
- firstCodeUnit == 0x002d)
42
- ) {
43
- // https://drafts.csswg.org/cssom/#escape-a-character-as-code-point
44
- result += '\\' + codeUnit.toString(16) + ' ';
45
- continue;
46
- }
28
+ if (
29
+ // If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
30
+ // U+007F, […]
31
+ (codeUnit >= 0x0001 && codeUnit <= 0x001f) ||
32
+ codeUnit == 0x007f ||
33
+ // If the character is the first character and is in the range [0-9]
34
+ // (U+0030 to U+0039), […]
35
+ (index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
36
+ // If the character is the second character and is in the range [0-9]
37
+ // (U+0030 to U+0039) and the first character is a `-` (U+002D), […]
38
+ (index == 1 &&
39
+ codeUnit >= 0x0030 &&
40
+ codeUnit <= 0x0039 &&
41
+ firstCodeUnit == 0x002d)
42
+ ) {
43
+ // https://drafts.csswg.org/cssom/#escape-a-character-as-code-point
44
+ result += '\\' + codeUnit.toString(16) + ' ';
45
+ continue;
46
+ }
47
47
 
48
- // If the character is the first character and is a `-` (U+002D), and
49
- // there is no second character, […]
50
- if (index == 0 && length == 1 && codeUnit == 0x002d) {
51
- result += '\\' + string.charAt(index);
52
- continue;
53
- }
48
+ // If the character is the first character and is a `-` (U+002D), and
49
+ // there is no second character, […]
50
+ if (index == 0 && length == 1 && codeUnit == 0x002d) {
51
+ result += '\\' + string.charAt(index);
52
+ continue;
53
+ }
54
54
 
55
- // If the character is not handled by one of the above rules and is
56
- // greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
57
- // is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
58
- // U+005A), or [a-z] (U+0061 to U+007A), […]
59
- if (
60
- codeUnit >= 0x0080 ||
61
- codeUnit == 0x002d ||
62
- codeUnit == 0x005f ||
63
- (codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
64
- (codeUnit >= 0x0041 && codeUnit <= 0x005a) ||
65
- (codeUnit >= 0x0061 && codeUnit <= 0x007a)
66
- ) {
67
- // the character itself
68
- result += string.charAt(index);
69
- continue;
70
- }
55
+ // If the character is not handled by one of the above rules and is
56
+ // greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
57
+ // is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
58
+ // U+005A), or [a-z] (U+0061 to U+007A), […]
59
+ if (
60
+ codeUnit >= 0x0080 ||
61
+ codeUnit == 0x002d ||
62
+ codeUnit == 0x005f ||
63
+ (codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
64
+ (codeUnit >= 0x0041 && codeUnit <= 0x005a) ||
65
+ (codeUnit >= 0x0061 && codeUnit <= 0x007a)
66
+ ) {
67
+ // the character itself
68
+ result += string.charAt(index);
69
+ continue;
70
+ }
71
71
 
72
- // Otherwise, the escaped character.
73
- // https://drafts.csswg.org/cssom/#escape-a-character
74
- result += '\\' + string.charAt(index);
75
- }
76
- return result;
72
+ // Otherwise, the escaped character.
73
+ // https://drafts.csswg.org/cssom/#escape-a-character
74
+ result += '\\' + string.charAt(index);
75
+ }
76
+ return result;
77
77
  }
78
78
 
79
79
  export default escapeSelector;
@@ -4,17 +4,17 @@
4
4
  * @param {Object} from Metadata to extend
5
5
  */
6
6
  function extendMetaData(to, from) {
7
- Object.assign(to, from);
8
- Object.keys(from)
9
- .filter(prop => typeof from[prop] === 'function')
10
- .forEach(prop => {
11
- to[prop] = null;
12
- try {
13
- to[prop] = from[prop](to);
14
- } catch (e) {
15
- // Ignore
16
- }
17
- });
7
+ Object.assign(to, from);
8
+ Object.keys(from)
9
+ .filter(prop => typeof from[prop] === 'function')
10
+ .forEach(prop => {
11
+ to[prop] = null;
12
+ try {
13
+ to[prop] = from[prop](to);
14
+ } catch (e) {
15
+ // Ignore
16
+ }
17
+ });
18
18
  }
19
19
 
20
20
  export default extendMetaData;
@@ -6,23 +6,21 @@ import aggregateNodeResults from './aggregate-node-results';
6
6
  * @return {object}
7
7
  */
8
8
  function finalizeRuleResult(ruleResult) {
9
- // we don't use getRule so that this code does not throw but returns
10
- // the results
11
- const rule = axe._audit.rules.find(rule => rule.id === ruleResult.id);
12
- if (rule && rule.impact) {
13
- ruleResult.nodes.forEach(node => {
14
- ['any', 'all', 'none'].forEach(checkType => {
15
- (node[checkType] || []).forEach(checkResult => {
16
- checkResult.impact = rule.impact;
17
- });
18
- });
19
- });
20
- }
9
+ const rule = axe._audit.rules.find(rule => rule.id === ruleResult.id);
10
+ if (rule && rule.impact) {
11
+ ruleResult.nodes.forEach(node => {
12
+ ['any', 'all', 'none'].forEach(checkType => {
13
+ (node[checkType] || []).forEach(checkResult => {
14
+ checkResult.impact = rule.impact;
15
+ });
16
+ });
17
+ });
18
+ }
21
19
 
22
- Object.assign(ruleResult, aggregateNodeResults(ruleResult.nodes));
23
- delete ruleResult.nodes;
20
+ Object.assign(ruleResult, aggregateNodeResults(ruleResult.nodes));
21
+ delete ruleResult.nodes;
24
22
 
25
- return ruleResult;
23
+ return ruleResult;
26
24
  }
27
25
 
28
26
  export default finalizeRuleResult;
@@ -8,9 +8,9 @@
8
8
  * @return {Object} The first matching object or `undefined` if no match
9
9
  */
10
10
  function findBy(array, key, value) {
11
- if (Array.isArray(array)) {
12
- return array.find(obj => typeof obj === 'object' && obj[key] === value);
13
- }
11
+ if (Array.isArray(array)) {
12
+ return array.find(obj => typeof obj === 'object' && obj[key] === value);
13
+ }
14
14
  }
15
15
 
16
16
  export default findBy;
@@ -3,11 +3,11 @@
3
3
  * @param {RuleResult|Rule} rule
4
4
  */
5
5
  function getAllChecks(object) {
6
- var result = [];
7
- return result
8
- .concat(object.any || [])
9
- .concat(object.all || [])
10
- .concat(object.none || []);
6
+ var result = [];
7
+ return result
8
+ .concat(object.any || [])
9
+ .concat(object.all || [])
10
+ .concat(object.none || []);
11
11
  }
12
12
 
13
13
  export default getAllChecks;
@@ -1,23 +1,23 @@
1
1
  import getShadowSelector from './get-shadow-selector';
2
2
 
3
3
  function generateAncestry(node) {
4
- const nodeName = node.nodeName.toLowerCase();
5
- const parent = node.parentElement;
6
- if (!parent) {
7
- return nodeName;
8
- }
4
+ const nodeName = node.nodeName.toLowerCase();
5
+ const parent = node.parentElement;
6
+ if (!parent) {
7
+ return nodeName;
8
+ }
9
9
 
10
- let nthChild = '';
11
- if (
12
- nodeName !== 'head' &&
13
- nodeName !== 'body' &&
14
- parent.children.length > 1
15
- ) {
16
- const index = Array.prototype.indexOf.call(parent.children, node) + 1;
17
- nthChild = `:nth-child(${index})`;
18
- }
10
+ let nthChild = '';
11
+ if (
12
+ nodeName !== 'head' &&
13
+ nodeName !== 'body' &&
14
+ parent.children.length > 1
15
+ ) {
16
+ const index = Array.prototype.indexOf.call(parent.children, node) + 1;
17
+ nthChild = `:nth-child(${index})`;
18
+ }
19
19
 
20
- return generateAncestry(parent) + ' > ' + nodeName + nthChild;
20
+ return generateAncestry(parent) + ' > ' + nodeName + nthChild;
21
21
  }
22
22
 
23
23
  /**
@@ -27,5 +27,5 @@ function generateAncestry(node) {
27
27
  * @returns {String|Array<String>} Unique CSS selector for the node
28
28
  */
29
29
  export default function getAncestry(elm, options) {
30
- return getShadowSelector(generateAncestry, elm, options);
30
+ return getShadowSelector(generateAncestry, elm, options);
31
31
  }
@@ -6,13 +6,13 @@
6
6
  * @return {String}
7
7
  */
8
8
  function getBaseLang(lang) {
9
- if (!lang) {
10
- return '';
11
- }
12
- return lang
13
- .trim()
14
- .split('-')[0]
15
- .toLowerCase();
9
+ if (!lang) {
10
+ return '';
11
+ }
12
+ return lang
13
+ .trim()
14
+ .split('-')[0]
15
+ .toLowerCase();
16
16
  }
17
17
 
18
18
  export default getBaseLang;
@@ -8,17 +8,17 @@ import processMessage from './process-message';
8
8
  * @return {String}
9
9
  */
10
10
  function getCheckMessage(checkId, type, data) {
11
- // TODO: es-modules_audit
12
- const check = axe._audit.data.checks[checkId];
11
+ // TODO: es-modules_audit
12
+ const check = axe._audit.data.checks[checkId];
13
13
 
14
- if (!check) {
15
- throw new Error(`Cannot get message for unknown check: ${checkId}.`);
16
- }
17
- if (!check.messages[type]) {
18
- throw new Error(`Check "${checkId}"" does not have a "${type}" message.`);
19
- }
14
+ if (!check) {
15
+ throw new Error(`Cannot get message for unknown check: ${checkId}.`);
16
+ }
17
+ if (!check.messages[type]) {
18
+ throw new Error(`Check "${checkId}"" does not have a "${type}" message.`);
19
+ }
20
20
 
21
- return processMessage(check.messages[type], data);
21
+ return processMessage(check.messages[type], data);
22
22
  }
23
23
 
24
24
  export default getCheckMessage;
@@ -6,36 +6,36 @@
6
6
  * @return {Object} The resolved object with `options` and `enabled` keys
7
7
  */
8
8
  function getCheckOption(check, ruleID, options) {
9
- var ruleCheckOption = (((options.rules && options.rules[ruleID]) || {})
10
- .checks || {})[check.id];
11
- var checkOption = (options.checks || {})[check.id];
9
+ var ruleCheckOption = (((options.rules && options.rules[ruleID]) || {})
10
+ .checks || {})[check.id];
11
+ var checkOption = (options.checks || {})[check.id];
12
12
 
13
- var enabled = check.enabled;
14
- var opts = check.options;
13
+ var enabled = check.enabled;
14
+ var opts = check.options;
15
15
 
16
- if (checkOption) {
17
- if (checkOption.hasOwnProperty('enabled')) {
18
- enabled = checkOption.enabled;
19
- }
20
- if (checkOption.hasOwnProperty('options')) {
21
- opts = checkOption.options;
22
- }
23
- }
16
+ if (checkOption) {
17
+ if (checkOption.hasOwnProperty('enabled')) {
18
+ enabled = checkOption.enabled;
19
+ }
20
+ if (checkOption.hasOwnProperty('options')) {
21
+ opts = checkOption.options;
22
+ }
23
+ }
24
24
 
25
- if (ruleCheckOption) {
26
- if (ruleCheckOption.hasOwnProperty('enabled')) {
27
- enabled = ruleCheckOption.enabled;
28
- }
29
- if (ruleCheckOption.hasOwnProperty('options')) {
30
- opts = ruleCheckOption.options;
31
- }
32
- }
25
+ if (ruleCheckOption) {
26
+ if (ruleCheckOption.hasOwnProperty('enabled')) {
27
+ enabled = ruleCheckOption.enabled;
28
+ }
29
+ if (ruleCheckOption.hasOwnProperty('options')) {
30
+ opts = ruleCheckOption.options;
31
+ }
32
+ }
33
33
 
34
- return {
35
- enabled: enabled,
36
- options: opts,
37
- absolutePaths: options.absolutePaths
38
- };
34
+ return {
35
+ enabled: enabled,
36
+ options: opts,
37
+ absolutePaths: options.absolutePaths
38
+ };
39
39
  }
40
40
 
41
41
  export default getCheckOption;
@@ -28,14 +28,14 @@ import cache from '../base/cache';
28
28
  * @return Array{Nodes}
29
29
  */
30
30
  function getSlotChildren(node) {
31
- var retVal = [];
31
+ var retVal = [];
32
32
 
33
- node = node.firstChild;
34
- while (node) {
35
- retVal.push(node);
36
- node = node.nextSibling;
37
- }
38
- return retVal;
33
+ node = node.firstChild;
34
+ while (node) {
35
+ retVal.push(node);
36
+ node = node.nextSibling;
37
+ }
38
+ return retVal;
39
39
  }
40
40
 
41
41
  /**
@@ -48,87 +48,87 @@ function getSlotChildren(node) {
48
48
  * @param {VirtualNode} parent the parent VirtualNode
49
49
  */
50
50
  function flattenTree(node, shadowId, parent) {
51
- // using a closure here and therefore cannot easily refactor toreduce the statements
52
- var retVal, realArray, nodeName;
53
- function reduceShadowDOM(res, child, parent) {
54
- var replacements = flattenTree(child, shadowId, parent);
55
- if (replacements) {
56
- res = res.concat(replacements);
57
- }
58
- return res;
59
- }
51
+ // using a closure here and therefore cannot easily refactor toreduce the statements
52
+ var retVal, realArray, nodeName;
53
+ function reduceShadowDOM(res, child, parent) {
54
+ var replacements = flattenTree(child, shadowId, parent);
55
+ if (replacements) {
56
+ res = res.concat(replacements);
57
+ }
58
+ return res;
59
+ }
60
60
 
61
- if (node.documentElement) {
62
- // document
63
- node = node.documentElement;
64
- }
65
- nodeName = node.nodeName.toLowerCase();
61
+ if (node.documentElement) {
62
+ // document
63
+ node = node.documentElement;
64
+ }
65
+ nodeName = node.nodeName.toLowerCase();
66
66
 
67
- if (isShadowRoot(node)) {
68
- // generate an ID for this shadow root and overwrite the current
69
- // closure shadowId with this value so that it cascades down the tree
70
- retVal = new VirtualNode(node, parent, shadowId);
71
- shadowId =
72
- 'a' +
73
- Math.random()
74
- .toString()
75
- .substring(2);
76
- realArray = Array.from(node.shadowRoot.childNodes);
77
- retVal.children = realArray.reduce((res, child) => {
78
- return reduceShadowDOM(res, child, retVal);
79
- }, []);
67
+ if (isShadowRoot(node)) {
68
+ // generate an ID for this shadow root and overwrite the current
69
+ // closure shadowId with this value so that it cascades down the tree
70
+ retVal = new VirtualNode(node, parent, shadowId);
71
+ shadowId =
72
+ 'a' +
73
+ Math.random()
74
+ .toString()
75
+ .substring(2);
76
+ realArray = Array.from(node.shadowRoot.childNodes);
77
+ retVal.children = realArray.reduce((res, child) => {
78
+ return reduceShadowDOM(res, child, retVal);
79
+ }, []);
80
80
 
81
- return [retVal];
82
- } else {
83
- if (
84
- nodeName === 'content' &&
85
- typeof node.getDistributedNodes === 'function'
86
- ) {
87
- realArray = Array.from(node.getDistributedNodes());
88
- return realArray.reduce((res, child) => {
89
- return reduceShadowDOM(res, child, parent);
90
- }, []);
91
- } else if (
92
- nodeName === 'slot' &&
93
- typeof node.assignedNodes === 'function'
94
- ) {
95
- realArray = Array.from(node.assignedNodes());
96
- if (!realArray.length) {
97
- // fallback content
98
- realArray = getSlotChildren(node);
99
- }
100
- var styl = window.getComputedStyle(node);
101
- // check the display property
102
- if (false && styl.display !== 'contents') {
103
- // intentionally commented out
104
- // has a box
105
- retVal = new VirtualNode(node, parent, shadowId);
106
- retVal.children = realArray.reduce((res, child) => {
107
- return reduceShadowDOM(res, child, retVal);
108
- }, []);
81
+ return [retVal];
82
+ } else {
83
+ if (
84
+ nodeName === 'content' &&
85
+ typeof node.getDistributedNodes === 'function'
86
+ ) {
87
+ realArray = Array.from(node.getDistributedNodes());
88
+ return realArray.reduce((res, child) => {
89
+ return reduceShadowDOM(res, child, parent);
90
+ }, []);
91
+ } else if (
92
+ nodeName === 'slot' &&
93
+ typeof node.assignedNodes === 'function'
94
+ ) {
95
+ realArray = Array.from(node.assignedNodes());
96
+ if (!realArray.length) {
97
+ // fallback content
98
+ realArray = getSlotChildren(node);
99
+ }
100
+ var styl = window.getComputedStyle(node);
101
+ // check the display property
102
+ if (false && styl.display !== 'contents') {
103
+ // intentionally commented out
104
+ // has a box
105
+ retVal = new VirtualNode(node, parent, shadowId);
106
+ retVal.children = realArray.reduce((res, child) => {
107
+ return reduceShadowDOM(res, child, retVal);
108
+ }, []);
109
109
 
110
- return [retVal];
111
- } else {
112
- return realArray.reduce((res, child) => {
113
- return reduceShadowDOM(res, child, parent);
114
- }, []);
115
- }
116
- } else {
117
- if (node.nodeType === 1) {
118
- retVal = new VirtualNode(node, parent, shadowId);
119
- realArray = Array.from(node.childNodes);
120
- retVal.children = realArray.reduce((res, child) => {
121
- return reduceShadowDOM(res, child, retVal);
122
- }, []);
110
+ return [retVal];
111
+ } else {
112
+ return realArray.reduce((res, child) => {
113
+ return reduceShadowDOM(res, child, parent);
114
+ }, []);
115
+ }
116
+ } else {
117
+ if (node.nodeType === 1) {
118
+ retVal = new VirtualNode(node, parent, shadowId);
119
+ realArray = Array.from(node.childNodes);
120
+ retVal.children = realArray.reduce((res, child) => {
121
+ return reduceShadowDOM(res, child, retVal);
122
+ }, []);
123
123
 
124
- return [retVal];
125
- } else if (node.nodeType === 3) {
126
- // text
127
- return [new VirtualNode(node, parent)];
128
- }
129
- return undefined;
130
- }
131
- }
124
+ return [retVal];
125
+ } else if (node.nodeType === 3) {
126
+ // text
127
+ return [new VirtualNode(node, parent)];
128
+ }
129
+ return undefined;
130
+ }
131
+ }
132
132
  }
133
133
 
134
134
  /**
@@ -140,12 +140,12 @@ function flattenTree(node, shadowId, parent) {
140
140
  * ancestor of the node
141
141
  */
142
142
  function getFlattenedTree(node = document.documentElement, shadowId) {
143
- cache.set('nodeMap', new WeakMap());
143
+ cache.set('nodeMap', new WeakMap());
144
144
 
145
- // specifically pass `null` to the parent to designate the top
146
- // node of the tree. if parent === undefined then we know
147
- // we are in a disconnected tree
148
- return flattenTree(node, shadowId, null);
145
+ // specifically pass `null` to the parent to designate the top
146
+ // node of the tree. if parent === undefined then we know
147
+ // we are in a disconnected tree
148
+ return flattenTree(node, shadowId, null);
149
149
  }
150
150
 
151
151
  export default getFlattenedTree;