govuk_publishing_components 30.4.1 → 30.5.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 (649) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-event-tracker.js +63 -51
  3. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-link-tracker.js +8 -8
  4. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +11 -10
  5. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/init-ga4.js +26 -0
  6. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4.js +1 -3
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -4
  8. data/app/views/govuk_publishing_components/component_guide/show.html.erb +28 -27
  9. data/lib/govuk_publishing_components/version.rb +1 -1
  10. data/node_modules/axe-core/README.md +83 -53
  11. data/node_modules/axe-core/axe.d.ts +403 -224
  12. data/node_modules/axe-core/axe.js +23281 -21919
  13. data/node_modules/axe-core/axe.min.js +3 -3
  14. data/node_modules/axe-core/locales/da.json +795 -780
  15. data/node_modules/axe-core/locales/de.json +932 -621
  16. data/node_modules/axe-core/locales/es.json +786 -771
  17. data/node_modules/axe-core/locales/eu.json +787 -0
  18. data/node_modules/axe-core/locales/fr.json +982 -840
  19. data/node_modules/axe-core/locales/ja.json +988 -880
  20. data/node_modules/axe-core/locales/ko.json +999 -775
  21. data/node_modules/axe-core/locales/nl.json +46 -34
  22. data/node_modules/axe-core/locales/pl.json +965 -0
  23. data/node_modules/axe-core/locales/pt_BR.json +966 -880
  24. data/node_modules/axe-core/package.json +189 -145
  25. data/node_modules/axe-core/sri-history.json +312 -192
  26. data/node_modules/govuk-frontend/govuk/all.js +64 -44
  27. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +1 -1
  28. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +3 -13
  29. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +12 -12
  30. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +5 -1
  31. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +1 -1
  32. data/node_modules/govuk-frontend/govuk/components/details/details.js +8 -20
  33. data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +6 -0
  34. data/node_modules/govuk-frontend/govuk/components/details/template.njk +1 -1
  35. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +9 -0
  36. data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +6 -0
  37. data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +2 -2
  38. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +59 -20
  39. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +40 -0
  40. data/node_modules/govuk-frontend/govuk/components/footer/template.njk +17 -7
  41. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +14 -21
  42. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +11 -11
  43. data/node_modules/govuk-frontend/govuk/components/header/header.js +53 -11
  44. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +2 -2
  45. data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
  46. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +9 -10
  47. data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +6 -0
  48. data/node_modules/govuk-frontend/govuk/components/inset-text/template.njk +1 -1
  49. data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +6 -0
  50. data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +2 -2
  51. data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +6 -0
  52. data/node_modules/govuk-frontend/govuk/components/panel/template.njk +2 -2
  53. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +6 -0
  54. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +15 -1
  55. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +37 -10
  56. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +69 -4
  57. data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +3 -3
  58. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +13 -13
  59. data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +5 -1
  60. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +14 -7
  61. data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +56 -12
  62. data/node_modules/govuk-frontend/govuk/settings/_spacing.scss +4 -8
  63. data/node_modules/govuk-frontend/govuk/template.njk +5 -5
  64. data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +3 -13
  65. data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +8 -20
  66. data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +53 -11
  67. data/node_modules/govuk-frontend/package.json +1 -1
  68. metadata +6 -584
  69. data/node_modules/axe-core/CHANGELOG.md +0 -1053
  70. data/node_modules/axe-core/CONTRIBUTING.md +0 -187
  71. data/node_modules/axe-core/bower.json +0 -40
  72. data/node_modules/axe-core/doc/API.md +0 -889
  73. data/node_modules/axe-core/doc/accessibility-supported.md +0 -33
  74. data/node_modules/axe-core/doc/act-rules-format.md +0 -37
  75. data/node_modules/axe-core/doc/aria-supported.md +0 -13
  76. data/node_modules/axe-core/doc/backwards-compatibility-doc.md +0 -94
  77. data/node_modules/axe-core/doc/check-message-template.md +0 -124
  78. data/node_modules/axe-core/doc/code-submission-guidelines.md +0 -178
  79. data/node_modules/axe-core/doc/developer-guide.md +0 -514
  80. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/README.md +0 -13
  81. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/axe-cdp.js +0 -81
  82. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/package.json +0 -11
  83. data/node_modules/axe-core/doc/examples/html-handlebars.md +0 -164
  84. data/node_modules/axe-core/doc/examples/jasmine/README.md +0 -35
  85. data/node_modules/axe-core/doc/examples/jasmine/karma.conf.js +0 -29
  86. data/node_modules/axe-core/doc/examples/jasmine/package.json +0 -21
  87. data/node_modules/axe-core/doc/examples/jasmine/spec/a11y.js +0 -36
  88. data/node_modules/axe-core/doc/examples/jest_react/README.md +0 -41
  89. data/node_modules/axe-core/doc/examples/jest_react/link.js +0 -7
  90. data/node_modules/axe-core/doc/examples/jest_react/link.test.js +0 -24
  91. data/node_modules/axe-core/doc/examples/jest_react/package.json +0 -28
  92. data/node_modules/axe-core/doc/examples/jest_react/test-helpers.js +0 -21
  93. data/node_modules/axe-core/doc/examples/jsdom/package.json +0 -15
  94. data/node_modules/axe-core/doc/examples/mocha/README.md +0 -35
  95. data/node_modules/axe-core/doc/examples/mocha/karma.conf.js +0 -29
  96. data/node_modules/axe-core/doc/examples/mocha/package.json +0 -22
  97. data/node_modules/axe-core/doc/examples/phantomjs/README.md +0 -17
  98. data/node_modules/axe-core/doc/examples/phantomjs/axe-phantom.js +0 -53
  99. data/node_modules/axe-core/doc/examples/phantomjs/package.json +0 -19
  100. data/node_modules/axe-core/doc/examples/puppeteer/README.md +0 -12
  101. data/node_modules/axe-core/doc/examples/puppeteer/axe-puppeteer.js +0 -60
  102. data/node_modules/axe-core/doc/examples/puppeteer/package.json +0 -13
  103. data/node_modules/axe-core/doc/examples/qunit/README.md +0 -37
  104. data/node_modules/axe-core/doc/examples/qunit/package.json +0 -21
  105. data/node_modules/axe-core/doc/examples/test-examples.js +0 -32
  106. data/node_modules/axe-core/doc/plugins.md +0 -123
  107. data/node_modules/axe-core/doc/projects.md +0 -48
  108. data/node_modules/axe-core/doc/rule-descriptions.md +0 -129
  109. data/node_modules/axe-core/doc/rule-development.md +0 -123
  110. data/node_modules/axe-core/doc/rule-proposal.md +0 -106
  111. data/node_modules/axe-core/lib/checks/aria/abstractrole.js +0 -10
  112. data/node_modules/axe-core/lib/checks/aria/abstractrole.json +0 -14
  113. data/node_modules/axe-core/lib/checks/aria/allowed-attr.js +0 -39
  114. data/node_modules/axe-core/lib/checks/aria/allowed-attr.json +0 -14
  115. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.js +0 -28
  116. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.json +0 -22
  117. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.js +0 -1
  118. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.json +0 -11
  119. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.js +0 -14
  120. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.json +0 -23
  121. data/node_modules/axe-core/lib/checks/aria/errormessage.js +0 -33
  122. data/node_modules/axe-core/lib/checks/aria/errormessage.json +0 -14
  123. data/node_modules/axe-core/lib/checks/aria/fallbackrole.js +0 -1
  124. data/node_modules/axe-core/lib/checks/aria/fallbackrole.json +0 -11
  125. data/node_modules/axe-core/lib/checks/aria/has-widget-role.js +0 -6
  126. data/node_modules/axe-core/lib/checks/aria/has-widget-role.json +0 -12
  127. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.js +0 -6
  128. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.json +0 -12
  129. data/node_modules/axe-core/lib/checks/aria/invalidrole.js +0 -17
  130. data/node_modules/axe-core/lib/checks/aria/invalidrole.json +0 -14
  131. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.js +0 -21
  132. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.json +0 -11
  133. data/node_modules/axe-core/lib/checks/aria/required-attr.js +0 -53
  134. data/node_modules/axe-core/lib/checks/aria/required-attr.json +0 -14
  135. data/node_modules/axe-core/lib/checks/aria/required-children.js +0 -154
  136. data/node_modules/axe-core/lib/checks/aria/required-children.json +0 -32
  137. data/node_modules/axe-core/lib/checks/aria/required-parent.js +0 -87
  138. data/node_modules/axe-core/lib/checks/aria/required-parent.json +0 -14
  139. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.js +0 -39
  140. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.json +0 -11
  141. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.js +0 -1
  142. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.json +0 -11
  143. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.js +0 -80
  144. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.json +0 -19
  145. data/node_modules/axe-core/lib/checks/aria/valid-attr.js +0 -25
  146. data/node_modules/axe-core/lib/checks/aria/valid-attr.json +0 -15
  147. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.js +0 -62
  148. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.json +0 -12
  149. data/node_modules/axe-core/lib/checks/color/color-contrast.js +0 -86
  150. data/node_modules/axe-core/lib/checks/color/color-contrast.json +0 -30
  151. data/node_modules/axe-core/lib/checks/color/link-in-text-block.js +0 -85
  152. data/node_modules/axe-core/lib/checks/color/link-in-text-block.json +0 -19
  153. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.js +0 -67
  154. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.json +0 -11
  155. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.js +0 -2
  156. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.json +0 -11
  157. data/node_modules/axe-core/lib/checks/forms/fieldset-after.js +0 -25
  158. data/node_modules/axe-core/lib/checks/forms/fieldset.js +0 -109
  159. data/node_modules/axe-core/lib/checks/forms/fieldset.json +0 -20
  160. data/node_modules/axe-core/lib/checks/forms/group-labelledby-after.js +0 -16
  161. data/node_modules/axe-core/lib/checks/forms/group-labelledby.js +0 -66
  162. data/node_modules/axe-core/lib/checks/forms/group-labelledby.json +0 -17
  163. data/node_modules/axe-core/lib/checks/keyboard/accesskeys-after.js +0 -19
  164. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.js +0 -5
  165. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.json +0 -12
  166. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.js +0 -16
  167. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.json +0 -11
  168. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.js +0 -30
  169. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.json +0 -11
  170. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.js +0 -12
  171. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.json +0 -11
  172. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.js +0 -14
  173. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.json +0 -11
  174. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.js +0 -6
  175. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.json +0 -11
  176. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.js +0 -30
  177. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.json +0 -11
  178. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.js +0 -18
  179. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.json +0 -11
  180. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm-after.js +0 -11
  181. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm.js +0 -13
  182. data/node_modules/axe-core/lib/checks/keyboard/page-has-heading-one.json +0 -15
  183. data/node_modules/axe-core/lib/checks/keyboard/page-has-main.json +0 -15
  184. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-after.js +0 -2
  185. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-banner.json +0 -16
  186. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-contentinfo.json +0 -16
  187. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-main.json +0 -15
  188. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate.js +0 -36
  189. data/node_modules/axe-core/lib/checks/keyboard/tabindex.js +0 -6
  190. data/node_modules/axe-core/lib/checks/keyboard/tabindex.json +0 -11
  191. data/node_modules/axe-core/lib/checks/label/alt-space-value.js +0 -3
  192. data/node_modules/axe-core/lib/checks/label/alt-space-value.json +0 -11
  193. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.js +0 -22
  194. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.json +0 -11
  195. data/node_modules/axe-core/lib/checks/label/explicit.js +0 -15
  196. data/node_modules/axe-core/lib/checks/label/explicit.json +0 -11
  197. data/node_modules/axe-core/lib/checks/label/help-same-as-label.js +0 -23
  198. data/node_modules/axe-core/lib/checks/label/help-same-as-label.json +0 -12
  199. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.js +0 -12
  200. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.json +0 -11
  201. data/node_modules/axe-core/lib/checks/label/implicit.js +0 -7
  202. data/node_modules/axe-core/lib/checks/label/implicit.json +0 -11
  203. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.js +0 -59
  204. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.json +0 -15
  205. data/node_modules/axe-core/lib/checks/label/multiple-label.js +0 -39
  206. data/node_modules/axe-core/lib/checks/label/multiple-label.json +0 -11
  207. data/node_modules/axe-core/lib/checks/label/title-only.js +0 -5
  208. data/node_modules/axe-core/lib/checks/label/title-only.json +0 -11
  209. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique-after.js +0 -23
  210. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.js +0 -7
  211. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.json +0 -12
  212. data/node_modules/axe-core/lib/checks/language/has-lang.js +0 -20
  213. data/node_modules/axe-core/lib/checks/language/has-lang.json +0 -14
  214. data/node_modules/axe-core/lib/checks/language/valid-lang.js +0 -26
  215. data/node_modules/axe-core/lib/checks/language/valid-lang.json +0 -11
  216. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.js +0 -5
  217. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.json +0 -11
  218. data/node_modules/axe-core/lib/checks/lists/dlitem.js +0 -23
  219. data/node_modules/axe-core/lib/checks/lists/dlitem.json +0 -11
  220. data/node_modules/axe-core/lib/checks/lists/listitem.js +0 -21
  221. data/node_modules/axe-core/lib/checks/lists/listitem.json +0 -14
  222. data/node_modules/axe-core/lib/checks/lists/only-dlitems.js +0 -42
  223. data/node_modules/axe-core/lib/checks/lists/only-dlitems.json +0 -11
  224. data/node_modules/axe-core/lib/checks/lists/only-listitems.js +0 -58
  225. data/node_modules/axe-core/lib/checks/lists/only-listitems.json +0 -14
  226. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.js +0 -22
  227. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.json +0 -11
  228. data/node_modules/axe-core/lib/checks/media/caption.js +0 -8
  229. data/node_modules/axe-core/lib/checks/media/caption.json +0 -11
  230. data/node_modules/axe-core/lib/checks/media/description.js +0 -8
  231. data/node_modules/axe-core/lib/checks/media/description.json +0 -11
  232. data/node_modules/axe-core/lib/checks/media/frame-tested.js +0 -28
  233. data/node_modules/axe-core/lib/checks/media/frame-tested.json +0 -15
  234. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.js +0 -93
  235. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.json +0 -15
  236. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.js +0 -251
  237. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.json +0 -15
  238. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-large.json +0 -15
  239. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-scale.js +0 -55
  240. data/node_modules/axe-core/lib/checks/mobile/meta-viewport.json +0 -14
  241. data/node_modules/axe-core/lib/checks/navigation/header-present.js +0 -4
  242. data/node_modules/axe-core/lib/checks/navigation/header-present.json +0 -11
  243. data/node_modules/axe-core/lib/checks/navigation/heading-order-after.js +0 -14
  244. data/node_modules/axe-core/lib/checks/navigation/heading-order.js +0 -15
  245. data/node_modules/axe-core/lib/checks/navigation/heading-order.json +0 -12
  246. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose-after.js +0 -100
  247. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.js +0 -31
  248. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.json +0 -12
  249. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.js +0 -4
  250. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.json +0 -11
  251. data/node_modules/axe-core/lib/checks/navigation/landmark.js +0 -3
  252. data/node_modules/axe-core/lib/checks/navigation/landmark.json +0 -11
  253. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.js +0 -4
  254. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.json +0 -11
  255. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.js +0 -93
  256. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.json +0 -30
  257. data/node_modules/axe-core/lib/checks/navigation/region.js +0 -107
  258. data/node_modules/axe-core/lib/checks/navigation/region.json +0 -11
  259. data/node_modules/axe-core/lib/checks/navigation/skip-link.js +0 -5
  260. data/node_modules/axe-core/lib/checks/navigation/skip-link.json +0 -12
  261. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title-after.js +0 -9
  262. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.js +0 -6
  263. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.json +0 -12
  264. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-active.json +0 -12
  265. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-after.js +0 -8
  266. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-aria.json +0 -12
  267. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.js +0 -17
  268. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.json +0 -12
  269. data/node_modules/axe-core/lib/checks/shared/aria-label.js +0 -2
  270. data/node_modules/axe-core/lib/checks/shared/aria-label.json +0 -11
  271. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.js +0 -2
  272. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.json +0 -11
  273. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.js +0 -18
  274. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.json +0 -14
  275. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.js +0 -12
  276. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.json +0 -11
  277. data/node_modules/axe-core/lib/checks/shared/doc-has-title.js +0 -2
  278. data/node_modules/axe-core/lib/checks/shared/doc-has-title.json +0 -11
  279. data/node_modules/axe-core/lib/checks/shared/exists.js +0 -1
  280. data/node_modules/axe-core/lib/checks/shared/exists.json +0 -11
  281. data/node_modules/axe-core/lib/checks/shared/has-alt.js +0 -6
  282. data/node_modules/axe-core/lib/checks/shared/has-alt.json +0 -11
  283. data/node_modules/axe-core/lib/checks/shared/has-visible-text.js +0 -1
  284. data/node_modules/axe-core/lib/checks/shared/has-visible-text.json +0 -11
  285. data/node_modules/axe-core/lib/checks/shared/is-on-screen.js +0 -4
  286. data/node_modules/axe-core/lib/checks/shared/is-on-screen.json +0 -11
  287. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.js +0 -2
  288. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.json +0 -11
  289. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.js +0 -15
  290. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.json +0 -14
  291. data/node_modules/axe-core/lib/checks/shared/non-empty-title.js +0 -2
  292. data/node_modules/axe-core/lib/checks/shared/non-empty-title.json +0 -11
  293. data/node_modules/axe-core/lib/checks/shared/non-empty-value.js +0 -2
  294. data/node_modules/axe-core/lib/checks/shared/non-empty-value.json +0 -11
  295. data/node_modules/axe-core/lib/checks/shared/role-none.js +0 -1
  296. data/node_modules/axe-core/lib/checks/shared/role-none.json +0 -11
  297. data/node_modules/axe-core/lib/checks/shared/role-presentation.js +0 -1
  298. data/node_modules/axe-core/lib/checks/shared/role-presentation.json +0 -11
  299. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.js +0 -4
  300. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.json +0 -11
  301. data/node_modules/axe-core/lib/checks/tables/caption-faked.js +0 -10
  302. data/node_modules/axe-core/lib/checks/tables/caption-faked.json +0 -11
  303. data/node_modules/axe-core/lib/checks/tables/has-caption.js +0 -1
  304. data/node_modules/axe-core/lib/checks/tables/has-caption.json +0 -12
  305. data/node_modules/axe-core/lib/checks/tables/has-summary.js +0 -1
  306. data/node_modules/axe-core/lib/checks/tables/has-summary.json +0 -12
  307. data/node_modules/axe-core/lib/checks/tables/has-th.js +0 -31
  308. data/node_modules/axe-core/lib/checks/tables/has-th.json +0 -12
  309. data/node_modules/axe-core/lib/checks/tables/headers-visible-text.js +0 -30
  310. data/node_modules/axe-core/lib/checks/tables/html5-scope.js +0 -5
  311. data/node_modules/axe-core/lib/checks/tables/html5-scope.json +0 -11
  312. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.js +0 -7
  313. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.json +0 -11
  314. data/node_modules/axe-core/lib/checks/tables/scope-value.js +0 -5
  315. data/node_modules/axe-core/lib/checks/tables/scope-value.json +0 -11
  316. data/node_modules/axe-core/lib/checks/tables/td-has-header.js +0 -30
  317. data/node_modules/axe-core/lib/checks/tables/td-has-header.json +0 -11
  318. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.js +0 -61
  319. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.json +0 -12
  320. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.js +0 -76
  321. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.json +0 -12
  322. data/node_modules/axe-core/lib/checks/tables/th-single-row-column.js +0 -39
  323. data/node_modules/axe-core/lib/checks/visibility/hidden-content.js +0 -21
  324. data/node_modules/axe-core/lib/checks/visibility/hidden-content.json +0 -12
  325. data/node_modules/axe-core/lib/commons/aria/arialabel-text.js +0 -18
  326. data/node_modules/axe-core/lib/commons/aria/arialabelledby-text.js +0 -52
  327. data/node_modules/axe-core/lib/commons/aria/attributes.js +0 -45
  328. data/node_modules/axe-core/lib/commons/aria/get-element-unallowed-roles.js +0 -113
  329. data/node_modules/axe-core/lib/commons/aria/get-owned-virtual.js +0 -24
  330. data/node_modules/axe-core/lib/commons/aria/get-role.js +0 -44
  331. data/node_modules/axe-core/lib/commons/aria/index.js +0 -2424
  332. data/node_modules/axe-core/lib/commons/aria/is-accessible-ref.js +0 -59
  333. data/node_modules/axe-core/lib/commons/aria/is-aria-role-allowed-on-element.js +0 -41
  334. data/node_modules/axe-core/lib/commons/aria/is-unsupported-role.js +0 -14
  335. data/node_modules/axe-core/lib/commons/aria/label-virtual.js +0 -54
  336. data/node_modules/axe-core/lib/commons/aria/named-from-contents.js +0 -39
  337. data/node_modules/axe-core/lib/commons/aria/roles.js +0 -208
  338. data/node_modules/axe-core/lib/commons/aria/validate-attr-value.js +0 -62
  339. data/node_modules/axe-core/lib/commons/color/center-point-of-rect.js +0 -30
  340. data/node_modules/axe-core/lib/commons/color/contrast.js +0 -178
  341. data/node_modules/axe-core/lib/commons/color/element-has-image.js +0 -36
  342. data/node_modules/axe-core/lib/commons/color/element-is-distinct.js +0 -88
  343. data/node_modules/axe-core/lib/commons/color/get-background-color.js +0 -285
  344. data/node_modules/axe-core/lib/commons/color/get-foreground-color.js +0 -61
  345. data/node_modules/axe-core/lib/commons/color/get-own-background-color.js +0 -22
  346. data/node_modules/axe-core/lib/commons/color/incomplete-data.js +0 -50
  347. data/node_modules/axe-core/lib/commons/color/index.js +0 -8
  348. data/node_modules/axe-core/lib/commons/dom/elements-below-floating.js +0 -39
  349. data/node_modules/axe-core/lib/commons/dom/find-elms-in-context.js +0 -28
  350. data/node_modules/axe-core/lib/commons/dom/find-up.js +0 -63
  351. data/node_modules/axe-core/lib/commons/dom/get-composed-parent.js +0 -25
  352. data/node_modules/axe-core/lib/commons/dom/get-element-by-reference.js +0 -34
  353. data/node_modules/axe-core/lib/commons/dom/get-element-coordinates.js +0 -38
  354. data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +0 -589
  355. data/node_modules/axe-core/lib/commons/dom/get-root-node.js +0 -12
  356. data/node_modules/axe-core/lib/commons/dom/get-scroll-offset.js +0 -33
  357. data/node_modules/axe-core/lib/commons/dom/get-tabbable-elements.js +0 -24
  358. data/node_modules/axe-core/lib/commons/dom/get-viewport-size.js +0 -37
  359. data/node_modules/axe-core/lib/commons/dom/has-content-virtual.js +0 -75
  360. data/node_modules/axe-core/lib/commons/dom/idrefs.js +0 -36
  361. data/node_modules/axe-core/lib/commons/dom/index.js +0 -9
  362. data/node_modules/axe-core/lib/commons/dom/is-focusable.js +0 -95
  363. data/node_modules/axe-core/lib/commons/dom/is-hidden-with-css.js +0 -73
  364. data/node_modules/axe-core/lib/commons/dom/is-html5.js +0 -17
  365. data/node_modules/axe-core/lib/commons/dom/is-in-text-block.js +0 -94
  366. data/node_modules/axe-core/lib/commons/dom/is-modal-open.js +0 -98
  367. data/node_modules/axe-core/lib/commons/dom/is-node.js +0 -13
  368. data/node_modules/axe-core/lib/commons/dom/is-offscreen.js +0 -62
  369. data/node_modules/axe-core/lib/commons/dom/is-skip-link.js +0 -45
  370. data/node_modules/axe-core/lib/commons/dom/is-visible.js +0 -176
  371. data/node_modules/axe-core/lib/commons/dom/is-visual-content.js +0 -49
  372. data/node_modules/axe-core/lib/commons/dom/shadow-elements-from-point.js +0 -42
  373. data/node_modules/axe-core/lib/commons/dom/url-props-from-attribute.js +0 -152
  374. data/node_modules/axe-core/lib/commons/dom/visually-contains.js +0 -111
  375. data/node_modules/axe-core/lib/commons/dom/visually-overlaps.js +0 -46
  376. data/node_modules/axe-core/lib/commons/forms/index.js +0 -8
  377. data/node_modules/axe-core/lib/commons/forms/is-aria-combobox.js +0 -13
  378. data/node_modules/axe-core/lib/commons/forms/is-aria-listbox.js +0 -13
  379. data/node_modules/axe-core/lib/commons/forms/is-aria-range.js +0 -14
  380. data/node_modules/axe-core/lib/commons/forms/is-aria-textbox.js +0 -13
  381. data/node_modules/axe-core/lib/commons/forms/is-native-select.js +0 -13
  382. data/node_modules/axe-core/lib/commons/forms/is-native-textbox.js +0 -28
  383. data/node_modules/axe-core/lib/commons/index.js +0 -11
  384. data/node_modules/axe-core/lib/commons/intro.stub +0 -1
  385. data/node_modules/axe-core/lib/commons/matches/attributes.js +0 -27
  386. data/node_modules/axe-core/lib/commons/matches/condition.js +0 -19
  387. data/node_modules/axe-core/lib/commons/matches/from-definition.js +0 -52
  388. data/node_modules/axe-core/lib/commons/matches/from-function.js +0 -38
  389. data/node_modules/axe-core/lib/commons/matches/from-primative.js +0 -30
  390. data/node_modules/axe-core/lib/commons/matches/index.js +0 -39
  391. data/node_modules/axe-core/lib/commons/matches/node-name.js +0 -24
  392. data/node_modules/axe-core/lib/commons/matches/properties.js +0 -28
  393. data/node_modules/axe-core/lib/commons/outro.stub +0 -2
  394. data/node_modules/axe-core/lib/commons/table/get-all-cells.js +0 -28
  395. data/node_modules/axe-core/lib/commons/table/get-cell-position.js +0 -28
  396. data/node_modules/axe-core/lib/commons/table/get-headers.js +0 -79
  397. data/node_modules/axe-core/lib/commons/table/get-scope.js +0 -54
  398. data/node_modules/axe-core/lib/commons/table/index.js +0 -9
  399. data/node_modules/axe-core/lib/commons/table/is-column-header.js +0 -13
  400. data/node_modules/axe-core/lib/commons/table/is-data-cell.js +0 -22
  401. data/node_modules/axe-core/lib/commons/table/is-data-table.js +0 -189
  402. data/node_modules/axe-core/lib/commons/table/is-header.js +0 -22
  403. data/node_modules/axe-core/lib/commons/table/is-row-header.js +0 -13
  404. data/node_modules/axe-core/lib/commons/table/to-grid.js +0 -38
  405. data/node_modules/axe-core/lib/commons/table/traverse.js +0 -78
  406. data/node_modules/axe-core/lib/commons/text/accessible-text-virtual.js +0 -152
  407. data/node_modules/axe-core/lib/commons/text/form-control-value.js +0 -192
  408. data/node_modules/axe-core/lib/commons/text/index.js +0 -8
  409. data/node_modules/axe-core/lib/commons/text/is-human-interpretable.js +0 -51
  410. data/node_modules/axe-core/lib/commons/text/is-icon-ligature.js +0 -210
  411. data/node_modules/axe-core/lib/commons/text/is-valid-autocomplete.js +0 -117
  412. data/node_modules/axe-core/lib/commons/text/label-text.js +0 -58
  413. data/node_modules/axe-core/lib/commons/text/label-virtual.js +0 -53
  414. data/node_modules/axe-core/lib/commons/text/native-element-types.js +0 -100
  415. data/node_modules/axe-core/lib/commons/text/native-text-alternative.js +0 -50
  416. data/node_modules/axe-core/lib/commons/text/native-text-methods.js +0 -122
  417. data/node_modules/axe-core/lib/commons/text/sanitize.js +0 -18
  418. data/node_modules/axe-core/lib/commons/text/subtree-text.js +0 -89
  419. data/node_modules/axe-core/lib/commons/text/title-text.js +0 -33
  420. data/node_modules/axe-core/lib/commons/text/unicode.js +0 -147
  421. data/node_modules/axe-core/lib/commons/text/unsupported.js +0 -5
  422. data/node_modules/axe-core/lib/commons/text/visible-text-nodes.js +0 -25
  423. data/node_modules/axe-core/lib/commons/text/visible-virtual.js +0 -46
  424. data/node_modules/axe-core/lib/commons/utils/index.js +0 -10
  425. data/node_modules/axe-core/lib/core/base/audit.js +0 -781
  426. data/node_modules/axe-core/lib/core/base/cache.js +0 -33
  427. data/node_modules/axe-core/lib/core/base/check-result.js +0 -33
  428. data/node_modules/axe-core/lib/core/base/check.js +0 -170
  429. data/node_modules/axe-core/lib/core/base/context.js +0 -274
  430. data/node_modules/axe-core/lib/core/base/rule-result.js +0 -39
  431. data/node_modules/axe-core/lib/core/base/rule.js +0 -560
  432. data/node_modules/axe-core/lib/core/base/virtual-node/abstract-virtual-node.js +0 -40
  433. data/node_modules/axe-core/lib/core/base/virtual-node/serial-virtual-node.js +0 -88
  434. data/node_modules/axe-core/lib/core/base/virtual-node/virtual-node.js +0 -136
  435. data/node_modules/axe-core/lib/core/constants.js +0 -76
  436. data/node_modules/axe-core/lib/core/imports/index.js +0 -51
  437. data/node_modules/axe-core/lib/core/index.js +0 -43
  438. data/node_modules/axe-core/lib/core/log.js +0 -12
  439. data/node_modules/axe-core/lib/core/public/cleanup-plugins.js +0 -53
  440. data/node_modules/axe-core/lib/core/public/configure.js +0 -110
  441. data/node_modules/axe-core/lib/core/public/get-rules.js +0 -29
  442. data/node_modules/axe-core/lib/core/public/load.js +0 -66
  443. data/node_modules/axe-core/lib/core/public/plugins.js +0 -47
  444. data/node_modules/axe-core/lib/core/public/reporter.js +0 -24
  445. data/node_modules/axe-core/lib/core/public/reset.js +0 -12
  446. data/node_modules/axe-core/lib/core/public/run-rules.js +0 -96
  447. data/node_modules/axe-core/lib/core/public/run-virtual-rule.js +0 -50
  448. data/node_modules/axe-core/lib/core/public/run.js +0 -159
  449. data/node_modules/axe-core/lib/core/reporters/helpers/failure-summary.js +0 -35
  450. data/node_modules/axe-core/lib/core/reporters/helpers/get-environment-data.js +0 -39
  451. data/node_modules/axe-core/lib/core/reporters/helpers/incomplete-fallback-msg.js +0 -13
  452. data/node_modules/axe-core/lib/core/reporters/helpers/index.js +0 -3
  453. data/node_modules/axe-core/lib/core/reporters/helpers/process-aggregate.js +0 -102
  454. data/node_modules/axe-core/lib/core/reporters/na.js +0 -24
  455. data/node_modules/axe-core/lib/core/reporters/no-passes.js +0 -18
  456. data/node_modules/axe-core/lib/core/reporters/raw-env.js +0 -12
  457. data/node_modules/axe-core/lib/core/reporters/raw.js +0 -32
  458. data/node_modules/axe-core/lib/core/reporters/v1.js +0 -29
  459. data/node_modules/axe-core/lib/core/reporters/v2.js +0 -22
  460. data/node_modules/axe-core/lib/core/utils/aggregate.js +0 -19
  461. data/node_modules/axe-core/lib/core/utils/aggregateChecks.js +0 -85
  462. data/node_modules/axe-core/lib/core/utils/aggregateNodeResults.js +0 -61
  463. data/node_modules/axe-core/lib/core/utils/aggregateResult.js +0 -37
  464. data/node_modules/axe-core/lib/core/utils/are-styles-set.js +0 -21
  465. data/node_modules/axe-core/lib/core/utils/assert.js +0 -12
  466. data/node_modules/axe-core/lib/core/utils/check-helper.js +0 -38
  467. data/node_modules/axe-core/lib/core/utils/clone.js +0 -27
  468. data/node_modules/axe-core/lib/core/utils/collect-results-from-frames.js +0 -127
  469. data/node_modules/axe-core/lib/core/utils/contains.js +0 -44
  470. data/node_modules/axe-core/lib/core/utils/css-parser.js +0 -7
  471. data/node_modules/axe-core/lib/core/utils/dq-element.js +0 -97
  472. data/node_modules/axe-core/lib/core/utils/element-matches.js +0 -43
  473. data/node_modules/axe-core/lib/core/utils/escape-selector.js +0 -78
  474. data/node_modules/axe-core/lib/core/utils/extend-meta-data.js +0 -17
  475. data/node_modules/axe-core/lib/core/utils/finalize-result.js +0 -11
  476. data/node_modules/axe-core/lib/core/utils/find-by.js +0 -14
  477. data/node_modules/axe-core/lib/core/utils/flattened-tree.js +0 -156
  478. data/node_modules/axe-core/lib/core/utils/get-all-checks.js +0 -12
  479. data/node_modules/axe-core/lib/core/utils/get-base-lang.js +0 -16
  480. data/node_modules/axe-core/lib/core/utils/get-check-message.js +0 -21
  481. data/node_modules/axe-core/lib/core/utils/get-check-option.js +0 -39
  482. data/node_modules/axe-core/lib/core/utils/get-friendly-uri-end.js +0 -144
  483. data/node_modules/axe-core/lib/core/utils/get-node-attributes.js +0 -21
  484. data/node_modules/axe-core/lib/core/utils/get-root-node.js +0 -17
  485. data/node_modules/axe-core/lib/core/utils/get-scroll.js +0 -39
  486. data/node_modules/axe-core/lib/core/utils/get-selector.js +0 -409
  487. data/node_modules/axe-core/lib/core/utils/get-stylesheet-factory.js +0 -51
  488. data/node_modules/axe-core/lib/core/utils/get-xpath.js +0 -83
  489. data/node_modules/axe-core/lib/core/utils/index.js +0 -10
  490. data/node_modules/axe-core/lib/core/utils/inject-style.js +0 -38
  491. data/node_modules/axe-core/lib/core/utils/is-hidden.js +0 -52
  492. data/node_modules/axe-core/lib/core/utils/is-html-element.js +0 -135
  493. data/node_modules/axe-core/lib/core/utils/is-shadow-root.js +0 -40
  494. data/node_modules/axe-core/lib/core/utils/is-xhtml.js +0 -14
  495. data/node_modules/axe-core/lib/core/utils/matches.js +0 -263
  496. data/node_modules/axe-core/lib/core/utils/memoize.js +0 -17
  497. data/node_modules/axe-core/lib/core/utils/merge-results.js +0 -116
  498. data/node_modules/axe-core/lib/core/utils/node-sorter.js +0 -21
  499. data/node_modules/axe-core/lib/core/utils/parse-crossorigin-stylesheet.js +0 -54
  500. data/node_modules/axe-core/lib/core/utils/parse-sameorigin-stylesheet.js +0 -96
  501. data/node_modules/axe-core/lib/core/utils/parse-stylesheet.js +0 -70
  502. data/node_modules/axe-core/lib/core/utils/performance-timer.js +0 -126
  503. data/node_modules/axe-core/lib/core/utils/pollyfills.js +0 -299
  504. data/node_modules/axe-core/lib/core/utils/preload-cssom.js +0 -253
  505. data/node_modules/axe-core/lib/core/utils/preload-media.js +0 -65
  506. data/node_modules/axe-core/lib/core/utils/preload.js +0 -144
  507. data/node_modules/axe-core/lib/core/utils/process-message.js +0 -72
  508. data/node_modules/axe-core/lib/core/utils/publish-metadata.js +0 -106
  509. data/node_modules/axe-core/lib/core/utils/qsa.js +0 -110
  510. data/node_modules/axe-core/lib/core/utils/queue.js +0 -138
  511. data/node_modules/axe-core/lib/core/utils/respondable.js +0 -261
  512. data/node_modules/axe-core/lib/core/utils/rule-should-run.js +0 -82
  513. data/node_modules/axe-core/lib/core/utils/scroll-state.js +0 -57
  514. data/node_modules/axe-core/lib/core/utils/select.js +0 -135
  515. data/node_modules/axe-core/lib/core/utils/to-array.js +0 -21
  516. data/node_modules/axe-core/lib/core/utils/token-list.js +0 -15
  517. data/node_modules/axe-core/lib/core/utils/uuid.js +0 -244
  518. data/node_modules/axe-core/lib/core/utils/valid-input-type.js +0 -35
  519. data/node_modules/axe-core/lib/core/utils/valid-langs.js +0 -8152
  520. data/node_modules/axe-core/lib/intro.stub +0 -15
  521. data/node_modules/axe-core/lib/misc/any-failure-summary.json +0 -6
  522. data/node_modules/axe-core/lib/misc/incomplete-fallback.json +0 -3
  523. data/node_modules/axe-core/lib/misc/none-failure-summary.json +0 -6
  524. data/node_modules/axe-core/lib/outro.stub +0 -2
  525. data/node_modules/axe-core/lib/rules/accesskeys.json +0 -13
  526. data/node_modules/axe-core/lib/rules/area-alt.json +0 -21
  527. data/node_modules/axe-core/lib/rules/aria-allowed-attr-matches.js +0 -11
  528. data/node_modules/axe-core/lib/rules/aria-allowed-attr.json +0 -12
  529. data/node_modules/axe-core/lib/rules/aria-allowed-role-matches.js +0 -7
  530. data/node_modules/axe-core/lib/rules/aria-allowed-role.json +0 -14
  531. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback-matches.js +0 -10
  532. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback.json +0 -14
  533. data/node_modules/axe-core/lib/rules/aria-form-field-name-matches.js +0 -50
  534. data/node_modules/axe-core/lib/rules/aria-has-attr-matches.js +0 -11
  535. data/node_modules/axe-core/lib/rules/aria-hidden-body.json +0 -13
  536. data/node_modules/axe-core/lib/rules/aria-hidden-focus-matches.js +0 -18
  537. data/node_modules/axe-core/lib/rules/aria-hidden-focus.json +0 -18
  538. data/node_modules/axe-core/lib/rules/aria-input-field-name.json +0 -13
  539. data/node_modules/axe-core/lib/rules/aria-required-attr.json +0 -12
  540. data/node_modules/axe-core/lib/rules/aria-required-children.json +0 -12
  541. data/node_modules/axe-core/lib/rules/aria-required-parent.json +0 -12
  542. data/node_modules/axe-core/lib/rules/aria-roledescription.json +0 -12
  543. data/node_modules/axe-core/lib/rules/aria-roles.json +0 -13
  544. data/node_modules/axe-core/lib/rules/aria-toggle-field-name.json +0 -18
  545. data/node_modules/axe-core/lib/rules/aria-valid-attr-value.json +0 -12
  546. data/node_modules/axe-core/lib/rules/aria-valid-attr.json +0 -12
  547. data/node_modules/axe-core/lib/rules/audio-caption.json +0 -20
  548. data/node_modules/axe-core/lib/rules/autocomplete-matches.js +0 -49
  549. data/node_modules/axe-core/lib/rules/autocomplete-valid.json +0 -12
  550. data/node_modules/axe-core/lib/rules/avoid-inline-spacing.json +0 -12
  551. data/node_modules/axe-core/lib/rules/blink.json +0 -19
  552. data/node_modules/axe-core/lib/rules/button-name.json +0 -25
  553. data/node_modules/axe-core/lib/rules/bypass-matches.js +0 -1
  554. data/node_modules/axe-core/lib/rules/bypass.json +0 -20
  555. data/node_modules/axe-core/lib/rules/checkboxgroup.json +0 -13
  556. data/node_modules/axe-core/lib/rules/color-contrast-matches.js +0 -161
  557. data/node_modules/axe-core/lib/rules/color-contrast.json +0 -13
  558. data/node_modules/axe-core/lib/rules/css-orientation-lock.json +0 -13
  559. data/node_modules/axe-core/lib/rules/data-table-large-matches.js +0 -11
  560. data/node_modules/axe-core/lib/rules/data-table-matches.js +0 -1
  561. data/node_modules/axe-core/lib/rules/definition-list.json +0 -13
  562. data/node_modules/axe-core/lib/rules/dlitem.json +0 -13
  563. data/node_modules/axe-core/lib/rules/document-title.json +0 -13
  564. data/node_modules/axe-core/lib/rules/duplicate-id-active-matches.js +0 -8
  565. data/node_modules/axe-core/lib/rules/duplicate-id-active.json +0 -14
  566. data/node_modules/axe-core/lib/rules/duplicate-id-aria-matches.js +0 -1
  567. data/node_modules/axe-core/lib/rules/duplicate-id-aria.json +0 -14
  568. data/node_modules/axe-core/lib/rules/duplicate-id-misc-matches.js +0 -11
  569. data/node_modules/axe-core/lib/rules/duplicate-id.json +0 -14
  570. data/node_modules/axe-core/lib/rules/empty-heading.json +0 -13
  571. data/node_modules/axe-core/lib/rules/focus-order-semantics.json +0 -13
  572. data/node_modules/axe-core/lib/rules/form-field-multiple-labels.json +0 -13
  573. data/node_modules/axe-core/lib/rules/frame-tested.json +0 -12
  574. data/node_modules/axe-core/lib/rules/frame-title-has-text.js +0 -2
  575. data/node_modules/axe-core/lib/rules/frame-title-unique.json +0 -13
  576. data/node_modules/axe-core/lib/rules/frame-title.json +0 -25
  577. data/node_modules/axe-core/lib/rules/heading-matches.js +0 -15
  578. data/node_modules/axe-core/lib/rules/heading-order.json +0 -13
  579. data/node_modules/axe-core/lib/rules/hidden-content.json +0 -13
  580. data/node_modules/axe-core/lib/rules/html-has-lang.json +0 -13
  581. data/node_modules/axe-core/lib/rules/html-lang-valid.json +0 -12
  582. data/node_modules/axe-core/lib/rules/html-namespace-matches.js +0 -1
  583. data/node_modules/axe-core/lib/rules/html-xml-lang-mismatch.json +0 -13
  584. data/node_modules/axe-core/lib/rules/identical-links-same-purpose-matches.js +0 -13
  585. data/node_modules/axe-core/lib/rules/identical-links-same-purpose.json +0 -14
  586. data/node_modules/axe-core/lib/rules/image-alt.json +0 -25
  587. data/node_modules/axe-core/lib/rules/img-redundant-alt.json +0 -12
  588. data/node_modules/axe-core/lib/rules/input-button-name.json +0 -26
  589. data/node_modules/axe-core/lib/rules/input-image-alt.json +0 -18
  590. data/node_modules/axe-core/lib/rules/inserted-into-focus-order-matches.js +0 -1
  591. data/node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js +0 -45
  592. data/node_modules/axe-core/lib/rules/label-content-name-mismatch.json +0 -12
  593. data/node_modules/axe-core/lib/rules/label-matches.js +0 -11
  594. data/node_modules/axe-core/lib/rules/label-title-only.json +0 -13
  595. data/node_modules/axe-core/lib/rules/label.json +0 -26
  596. data/node_modules/axe-core/lib/rules/landmark-banner-is-top-level.json +0 -13
  597. data/node_modules/axe-core/lib/rules/landmark-complementary-is-top-level.json +0 -12
  598. data/node_modules/axe-core/lib/rules/landmark-contentinfo-is-top-level.json +0 -13
  599. data/node_modules/axe-core/lib/rules/landmark-has-body-context.js +0 -8
  600. data/node_modules/axe-core/lib/rules/landmark-main-is-top-level.json +0 -12
  601. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-banner.json +0 -12
  602. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-contentinfo.json +0 -12
  603. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-main.json +0 -12
  604. data/node_modules/axe-core/lib/rules/landmark-one-main.json +0 -12
  605. data/node_modules/axe-core/lib/rules/landmark-unique-matches.js +0 -41
  606. data/node_modules/axe-core/lib/rules/landmark-unique.json +0 -13
  607. data/node_modules/axe-core/lib/rules/layout-table-matches.js +0 -8
  608. data/node_modules/axe-core/lib/rules/layout-table.json +0 -14
  609. data/node_modules/axe-core/lib/rules/link-in-text-block-matches.js +0 -14
  610. data/node_modules/axe-core/lib/rules/link-in-text-block.json +0 -14
  611. data/node_modules/axe-core/lib/rules/link-name.json +0 -25
  612. data/node_modules/axe-core/lib/rules/list.json +0 -13
  613. data/node_modules/axe-core/lib/rules/listitem.json +0 -13
  614. data/node_modules/axe-core/lib/rules/marquee.json +0 -13
  615. data/node_modules/axe-core/lib/rules/meta-refresh.json +0 -20
  616. data/node_modules/axe-core/lib/rules/meta-viewport-large.json +0 -13
  617. data/node_modules/axe-core/lib/rules/meta-viewport.json +0 -13
  618. data/node_modules/axe-core/lib/rules/no-autoplay-audio-matches.js +0 -18
  619. data/node_modules/axe-core/lib/rules/no-autoplay-audio.json +0 -15
  620. data/node_modules/axe-core/lib/rules/no-empty-role-matches.js +0 -9
  621. data/node_modules/axe-core/lib/rules/no-role-matches.js +0 -1
  622. data/node_modules/axe-core/lib/rules/not-html-matches.js +0 -1
  623. data/node_modules/axe-core/lib/rules/object-alt.json +0 -25
  624. data/node_modules/axe-core/lib/rules/p-as-heading-matches.js +0 -17
  625. data/node_modules/axe-core/lib/rules/p-as-heading.json +0 -13
  626. data/node_modules/axe-core/lib/rules/page-has-heading-one.json +0 -12
  627. data/node_modules/axe-core/lib/rules/radiogroup.json +0 -13
  628. data/node_modules/axe-core/lib/rules/region.json +0 -12
  629. data/node_modules/axe-core/lib/rules/role-img-alt.json +0 -19
  630. data/node_modules/axe-core/lib/rules/scope-attr-valid.json +0 -12
  631. data/node_modules/axe-core/lib/rules/scrollable-region-focusable-matches.js +0 -30
  632. data/node_modules/axe-core/lib/rules/scrollable-region-focusable.json +0 -12
  633. data/node_modules/axe-core/lib/rules/server-side-image-map.json +0 -18
  634. data/node_modules/axe-core/lib/rules/skip-link-matches.js +0 -1
  635. data/node_modules/axe-core/lib/rules/skip-link.json +0 -13
  636. data/node_modules/axe-core/lib/rules/svg-img-alt.json +0 -24
  637. data/node_modules/axe-core/lib/rules/svg-namespace-matches.js +0 -1
  638. data/node_modules/axe-core/lib/rules/tabindex.json +0 -12
  639. data/node_modules/axe-core/lib/rules/table-duplicate-name.json +0 -12
  640. data/node_modules/axe-core/lib/rules/table-fake-caption.json +0 -20
  641. data/node_modules/axe-core/lib/rules/td-has-header.json +0 -20
  642. data/node_modules/axe-core/lib/rules/td-headers-attr.json +0 -12
  643. data/node_modules/axe-core/lib/rules/th-has-data-cells.json +0 -13
  644. data/node_modules/axe-core/lib/rules/valid-lang.json +0 -13
  645. data/node_modules/axe-core/lib/rules/video-caption.json +0 -19
  646. data/node_modules/axe-core/lib/rules/video-description.json +0 -21
  647. data/node_modules/axe-core/lib/rules/window-is-top.js +0 -3
  648. data/node_modules/axe-core/lib/rules/xml-lang-mismatch-matches.js +0 -12
  649. data/node_modules/axe-core/typings/axe-core/axe-core-tests.ts +0 -188
