govuk_publishing_components 30.4.0 → 30.5.1

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 (653) 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/_layout-super-navigation-header.scss +59 -10
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -4
  9. data/app/models/govuk_publishing_components/component_example.rb +2 -3
  10. data/app/views/govuk_publishing_components/component_guide/show.html.erb +28 -27
  11. data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb +6 -2
  12. data/config/locales/en.yml +8 -8
  13. data/lib/govuk_publishing_components/version.rb +1 -1
  14. data/node_modules/axe-core/README.md +83 -53
  15. data/node_modules/axe-core/axe.d.ts +403 -224
  16. data/node_modules/axe-core/axe.js +23281 -21919
  17. data/node_modules/axe-core/axe.min.js +3 -3
  18. data/node_modules/axe-core/locales/da.json +795 -780
  19. data/node_modules/axe-core/locales/de.json +932 -621
  20. data/node_modules/axe-core/locales/es.json +786 -771
  21. data/node_modules/axe-core/locales/eu.json +787 -0
  22. data/node_modules/axe-core/locales/fr.json +982 -840
  23. data/node_modules/axe-core/locales/ja.json +988 -880
  24. data/node_modules/axe-core/locales/ko.json +999 -775
  25. data/node_modules/axe-core/locales/nl.json +46 -34
  26. data/node_modules/axe-core/locales/pl.json +965 -0
  27. data/node_modules/axe-core/locales/pt_BR.json +966 -880
  28. data/node_modules/axe-core/package.json +189 -145
  29. data/node_modules/axe-core/sri-history.json +312 -192
  30. data/node_modules/govuk-frontend/govuk/all.js +64 -44
  31. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +1 -1
  32. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +3 -13
  33. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +12 -12
  34. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +5 -1
  35. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +1 -1
  36. data/node_modules/govuk-frontend/govuk/components/details/details.js +8 -20
  37. data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +6 -0
  38. data/node_modules/govuk-frontend/govuk/components/details/template.njk +1 -1
  39. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +9 -0
  40. data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +6 -0
  41. data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +2 -2
  42. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +59 -20
  43. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +40 -0
  44. data/node_modules/govuk-frontend/govuk/components/footer/template.njk +17 -7
  45. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +14 -21
  46. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +11 -11
  47. data/node_modules/govuk-frontend/govuk/components/header/header.js +53 -11
  48. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +2 -2
  49. data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
  50. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +9 -10
  51. data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +6 -0
  52. data/node_modules/govuk-frontend/govuk/components/inset-text/template.njk +1 -1
  53. data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +6 -0
  54. data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +2 -2
  55. data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +6 -0
  56. data/node_modules/govuk-frontend/govuk/components/panel/template.njk +2 -2
  57. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +6 -0
  58. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +15 -1
  59. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +37 -10
  60. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +69 -4
  61. data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +3 -3
  62. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +13 -13
  63. data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +5 -1
  64. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +14 -7
  65. data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +56 -12
  66. data/node_modules/govuk-frontend/govuk/settings/_spacing.scss +4 -8
  67. data/node_modules/govuk-frontend/govuk/template.njk +5 -5
  68. data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +3 -13
  69. data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +8 -20
  70. data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +53 -11
  71. data/node_modules/govuk-frontend/package.json +1 -1
  72. metadata +6 -598
  73. data/node_modules/axe-core/CHANGELOG.md +0 -1053
  74. data/node_modules/axe-core/CONTRIBUTING.md +0 -187
  75. data/node_modules/axe-core/bower.json +0 -40
  76. data/node_modules/axe-core/doc/API.md +0 -889
  77. data/node_modules/axe-core/doc/accessibility-supported.md +0 -33
  78. data/node_modules/axe-core/doc/act-rules-format.md +0 -37
  79. data/node_modules/axe-core/doc/aria-supported.md +0 -13
  80. data/node_modules/axe-core/doc/backwards-compatibility-doc.md +0 -94
  81. data/node_modules/axe-core/doc/check-message-template.md +0 -124
  82. data/node_modules/axe-core/doc/code-submission-guidelines.md +0 -178
  83. data/node_modules/axe-core/doc/developer-guide.md +0 -514
  84. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/README.md +0 -13
  85. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/axe-cdp.js +0 -81
  86. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/package.json +0 -11
  87. data/node_modules/axe-core/doc/examples/html-handlebars.md +0 -164
  88. data/node_modules/axe-core/doc/examples/jasmine/README.md +0 -35
  89. data/node_modules/axe-core/doc/examples/jasmine/karma.conf.js +0 -29
  90. data/node_modules/axe-core/doc/examples/jasmine/package.json +0 -21
  91. data/node_modules/axe-core/doc/examples/jasmine/spec/a11y.js +0 -36
  92. data/node_modules/axe-core/doc/examples/jest_react/README.md +0 -41
  93. data/node_modules/axe-core/doc/examples/jest_react/link.js +0 -7
  94. data/node_modules/axe-core/doc/examples/jest_react/link.test.js +0 -24
  95. data/node_modules/axe-core/doc/examples/jest_react/package.json +0 -28
  96. data/node_modules/axe-core/doc/examples/jest_react/test-helpers.js +0 -21
  97. data/node_modules/axe-core/doc/examples/jsdom/package.json +0 -15
  98. data/node_modules/axe-core/doc/examples/mocha/README.md +0 -35
  99. data/node_modules/axe-core/doc/examples/mocha/karma.conf.js +0 -29
  100. data/node_modules/axe-core/doc/examples/mocha/package.json +0 -22
  101. data/node_modules/axe-core/doc/examples/phantomjs/README.md +0 -17
  102. data/node_modules/axe-core/doc/examples/phantomjs/axe-phantom.js +0 -53
  103. data/node_modules/axe-core/doc/examples/phantomjs/package.json +0 -19
  104. data/node_modules/axe-core/doc/examples/puppeteer/README.md +0 -12
  105. data/node_modules/axe-core/doc/examples/puppeteer/axe-puppeteer.js +0 -60
  106. data/node_modules/axe-core/doc/examples/puppeteer/package.json +0 -13
  107. data/node_modules/axe-core/doc/examples/qunit/README.md +0 -37
  108. data/node_modules/axe-core/doc/examples/qunit/package.json +0 -21
  109. data/node_modules/axe-core/doc/examples/test-examples.js +0 -32
  110. data/node_modules/axe-core/doc/plugins.md +0 -123
  111. data/node_modules/axe-core/doc/projects.md +0 -48
  112. data/node_modules/axe-core/doc/rule-descriptions.md +0 -129
  113. data/node_modules/axe-core/doc/rule-development.md +0 -123
  114. data/node_modules/axe-core/doc/rule-proposal.md +0 -106
  115. data/node_modules/axe-core/lib/checks/aria/abstractrole.js +0 -10
  116. data/node_modules/axe-core/lib/checks/aria/abstractrole.json +0 -14
  117. data/node_modules/axe-core/lib/checks/aria/allowed-attr.js +0 -39
  118. data/node_modules/axe-core/lib/checks/aria/allowed-attr.json +0 -14
  119. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.js +0 -28
  120. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.json +0 -22
  121. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.js +0 -1
  122. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.json +0 -11
  123. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.js +0 -14
  124. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.json +0 -23
  125. data/node_modules/axe-core/lib/checks/aria/errormessage.js +0 -33
  126. data/node_modules/axe-core/lib/checks/aria/errormessage.json +0 -14
  127. data/node_modules/axe-core/lib/checks/aria/fallbackrole.js +0 -1
  128. data/node_modules/axe-core/lib/checks/aria/fallbackrole.json +0 -11
  129. data/node_modules/axe-core/lib/checks/aria/has-widget-role.js +0 -6
  130. data/node_modules/axe-core/lib/checks/aria/has-widget-role.json +0 -12
  131. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.js +0 -6
  132. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.json +0 -12
  133. data/node_modules/axe-core/lib/checks/aria/invalidrole.js +0 -17
  134. data/node_modules/axe-core/lib/checks/aria/invalidrole.json +0 -14
  135. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.js +0 -21
  136. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.json +0 -11
  137. data/node_modules/axe-core/lib/checks/aria/required-attr.js +0 -53
  138. data/node_modules/axe-core/lib/checks/aria/required-attr.json +0 -14
  139. data/node_modules/axe-core/lib/checks/aria/required-children.js +0 -154
  140. data/node_modules/axe-core/lib/checks/aria/required-children.json +0 -32
  141. data/node_modules/axe-core/lib/checks/aria/required-parent.js +0 -87
  142. data/node_modules/axe-core/lib/checks/aria/required-parent.json +0 -14
  143. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.js +0 -39
  144. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.json +0 -11
  145. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.js +0 -1
  146. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.json +0 -11
  147. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.js +0 -80
  148. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.json +0 -19
  149. data/node_modules/axe-core/lib/checks/aria/valid-attr.js +0 -25
  150. data/node_modules/axe-core/lib/checks/aria/valid-attr.json +0 -15
  151. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.js +0 -62
  152. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.json +0 -12
  153. data/node_modules/axe-core/lib/checks/color/color-contrast.js +0 -86
  154. data/node_modules/axe-core/lib/checks/color/color-contrast.json +0 -30
  155. data/node_modules/axe-core/lib/checks/color/link-in-text-block.js +0 -85
  156. data/node_modules/axe-core/lib/checks/color/link-in-text-block.json +0 -19
  157. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.js +0 -67
  158. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.json +0 -11
  159. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.js +0 -2
  160. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.json +0 -11
  161. data/node_modules/axe-core/lib/checks/forms/fieldset-after.js +0 -25
  162. data/node_modules/axe-core/lib/checks/forms/fieldset.js +0 -109
  163. data/node_modules/axe-core/lib/checks/forms/fieldset.json +0 -20
  164. data/node_modules/axe-core/lib/checks/forms/group-labelledby-after.js +0 -16
  165. data/node_modules/axe-core/lib/checks/forms/group-labelledby.js +0 -66
  166. data/node_modules/axe-core/lib/checks/forms/group-labelledby.json +0 -17
  167. data/node_modules/axe-core/lib/checks/keyboard/accesskeys-after.js +0 -19
  168. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.js +0 -5
  169. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.json +0 -12
  170. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.js +0 -16
  171. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.json +0 -11
  172. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.js +0 -30
  173. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.json +0 -11
  174. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.js +0 -12
  175. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.json +0 -11
  176. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.js +0 -14
  177. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.json +0 -11
  178. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.js +0 -6
  179. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.json +0 -11
  180. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.js +0 -30
  181. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.json +0 -11
  182. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.js +0 -18
  183. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.json +0 -11
  184. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm-after.js +0 -11
  185. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm.js +0 -13
  186. data/node_modules/axe-core/lib/checks/keyboard/page-has-heading-one.json +0 -15
  187. data/node_modules/axe-core/lib/checks/keyboard/page-has-main.json +0 -15
  188. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-after.js +0 -2
  189. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-banner.json +0 -16
  190. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-contentinfo.json +0 -16
  191. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-main.json +0 -15
  192. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate.js +0 -36
  193. data/node_modules/axe-core/lib/checks/keyboard/tabindex.js +0 -6
  194. data/node_modules/axe-core/lib/checks/keyboard/tabindex.json +0 -11
  195. data/node_modules/axe-core/lib/checks/label/alt-space-value.js +0 -3
  196. data/node_modules/axe-core/lib/checks/label/alt-space-value.json +0 -11
  197. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.js +0 -22
  198. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.json +0 -11
  199. data/node_modules/axe-core/lib/checks/label/explicit.js +0 -15
  200. data/node_modules/axe-core/lib/checks/label/explicit.json +0 -11
  201. data/node_modules/axe-core/lib/checks/label/help-same-as-label.js +0 -23
  202. data/node_modules/axe-core/lib/checks/label/help-same-as-label.json +0 -12
  203. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.js +0 -12
  204. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.json +0 -11
  205. data/node_modules/axe-core/lib/checks/label/implicit.js +0 -7
  206. data/node_modules/axe-core/lib/checks/label/implicit.json +0 -11
  207. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.js +0 -59
  208. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.json +0 -15
  209. data/node_modules/axe-core/lib/checks/label/multiple-label.js +0 -39
  210. data/node_modules/axe-core/lib/checks/label/multiple-label.json +0 -11
  211. data/node_modules/axe-core/lib/checks/label/title-only.js +0 -5
  212. data/node_modules/axe-core/lib/checks/label/title-only.json +0 -11
  213. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique-after.js +0 -23
  214. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.js +0 -7
  215. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.json +0 -12
  216. data/node_modules/axe-core/lib/checks/language/has-lang.js +0 -20
  217. data/node_modules/axe-core/lib/checks/language/has-lang.json +0 -14
  218. data/node_modules/axe-core/lib/checks/language/valid-lang.js +0 -26
  219. data/node_modules/axe-core/lib/checks/language/valid-lang.json +0 -11
  220. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.js +0 -5
  221. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.json +0 -11
  222. data/node_modules/axe-core/lib/checks/lists/dlitem.js +0 -23
  223. data/node_modules/axe-core/lib/checks/lists/dlitem.json +0 -11
  224. data/node_modules/axe-core/lib/checks/lists/listitem.js +0 -21
  225. data/node_modules/axe-core/lib/checks/lists/listitem.json +0 -14
  226. data/node_modules/axe-core/lib/checks/lists/only-dlitems.js +0 -42
  227. data/node_modules/axe-core/lib/checks/lists/only-dlitems.json +0 -11
  228. data/node_modules/axe-core/lib/checks/lists/only-listitems.js +0 -58
  229. data/node_modules/axe-core/lib/checks/lists/only-listitems.json +0 -14
  230. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.js +0 -22
  231. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.json +0 -11
  232. data/node_modules/axe-core/lib/checks/media/caption.js +0 -8
  233. data/node_modules/axe-core/lib/checks/media/caption.json +0 -11
  234. data/node_modules/axe-core/lib/checks/media/description.js +0 -8
  235. data/node_modules/axe-core/lib/checks/media/description.json +0 -11
  236. data/node_modules/axe-core/lib/checks/media/frame-tested.js +0 -28
  237. data/node_modules/axe-core/lib/checks/media/frame-tested.json +0 -15
  238. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.js +0 -93
  239. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.json +0 -15
  240. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.js +0 -251
  241. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.json +0 -15
  242. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-large.json +0 -15
  243. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-scale.js +0 -55
  244. data/node_modules/axe-core/lib/checks/mobile/meta-viewport.json +0 -14
  245. data/node_modules/axe-core/lib/checks/navigation/header-present.js +0 -4
  246. data/node_modules/axe-core/lib/checks/navigation/header-present.json +0 -11
  247. data/node_modules/axe-core/lib/checks/navigation/heading-order-after.js +0 -14
  248. data/node_modules/axe-core/lib/checks/navigation/heading-order.js +0 -15
  249. data/node_modules/axe-core/lib/checks/navigation/heading-order.json +0 -12
  250. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose-after.js +0 -100
  251. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.js +0 -31
  252. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.json +0 -12
  253. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.js +0 -4
  254. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.json +0 -11
  255. data/node_modules/axe-core/lib/checks/navigation/landmark.js +0 -3
  256. data/node_modules/axe-core/lib/checks/navigation/landmark.json +0 -11
  257. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.js +0 -4
  258. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.json +0 -11
  259. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.js +0 -93
  260. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.json +0 -30
  261. data/node_modules/axe-core/lib/checks/navigation/region.js +0 -107
  262. data/node_modules/axe-core/lib/checks/navigation/region.json +0 -11
  263. data/node_modules/axe-core/lib/checks/navigation/skip-link.js +0 -5
  264. data/node_modules/axe-core/lib/checks/navigation/skip-link.json +0 -12
  265. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title-after.js +0 -9
  266. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.js +0 -6
  267. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.json +0 -12
  268. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-active.json +0 -12
  269. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-after.js +0 -8
  270. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-aria.json +0 -12
  271. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.js +0 -17
  272. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.json +0 -12
  273. data/node_modules/axe-core/lib/checks/shared/aria-label.js +0 -2
  274. data/node_modules/axe-core/lib/checks/shared/aria-label.json +0 -11
  275. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.js +0 -2
  276. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.json +0 -11
  277. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.js +0 -18
  278. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.json +0 -14
  279. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.js +0 -12
  280. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.json +0 -11
  281. data/node_modules/axe-core/lib/checks/shared/doc-has-title.js +0 -2
  282. data/node_modules/axe-core/lib/checks/shared/doc-has-title.json +0 -11
  283. data/node_modules/axe-core/lib/checks/shared/exists.js +0 -1
  284. data/node_modules/axe-core/lib/checks/shared/exists.json +0 -11
  285. data/node_modules/axe-core/lib/checks/shared/has-alt.js +0 -6
  286. data/node_modules/axe-core/lib/checks/shared/has-alt.json +0 -11
  287. data/node_modules/axe-core/lib/checks/shared/has-visible-text.js +0 -1
  288. data/node_modules/axe-core/lib/checks/shared/has-visible-text.json +0 -11
  289. data/node_modules/axe-core/lib/checks/shared/is-on-screen.js +0 -4
  290. data/node_modules/axe-core/lib/checks/shared/is-on-screen.json +0 -11
  291. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.js +0 -2
  292. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.json +0 -11
  293. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.js +0 -15
  294. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.json +0 -14
  295. data/node_modules/axe-core/lib/checks/shared/non-empty-title.js +0 -2
  296. data/node_modules/axe-core/lib/checks/shared/non-empty-title.json +0 -11
  297. data/node_modules/axe-core/lib/checks/shared/non-empty-value.js +0 -2
  298. data/node_modules/axe-core/lib/checks/shared/non-empty-value.json +0 -11
  299. data/node_modules/axe-core/lib/checks/shared/role-none.js +0 -1
  300. data/node_modules/axe-core/lib/checks/shared/role-none.json +0 -11
  301. data/node_modules/axe-core/lib/checks/shared/role-presentation.js +0 -1
  302. data/node_modules/axe-core/lib/checks/shared/role-presentation.json +0 -11
  303. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.js +0 -4
  304. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.json +0 -11
  305. data/node_modules/axe-core/lib/checks/tables/caption-faked.js +0 -10
  306. data/node_modules/axe-core/lib/checks/tables/caption-faked.json +0 -11
  307. data/node_modules/axe-core/lib/checks/tables/has-caption.js +0 -1
  308. data/node_modules/axe-core/lib/checks/tables/has-caption.json +0 -12
  309. data/node_modules/axe-core/lib/checks/tables/has-summary.js +0 -1
  310. data/node_modules/axe-core/lib/checks/tables/has-summary.json +0 -12
  311. data/node_modules/axe-core/lib/checks/tables/has-th.js +0 -31
  312. data/node_modules/axe-core/lib/checks/tables/has-th.json +0 -12
  313. data/node_modules/axe-core/lib/checks/tables/headers-visible-text.js +0 -30
  314. data/node_modules/axe-core/lib/checks/tables/html5-scope.js +0 -5
  315. data/node_modules/axe-core/lib/checks/tables/html5-scope.json +0 -11
  316. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.js +0 -7
  317. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.json +0 -11
  318. data/node_modules/axe-core/lib/checks/tables/scope-value.js +0 -5
  319. data/node_modules/axe-core/lib/checks/tables/scope-value.json +0 -11
  320. data/node_modules/axe-core/lib/checks/tables/td-has-header.js +0 -30
  321. data/node_modules/axe-core/lib/checks/tables/td-has-header.json +0 -11
  322. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.js +0 -61
  323. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.json +0 -12
  324. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.js +0 -76
  325. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.json +0 -12
  326. data/node_modules/axe-core/lib/checks/tables/th-single-row-column.js +0 -39
  327. data/node_modules/axe-core/lib/checks/visibility/hidden-content.js +0 -21
  328. data/node_modules/axe-core/lib/checks/visibility/hidden-content.json +0 -12
  329. data/node_modules/axe-core/lib/commons/aria/arialabel-text.js +0 -18
  330. data/node_modules/axe-core/lib/commons/aria/arialabelledby-text.js +0 -52
  331. data/node_modules/axe-core/lib/commons/aria/attributes.js +0 -45
  332. data/node_modules/axe-core/lib/commons/aria/get-element-unallowed-roles.js +0 -113
  333. data/node_modules/axe-core/lib/commons/aria/get-owned-virtual.js +0 -24
  334. data/node_modules/axe-core/lib/commons/aria/get-role.js +0 -44
  335. data/node_modules/axe-core/lib/commons/aria/index.js +0 -2424
  336. data/node_modules/axe-core/lib/commons/aria/is-accessible-ref.js +0 -59
  337. data/node_modules/axe-core/lib/commons/aria/is-aria-role-allowed-on-element.js +0 -41
  338. data/node_modules/axe-core/lib/commons/aria/is-unsupported-role.js +0 -14
  339. data/node_modules/axe-core/lib/commons/aria/label-virtual.js +0 -54
  340. data/node_modules/axe-core/lib/commons/aria/named-from-contents.js +0 -39
  341. data/node_modules/axe-core/lib/commons/aria/roles.js +0 -208
  342. data/node_modules/axe-core/lib/commons/aria/validate-attr-value.js +0 -62
  343. data/node_modules/axe-core/lib/commons/color/center-point-of-rect.js +0 -30
  344. data/node_modules/axe-core/lib/commons/color/contrast.js +0 -178
  345. data/node_modules/axe-core/lib/commons/color/element-has-image.js +0 -36
  346. data/node_modules/axe-core/lib/commons/color/element-is-distinct.js +0 -88
  347. data/node_modules/axe-core/lib/commons/color/get-background-color.js +0 -285
  348. data/node_modules/axe-core/lib/commons/color/get-foreground-color.js +0 -61
  349. data/node_modules/axe-core/lib/commons/color/get-own-background-color.js +0 -22
  350. data/node_modules/axe-core/lib/commons/color/incomplete-data.js +0 -50
  351. data/node_modules/axe-core/lib/commons/color/index.js +0 -8
  352. data/node_modules/axe-core/lib/commons/dom/elements-below-floating.js +0 -39
  353. data/node_modules/axe-core/lib/commons/dom/find-elms-in-context.js +0 -28
  354. data/node_modules/axe-core/lib/commons/dom/find-up.js +0 -63
  355. data/node_modules/axe-core/lib/commons/dom/get-composed-parent.js +0 -25
  356. data/node_modules/axe-core/lib/commons/dom/get-element-by-reference.js +0 -34
  357. data/node_modules/axe-core/lib/commons/dom/get-element-coordinates.js +0 -38
  358. data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +0 -589
  359. data/node_modules/axe-core/lib/commons/dom/get-root-node.js +0 -12
  360. data/node_modules/axe-core/lib/commons/dom/get-scroll-offset.js +0 -33
  361. data/node_modules/axe-core/lib/commons/dom/get-tabbable-elements.js +0 -24
  362. data/node_modules/axe-core/lib/commons/dom/get-viewport-size.js +0 -37
  363. data/node_modules/axe-core/lib/commons/dom/has-content-virtual.js +0 -75
  364. data/node_modules/axe-core/lib/commons/dom/idrefs.js +0 -36
  365. data/node_modules/axe-core/lib/commons/dom/index.js +0 -9
  366. data/node_modules/axe-core/lib/commons/dom/is-focusable.js +0 -95
  367. data/node_modules/axe-core/lib/commons/dom/is-hidden-with-css.js +0 -73
  368. data/node_modules/axe-core/lib/commons/dom/is-html5.js +0 -17
  369. data/node_modules/axe-core/lib/commons/dom/is-in-text-block.js +0 -94
  370. data/node_modules/axe-core/lib/commons/dom/is-modal-open.js +0 -98
  371. data/node_modules/axe-core/lib/commons/dom/is-node.js +0 -13
  372. data/node_modules/axe-core/lib/commons/dom/is-offscreen.js +0 -62
  373. data/node_modules/axe-core/lib/commons/dom/is-skip-link.js +0 -45
  374. data/node_modules/axe-core/lib/commons/dom/is-visible.js +0 -176
  375. data/node_modules/axe-core/lib/commons/dom/is-visual-content.js +0 -49
  376. data/node_modules/axe-core/lib/commons/dom/shadow-elements-from-point.js +0 -42
  377. data/node_modules/axe-core/lib/commons/dom/url-props-from-attribute.js +0 -152
  378. data/node_modules/axe-core/lib/commons/dom/visually-contains.js +0 -111
  379. data/node_modules/axe-core/lib/commons/dom/visually-overlaps.js +0 -46
  380. data/node_modules/axe-core/lib/commons/forms/index.js +0 -8
  381. data/node_modules/axe-core/lib/commons/forms/is-aria-combobox.js +0 -13
  382. data/node_modules/axe-core/lib/commons/forms/is-aria-listbox.js +0 -13
  383. data/node_modules/axe-core/lib/commons/forms/is-aria-range.js +0 -14
  384. data/node_modules/axe-core/lib/commons/forms/is-aria-textbox.js +0 -13
  385. data/node_modules/axe-core/lib/commons/forms/is-native-select.js +0 -13
  386. data/node_modules/axe-core/lib/commons/forms/is-native-textbox.js +0 -28
  387. data/node_modules/axe-core/lib/commons/index.js +0 -11
  388. data/node_modules/axe-core/lib/commons/intro.stub +0 -1
  389. data/node_modules/axe-core/lib/commons/matches/attributes.js +0 -27
  390. data/node_modules/axe-core/lib/commons/matches/condition.js +0 -19
  391. data/node_modules/axe-core/lib/commons/matches/from-definition.js +0 -52
  392. data/node_modules/axe-core/lib/commons/matches/from-function.js +0 -38
  393. data/node_modules/axe-core/lib/commons/matches/from-primative.js +0 -30
  394. data/node_modules/axe-core/lib/commons/matches/index.js +0 -39
  395. data/node_modules/axe-core/lib/commons/matches/node-name.js +0 -24
  396. data/node_modules/axe-core/lib/commons/matches/properties.js +0 -28
  397. data/node_modules/axe-core/lib/commons/outro.stub +0 -2
  398. data/node_modules/axe-core/lib/commons/table/get-all-cells.js +0 -28
  399. data/node_modules/axe-core/lib/commons/table/get-cell-position.js +0 -28
  400. data/node_modules/axe-core/lib/commons/table/get-headers.js +0 -79
  401. data/node_modules/axe-core/lib/commons/table/get-scope.js +0 -54
  402. data/node_modules/axe-core/lib/commons/table/index.js +0 -9
  403. data/node_modules/axe-core/lib/commons/table/is-column-header.js +0 -13
  404. data/node_modules/axe-core/lib/commons/table/is-data-cell.js +0 -22
  405. data/node_modules/axe-core/lib/commons/table/is-data-table.js +0 -189
  406. data/node_modules/axe-core/lib/commons/table/is-header.js +0 -22
  407. data/node_modules/axe-core/lib/commons/table/is-row-header.js +0 -13
  408. data/node_modules/axe-core/lib/commons/table/to-grid.js +0 -38
  409. data/node_modules/axe-core/lib/commons/table/traverse.js +0 -78
  410. data/node_modules/axe-core/lib/commons/text/accessible-text-virtual.js +0 -152
  411. data/node_modules/axe-core/lib/commons/text/form-control-value.js +0 -192
  412. data/node_modules/axe-core/lib/commons/text/index.js +0 -8
  413. data/node_modules/axe-core/lib/commons/text/is-human-interpretable.js +0 -51
  414. data/node_modules/axe-core/lib/commons/text/is-icon-ligature.js +0 -210
  415. data/node_modules/axe-core/lib/commons/text/is-valid-autocomplete.js +0 -117
  416. data/node_modules/axe-core/lib/commons/text/label-text.js +0 -58
  417. data/node_modules/axe-core/lib/commons/text/label-virtual.js +0 -53
  418. data/node_modules/axe-core/lib/commons/text/native-element-types.js +0 -100
  419. data/node_modules/axe-core/lib/commons/text/native-text-alternative.js +0 -50
  420. data/node_modules/axe-core/lib/commons/text/native-text-methods.js +0 -122
  421. data/node_modules/axe-core/lib/commons/text/sanitize.js +0 -18
  422. data/node_modules/axe-core/lib/commons/text/subtree-text.js +0 -89
  423. data/node_modules/axe-core/lib/commons/text/title-text.js +0 -33
  424. data/node_modules/axe-core/lib/commons/text/unicode.js +0 -147
  425. data/node_modules/axe-core/lib/commons/text/unsupported.js +0 -5
  426. data/node_modules/axe-core/lib/commons/text/visible-text-nodes.js +0 -25
  427. data/node_modules/axe-core/lib/commons/text/visible-virtual.js +0 -46
  428. data/node_modules/axe-core/lib/commons/utils/index.js +0 -10
  429. data/node_modules/axe-core/lib/core/base/audit.js +0 -781
  430. data/node_modules/axe-core/lib/core/base/cache.js +0 -33
  431. data/node_modules/axe-core/lib/core/base/check-result.js +0 -33
  432. data/node_modules/axe-core/lib/core/base/check.js +0 -170
  433. data/node_modules/axe-core/lib/core/base/context.js +0 -274
  434. data/node_modules/axe-core/lib/core/base/rule-result.js +0 -39
  435. data/node_modules/axe-core/lib/core/base/rule.js +0 -560
  436. data/node_modules/axe-core/lib/core/base/virtual-node/abstract-virtual-node.js +0 -40
  437. data/node_modules/axe-core/lib/core/base/virtual-node/serial-virtual-node.js +0 -88
  438. data/node_modules/axe-core/lib/core/base/virtual-node/virtual-node.js +0 -136
  439. data/node_modules/axe-core/lib/core/constants.js +0 -76
  440. data/node_modules/axe-core/lib/core/imports/index.js +0 -51
  441. data/node_modules/axe-core/lib/core/index.js +0 -43
  442. data/node_modules/axe-core/lib/core/log.js +0 -12
  443. data/node_modules/axe-core/lib/core/public/cleanup-plugins.js +0 -53
  444. data/node_modules/axe-core/lib/core/public/configure.js +0 -110
  445. data/node_modules/axe-core/lib/core/public/get-rules.js +0 -29
  446. data/node_modules/axe-core/lib/core/public/load.js +0 -66
  447. data/node_modules/axe-core/lib/core/public/plugins.js +0 -47
  448. data/node_modules/axe-core/lib/core/public/reporter.js +0 -24
  449. data/node_modules/axe-core/lib/core/public/reset.js +0 -12
  450. data/node_modules/axe-core/lib/core/public/run-rules.js +0 -96
  451. data/node_modules/axe-core/lib/core/public/run-virtual-rule.js +0 -50
  452. data/node_modules/axe-core/lib/core/public/run.js +0 -159
  453. data/node_modules/axe-core/lib/core/reporters/helpers/failure-summary.js +0 -35
  454. data/node_modules/axe-core/lib/core/reporters/helpers/get-environment-data.js +0 -39
  455. data/node_modules/axe-core/lib/core/reporters/helpers/incomplete-fallback-msg.js +0 -13
  456. data/node_modules/axe-core/lib/core/reporters/helpers/index.js +0 -3
  457. data/node_modules/axe-core/lib/core/reporters/helpers/process-aggregate.js +0 -102
  458. data/node_modules/axe-core/lib/core/reporters/na.js +0 -24
  459. data/node_modules/axe-core/lib/core/reporters/no-passes.js +0 -18
  460. data/node_modules/axe-core/lib/core/reporters/raw-env.js +0 -12
  461. data/node_modules/axe-core/lib/core/reporters/raw.js +0 -32
  462. data/node_modules/axe-core/lib/core/reporters/v1.js +0 -29
  463. data/node_modules/axe-core/lib/core/reporters/v2.js +0 -22
  464. data/node_modules/axe-core/lib/core/utils/aggregate.js +0 -19
  465. data/node_modules/axe-core/lib/core/utils/aggregateChecks.js +0 -85
  466. data/node_modules/axe-core/lib/core/utils/aggregateNodeResults.js +0 -61
  467. data/node_modules/axe-core/lib/core/utils/aggregateResult.js +0 -37
  468. data/node_modules/axe-core/lib/core/utils/are-styles-set.js +0 -21
  469. data/node_modules/axe-core/lib/core/utils/assert.js +0 -12
  470. data/node_modules/axe-core/lib/core/utils/check-helper.js +0 -38
  471. data/node_modules/axe-core/lib/core/utils/clone.js +0 -27
  472. data/node_modules/axe-core/lib/core/utils/collect-results-from-frames.js +0 -127
  473. data/node_modules/axe-core/lib/core/utils/contains.js +0 -44
  474. data/node_modules/axe-core/lib/core/utils/css-parser.js +0 -7
  475. data/node_modules/axe-core/lib/core/utils/dq-element.js +0 -97
  476. data/node_modules/axe-core/lib/core/utils/element-matches.js +0 -43
  477. data/node_modules/axe-core/lib/core/utils/escape-selector.js +0 -78
  478. data/node_modules/axe-core/lib/core/utils/extend-meta-data.js +0 -17
  479. data/node_modules/axe-core/lib/core/utils/finalize-result.js +0 -11
  480. data/node_modules/axe-core/lib/core/utils/find-by.js +0 -14
  481. data/node_modules/axe-core/lib/core/utils/flattened-tree.js +0 -156
  482. data/node_modules/axe-core/lib/core/utils/get-all-checks.js +0 -12
  483. data/node_modules/axe-core/lib/core/utils/get-base-lang.js +0 -16
  484. data/node_modules/axe-core/lib/core/utils/get-check-message.js +0 -21
  485. data/node_modules/axe-core/lib/core/utils/get-check-option.js +0 -39
  486. data/node_modules/axe-core/lib/core/utils/get-friendly-uri-end.js +0 -144
  487. data/node_modules/axe-core/lib/core/utils/get-node-attributes.js +0 -21
  488. data/node_modules/axe-core/lib/core/utils/get-root-node.js +0 -17
  489. data/node_modules/axe-core/lib/core/utils/get-scroll.js +0 -39
  490. data/node_modules/axe-core/lib/core/utils/get-selector.js +0 -409
  491. data/node_modules/axe-core/lib/core/utils/get-stylesheet-factory.js +0 -51
  492. data/node_modules/axe-core/lib/core/utils/get-xpath.js +0 -83
  493. data/node_modules/axe-core/lib/core/utils/index.js +0 -10
  494. data/node_modules/axe-core/lib/core/utils/inject-style.js +0 -38
  495. data/node_modules/axe-core/lib/core/utils/is-hidden.js +0 -52
  496. data/node_modules/axe-core/lib/core/utils/is-html-element.js +0 -135
  497. data/node_modules/axe-core/lib/core/utils/is-shadow-root.js +0 -40
  498. data/node_modules/axe-core/lib/core/utils/is-xhtml.js +0 -14
  499. data/node_modules/axe-core/lib/core/utils/matches.js +0 -263
  500. data/node_modules/axe-core/lib/core/utils/memoize.js +0 -17
  501. data/node_modules/axe-core/lib/core/utils/merge-results.js +0 -116
  502. data/node_modules/axe-core/lib/core/utils/node-sorter.js +0 -21
  503. data/node_modules/axe-core/lib/core/utils/parse-crossorigin-stylesheet.js +0 -54
  504. data/node_modules/axe-core/lib/core/utils/parse-sameorigin-stylesheet.js +0 -96
  505. data/node_modules/axe-core/lib/core/utils/parse-stylesheet.js +0 -70
  506. data/node_modules/axe-core/lib/core/utils/performance-timer.js +0 -126
  507. data/node_modules/axe-core/lib/core/utils/pollyfills.js +0 -299
  508. data/node_modules/axe-core/lib/core/utils/preload-cssom.js +0 -253
  509. data/node_modules/axe-core/lib/core/utils/preload-media.js +0 -65
  510. data/node_modules/axe-core/lib/core/utils/preload.js +0 -144
  511. data/node_modules/axe-core/lib/core/utils/process-message.js +0 -72
  512. data/node_modules/axe-core/lib/core/utils/publish-metadata.js +0 -106
  513. data/node_modules/axe-core/lib/core/utils/qsa.js +0 -110
  514. data/node_modules/axe-core/lib/core/utils/queue.js +0 -138
  515. data/node_modules/axe-core/lib/core/utils/respondable.js +0 -261
  516. data/node_modules/axe-core/lib/core/utils/rule-should-run.js +0 -82
  517. data/node_modules/axe-core/lib/core/utils/scroll-state.js +0 -57
  518. data/node_modules/axe-core/lib/core/utils/select.js +0 -135
  519. data/node_modules/axe-core/lib/core/utils/to-array.js +0 -21
  520. data/node_modules/axe-core/lib/core/utils/token-list.js +0 -15
  521. data/node_modules/axe-core/lib/core/utils/uuid.js +0 -244
  522. data/node_modules/axe-core/lib/core/utils/valid-input-type.js +0 -35
  523. data/node_modules/axe-core/lib/core/utils/valid-langs.js +0 -8152
  524. data/node_modules/axe-core/lib/intro.stub +0 -15
  525. data/node_modules/axe-core/lib/misc/any-failure-summary.json +0 -6
  526. data/node_modules/axe-core/lib/misc/incomplete-fallback.json +0 -3
  527. data/node_modules/axe-core/lib/misc/none-failure-summary.json +0 -6
  528. data/node_modules/axe-core/lib/outro.stub +0 -2
  529. data/node_modules/axe-core/lib/rules/accesskeys.json +0 -13
  530. data/node_modules/axe-core/lib/rules/area-alt.json +0 -21
  531. data/node_modules/axe-core/lib/rules/aria-allowed-attr-matches.js +0 -11
  532. data/node_modules/axe-core/lib/rules/aria-allowed-attr.json +0 -12
  533. data/node_modules/axe-core/lib/rules/aria-allowed-role-matches.js +0 -7
  534. data/node_modules/axe-core/lib/rules/aria-allowed-role.json +0 -14
  535. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback-matches.js +0 -10
  536. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback.json +0 -14
  537. data/node_modules/axe-core/lib/rules/aria-form-field-name-matches.js +0 -50
  538. data/node_modules/axe-core/lib/rules/aria-has-attr-matches.js +0 -11
  539. data/node_modules/axe-core/lib/rules/aria-hidden-body.json +0 -13
  540. data/node_modules/axe-core/lib/rules/aria-hidden-focus-matches.js +0 -18
  541. data/node_modules/axe-core/lib/rules/aria-hidden-focus.json +0 -18
  542. data/node_modules/axe-core/lib/rules/aria-input-field-name.json +0 -13
  543. data/node_modules/axe-core/lib/rules/aria-required-attr.json +0 -12
  544. data/node_modules/axe-core/lib/rules/aria-required-children.json +0 -12
  545. data/node_modules/axe-core/lib/rules/aria-required-parent.json +0 -12
  546. data/node_modules/axe-core/lib/rules/aria-roledescription.json +0 -12
  547. data/node_modules/axe-core/lib/rules/aria-roles.json +0 -13
  548. data/node_modules/axe-core/lib/rules/aria-toggle-field-name.json +0 -18
  549. data/node_modules/axe-core/lib/rules/aria-valid-attr-value.json +0 -12
  550. data/node_modules/axe-core/lib/rules/aria-valid-attr.json +0 -12
  551. data/node_modules/axe-core/lib/rules/audio-caption.json +0 -20
  552. data/node_modules/axe-core/lib/rules/autocomplete-matches.js +0 -49
  553. data/node_modules/axe-core/lib/rules/autocomplete-valid.json +0 -12
  554. data/node_modules/axe-core/lib/rules/avoid-inline-spacing.json +0 -12
  555. data/node_modules/axe-core/lib/rules/blink.json +0 -19
  556. data/node_modules/axe-core/lib/rules/button-name.json +0 -25
  557. data/node_modules/axe-core/lib/rules/bypass-matches.js +0 -1
  558. data/node_modules/axe-core/lib/rules/bypass.json +0 -20
  559. data/node_modules/axe-core/lib/rules/checkboxgroup.json +0 -13
  560. data/node_modules/axe-core/lib/rules/color-contrast-matches.js +0 -161
  561. data/node_modules/axe-core/lib/rules/color-contrast.json +0 -13
  562. data/node_modules/axe-core/lib/rules/css-orientation-lock.json +0 -13
  563. data/node_modules/axe-core/lib/rules/data-table-large-matches.js +0 -11
  564. data/node_modules/axe-core/lib/rules/data-table-matches.js +0 -1
  565. data/node_modules/axe-core/lib/rules/definition-list.json +0 -13
  566. data/node_modules/axe-core/lib/rules/dlitem.json +0 -13
  567. data/node_modules/axe-core/lib/rules/document-title.json +0 -13
  568. data/node_modules/axe-core/lib/rules/duplicate-id-active-matches.js +0 -8
  569. data/node_modules/axe-core/lib/rules/duplicate-id-active.json +0 -14
  570. data/node_modules/axe-core/lib/rules/duplicate-id-aria-matches.js +0 -1
  571. data/node_modules/axe-core/lib/rules/duplicate-id-aria.json +0 -14
  572. data/node_modules/axe-core/lib/rules/duplicate-id-misc-matches.js +0 -11
  573. data/node_modules/axe-core/lib/rules/duplicate-id.json +0 -14
  574. data/node_modules/axe-core/lib/rules/empty-heading.json +0 -13
  575. data/node_modules/axe-core/lib/rules/focus-order-semantics.json +0 -13
  576. data/node_modules/axe-core/lib/rules/form-field-multiple-labels.json +0 -13
  577. data/node_modules/axe-core/lib/rules/frame-tested.json +0 -12
  578. data/node_modules/axe-core/lib/rules/frame-title-has-text.js +0 -2
  579. data/node_modules/axe-core/lib/rules/frame-title-unique.json +0 -13
  580. data/node_modules/axe-core/lib/rules/frame-title.json +0 -25
  581. data/node_modules/axe-core/lib/rules/heading-matches.js +0 -15
  582. data/node_modules/axe-core/lib/rules/heading-order.json +0 -13
  583. data/node_modules/axe-core/lib/rules/hidden-content.json +0 -13
  584. data/node_modules/axe-core/lib/rules/html-has-lang.json +0 -13
  585. data/node_modules/axe-core/lib/rules/html-lang-valid.json +0 -12
  586. data/node_modules/axe-core/lib/rules/html-namespace-matches.js +0 -1
  587. data/node_modules/axe-core/lib/rules/html-xml-lang-mismatch.json +0 -13
  588. data/node_modules/axe-core/lib/rules/identical-links-same-purpose-matches.js +0 -13
  589. data/node_modules/axe-core/lib/rules/identical-links-same-purpose.json +0 -14
  590. data/node_modules/axe-core/lib/rules/image-alt.json +0 -25
  591. data/node_modules/axe-core/lib/rules/img-redundant-alt.json +0 -12
  592. data/node_modules/axe-core/lib/rules/input-button-name.json +0 -26
  593. data/node_modules/axe-core/lib/rules/input-image-alt.json +0 -18
  594. data/node_modules/axe-core/lib/rules/inserted-into-focus-order-matches.js +0 -1
  595. data/node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js +0 -45
  596. data/node_modules/axe-core/lib/rules/label-content-name-mismatch.json +0 -12
  597. data/node_modules/axe-core/lib/rules/label-matches.js +0 -11
  598. data/node_modules/axe-core/lib/rules/label-title-only.json +0 -13
  599. data/node_modules/axe-core/lib/rules/label.json +0 -26
  600. data/node_modules/axe-core/lib/rules/landmark-banner-is-top-level.json +0 -13
  601. data/node_modules/axe-core/lib/rules/landmark-complementary-is-top-level.json +0 -12
  602. data/node_modules/axe-core/lib/rules/landmark-contentinfo-is-top-level.json +0 -13
  603. data/node_modules/axe-core/lib/rules/landmark-has-body-context.js +0 -8
  604. data/node_modules/axe-core/lib/rules/landmark-main-is-top-level.json +0 -12
  605. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-banner.json +0 -12
  606. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-contentinfo.json +0 -12
  607. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-main.json +0 -12
  608. data/node_modules/axe-core/lib/rules/landmark-one-main.json +0 -12
  609. data/node_modules/axe-core/lib/rules/landmark-unique-matches.js +0 -41
  610. data/node_modules/axe-core/lib/rules/landmark-unique.json +0 -13
  611. data/node_modules/axe-core/lib/rules/layout-table-matches.js +0 -8
  612. data/node_modules/axe-core/lib/rules/layout-table.json +0 -14
  613. data/node_modules/axe-core/lib/rules/link-in-text-block-matches.js +0 -14
  614. data/node_modules/axe-core/lib/rules/link-in-text-block.json +0 -14
  615. data/node_modules/axe-core/lib/rules/link-name.json +0 -25
  616. data/node_modules/axe-core/lib/rules/list.json +0 -13
  617. data/node_modules/axe-core/lib/rules/listitem.json +0 -13
  618. data/node_modules/axe-core/lib/rules/marquee.json +0 -13
  619. data/node_modules/axe-core/lib/rules/meta-refresh.json +0 -20
  620. data/node_modules/axe-core/lib/rules/meta-viewport-large.json +0 -13
  621. data/node_modules/axe-core/lib/rules/meta-viewport.json +0 -13
  622. data/node_modules/axe-core/lib/rules/no-autoplay-audio-matches.js +0 -18
  623. data/node_modules/axe-core/lib/rules/no-autoplay-audio.json +0 -15
  624. data/node_modules/axe-core/lib/rules/no-empty-role-matches.js +0 -9
  625. data/node_modules/axe-core/lib/rules/no-role-matches.js +0 -1
  626. data/node_modules/axe-core/lib/rules/not-html-matches.js +0 -1
  627. data/node_modules/axe-core/lib/rules/object-alt.json +0 -25
  628. data/node_modules/axe-core/lib/rules/p-as-heading-matches.js +0 -17
  629. data/node_modules/axe-core/lib/rules/p-as-heading.json +0 -13
  630. data/node_modules/axe-core/lib/rules/page-has-heading-one.json +0 -12
  631. data/node_modules/axe-core/lib/rules/radiogroup.json +0 -13
  632. data/node_modules/axe-core/lib/rules/region.json +0 -12
  633. data/node_modules/axe-core/lib/rules/role-img-alt.json +0 -19
  634. data/node_modules/axe-core/lib/rules/scope-attr-valid.json +0 -12
  635. data/node_modules/axe-core/lib/rules/scrollable-region-focusable-matches.js +0 -30
  636. data/node_modules/axe-core/lib/rules/scrollable-region-focusable.json +0 -12
  637. data/node_modules/axe-core/lib/rules/server-side-image-map.json +0 -18
  638. data/node_modules/axe-core/lib/rules/skip-link-matches.js +0 -1
  639. data/node_modules/axe-core/lib/rules/skip-link.json +0 -13
  640. data/node_modules/axe-core/lib/rules/svg-img-alt.json +0 -24
  641. data/node_modules/axe-core/lib/rules/svg-namespace-matches.js +0 -1
  642. data/node_modules/axe-core/lib/rules/tabindex.json +0 -12
  643. data/node_modules/axe-core/lib/rules/table-duplicate-name.json +0 -12
  644. data/node_modules/axe-core/lib/rules/table-fake-caption.json +0 -20
  645. data/node_modules/axe-core/lib/rules/td-has-header.json +0 -20
  646. data/node_modules/axe-core/lib/rules/td-headers-attr.json +0 -12
  647. data/node_modules/axe-core/lib/rules/th-has-data-cells.json +0 -13
  648. data/node_modules/axe-core/lib/rules/valid-lang.json +0 -13
  649. data/node_modules/axe-core/lib/rules/video-caption.json +0 -19
  650. data/node_modules/axe-core/lib/rules/video-description.json +0 -21
  651. data/node_modules/axe-core/lib/rules/window-is-top.js +0 -3
  652. data/node_modules/axe-core/lib/rules/xml-lang-mismatch-matches.js +0 -12
  653. data/node_modules/axe-core/typings/axe-core/axe-core-tests.ts +0 -188
@@ -1,189 +0,0 @@
1
- /* global table, dom */
2
-
3
- /**
4
- * Determines whether a table is a data table
5
- * @method isDataTable
6
- * @memberof axe.commons.table
7
- * @instance
8
- * @param {HTMLTableElement} node The table to test
9
- * @return {Boolean}
10
- * @see http://asurkov.blogspot.co.uk/2011/10/data-vs-layout-table.html
11
- */
12
- table.isDataTable = function(node) {
13
- var role = (node.getAttribute('role') || '').toLowerCase();
14
-
15
- // The element is not focusable and has role=presentation
16
- if ((role === 'presentation' || role === 'none') && !dom.isFocusable(node)) {
17
- return false;
18
- }
19
-
20
- // Table inside editable area is data table always since the table structure is crucial for table editing
21
- if (
22
- node.getAttribute('contenteditable') === 'true' ||
23
- dom.findUp(node, '[contenteditable="true"]')
24
- ) {
25
- return true;
26
- }
27
-
28
- // Table having ARIA table related role is data table
29
- if (role === 'grid' || role === 'treegrid' || role === 'table') {
30
- return true;
31
- }
32
-
33
- // Table having ARIA landmark role is data table
34
- if (commons.aria.getRoleType(role) === 'landmark') {
35
- return true;
36
- }
37
-
38
- // Table having datatable="0" attribute is layout table
39
- if (node.getAttribute('datatable') === '0') {
40
- return false;
41
- }
42
-
43
- // Table having summary attribute is data table
44
- if (node.getAttribute('summary')) {
45
- return true;
46
- }
47
-
48
- // Table having legitimate data table structures is data table
49
- if (node.tHead || node.tFoot || node.caption) {
50
- return true;
51
- }
52
- // colgroup / col - colgroup is magically generated
53
- for (
54
- var childIndex = 0, childLength = node.children.length;
55
- childIndex < childLength;
56
- childIndex++
57
- ) {
58
- if (node.children[childIndex].nodeName.toUpperCase() === 'COLGROUP') {
59
- return true;
60
- }
61
- }
62
-
63
- var cells = 0;
64
- var rowLength = node.rows.length;
65
- var row, cell;
66
- var hasBorder = false;
67
- for (var rowIndex = 0; rowIndex < rowLength; rowIndex++) {
68
- row = node.rows[rowIndex];
69
- for (
70
- var cellIndex = 0, cellLength = row.cells.length;
71
- cellIndex < cellLength;
72
- cellIndex++
73
- ) {
74
- cell = row.cells[cellIndex];
75
- if (cell.nodeName.toUpperCase() === 'TH') {
76
- return true;
77
- }
78
- if (
79
- !hasBorder &&
80
- (cell.offsetWidth !== cell.clientWidth ||
81
- cell.offsetHeight !== cell.clientHeight)
82
- ) {
83
- hasBorder = true;
84
- }
85
- if (
86
- cell.getAttribute('scope') ||
87
- cell.getAttribute('headers') ||
88
- cell.getAttribute('abbr')
89
- ) {
90
- return true;
91
- }
92
- if (
93
- ['columnheader', 'rowheader'].includes(
94
- (cell.getAttribute('role') || '').toLowerCase()
95
- )
96
- ) {
97
- return true;
98
- }
99
- // abbr element as a single child element of table cell
100
- if (
101
- cell.children.length === 1 &&
102
- cell.children[0].nodeName.toUpperCase() === 'ABBR'
103
- ) {
104
- return true;
105
- }
106
- cells++;
107
- }
108
- }
109
-
110
- // Table having nested table is layout table
111
- if (node.getElementsByTagName('table').length) {
112
- return false;
113
- }
114
-
115
- // Table having only one row or column is layout table (row)
116
- if (rowLength < 2) {
117
- return false;
118
- }
119
-
120
- // Table having only one row or column is layout table (column)
121
- var sampleRow = node.rows[Math.ceil(rowLength / 2)];
122
- if (sampleRow.cells.length === 1 && sampleRow.cells[0].colSpan === 1) {
123
- return false;
124
- }
125
-
126
- // Table having many columns (>= 5) is data table
127
- if (sampleRow.cells.length >= 5) {
128
- return true;
129
- }
130
-
131
- // Table having borders around cells is data table
132
- if (hasBorder) {
133
- return true;
134
- }
135
-
136
- // Table having differently colored rows is data table
137
- var bgColor, bgImage;
138
- for (rowIndex = 0; rowIndex < rowLength; rowIndex++) {
139
- row = node.rows[rowIndex];
140
- if (
141
- bgColor &&
142
- bgColor !==
143
- window.getComputedStyle(row).getPropertyValue('background-color')
144
- ) {
145
- return true;
146
- } else {
147
- bgColor = window
148
- .getComputedStyle(row)
149
- .getPropertyValue('background-color');
150
- }
151
- if (
152
- bgImage &&
153
- bgImage !==
154
- window.getComputedStyle(row).getPropertyValue('background-image')
155
- ) {
156
- return true;
157
- } else {
158
- bgImage = window
159
- .getComputedStyle(row)
160
- .getPropertyValue('background-image');
161
- }
162
- }
163
-
164
- // Table having many rows (>= 20) is data table
165
- if (rowLength >= 20) {
166
- return true;
167
- }
168
-
169
- // Wide table (more than 95% of the document width) is layout table
170
- if (
171
- dom.getElementCoordinates(node).width >
172
- dom.getViewportSize(window).width * 0.95
173
- ) {
174
- return false;
175
- }
176
-
177
- // Table having small amount of cells (<= 10) is layout table
178
- if (cells < 10) {
179
- return false;
180
- }
181
-
182
- // Table containing embed, object, applet of iframe elements (typical advertisements elements) is layout table
183
- if (node.querySelector('object, embed, iframe, applet')) {
184
- return false;
185
- }
186
-
187
- // Otherwise it's data table
188
- return true;
189
- };
@@ -1,22 +0,0 @@
1
- /* global table, axe */
2
-
3
- /**
4
- * Determine if a `HTMLTableCellElement` is a header
5
- * @method isHeader
6
- * @memberof axe.commons.table
7
- * @instance
8
- * @param {HTMLTableCellElement} cell The table cell to test
9
- * @return {Boolean}
10
- */
11
- table.isHeader = function(cell) {
12
- if (table.isColumnHeader(cell) || table.isRowHeader(cell)) {
13
- return true;
14
- }
15
-
16
- if (cell.getAttribute('id')) {
17
- const id = axe.utils.escapeSelector(cell.getAttribute('id'));
18
- return !!document.querySelector(`[headers~="${id}"]`);
19
- }
20
-
21
- return false;
22
- };
@@ -1,13 +0,0 @@
1
- /* global table */
2
-
3
- /**
4
- * Determine if a `HTMLTableCellElement` is a row header
5
- * @method isRowHeader
6
- * @memberof axe.commons.table
7
- * @instance
8
- * @param {HTMLTableCellElement} cell The table cell to test
9
- * @return {Boolean}
10
- */
11
- table.isRowHeader = function(cell) {
12
- return ['row', 'auto'].includes(table.getScope(cell));
13
- };
@@ -1,38 +0,0 @@
1
- /*global table */
2
-
3
- /**
4
- * Converts a table to an Array of arrays, normalized for row and column spans
5
- * @method toGrid
6
- * @memberof axe.commons.table
7
- * @instance
8
- * @param {HTMLTableElement} node The table to convert
9
- * @return {Array<HTMLTableCellElement>} Array of HTMLTableCellElements
10
- */
11
- table.toGrid = axe.utils.memoize(function(node) {
12
- var table = [];
13
- var rows = node.rows;
14
- for (var i = 0, rowLength = rows.length; i < rowLength; i++) {
15
- var cells = rows[i].cells;
16
- table[i] = table[i] || [];
17
-
18
- var columnIndex = 0;
19
-
20
- for (var j = 0, cellLength = cells.length; j < cellLength; j++) {
21
- for (var colSpan = 0; colSpan < cells[j].colSpan; colSpan++) {
22
- for (var rowSpan = 0; rowSpan < cells[j].rowSpan; rowSpan++) {
23
- table[i + rowSpan] = table[i + rowSpan] || [];
24
- while (table[i + rowSpan][columnIndex]) {
25
- columnIndex++;
26
- }
27
- table[i + rowSpan][columnIndex] = cells[j];
28
- }
29
- columnIndex++;
30
- }
31
- }
32
- }
33
-
34
- return table;
35
- });
36
-
37
- // This was the old name
38
- table.toArray = table.toGrid;
@@ -1,78 +0,0 @@
1
- /* global table */
2
- (function(table) {
3
- var traverseTable = function(dir, position, tableGrid, callback) {
4
- var result;
5
- var cell = tableGrid[position.y]
6
- ? tableGrid[position.y][position.x]
7
- : undefined;
8
- if (!cell) {
9
- return [];
10
- }
11
- if (typeof callback === 'function') {
12
- result = callback(cell, position, tableGrid);
13
- if (result === true) {
14
- // abort
15
- return [cell];
16
- }
17
- }
18
-
19
- result = traverseTable(
20
- dir,
21
- {
22
- x: position.x + dir.x,
23
- y: position.y + dir.y
24
- },
25
- tableGrid,
26
- callback
27
- );
28
- result.unshift(cell);
29
- return result;
30
- };
31
-
32
- /**
33
- * Traverses a table in a given direction, passing the cell to the callback
34
- * @method traverse
35
- * @memberof axe.commons.table
36
- * @instance
37
- * @param {Object|String} dir Direction that will be added recursively {x: 1, y: 0}, 'left';
38
- * @param {Object} startPos x/y coordinate: {x: 0, y: 0};
39
- * @param {Array} [tablegrid] A matrix of the table obtained using axe.commons.table.toArray (OPTIONAL)
40
- * @param {Function} callback Function to which each cell will be passed
41
- * @return {NodeElement} If the callback returns true, the traversal will end and the cell will be returned
42
- */
43
- table.traverse = function(dir, startPos, tableGrid, callback) {
44
- /* eslint indent: 0 */
45
- if (Array.isArray(startPos)) {
46
- callback = tableGrid;
47
- tableGrid = startPos;
48
- startPos = { x: 0, y: 0 };
49
- }
50
-
51
- if (typeof dir === 'string') {
52
- switch (dir) {
53
- case 'left':
54
- dir = { x: -1, y: 0 };
55
- break;
56
- case 'up':
57
- dir = { x: 0, y: -1 };
58
- break;
59
- case 'right':
60
- dir = { x: 1, y: 0 };
61
- break;
62
- case 'down':
63
- dir = { x: 0, y: 1 };
64
- break;
65
- }
66
- }
67
-
68
- return traverseTable(
69
- dir,
70
- {
71
- x: startPos.x + dir.x,
72
- y: startPos.y + dir.y
73
- },
74
- tableGrid,
75
- callback
76
- );
77
- };
78
- })(table);
@@ -1,152 +0,0 @@
1
- /* global text, dom, aria, axe */
2
-
3
- /**
4
- * Finds virtual node and calls accessibleTextVirtual()
5
- * IMPORTANT: This method requires the composed tree at axe._tree
6
- *
7
- * @param {HTMLElement} element The HTMLElement
8
- * @param {Object} context
9
- * @property {Bool} inControlContext
10
- * @property {Bool} inLabelledByContext
11
- * @return {string}
12
- */
13
- text.accessibleText = function accessibleText(element, context) {
14
- const virtualNode = axe.utils.getNodeFromTree(element); // throws an exception on purpose if axe._tree not correct
15
- return text.accessibleTextVirtual(virtualNode, context);
16
- };
17
-
18
- /**
19
- * Finds virtual node and calls accessibleTextVirtual()
20
- * IMPORTANT: This method requires the composed tree at axe._tree
21
- *
22
- * @param {HTMLElement} element The HTMLElement
23
- * @param {Object} context
24
- * @property {Bool} inControlContext
25
- * @property {Bool} inLabelledByContext
26
- * @return {string}
27
- */
28
- text.accessibleTextVirtual = function accessibleTextVirtual(
29
- virtualNode,
30
- context = {}
31
- ) {
32
- const { actualNode } = virtualNode;
33
- context = prepareContext(virtualNode, context);
34
-
35
- // Step 2A, check visibility
36
- if (shouldIgnoreHidden(virtualNode, context)) {
37
- return '';
38
- }
39
-
40
- const computationSteps = [
41
- aria.arialabelledbyText, // Step 2B.1
42
- aria.arialabelText, // Step 2C
43
- text.nativeTextAlternative, // Step 2D
44
- text.formControlValue, // Step 2E
45
- text.subtreeText, // Step 2F + Step 2H
46
- textNodeContent, // Step 2G (order with 2H does not matter)
47
- text.titleText // Step 2I
48
- ];
49
-
50
- // Find the first step that returns a non-empty string
51
- let accName = computationSteps.reduce((accName, step) => {
52
- if (context.startNode === virtualNode) {
53
- accName = text.sanitize(accName);
54
- }
55
-
56
- if (accName !== '') {
57
- // yes, whitespace only a11y names halt the algorithm
58
- return accName;
59
- }
60
- return step(virtualNode, context);
61
- }, '');
62
-
63
- if (context.debug) {
64
- axe.log(accName || '{empty-value}', actualNode, context);
65
- }
66
- return accName;
67
- };
68
-
69
- /**
70
- * Return the textContent of a node
71
- * @param {VirtualNode} element
72
- * @return {String} textContent value
73
- */
74
- function textNodeContent({ actualNode }) {
75
- if (actualNode.nodeType !== 3) {
76
- return '';
77
- }
78
- return actualNode.textContent;
79
- }
80
-
81
- /**
82
- * Check if the
83
- * @param {VirtualNode} element
84
- * @param {Object} context
85
- * @property {VirtualNode[]} processed
86
- * @return {Boolean}
87
- */
88
- function shouldIgnoreHidden({ actualNode }, context) {
89
- if (
90
- // If the parent isn't ignored, the text node should not be either
91
- actualNode.nodeType !== 1 ||
92
- // If the target of aria-labelledby is hidden, ignore all descendents
93
- context.includeHidden
94
- ) {
95
- return false;
96
- }
97
-
98
- return !dom.isVisible(actualNode, true);
99
- }
100
-
101
- /**
102
- * Apply defaults to the context
103
- * @param {VirtualNode} element
104
- * @param {Object} context
105
- * @return {Object} context object with defaults applied
106
- */
107
- function prepareContext(virtualNode, context) {
108
- const { actualNode } = virtualNode;
109
- if (!context.startNode) {
110
- context = { startNode: virtualNode, ...context };
111
- }
112
- /**
113
- * When `aria-labelledby` directly references a `hidden` element
114
- * the element needs to be included in the accessible name.
115
- *
116
- * When a descendent of the `aria-labelledby` reference is `hidden`
117
- * the element should not be included in the accessible name.
118
- *
119
- * This is done by setting `includeHidden` for the `aria-labelledby` reference.
120
- */
121
- if (
122
- actualNode.nodeType === 1 &&
123
- context.inLabelledByContext &&
124
- context.includeHidden === undefined
125
- ) {
126
- context = {
127
- includeHidden: !dom.isVisible(actualNode, true),
128
- ...context
129
- };
130
- }
131
- return context;
132
- }
133
-
134
- /**
135
- * Check if the node is processed with this context before
136
- * @param {VirtualNode} element
137
- * @param {Object} context
138
- * @property {VirtualNode[]} processed
139
- * @return {Boolean}
140
- */
141
- text.accessibleTextVirtual.alreadyProcessed = function alreadyProcessed(
142
- virtualnode,
143
- context
144
- ) {
145
- context.processed = context.processed || [];
146
- if (context.processed.includes(virtualnode)) {
147
- return true;
148
- }
149
-
150
- context.processed.push(virtualnode);
151
- return false;
152
- };
@@ -1,192 +0,0 @@
1
- /* global text, aria, dom */
2
- const controlValueRoles = [
3
- 'textbox',
4
- 'progressbar',
5
- 'scrollbar',
6
- 'slider',
7
- 'spinbutton',
8
- 'combobox',
9
- 'listbox'
10
- ];
11
-
12
- text.formControlValueMethods = {
13
- nativeTextboxValue,
14
- nativeSelectValue,
15
- ariaTextboxValue,
16
- ariaListboxValue,
17
- ariaComboboxValue,
18
- ariaRangeValue
19
- };
20
-
21
- /**
22
- * Calculate value of a form control
23
- *
24
- * @param {VirtualNode} element The VirtualNode instance whose value we want
25
- * @param {Object} context
26
- * @property {Element} startNode First node in accessible name computation
27
- * @property {String[]} unsupported List of roles where value computation is unsupported
28
- * @property {Bool} debug Enable logging for formControlValue
29
- * @return {string} The calculated value
30
- */
31
- text.formControlValue = function formControlValue(virtualNode, context = {}) {
32
- const { actualNode } = virtualNode;
33
- const unsupported = text.unsupported.accessibleNameFromFieldValue || [];
34
- const role = aria.getRole(actualNode);
35
-
36
- if (
37
- // For the targeted node, the accessible name is never the value:
38
- context.startNode === virtualNode ||
39
- // Only elements with a certain role can return their value
40
- !controlValueRoles.includes(role) ||
41
- // Skip unsupported roles
42
- unsupported.includes(role)
43
- ) {
44
- return '';
45
- }
46
-
47
- // Object.values:
48
- const valueMethods = Object.keys(text.formControlValueMethods).map(
49
- name => text.formControlValueMethods[name]
50
- );
51
-
52
- // Return the value of the first step that returns with text
53
- let valueString = valueMethods.reduce((accName, step) => {
54
- return accName || step(virtualNode, context);
55
- }, '');
56
-
57
- if (context.debug) {
58
- axe.log(valueString || '{empty-value}', actualNode, context);
59
- }
60
- return valueString;
61
- };
62
-
63
- /**
64
- * Calculate value of a native textbox element (input and textarea)
65
- *
66
- * @param {VirtualNode|Element} element The element whose value we want
67
- * @return {string} The calculated value
68
- */
69
- function nativeTextboxValue(node) {
70
- node = node.actualNode || node;
71
- if (axe.commons.forms.isNativeTextbox(node)) {
72
- return node.value || '';
73
- }
74
- return '';
75
- }
76
-
77
- /**
78
- * Calculate value of a select element
79
- *
80
- * @param {VirtualNode} element The VirtualNode instance whose value we want
81
- * @return {string} The calculated value
82
- */
83
- function nativeSelectValue(node) {
84
- node = node.actualNode || node;
85
- if (!axe.commons.forms.isNativeSelect(node)) {
86
- return '';
87
- }
88
- return (
89
- Array.from(node.options)
90
- .filter(option => option.selected)
91
- .map(option => option.text)
92
- .join(' ') || ''
93
- );
94
- }
95
-
96
- /**
97
- * Calculate value of a an element with role=textbox
98
- *
99
- * @param {VirtualNode} element The VirtualNode instance whose value we want
100
- * @return {string} The calculated value
101
- */
102
- function ariaTextboxValue(virtualNode) {
103
- const { actualNode } = virtualNode;
104
- if (!axe.commons.forms.isAriaTextbox(actualNode)) {
105
- return '';
106
- }
107
- if (!dom.isHiddenWithCSS(actualNode)) {
108
- return text.visibleVirtual(virtualNode, true);
109
- } else {
110
- return actualNode.textContent;
111
- }
112
- }
113
-
114
- /**
115
- * Calculate value of an element with role=combobox or role=listbox
116
- *
117
- * @param {VirtualNode} element The VirtualNode instance whose value we want
118
- * @param {Object} context The VirtualNode instance whose value we want
119
- * @property {Element} startNode First node in accessible name computation
120
- * @property {String[]} unsupported List of roles where value computation is unsupported
121
- * @property {Bool} debug Enable logging for formControlValue
122
- * @return {string} The calculated value
123
- */
124
- function ariaListboxValue(virtualNode, context) {
125
- const { actualNode } = virtualNode;
126
- if (!axe.commons.forms.isAriaListbox(actualNode)) {
127
- return '';
128
- }
129
-
130
- const selected = aria
131
- .getOwnedVirtual(virtualNode)
132
- .filter(
133
- owned =>
134
- aria.getRole(owned) === 'option' &&
135
- owned.actualNode.getAttribute('aria-selected') === 'true'
136
- );
137
-
138
- if (selected.length === 0) {
139
- return '';
140
- }
141
- // Note: Even with aria-multiselectable, only the first value will be used
142
- // in the accessible name. This isn't spec'ed out, but seems to be how all
143
- // browser behave.
144
- return axe.commons.text.accessibleTextVirtual(selected[0], context);
145
- }
146
-
147
- /**
148
- * Calculate value of an element with role=combobox or role=listbox
149
- *
150
- * @param {VirtualNode} element The VirtualNode instance whose value we want
151
- * @param {Object} context The VirtualNode instance whose value we want
152
- * @property {Element} startNode First node in accessible name computation
153
- * @property {String[]} unsupported List of roles where value computation is unsupported
154
- * @property {Bool} debug Enable logging for formControlValue
155
- * @return {string} The calculated value
156
- */
157
- function ariaComboboxValue(virtualNode, context) {
158
- const { actualNode } = virtualNode;
159
- let listbox;
160
-
161
- // For combobox, find the first owned listbox:
162
- if (!axe.commons.forms.isAriaCombobox(actualNode)) {
163
- return '';
164
- }
165
- listbox = aria
166
- .getOwnedVirtual(virtualNode)
167
- .filter(elm => aria.getRole(elm) === 'listbox')[0];
168
-
169
- return listbox
170
- ? text.formControlValueMethods.ariaListboxValue(listbox, context)
171
- : '';
172
- }
173
-
174
- /**
175
- * Calculate value of an element with range-type role
176
- *
177
- * @param {VirtualNode|Node} element The VirtualNode instance whose value we want
178
- * @return {string} The calculated value
179
- */
180
- function ariaRangeValue(node) {
181
- node = node.actualNode || node;
182
- if (
183
- !axe.commons.forms.isAriaRange(node) ||
184
- !node.hasAttribute('aria-valuenow')
185
- ) {
186
- return '';
187
- }
188
- // Validate the number, if not, return 0.
189
- // Chrome 70 typecasts this, Firefox 62 does not
190
- const valueNow = +node.getAttribute('aria-valuenow');
191
- return !isNaN(valueNow) ? String(valueNow) : '0';
192
- }
@@ -1,8 +0,0 @@
1
- /* exported text */
2
- /*eslint no-unused-vars: 0*/
3
- /**
4
- * Namespace for text-related utilities.
5
- * @namespace text
6
- * @memberof axe.commons
7
- */
8
- var text = (commons.text = { EdgeFormDefaults: {} });