@@ -1,253 +0,0 @@
1
- /**
2
- * NOTE:
3
- * this `eslint` rule is disabled because of calling `getStyleSheetFactory` before it is defined (further below).
4
- */
5
- /* eslint no-use-before-define: 0 */
6
-
7
- /**
8
- * Given a rootNode - construct CSSOM
9
- * -> get all source nodes (document & document fragments) within given root node
10
- * -> recursively call `axe.utils.parseStylesheets` to resolve styles for each node
11
- *
12
- * @method preloadCssom
13
- * @memberof `axe.utils`
14
- * @param {Object} options composite options object
15
- * @property {Array<String>} options.assets array of preloaded assets requested, eg: [`cssom`]
16
- * @property {Number} options.timeout timeout
17
- * @property {Object} options.treeRoot (optional) the DOM tree to be inspected
18
- * @returns {Promise}
19
- */
20
- axe.utils.preloadCssom = function preloadCssom({ treeRoot = axe._tree[0] }) {
21
- /**
22
- * get all `document` and `documentFragment` with in given `tree`
23
- */
24
- const rootNodes = getAllRootNodesInTree(treeRoot);
25
-
26
- if (!rootNodes.length) {
27
- return Promise.resolve();
28
- }
29
-
30
- const dynamicDoc = document.implementation.createHTMLDocument(
31
- 'Dynamic document for loading cssom'
32
- );
33
-
34
- const convertDataToStylesheet = axe.utils.getStyleSheetFactory(dynamicDoc);
35
-
36
- return getCssomForAllRootNodes(
37
- rootNodes,
38
- convertDataToStylesheet
39
- ).then(assets => flattenAssets(assets));
40
- };
41
-
42
- /**
43
- * Returns am array of source nodes containing `document` and `documentFragment` in a given `tree`.
44
- *
45
- * @param {Object} treeRoot tree
46
- * @returns {Array<Object>} array of objects, which each object containing a root and an optional `shadowId`
47
- */
48
- function getAllRootNodesInTree(tree) {
49
- let ids = [];
50
-
51
- const rootNodes = axe.utils
52
- .querySelectorAllFilter(tree, '*', node => {
53
- if (ids.includes(node.shadowId)) {
54
- return false;
55
- }
56
- ids.push(node.shadowId);
57
- return true;
58
- })
59
- .map(node => {
60
- return {
61
- shadowId: node.shadowId,
62
- rootNode: axe.utils.getRootNode(node.actualNode)
63
- };
64
- });
65
-
66
- return axe.utils.uniqueArray(rootNodes, []);
67
- }
68
-
69
- /**
70
- * Process CSSOM on all root nodes
71
- *
72
- * @param {Array<Object>} rootNodes array of root nodes, where node is an enhanced `document` or `documentFragment` object returned from `getAllRootNodesInTree`
73
- * @param {Function} convertDataToStylesheet fn to convert given data to Stylesheet object
74
- * @returns {Promise}
75
- */
76
- function getCssomForAllRootNodes(rootNodes, convertDataToStylesheet) {
77
- const promises = [];
78
-
79
- rootNodes.forEach(({ rootNode, shadowId }, index) => {
80
- const sheets = getStylesheetsOfRootNode(
81
- rootNode,
82
- shadowId,
83
- convertDataToStylesheet
84
- );
85
- if (!sheets) {
86
- return Promise.all(promises);
87
- }
88
-
89
- const rootIndex = index + 1;
90
- const parseOptions = {
91
- rootNode,
92
- shadowId,
93
- convertDataToStylesheet,
94
- rootIndex
95
- };
96
- /**
97
- * Note:
98
- * `importedUrls` - keeps urls of already imported stylesheets, to prevent re-fetching
99
- * eg: nested, cyclic or cross referenced `@import` urls
100
- */
101
- const importedUrls = [];
102
-
103
- const p = Promise.all(
104
- sheets.map((sheet, sheetIndex) => {
105
- const priority = [rootIndex, sheetIndex];
106
-
107
- return axe.utils.parseStylesheet(
108
- sheet,
109
- parseOptions,
110
- priority,
111
- importedUrls
112
- );
113
- })
114
- );
115
-
116
- promises.push(p);
117
- });
118
-
119
- return Promise.all(promises);
120
- }
121
-
122
- /**
123
- * Flatten CSSOM assets
124
- *
125
- * @param {Array.<Object[]>} assets nested assets (varying depth)
126
- * @returns {Array<Object>} Array of CSSOM object
127
- */
128
- function flattenAssets(assets) {
129
- return assets.reduce(
130
- (acc, val) =>
131
- Array.isArray(val) ? acc.concat(flattenAssets(val)) : acc.concat(val),
132
- []
133
- );
134
- }
135
-
136
- /**
137
- * Get stylesheet(s) for root
138
- *
139
- * @param {Object} options.rootNode `document` or `documentFragment`
140
- * @param {String} options.shadowId an id if undefined denotes that given root is a document fragment/ shadowDOM
141
- * @param {Function} options.convertDataToStylesheet a utility function to generate a style sheet from given data (text)
142
- * @returns {Array<Object>} an array of stylesheets
143
- */
144
- function getStylesheetsOfRootNode(rootNode, shadowId, convertDataToStylesheet) {
145
- let sheets;
146
-
147
- // nodeType === 11 -> DOCUMENT_FRAGMENT
148
- if (rootNode.nodeType === 11 && shadowId) {
149
- sheets = getStylesheetsFromDocumentFragment(
150
- rootNode,
151
- convertDataToStylesheet
152
- );
153
- } else {
154
- sheets = getStylesheetsFromDocument(rootNode);
155
- }
156
-
157
- return filterStylesheetsWithSameHref(sheets);
158
- }
159
-
160
- /**
161
- * Get stylesheets from `documentFragment`
162
- *
163
- * @property {Object} options.rootNode `documentFragment`
164
- * @property {Function} options.convertDataToStylesheet a utility function to generate a stylesheet from given data
165
- * @returns {Array<Object>}
166
- */
167
- function getStylesheetsFromDocumentFragment(rootNode, convertDataToStylesheet) {
168
- return (
169
- Array.from(rootNode.children)
170
- .filter(filerStyleAndLinkAttributesInDocumentFragment)
171
- // Reducer to convert `<style></style>` and `<link>` references to `CSSStyleSheet` object
172
- .reduce((out, node) => {
173
- const nodeName = node.nodeName.toUpperCase();
174
- const data = nodeName === 'STYLE' ? node.textContent : node;
175
- const isLink = nodeName === 'LINK';
176
- const stylesheet = convertDataToStylesheet({
177
- data,
178
- isLink,
179
- root: rootNode
180
- });
181
- out.push(stylesheet.sheet);
182
- return out;
183
- }, [])
184
- );
185
- }
186
-
187
- /**
188
- * Get stylesheets from `document`
189
- * -> filter out stylesheet that are `media=print`
190
- *
191
- * @param {Object} rootNode `document`
192
- * @returns {Array<Object>}
193
- */
194
- function getStylesheetsFromDocument(rootNode) {
195
- return Array.from(rootNode.styleSheets).filter(sheet =>
196
- filterMediaIsPrint(sheet.media.mediaText)
197
- );
198
- }
199
-
200
- /**
201
- * Get all `<style></style>` and `<link>` attributes
202
- * -> limit to only `style` or `link` attributes with `rel=stylesheet` and `media != print`
203
- *
204
- * @param {Object} node HTMLElement
205
- * @returns {Boolean}
206
- */
207
- function filerStyleAndLinkAttributesInDocumentFragment(node) {
208
- const nodeName = node.nodeName.toUpperCase();
209
- const linkHref = node.getAttribute('href');
210
- const linkRel = node.getAttribute('rel');
211
- const isLink =
212
- nodeName === 'LINK' &&
213
- linkHref &&
214
- linkRel &&
215
- node.rel.toUpperCase().includes('STYLESHEET');
216
- const isStyle = nodeName === 'STYLE';
217
- return isStyle || (isLink && filterMediaIsPrint(node.media));
218
- }
219
-
220
- /**
221
- * Exclude `link[rel='stylesheet]` attributes where `media=print`
222
- *
223
- * @param {String} media media value eg: 'print'
224
- * @returns {Boolean}
225
- */
226
- function filterMediaIsPrint(media) {
227
- if (!media) {
228
- return true;
229
- }
230
- return !media.toUpperCase().includes('PRINT');
231
- }
232
-
233
- /**
234
- * Exclude any duplicate `stylesheets`, that share the same `href`
235
- *
236
- * @param {Array<Object>} sheets stylesheets
237
- * @returns {Array<Object>}
238
- */
239
- function filterStylesheetsWithSameHref(sheets) {
240
- let hrefs = [];
241
- return sheets.filter(sheet => {
242
- if (!sheet.href) {
243
- // include sheets without `href`
244
- return true;
245
- }
246
- // if `href` is present, ensure they are not duplicates
247
- if (hrefs.includes(sheet.href)) {
248
- return false;
249
- }
250
- hrefs.push(sheet.href);
251
- return true;
252
- });
253
- }
@@ -1,65 +0,0 @@
1
- /**
2
- * Given a rootNode
3
- * -> get all HTMLMediaElement's and ensure their metadata is loaded
4
- *
5
- * @method preloadMedia
6
- * @memberof axe.utils
7
- * @property {Object} options.treeRoot (optional) the DOM tree to be inspected
8
- */
9
- axe.utils.preloadMedia = function preloadMedia({ treeRoot = axe._tree[0] }) {
10
- const mediaVirtualNodes = axe.utils.querySelectorAllFilter(
11
- treeRoot,
12
- 'video, audio',
13
- ({ actualNode }) => {
14
- /**
15
- * this is to safe-gaurd against empty `src` values which can get resolved `window.location`, thus never preloading as the URL is not a media asset
16
- */
17
- if (actualNode.hasAttribute('src')) {
18
- return !!actualNode.getAttribute('src');
19
- }
20
-
21
- /**
22
- * The `src` on <source> element is essential for `audio` and `video` elements
23
- */
24
- const sourceWithSrc = Array.from(
25
- actualNode.getElementsByTagName('source')
26
- ).filter(source => !!source.getAttribute('src'));
27
- if (sourceWithSrc.length <= 0) {
28
- return false;
29
- }
30
-
31
- return true;
32
- }
33
- );
34
-
35
- return Promise.all(
36
- mediaVirtualNodes.map(({ actualNode }) => isMediaElementReady(actualNode))
37
- );
38
- };
39
-
40
- /**
41
- * Ensures a media element's metadata is loaded
42
- * @param {HTMLMediaElement} elm elm
43
- * @returns {Promise}
44
- */
45
- function isMediaElementReady(elm) {
46
- return new Promise(resolve => {
47
- /**
48
- * See - https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState
49
- */
50
- if (elm.readyState > 0) {
51
- resolve(elm);
52
- }
53
-
54
- function onMediaReady() {
55
- elm.removeEventListener('loadedmetadata', onMediaReady);
56
- resolve(elm);
57
- }
58
-
59
- /**
60
- * Given media is not ready, wire up listener for `loadedmetadata`
61
- * See - https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/loadedmetadata_event
62
- */
63
- elm.addEventListener('loadedmetadata', onMediaReady);
64
- });
65
- }
@@ -1,144 +0,0 @@
1
- /**
2
- * Validated the preload object
3
- * @param {Object | boolean} preload configuration object or boolean passed via the options parameter to axe.run
4
- * @return {boolean}
5
- * @private
6
- */
7
- function isValidPreloadObject(preload) {
8
- return typeof preload === 'object' && Array.isArray(preload.assets);
9
- }
10
-
11
- /**
12
- * Returns a boolean which decides if preload is configured
13
- * @param {Object} options run configuration options (or defaults) passed via axe.run
14
- * @return {boolean} defaults to true
15
- */
16
- axe.utils.shouldPreload = function shouldPreload(options) {
17
- if (!options || options.preload === undefined || options.preload === null) {
18
- return true; // by default `preload` requested assets eg: ['cssom']
19
- }
20
- if (typeof options.preload === 'boolean') {
21
- return options.preload;
22
- }
23
- return isValidPreloadObject(options.preload);
24
- };
25
-
26
- /**
27
- * Constructs a configuration object representing the preload requested assets & timeout
28
- * @param {Object} options run configuration options (or defaults) passed via axe.run
29
- * @return {Object} configuration
30
- */
31
- axe.utils.getPreloadConfig = function getPreloadConfig(options) {
32
- const { assets, timeout } = axe.constants.preload;
33
- const config = {
34
- assets,
35
- timeout
36
- };
37
-
38
- // if no `preload` is configured via `options` - return default config
39
- if (!options.preload) {
40
- return config;
41
- }
42
-
43
- // if type is boolean
44
- if (typeof options.preload === 'boolean') {
45
- return config;
46
- }
47
-
48
- // check if requested assets to preload are valid items
49
- const areRequestedAssetsValid = options.preload.assets.every(a =>
50
- assets.includes(a.toLowerCase())
51
- );
52
-
53
- if (!areRequestedAssetsValid) {
54
- throw new Error(
55
- `Requested assets, not supported. ` +
56
- `Supported assets are: ${assets.join(', ')}.`
57
- );
58
- }
59
-
60
- // unique assets to load, in case user had requested same asset type many times.
61
- config.assets = axe.utils.uniqueArray(
62
- options.preload.assets.map(a => a.toLowerCase()),
63
- []
64
- );
65
-
66
- if (
67
- options.preload.timeout &&
68
- typeof options.preload.timeout === 'number' &&
69
- !isNaN(options.preload.timeout)
70
- ) {
71
- config.timeout = options.preload.timeout;
72
- }
73
- return config;
74
- };
75
-
76
- /**
77
- * Returns a Promise with results of all requested preload(able) assets. eg: ['cssom'].
78
- *
79
- * @param {Object} options run configuration options (or defaults) passed via axe.run
80
- * @return {Object} Promise
81
- */
82
- axe.utils.preload = function preload(options) {
83
- const preloadFunctionsMap = {
84
- cssom: axe.utils.preloadCssom,
85
- media: axe.utils.preloadMedia
86
- };
87
-
88
- const shouldPreload = axe.utils.shouldPreload(options);
89
- if (!shouldPreload) {
90
- return Promise.resolve();
91
- }
92
-
93
- return new Promise((resolve, reject) => {
94
- const { assets, timeout } = axe.utils.getPreloadConfig(options);
95
-
96
- /**
97
- * Start `timeout` timer for preloading assets
98
- * -> reject if allowed time expires.
99
- */
100
- const preloadTimeout = setTimeout(
101
- () => reject(new Error(`Preload assets timed out.`)),
102
- timeout
103
- );
104
-
105
- /**
106
- * Fetch requested `assets`
107
- */
108
- Promise.all(
109
- assets.map(asset =>
110
- preloadFunctionsMap[asset](options).then(results => {
111
- return {
112
- [asset]: results
113
- };
114
- })
115
- )
116
- )
117
- .then(results => {
118
- /**
119
- * Combine array of results into an object map
120
- *
121
- * From ->
122
- * [{cssom: [...], aom: [...]}]
123
- * To ->
124
- * {
125
- * cssom: [...]
126
- * aom: [...]
127
- * }
128
- */
129
- const preloadAssets = results.reduce((out, result) => {
130
- return {
131
- ...out,
132
- ...result
133
- };
134
- }, {});
135
-
136
- clearTimeout(preloadTimeout);
137
- resolve(preloadAssets);
138
- })
139
- .catch(err => {
140
- clearTimeout(preloadTimeout);
141
- reject(err);
142
- });
143
- });
144
- };
@@ -1,72 +0,0 @@
1
- /* global helpers */
2
- const dataRegex = /\$\{\s?data\s?\}/g;
3
-
4
- /**
5
- * Replace a placeholder with the value of a data string or object
6
- * @param {String} str
7
- * @param {String|Object} data
8
- */
9
- function substitute(str, data) {
10
- // replace all instances of ${ data } with the value of the string
11
- if (typeof data === 'string') {
12
- return str.replace(dataRegex, data);
13
- }
14
-
15
- // replace all instances of ${ data[prop] } with the value of the property
16
- for (const prop in data) {
17
- if (data.hasOwnProperty(prop)) {
18
- const regex = new RegExp('\\${\\s?data\\.' + prop + '\\s?}', 'g');
19
- str = str.replace(regex, data[prop]);
20
- }
21
- }
22
-
23
- return str;
24
- }
25
-
26
- /**
27
- * Process a metadata message.
28
- * @param {String|Object} message
29
- * @param {Object} data
30
- * @return {String}
31
- */
32
- axe.utils.processMessage = function processMessage(message, data) {
33
- if (!message) {
34
- return;
35
- }
36
-
37
- // data as array
38
- if (Array.isArray(data)) {
39
- data.values = data.join(', ');
40
-
41
- if (
42
- typeof message.singular === 'string' &&
43
- typeof message.plural === 'string'
44
- ) {
45
- const str = data.length === 1 ? message.singular : message.plural;
46
- return substitute(str, data);
47
- }
48
-
49
- // no singular/plural message so just pass data
50
- return substitute(message, data);
51
- }
52
-
53
- // message is a string that uses data as a string or object properties
54
- if (typeof message === 'string') {
55
- return substitute(message, data);
56
- }
57
-
58
- // message is an object that uses value of data to determine message
59
- if (typeof data === 'string') {
60
- const str = message[data];
61
- return substitute(str, data);
62
- }
63
-
64
- // message uses value of data property to determine message
65
- let str = message.default || helpers.incompleteFallbackMessage();
66
-
67
- if (data && data.messageKey && message[data.messageKey]) {
68
- str = message[data.messageKey];
69
- }
70
-
71
- return processMessage(str, data);
72
- };
@@ -1,106 +0,0 @@
1
- /* global helpers */
2
- /**
3
- * Construct incomplete message from check.data
4
- * @param {Object} checkData Check result with reason specified
5
- * @param {Object} messages Source data object with message options
6
- * @return {String}
7
- * @private
8
- */
9
- function getIncompleteReason(checkData, messages) {
10
- function getDefaultMsg(messages) {
11
- if (messages.incomplete && messages.incomplete.default) {
12
- // fall back to the default message if no reason specified
13
- return messages.incomplete.default;
14
- } else {
15
- return helpers.incompleteFallbackMessage();
16
- }
17
- }
18
- if (checkData && checkData.missingData) {
19
- try {
20
- var msg = messages.incomplete[checkData.missingData[0].reason];
21
- if (!msg) {
22
- throw new Error();
23
- }
24
- return msg;
25
- } catch (e) {
26
- if (typeof checkData.missingData === 'string') {
27
- // return a string with the appropriate reason
28
- return messages.incomplete[checkData.missingData];
29
- } else {
30
- return getDefaultMsg(messages);
31
- }
32
- }
33
- } else if (checkData && checkData.messageKey) {
34
- return messages.incomplete[checkData.messageKey];
35
- } else {
36
- return getDefaultMsg(messages);
37
- }
38
- }
39
-
40
- /**
41
- * Extend checksData with the correct result message
42
- * @param {Object} checksData The check result data
43
- * @param {Boolean} shouldBeTrue Result of pass/fail check run
44
- * @return {Function}
45
- * @private
46
- */
47
- function extender(checksData, shouldBeTrue) {
48
- 'use strict';
49
- return function(check) {
50
- var sourceData = checksData[check.id] || {};
51
- var messages = sourceData.messages || {};
52
- var data = Object.assign({}, sourceData);
53
- delete data.messages;
54
- if (check.result === undefined) {
55
- // handle old doT template
56
- if (
57
- typeof messages.incomplete === 'object' &&
58
- !Array.isArray(check.data)
59
- ) {
60
- data.message = getIncompleteReason(check.data, messages);
61
- }
62
-
63
- // fallback to new process message style
64
- if (!data.message) {
65
- data.message = messages.incomplete;
66
- }
67
- } else {
68
- data.message =
69
- check.result === shouldBeTrue ? messages.pass : messages.fail;
70
- }
71
-
72
- // don't process doT template functions
73
- if (typeof data.message !== 'function') {
74
- data.message = axe.utils.processMessage(data.message, check.data);
75
- }
76
-
77
- axe.utils.extendMetaData(check, data);
78
- };
79
- }
80
-
81
- /**
82
- * Publish metadata from axe._audit.data
83
- * @param {RuleResult} result Result to publish to
84
- * @private
85
- */
86
- axe.utils.publishMetaData = function(ruleResult) {
87
- 'use strict';
88
-
89
- var checksData = axe._audit.data.checks || {};
90
- var rulesData = axe._audit.data.rules || {};
91
- var rule = axe.utils.findBy(axe._audit.rules, 'id', ruleResult.id) || {};
92
-
93
- ruleResult.tags = axe.utils.clone(rule.tags || []);
94
-
95
- var shouldBeTrue = extender(checksData, true);
96
- var shouldBeFalse = extender(checksData, false);
97
- ruleResult.nodes.forEach(function(detail) {
98
- detail.any.forEach(shouldBeTrue);
99
- detail.all.forEach(shouldBeTrue);
100
- detail.none.forEach(shouldBeFalse);
101
- });
102
- axe.utils.extendMetaData(
103
- ruleResult,
104
- axe.utils.clone(rulesData[ruleResult.id] || {})
105
- );
106
- };