govuk_publishing_components 30.3.0 → 30.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (661) 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 +25 -11
  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/component_guide/application.scss +4 -0
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +7 -0
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-super-navigation-header.scss +60 -11
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -4
  11. data/app/views/govuk_publishing_components/component_guide/show.html.erb +31 -6
  12. data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb +6 -2
  13. data/config/locales/en.yml +4 -0
  14. data/lib/govuk_publishing_components/version.rb +1 -1
  15. data/node_modules/axe-core/README.md +83 -53
  16. data/node_modules/axe-core/axe.d.ts +403 -224
  17. data/node_modules/axe-core/axe.js +23281 -21919
  18. data/node_modules/axe-core/axe.min.js +3 -3
  19. data/node_modules/axe-core/locales/da.json +795 -780
  20. data/node_modules/axe-core/locales/de.json +932 -621
  21. data/node_modules/axe-core/locales/es.json +786 -771
  22. data/node_modules/axe-core/locales/eu.json +787 -0
  23. data/node_modules/axe-core/locales/fr.json +982 -840
  24. data/node_modules/axe-core/locales/ja.json +988 -880
  25. data/node_modules/axe-core/locales/ko.json +999 -775
  26. data/node_modules/axe-core/locales/nl.json +46 -34
  27. data/node_modules/axe-core/locales/pl.json +965 -0
  28. data/node_modules/axe-core/locales/pt_BR.json +966 -880
  29. data/node_modules/axe-core/package.json +189 -145
  30. data/node_modules/axe-core/sri-history.json +312 -192
  31. data/node_modules/govuk-frontend/govuk/all.js +64 -44
  32. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +1 -1
  33. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +3 -13
  34. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +12 -12
  35. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +5 -1
  36. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +1 -1
  37. data/node_modules/govuk-frontend/govuk/components/details/details.js +8 -20
  38. data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +6 -0
  39. data/node_modules/govuk-frontend/govuk/components/details/template.njk +1 -1
  40. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +9 -0
  41. data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +6 -0
  42. data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +2 -2
  43. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +59 -20
  44. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +40 -0
  45. data/node_modules/govuk-frontend/govuk/components/footer/template.njk +17 -7
  46. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +14 -21
  47. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +11 -11
  48. data/node_modules/govuk-frontend/govuk/components/header/header.js +53 -11
  49. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +2 -2
  50. data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
  51. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +9 -10
  52. data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +6 -0
  53. data/node_modules/govuk-frontend/govuk/components/inset-text/template.njk +1 -1
  54. data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +6 -0
  55. data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +2 -2
  56. data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +6 -0
  57. data/node_modules/govuk-frontend/govuk/components/panel/template.njk +2 -2
  58. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +6 -0
  59. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +15 -1
  60. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +37 -10
  61. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +69 -4
  62. data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +3 -3
  63. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +13 -13
  64. data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +5 -1
  65. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +14 -7
  66. data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +56 -12
  67. data/node_modules/govuk-frontend/govuk/settings/_spacing.scss +4 -8
  68. data/node_modules/govuk-frontend/govuk/template.njk +5 -5
  69. data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +3 -13
  70. data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +8 -20
  71. data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +53 -11
  72. data/node_modules/govuk-frontend/package.json +1 -1
  73. data/node_modules/sortablejs/README.md +828 -815
  74. data/node_modules/sortablejs/Sortable.js +186 -113
  75. data/node_modules/sortablejs/Sortable.min.js +2 -2
  76. data/node_modules/sortablejs/modular/sortable.complete.esm.js +184 -111
  77. data/node_modules/sortablejs/modular/sortable.core.esm.js +184 -111
  78. data/node_modules/sortablejs/modular/sortable.esm.js +184 -111
  79. data/node_modules/sortablejs/package.json +3 -3
  80. metadata +6 -584
  81. data/node_modules/axe-core/CHANGELOG.md +0 -1053
  82. data/node_modules/axe-core/CONTRIBUTING.md +0 -187
  83. data/node_modules/axe-core/bower.json +0 -40
  84. data/node_modules/axe-core/doc/API.md +0 -889
  85. data/node_modules/axe-core/doc/accessibility-supported.md +0 -33
  86. data/node_modules/axe-core/doc/act-rules-format.md +0 -37
  87. data/node_modules/axe-core/doc/aria-supported.md +0 -13
  88. data/node_modules/axe-core/doc/backwards-compatibility-doc.md +0 -94
  89. data/node_modules/axe-core/doc/check-message-template.md +0 -124
  90. data/node_modules/axe-core/doc/code-submission-guidelines.md +0 -178
  91. data/node_modules/axe-core/doc/developer-guide.md +0 -514
  92. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/README.md +0 -13
  93. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/axe-cdp.js +0 -81
  94. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/package.json +0 -11
  95. data/node_modules/axe-core/doc/examples/html-handlebars.md +0 -164
  96. data/node_modules/axe-core/doc/examples/jasmine/README.md +0 -35
  97. data/node_modules/axe-core/doc/examples/jasmine/karma.conf.js +0 -29
  98. data/node_modules/axe-core/doc/examples/jasmine/package.json +0 -21
  99. data/node_modules/axe-core/doc/examples/jasmine/spec/a11y.js +0 -36
  100. data/node_modules/axe-core/doc/examples/jest_react/README.md +0 -41
  101. data/node_modules/axe-core/doc/examples/jest_react/link.js +0 -7
  102. data/node_modules/axe-core/doc/examples/jest_react/link.test.js +0 -24
  103. data/node_modules/axe-core/doc/examples/jest_react/package.json +0 -28
  104. data/node_modules/axe-core/doc/examples/jest_react/test-helpers.js +0 -21
  105. data/node_modules/axe-core/doc/examples/jsdom/package.json +0 -15
  106. data/node_modules/axe-core/doc/examples/mocha/README.md +0 -35
  107. data/node_modules/axe-core/doc/examples/mocha/karma.conf.js +0 -29
  108. data/node_modules/axe-core/doc/examples/mocha/package.json +0 -22
  109. data/node_modules/axe-core/doc/examples/phantomjs/README.md +0 -17
  110. data/node_modules/axe-core/doc/examples/phantomjs/axe-phantom.js +0 -53
  111. data/node_modules/axe-core/doc/examples/phantomjs/package.json +0 -19
  112. data/node_modules/axe-core/doc/examples/puppeteer/README.md +0 -12
  113. data/node_modules/axe-core/doc/examples/puppeteer/axe-puppeteer.js +0 -60
  114. data/node_modules/axe-core/doc/examples/puppeteer/package.json +0 -13
  115. data/node_modules/axe-core/doc/examples/qunit/README.md +0 -37
  116. data/node_modules/axe-core/doc/examples/qunit/package.json +0 -21
  117. data/node_modules/axe-core/doc/examples/test-examples.js +0 -32
  118. data/node_modules/axe-core/doc/plugins.md +0 -123
  119. data/node_modules/axe-core/doc/projects.md +0 -48
  120. data/node_modules/axe-core/doc/rule-descriptions.md +0 -129
  121. data/node_modules/axe-core/doc/rule-development.md +0 -123
  122. data/node_modules/axe-core/doc/rule-proposal.md +0 -106
  123. data/node_modules/axe-core/lib/checks/aria/abstractrole.js +0 -10
  124. data/node_modules/axe-core/lib/checks/aria/abstractrole.json +0 -14
  125. data/node_modules/axe-core/lib/checks/aria/allowed-attr.js +0 -39
  126. data/node_modules/axe-core/lib/checks/aria/allowed-attr.json +0 -14
  127. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.js +0 -28
  128. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.json +0 -22
  129. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.js +0 -1
  130. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.json +0 -11
  131. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.js +0 -14
  132. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.json +0 -23
  133. data/node_modules/axe-core/lib/checks/aria/errormessage.js +0 -33
  134. data/node_modules/axe-core/lib/checks/aria/errormessage.json +0 -14
  135. data/node_modules/axe-core/lib/checks/aria/fallbackrole.js +0 -1
  136. data/node_modules/axe-core/lib/checks/aria/fallbackrole.json +0 -11
  137. data/node_modules/axe-core/lib/checks/aria/has-widget-role.js +0 -6
  138. data/node_modules/axe-core/lib/checks/aria/has-widget-role.json +0 -12
  139. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.js +0 -6
  140. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.json +0 -12
  141. data/node_modules/axe-core/lib/checks/aria/invalidrole.js +0 -17
  142. data/node_modules/axe-core/lib/checks/aria/invalidrole.json +0 -14
  143. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.js +0 -21
  144. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.json +0 -11
  145. data/node_modules/axe-core/lib/checks/aria/required-attr.js +0 -53
  146. data/node_modules/axe-core/lib/checks/aria/required-attr.json +0 -14
  147. data/node_modules/axe-core/lib/checks/aria/required-children.js +0 -154
  148. data/node_modules/axe-core/lib/checks/aria/required-children.json +0 -32
  149. data/node_modules/axe-core/lib/checks/aria/required-parent.js +0 -87
  150. data/node_modules/axe-core/lib/checks/aria/required-parent.json +0 -14
  151. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.js +0 -39
  152. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.json +0 -11
  153. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.js +0 -1
  154. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.json +0 -11
  155. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.js +0 -80
  156. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.json +0 -19
  157. data/node_modules/axe-core/lib/checks/aria/valid-attr.js +0 -25
  158. data/node_modules/axe-core/lib/checks/aria/valid-attr.json +0 -15
  159. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.js +0 -62
  160. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.json +0 -12
  161. data/node_modules/axe-core/lib/checks/color/color-contrast.js +0 -86
  162. data/node_modules/axe-core/lib/checks/color/color-contrast.json +0 -30
  163. data/node_modules/axe-core/lib/checks/color/link-in-text-block.js +0 -85
  164. data/node_modules/axe-core/lib/checks/color/link-in-text-block.json +0 -19
  165. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.js +0 -67
  166. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.json +0 -11
  167. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.js +0 -2
  168. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.json +0 -11
  169. data/node_modules/axe-core/lib/checks/forms/fieldset-after.js +0 -25
  170. data/node_modules/axe-core/lib/checks/forms/fieldset.js +0 -109
  171. data/node_modules/axe-core/lib/checks/forms/fieldset.json +0 -20
  172. data/node_modules/axe-core/lib/checks/forms/group-labelledby-after.js +0 -16
  173. data/node_modules/axe-core/lib/checks/forms/group-labelledby.js +0 -66
  174. data/node_modules/axe-core/lib/checks/forms/group-labelledby.json +0 -17
  175. data/node_modules/axe-core/lib/checks/keyboard/accesskeys-after.js +0 -19
  176. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.js +0 -5
  177. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.json +0 -12
  178. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.js +0 -16
  179. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.json +0 -11
  180. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.js +0 -30
  181. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.json +0 -11
  182. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.js +0 -12
  183. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.json +0 -11
  184. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.js +0 -14
  185. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.json +0 -11
  186. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.js +0 -6
  187. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.json +0 -11
  188. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.js +0 -30
  189. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.json +0 -11
  190. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.js +0 -18
  191. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.json +0 -11
  192. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm-after.js +0 -11
  193. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm.js +0 -13
  194. data/node_modules/axe-core/lib/checks/keyboard/page-has-heading-one.json +0 -15
  195. data/node_modules/axe-core/lib/checks/keyboard/page-has-main.json +0 -15
  196. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-after.js +0 -2
  197. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-banner.json +0 -16
  198. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-contentinfo.json +0 -16
  199. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-main.json +0 -15
  200. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate.js +0 -36
  201. data/node_modules/axe-core/lib/checks/keyboard/tabindex.js +0 -6
  202. data/node_modules/axe-core/lib/checks/keyboard/tabindex.json +0 -11
  203. data/node_modules/axe-core/lib/checks/label/alt-space-value.js +0 -3
  204. data/node_modules/axe-core/lib/checks/label/alt-space-value.json +0 -11
  205. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.js +0 -22
  206. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.json +0 -11
  207. data/node_modules/axe-core/lib/checks/label/explicit.js +0 -15
  208. data/node_modules/axe-core/lib/checks/label/explicit.json +0 -11
  209. data/node_modules/axe-core/lib/checks/label/help-same-as-label.js +0 -23
  210. data/node_modules/axe-core/lib/checks/label/help-same-as-label.json +0 -12
  211. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.js +0 -12
  212. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.json +0 -11
  213. data/node_modules/axe-core/lib/checks/label/implicit.js +0 -7
  214. data/node_modules/axe-core/lib/checks/label/implicit.json +0 -11
  215. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.js +0 -59
  216. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.json +0 -15
  217. data/node_modules/axe-core/lib/checks/label/multiple-label.js +0 -39
  218. data/node_modules/axe-core/lib/checks/label/multiple-label.json +0 -11
  219. data/node_modules/axe-core/lib/checks/label/title-only.js +0 -5
  220. data/node_modules/axe-core/lib/checks/label/title-only.json +0 -11
  221. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique-after.js +0 -23
  222. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.js +0 -7
  223. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.json +0 -12
  224. data/node_modules/axe-core/lib/checks/language/has-lang.js +0 -20
  225. data/node_modules/axe-core/lib/checks/language/has-lang.json +0 -14
  226. data/node_modules/axe-core/lib/checks/language/valid-lang.js +0 -26
  227. data/node_modules/axe-core/lib/checks/language/valid-lang.json +0 -11
  228. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.js +0 -5
  229. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.json +0 -11
  230. data/node_modules/axe-core/lib/checks/lists/dlitem.js +0 -23
  231. data/node_modules/axe-core/lib/checks/lists/dlitem.json +0 -11
  232. data/node_modules/axe-core/lib/checks/lists/listitem.js +0 -21
  233. data/node_modules/axe-core/lib/checks/lists/listitem.json +0 -14
  234. data/node_modules/axe-core/lib/checks/lists/only-dlitems.js +0 -42
  235. data/node_modules/axe-core/lib/checks/lists/only-dlitems.json +0 -11
  236. data/node_modules/axe-core/lib/checks/lists/only-listitems.js +0 -58
  237. data/node_modules/axe-core/lib/checks/lists/only-listitems.json +0 -14
  238. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.js +0 -22
  239. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.json +0 -11
  240. data/node_modules/axe-core/lib/checks/media/caption.js +0 -8
  241. data/node_modules/axe-core/lib/checks/media/caption.json +0 -11
  242. data/node_modules/axe-core/lib/checks/media/description.js +0 -8
  243. data/node_modules/axe-core/lib/checks/media/description.json +0 -11
  244. data/node_modules/axe-core/lib/checks/media/frame-tested.js +0 -28
  245. data/node_modules/axe-core/lib/checks/media/frame-tested.json +0 -15
  246. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.js +0 -93
  247. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.json +0 -15
  248. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.js +0 -251
  249. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.json +0 -15
  250. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-large.json +0 -15
  251. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-scale.js +0 -55
  252. data/node_modules/axe-core/lib/checks/mobile/meta-viewport.json +0 -14
  253. data/node_modules/axe-core/lib/checks/navigation/header-present.js +0 -4
  254. data/node_modules/axe-core/lib/checks/navigation/header-present.json +0 -11
  255. data/node_modules/axe-core/lib/checks/navigation/heading-order-after.js +0 -14
  256. data/node_modules/axe-core/lib/checks/navigation/heading-order.js +0 -15
  257. data/node_modules/axe-core/lib/checks/navigation/heading-order.json +0 -12
  258. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose-after.js +0 -100
  259. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.js +0 -31
  260. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.json +0 -12
  261. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.js +0 -4
  262. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.json +0 -11
  263. data/node_modules/axe-core/lib/checks/navigation/landmark.js +0 -3
  264. data/node_modules/axe-core/lib/checks/navigation/landmark.json +0 -11
  265. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.js +0 -4
  266. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.json +0 -11
  267. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.js +0 -93
  268. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.json +0 -30
  269. data/node_modules/axe-core/lib/checks/navigation/region.js +0 -107
  270. data/node_modules/axe-core/lib/checks/navigation/region.json +0 -11
  271. data/node_modules/axe-core/lib/checks/navigation/skip-link.js +0 -5
  272. data/node_modules/axe-core/lib/checks/navigation/skip-link.json +0 -12
  273. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title-after.js +0 -9
  274. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.js +0 -6
  275. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.json +0 -12
  276. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-active.json +0 -12
  277. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-after.js +0 -8
  278. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-aria.json +0 -12
  279. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.js +0 -17
  280. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.json +0 -12
  281. data/node_modules/axe-core/lib/checks/shared/aria-label.js +0 -2
  282. data/node_modules/axe-core/lib/checks/shared/aria-label.json +0 -11
  283. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.js +0 -2
  284. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.json +0 -11
  285. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.js +0 -18
  286. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.json +0 -14
  287. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.js +0 -12
  288. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.json +0 -11
  289. data/node_modules/axe-core/lib/checks/shared/doc-has-title.js +0 -2
  290. data/node_modules/axe-core/lib/checks/shared/doc-has-title.json +0 -11
  291. data/node_modules/axe-core/lib/checks/shared/exists.js +0 -1
  292. data/node_modules/axe-core/lib/checks/shared/exists.json +0 -11
  293. data/node_modules/axe-core/lib/checks/shared/has-alt.js +0 -6
  294. data/node_modules/axe-core/lib/checks/shared/has-alt.json +0 -11
  295. data/node_modules/axe-core/lib/checks/shared/has-visible-text.js +0 -1
  296. data/node_modules/axe-core/lib/checks/shared/has-visible-text.json +0 -11
  297. data/node_modules/axe-core/lib/checks/shared/is-on-screen.js +0 -4
  298. data/node_modules/axe-core/lib/checks/shared/is-on-screen.json +0 -11
  299. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.js +0 -2
  300. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.json +0 -11
  301. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.js +0 -15
  302. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.json +0 -14
  303. data/node_modules/axe-core/lib/checks/shared/non-empty-title.js +0 -2
  304. data/node_modules/axe-core/lib/checks/shared/non-empty-title.json +0 -11
  305. data/node_modules/axe-core/lib/checks/shared/non-empty-value.js +0 -2
  306. data/node_modules/axe-core/lib/checks/shared/non-empty-value.json +0 -11
  307. data/node_modules/axe-core/lib/checks/shared/role-none.js +0 -1
  308. data/node_modules/axe-core/lib/checks/shared/role-none.json +0 -11
  309. data/node_modules/axe-core/lib/checks/shared/role-presentation.js +0 -1
  310. data/node_modules/axe-core/lib/checks/shared/role-presentation.json +0 -11
  311. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.js +0 -4
  312. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.json +0 -11
  313. data/node_modules/axe-core/lib/checks/tables/caption-faked.js +0 -10
  314. data/node_modules/axe-core/lib/checks/tables/caption-faked.json +0 -11
  315. data/node_modules/axe-core/lib/checks/tables/has-caption.js +0 -1
  316. data/node_modules/axe-core/lib/checks/tables/has-caption.json +0 -12
  317. data/node_modules/axe-core/lib/checks/tables/has-summary.js +0 -1
  318. data/node_modules/axe-core/lib/checks/tables/has-summary.json +0 -12
  319. data/node_modules/axe-core/lib/checks/tables/has-th.js +0 -31
  320. data/node_modules/axe-core/lib/checks/tables/has-th.json +0 -12
  321. data/node_modules/axe-core/lib/checks/tables/headers-visible-text.js +0 -30
  322. data/node_modules/axe-core/lib/checks/tables/html5-scope.js +0 -5
  323. data/node_modules/axe-core/lib/checks/tables/html5-scope.json +0 -11
  324. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.js +0 -7
  325. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.json +0 -11
  326. data/node_modules/axe-core/lib/checks/tables/scope-value.js +0 -5
  327. data/node_modules/axe-core/lib/checks/tables/scope-value.json +0 -11
  328. data/node_modules/axe-core/lib/checks/tables/td-has-header.js +0 -30
  329. data/node_modules/axe-core/lib/checks/tables/td-has-header.json +0 -11
  330. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.js +0 -61
  331. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.json +0 -12
  332. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.js +0 -76
  333. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.json +0 -12
  334. data/node_modules/axe-core/lib/checks/tables/th-single-row-column.js +0 -39
  335. data/node_modules/axe-core/lib/checks/visibility/hidden-content.js +0 -21
  336. data/node_modules/axe-core/lib/checks/visibility/hidden-content.json +0 -12
  337. data/node_modules/axe-core/lib/commons/aria/arialabel-text.js +0 -18
  338. data/node_modules/axe-core/lib/commons/aria/arialabelledby-text.js +0 -52
  339. data/node_modules/axe-core/lib/commons/aria/attributes.js +0 -45
  340. data/node_modules/axe-core/lib/commons/aria/get-element-unallowed-roles.js +0 -113
  341. data/node_modules/axe-core/lib/commons/aria/get-owned-virtual.js +0 -24
  342. data/node_modules/axe-core/lib/commons/aria/get-role.js +0 -44
  343. data/node_modules/axe-core/lib/commons/aria/index.js +0 -2424
  344. data/node_modules/axe-core/lib/commons/aria/is-accessible-ref.js +0 -59
  345. data/node_modules/axe-core/lib/commons/aria/is-aria-role-allowed-on-element.js +0 -41
  346. data/node_modules/axe-core/lib/commons/aria/is-unsupported-role.js +0 -14
  347. data/node_modules/axe-core/lib/commons/aria/label-virtual.js +0 -54
  348. data/node_modules/axe-core/lib/commons/aria/named-from-contents.js +0 -39
  349. data/node_modules/axe-core/lib/commons/aria/roles.js +0 -208
  350. data/node_modules/axe-core/lib/commons/aria/validate-attr-value.js +0 -62
  351. data/node_modules/axe-core/lib/commons/color/center-point-of-rect.js +0 -30
  352. data/node_modules/axe-core/lib/commons/color/contrast.js +0 -178
  353. data/node_modules/axe-core/lib/commons/color/element-has-image.js +0 -36
  354. data/node_modules/axe-core/lib/commons/color/element-is-distinct.js +0 -88
  355. data/node_modules/axe-core/lib/commons/color/get-background-color.js +0 -285
  356. data/node_modules/axe-core/lib/commons/color/get-foreground-color.js +0 -61
  357. data/node_modules/axe-core/lib/commons/color/get-own-background-color.js +0 -22
  358. data/node_modules/axe-core/lib/commons/color/incomplete-data.js +0 -50
  359. data/node_modules/axe-core/lib/commons/color/index.js +0 -8
  360. data/node_modules/axe-core/lib/commons/dom/elements-below-floating.js +0 -39
  361. data/node_modules/axe-core/lib/commons/dom/find-elms-in-context.js +0 -28
  362. data/node_modules/axe-core/lib/commons/dom/find-up.js +0 -63
  363. data/node_modules/axe-core/lib/commons/dom/get-composed-parent.js +0 -25
  364. data/node_modules/axe-core/lib/commons/dom/get-element-by-reference.js +0 -34
  365. data/node_modules/axe-core/lib/commons/dom/get-element-coordinates.js +0 -38
  366. data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +0 -589
  367. data/node_modules/axe-core/lib/commons/dom/get-root-node.js +0 -12
  368. data/node_modules/axe-core/lib/commons/dom/get-scroll-offset.js +0 -33
  369. data/node_modules/axe-core/lib/commons/dom/get-tabbable-elements.js +0 -24
  370. data/node_modules/axe-core/lib/commons/dom/get-viewport-size.js +0 -37
  371. data/node_modules/axe-core/lib/commons/dom/has-content-virtual.js +0 -75
  372. data/node_modules/axe-core/lib/commons/dom/idrefs.js +0 -36
  373. data/node_modules/axe-core/lib/commons/dom/index.js +0 -9
  374. data/node_modules/axe-core/lib/commons/dom/is-focusable.js +0 -95
  375. data/node_modules/axe-core/lib/commons/dom/is-hidden-with-css.js +0 -73
  376. data/node_modules/axe-core/lib/commons/dom/is-html5.js +0 -17
  377. data/node_modules/axe-core/lib/commons/dom/is-in-text-block.js +0 -94
  378. data/node_modules/axe-core/lib/commons/dom/is-modal-open.js +0 -98
  379. data/node_modules/axe-core/lib/commons/dom/is-node.js +0 -13
  380. data/node_modules/axe-core/lib/commons/dom/is-offscreen.js +0 -62
  381. data/node_modules/axe-core/lib/commons/dom/is-skip-link.js +0 -45
  382. data/node_modules/axe-core/lib/commons/dom/is-visible.js +0 -176
  383. data/node_modules/axe-core/lib/commons/dom/is-visual-content.js +0 -49
  384. data/node_modules/axe-core/lib/commons/dom/shadow-elements-from-point.js +0 -42
  385. data/node_modules/axe-core/lib/commons/dom/url-props-from-attribute.js +0 -152
  386. data/node_modules/axe-core/lib/commons/dom/visually-contains.js +0 -111
  387. data/node_modules/axe-core/lib/commons/dom/visually-overlaps.js +0 -46
  388. data/node_modules/axe-core/lib/commons/forms/index.js +0 -8
  389. data/node_modules/axe-core/lib/commons/forms/is-aria-combobox.js +0 -13
  390. data/node_modules/axe-core/lib/commons/forms/is-aria-listbox.js +0 -13
  391. data/node_modules/axe-core/lib/commons/forms/is-aria-range.js +0 -14
  392. data/node_modules/axe-core/lib/commons/forms/is-aria-textbox.js +0 -13
  393. data/node_modules/axe-core/lib/commons/forms/is-native-select.js +0 -13
  394. data/node_modules/axe-core/lib/commons/forms/is-native-textbox.js +0 -28
  395. data/node_modules/axe-core/lib/commons/index.js +0 -11
  396. data/node_modules/axe-core/lib/commons/intro.stub +0 -1
  397. data/node_modules/axe-core/lib/commons/matches/attributes.js +0 -27
  398. data/node_modules/axe-core/lib/commons/matches/condition.js +0 -19
  399. data/node_modules/axe-core/lib/commons/matches/from-definition.js +0 -52
  400. data/node_modules/axe-core/lib/commons/matches/from-function.js +0 -38
  401. data/node_modules/axe-core/lib/commons/matches/from-primative.js +0 -30
  402. data/node_modules/axe-core/lib/commons/matches/index.js +0 -39
  403. data/node_modules/axe-core/lib/commons/matches/node-name.js +0 -24
  404. data/node_modules/axe-core/lib/commons/matches/properties.js +0 -28
  405. data/node_modules/axe-core/lib/commons/outro.stub +0 -2
  406. data/node_modules/axe-core/lib/commons/table/get-all-cells.js +0 -28
  407. data/node_modules/axe-core/lib/commons/table/get-cell-position.js +0 -28
  408. data/node_modules/axe-core/lib/commons/table/get-headers.js +0 -79
  409. data/node_modules/axe-core/lib/commons/table/get-scope.js +0 -54
  410. data/node_modules/axe-core/lib/commons/table/index.js +0 -9
  411. data/node_modules/axe-core/lib/commons/table/is-column-header.js +0 -13
  412. data/node_modules/axe-core/lib/commons/table/is-data-cell.js +0 -22
  413. data/node_modules/axe-core/lib/commons/table/is-data-table.js +0 -189
  414. data/node_modules/axe-core/lib/commons/table/is-header.js +0 -22
  415. data/node_modules/axe-core/lib/commons/table/is-row-header.js +0 -13
  416. data/node_modules/axe-core/lib/commons/table/to-grid.js +0 -38
  417. data/node_modules/axe-core/lib/commons/table/traverse.js +0 -78
  418. data/node_modules/axe-core/lib/commons/text/accessible-text-virtual.js +0 -152
  419. data/node_modules/axe-core/lib/commons/text/form-control-value.js +0 -192
  420. data/node_modules/axe-core/lib/commons/text/index.js +0 -8
  421. data/node_modules/axe-core/lib/commons/text/is-human-interpretable.js +0 -51
  422. data/node_modules/axe-core/lib/commons/text/is-icon-ligature.js +0 -210
  423. data/node_modules/axe-core/lib/commons/text/is-valid-autocomplete.js +0 -117
  424. data/node_modules/axe-core/lib/commons/text/label-text.js +0 -58
  425. data/node_modules/axe-core/lib/commons/text/label-virtual.js +0 -53
  426. data/node_modules/axe-core/lib/commons/text/native-element-types.js +0 -100
  427. data/node_modules/axe-core/lib/commons/text/native-text-alternative.js +0 -50
  428. data/node_modules/axe-core/lib/commons/text/native-text-methods.js +0 -122
  429. data/node_modules/axe-core/lib/commons/text/sanitize.js +0 -18
  430. data/node_modules/axe-core/lib/commons/text/subtree-text.js +0 -89
  431. data/node_modules/axe-core/lib/commons/text/title-text.js +0 -33
  432. data/node_modules/axe-core/lib/commons/text/unicode.js +0 -147
  433. data/node_modules/axe-core/lib/commons/text/unsupported.js +0 -5
  434. data/node_modules/axe-core/lib/commons/text/visible-text-nodes.js +0 -25
  435. data/node_modules/axe-core/lib/commons/text/visible-virtual.js +0 -46
  436. data/node_modules/axe-core/lib/commons/utils/index.js +0 -10
  437. data/node_modules/axe-core/lib/core/base/audit.js +0 -781
  438. data/node_modules/axe-core/lib/core/base/cache.js +0 -33
  439. data/node_modules/axe-core/lib/core/base/check-result.js +0 -33
  440. data/node_modules/axe-core/lib/core/base/check.js +0 -170
  441. data/node_modules/axe-core/lib/core/base/context.js +0 -274
  442. data/node_modules/axe-core/lib/core/base/rule-result.js +0 -39
  443. data/node_modules/axe-core/lib/core/base/rule.js +0 -560
  444. data/node_modules/axe-core/lib/core/base/virtual-node/abstract-virtual-node.js +0 -40
  445. data/node_modules/axe-core/lib/core/base/virtual-node/serial-virtual-node.js +0 -88
  446. data/node_modules/axe-core/lib/core/base/virtual-node/virtual-node.js +0 -136
  447. data/node_modules/axe-core/lib/core/constants.js +0 -76
  448. data/node_modules/axe-core/lib/core/imports/index.js +0 -51
  449. data/node_modules/axe-core/lib/core/index.js +0 -43
  450. data/node_modules/axe-core/lib/core/log.js +0 -12
  451. data/node_modules/axe-core/lib/core/public/cleanup-plugins.js +0 -53
  452. data/node_modules/axe-core/lib/core/public/configure.js +0 -110
  453. data/node_modules/axe-core/lib/core/public/get-rules.js +0 -29
  454. data/node_modules/axe-core/lib/core/public/load.js +0 -66
  455. data/node_modules/axe-core/lib/core/public/plugins.js +0 -47
  456. data/node_modules/axe-core/lib/core/public/reporter.js +0 -24
  457. data/node_modules/axe-core/lib/core/public/reset.js +0 -12
  458. data/node_modules/axe-core/lib/core/public/run-rules.js +0 -96
  459. data/node_modules/axe-core/lib/core/public/run-virtual-rule.js +0 -50
  460. data/node_modules/axe-core/lib/core/public/run.js +0 -159
  461. data/node_modules/axe-core/lib/core/reporters/helpers/failure-summary.js +0 -35
  462. data/node_modules/axe-core/lib/core/reporters/helpers/get-environment-data.js +0 -39
  463. data/node_modules/axe-core/lib/core/reporters/helpers/incomplete-fallback-msg.js +0 -13
  464. data/node_modules/axe-core/lib/core/reporters/helpers/index.js +0 -3
  465. data/node_modules/axe-core/lib/core/reporters/helpers/process-aggregate.js +0 -102
  466. data/node_modules/axe-core/lib/core/reporters/na.js +0 -24
  467. data/node_modules/axe-core/lib/core/reporters/no-passes.js +0 -18
  468. data/node_modules/axe-core/lib/core/reporters/raw-env.js +0 -12
  469. data/node_modules/axe-core/lib/core/reporters/raw.js +0 -32
  470. data/node_modules/axe-core/lib/core/reporters/v1.js +0 -29
  471. data/node_modules/axe-core/lib/core/reporters/v2.js +0 -22
  472. data/node_modules/axe-core/lib/core/utils/aggregate.js +0 -19
  473. data/node_modules/axe-core/lib/core/utils/aggregateChecks.js +0 -85
  474. data/node_modules/axe-core/lib/core/utils/aggregateNodeResults.js +0 -61
  475. data/node_modules/axe-core/lib/core/utils/aggregateResult.js +0 -37
  476. data/node_modules/axe-core/lib/core/utils/are-styles-set.js +0 -21
  477. data/node_modules/axe-core/lib/core/utils/assert.js +0 -12
  478. data/node_modules/axe-core/lib/core/utils/check-helper.js +0 -38
  479. data/node_modules/axe-core/lib/core/utils/clone.js +0 -27
  480. data/node_modules/axe-core/lib/core/utils/collect-results-from-frames.js +0 -127
  481. data/node_modules/axe-core/lib/core/utils/contains.js +0 -44
  482. data/node_modules/axe-core/lib/core/utils/css-parser.js +0 -7
  483. data/node_modules/axe-core/lib/core/utils/dq-element.js +0 -97
  484. data/node_modules/axe-core/lib/core/utils/element-matches.js +0 -43
  485. data/node_modules/axe-core/lib/core/utils/escape-selector.js +0 -78
  486. data/node_modules/axe-core/lib/core/utils/extend-meta-data.js +0 -17
  487. data/node_modules/axe-core/lib/core/utils/finalize-result.js +0 -11
  488. data/node_modules/axe-core/lib/core/utils/find-by.js +0 -14
  489. data/node_modules/axe-core/lib/core/utils/flattened-tree.js +0 -156
  490. data/node_modules/axe-core/lib/core/utils/get-all-checks.js +0 -12
  491. data/node_modules/axe-core/lib/core/utils/get-base-lang.js +0 -16
  492. data/node_modules/axe-core/lib/core/utils/get-check-message.js +0 -21
  493. data/node_modules/axe-core/lib/core/utils/get-check-option.js +0 -39
  494. data/node_modules/axe-core/lib/core/utils/get-friendly-uri-end.js +0 -144
  495. data/node_modules/axe-core/lib/core/utils/get-node-attributes.js +0 -21
  496. data/node_modules/axe-core/lib/core/utils/get-root-node.js +0 -17
  497. data/node_modules/axe-core/lib/core/utils/get-scroll.js +0 -39
  498. data/node_modules/axe-core/lib/core/utils/get-selector.js +0 -409
  499. data/node_modules/axe-core/lib/core/utils/get-stylesheet-factory.js +0 -51
  500. data/node_modules/axe-core/lib/core/utils/get-xpath.js +0 -83
  501. data/node_modules/axe-core/lib/core/utils/index.js +0 -10
  502. data/node_modules/axe-core/lib/core/utils/inject-style.js +0 -38
  503. data/node_modules/axe-core/lib/core/utils/is-hidden.js +0 -52
  504. data/node_modules/axe-core/lib/core/utils/is-html-element.js +0 -135
  505. data/node_modules/axe-core/lib/core/utils/is-shadow-root.js +0 -40
  506. data/node_modules/axe-core/lib/core/utils/is-xhtml.js +0 -14
  507. data/node_modules/axe-core/lib/core/utils/matches.js +0 -263
  508. data/node_modules/axe-core/lib/core/utils/memoize.js +0 -17
  509. data/node_modules/axe-core/lib/core/utils/merge-results.js +0 -116
  510. data/node_modules/axe-core/lib/core/utils/node-sorter.js +0 -21
  511. data/node_modules/axe-core/lib/core/utils/parse-crossorigin-stylesheet.js +0 -54
  512. data/node_modules/axe-core/lib/core/utils/parse-sameorigin-stylesheet.js +0 -96
  513. data/node_modules/axe-core/lib/core/utils/parse-stylesheet.js +0 -70
  514. data/node_modules/axe-core/lib/core/utils/performance-timer.js +0 -126
  515. data/node_modules/axe-core/lib/core/utils/pollyfills.js +0 -299
  516. data/node_modules/axe-core/lib/core/utils/preload-cssom.js +0 -253
  517. data/node_modules/axe-core/lib/core/utils/preload-media.js +0 -65
  518. data/node_modules/axe-core/lib/core/utils/preload.js +0 -144
  519. data/node_modules/axe-core/lib/core/utils/process-message.js +0 -72
  520. data/node_modules/axe-core/lib/core/utils/publish-metadata.js +0 -106
  521. data/node_modules/axe-core/lib/core/utils/qsa.js +0 -110
  522. data/node_modules/axe-core/lib/core/utils/queue.js +0 -138
  523. data/node_modules/axe-core/lib/core/utils/respondable.js +0 -261
  524. data/node_modules/axe-core/lib/core/utils/rule-should-run.js +0 -82
  525. data/node_modules/axe-core/lib/core/utils/scroll-state.js +0 -57
  526. data/node_modules/axe-core/lib/core/utils/select.js +0 -135
  527. data/node_modules/axe-core/lib/core/utils/to-array.js +0 -21
  528. data/node_modules/axe-core/lib/core/utils/token-list.js +0 -15
  529. data/node_modules/axe-core/lib/core/utils/uuid.js +0 -244
  530. data/node_modules/axe-core/lib/core/utils/valid-input-type.js +0 -35
  531. data/node_modules/axe-core/lib/core/utils/valid-langs.js +0 -8152
  532. data/node_modules/axe-core/lib/intro.stub +0 -15
  533. data/node_modules/axe-core/lib/misc/any-failure-summary.json +0 -6
  534. data/node_modules/axe-core/lib/misc/incomplete-fallback.json +0 -3
  535. data/node_modules/axe-core/lib/misc/none-failure-summary.json +0 -6
  536. data/node_modules/axe-core/lib/outro.stub +0 -2
  537. data/node_modules/axe-core/lib/rules/accesskeys.json +0 -13
  538. data/node_modules/axe-core/lib/rules/area-alt.json +0 -21
  539. data/node_modules/axe-core/lib/rules/aria-allowed-attr-matches.js +0 -11
  540. data/node_modules/axe-core/lib/rules/aria-allowed-attr.json +0 -12
  541. data/node_modules/axe-core/lib/rules/aria-allowed-role-matches.js +0 -7
  542. data/node_modules/axe-core/lib/rules/aria-allowed-role.json +0 -14
  543. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback-matches.js +0 -10
  544. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback.json +0 -14
  545. data/node_modules/axe-core/lib/rules/aria-form-field-name-matches.js +0 -50
  546. data/node_modules/axe-core/lib/rules/aria-has-attr-matches.js +0 -11
  547. data/node_modules/axe-core/lib/rules/aria-hidden-body.json +0 -13
  548. data/node_modules/axe-core/lib/rules/aria-hidden-focus-matches.js +0 -18
  549. data/node_modules/axe-core/lib/rules/aria-hidden-focus.json +0 -18
  550. data/node_modules/axe-core/lib/rules/aria-input-field-name.json +0 -13
  551. data/node_modules/axe-core/lib/rules/aria-required-attr.json +0 -12
  552. data/node_modules/axe-core/lib/rules/aria-required-children.json +0 -12
  553. data/node_modules/axe-core/lib/rules/aria-required-parent.json +0 -12
  554. data/node_modules/axe-core/lib/rules/aria-roledescription.json +0 -12
  555. data/node_modules/axe-core/lib/rules/aria-roles.json +0 -13
  556. data/node_modules/axe-core/lib/rules/aria-toggle-field-name.json +0 -18
  557. data/node_modules/axe-core/lib/rules/aria-valid-attr-value.json +0 -12
  558. data/node_modules/axe-core/lib/rules/aria-valid-attr.json +0 -12
  559. data/node_modules/axe-core/lib/rules/audio-caption.json +0 -20
  560. data/node_modules/axe-core/lib/rules/autocomplete-matches.js +0 -49
  561. data/node_modules/axe-core/lib/rules/autocomplete-valid.json +0 -12
  562. data/node_modules/axe-core/lib/rules/avoid-inline-spacing.json +0 -12
  563. data/node_modules/axe-core/lib/rules/blink.json +0 -19
  564. data/node_modules/axe-core/lib/rules/button-name.json +0 -25
  565. data/node_modules/axe-core/lib/rules/bypass-matches.js +0 -1
  566. data/node_modules/axe-core/lib/rules/bypass.json +0 -20
  567. data/node_modules/axe-core/lib/rules/checkboxgroup.json +0 -13
  568. data/node_modules/axe-core/lib/rules/color-contrast-matches.js +0 -161
  569. data/node_modules/axe-core/lib/rules/color-contrast.json +0 -13
  570. data/node_modules/axe-core/lib/rules/css-orientation-lock.json +0 -13
  571. data/node_modules/axe-core/lib/rules/data-table-large-matches.js +0 -11
  572. data/node_modules/axe-core/lib/rules/data-table-matches.js +0 -1
  573. data/node_modules/axe-core/lib/rules/definition-list.json +0 -13
  574. data/node_modules/axe-core/lib/rules/dlitem.json +0 -13
  575. data/node_modules/axe-core/lib/rules/document-title.json +0 -13
  576. data/node_modules/axe-core/lib/rules/duplicate-id-active-matches.js +0 -8
  577. data/node_modules/axe-core/lib/rules/duplicate-id-active.json +0 -14
  578. data/node_modules/axe-core/lib/rules/duplicate-id-aria-matches.js +0 -1
  579. data/node_modules/axe-core/lib/rules/duplicate-id-aria.json +0 -14
  580. data/node_modules/axe-core/lib/rules/duplicate-id-misc-matches.js +0 -11
  581. data/node_modules/axe-core/lib/rules/duplicate-id.json +0 -14
  582. data/node_modules/axe-core/lib/rules/empty-heading.json +0 -13
  583. data/node_modules/axe-core/lib/rules/focus-order-semantics.json +0 -13
  584. data/node_modules/axe-core/lib/rules/form-field-multiple-labels.json +0 -13
  585. data/node_modules/axe-core/lib/rules/frame-tested.json +0 -12
  586. data/node_modules/axe-core/lib/rules/frame-title-has-text.js +0 -2
  587. data/node_modules/axe-core/lib/rules/frame-title-unique.json +0 -13
  588. data/node_modules/axe-core/lib/rules/frame-title.json +0 -25
  589. data/node_modules/axe-core/lib/rules/heading-matches.js +0 -15
  590. data/node_modules/axe-core/lib/rules/heading-order.json +0 -13
  591. data/node_modules/axe-core/lib/rules/hidden-content.json +0 -13
  592. data/node_modules/axe-core/lib/rules/html-has-lang.json +0 -13
  593. data/node_modules/axe-core/lib/rules/html-lang-valid.json +0 -12
  594. data/node_modules/axe-core/lib/rules/html-namespace-matches.js +0 -1
  595. data/node_modules/axe-core/lib/rules/html-xml-lang-mismatch.json +0 -13
  596. data/node_modules/axe-core/lib/rules/identical-links-same-purpose-matches.js +0 -13
  597. data/node_modules/axe-core/lib/rules/identical-links-same-purpose.json +0 -14
  598. data/node_modules/axe-core/lib/rules/image-alt.json +0 -25
  599. data/node_modules/axe-core/lib/rules/img-redundant-alt.json +0 -12
  600. data/node_modules/axe-core/lib/rules/input-button-name.json +0 -26
  601. data/node_modules/axe-core/lib/rules/input-image-alt.json +0 -18
  602. data/node_modules/axe-core/lib/rules/inserted-into-focus-order-matches.js +0 -1
  603. data/node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js +0 -45
  604. data/node_modules/axe-core/lib/rules/label-content-name-mismatch.json +0 -12
  605. data/node_modules/axe-core/lib/rules/label-matches.js +0 -11
  606. data/node_modules/axe-core/lib/rules/label-title-only.json +0 -13
  607. data/node_modules/axe-core/lib/rules/label.json +0 -26
  608. data/node_modules/axe-core/lib/rules/landmark-banner-is-top-level.json +0 -13
  609. data/node_modules/axe-core/lib/rules/landmark-complementary-is-top-level.json +0 -12
  610. data/node_modules/axe-core/lib/rules/landmark-contentinfo-is-top-level.json +0 -13
  611. data/node_modules/axe-core/lib/rules/landmark-has-body-context.js +0 -8
  612. data/node_modules/axe-core/lib/rules/landmark-main-is-top-level.json +0 -12
  613. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-banner.json +0 -12
  614. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-contentinfo.json +0 -12
  615. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-main.json +0 -12
  616. data/node_modules/axe-core/lib/rules/landmark-one-main.json +0 -12
  617. data/node_modules/axe-core/lib/rules/landmark-unique-matches.js +0 -41
  618. data/node_modules/axe-core/lib/rules/landmark-unique.json +0 -13
  619. data/node_modules/axe-core/lib/rules/layout-table-matches.js +0 -8
  620. data/node_modules/axe-core/lib/rules/layout-table.json +0 -14
  621. data/node_modules/axe-core/lib/rules/link-in-text-block-matches.js +0 -14
  622. data/node_modules/axe-core/lib/rules/link-in-text-block.json +0 -14
  623. data/node_modules/axe-core/lib/rules/link-name.json +0 -25
  624. data/node_modules/axe-core/lib/rules/list.json +0 -13
  625. data/node_modules/axe-core/lib/rules/listitem.json +0 -13
  626. data/node_modules/axe-core/lib/rules/marquee.json +0 -13
  627. data/node_modules/axe-core/lib/rules/meta-refresh.json +0 -20
  628. data/node_modules/axe-core/lib/rules/meta-viewport-large.json +0 -13
  629. data/node_modules/axe-core/lib/rules/meta-viewport.json +0 -13
  630. data/node_modules/axe-core/lib/rules/no-autoplay-audio-matches.js +0 -18
  631. data/node_modules/axe-core/lib/rules/no-autoplay-audio.json +0 -15
  632. data/node_modules/axe-core/lib/rules/no-empty-role-matches.js +0 -9
  633. data/node_modules/axe-core/lib/rules/no-role-matches.js +0 -1
  634. data/node_modules/axe-core/lib/rules/not-html-matches.js +0 -1
  635. data/node_modules/axe-core/lib/rules/object-alt.json +0 -25
  636. data/node_modules/axe-core/lib/rules/p-as-heading-matches.js +0 -17
  637. data/node_modules/axe-core/lib/rules/p-as-heading.json +0 -13
  638. data/node_modules/axe-core/lib/rules/page-has-heading-one.json +0 -12
  639. data/node_modules/axe-core/lib/rules/radiogroup.json +0 -13
  640. data/node_modules/axe-core/lib/rules/region.json +0 -12
  641. data/node_modules/axe-core/lib/rules/role-img-alt.json +0 -19
  642. data/node_modules/axe-core/lib/rules/scope-attr-valid.json +0 -12
  643. data/node_modules/axe-core/lib/rules/scrollable-region-focusable-matches.js +0 -30
  644. data/node_modules/axe-core/lib/rules/scrollable-region-focusable.json +0 -12
  645. data/node_modules/axe-core/lib/rules/server-side-image-map.json +0 -18
  646. data/node_modules/axe-core/lib/rules/skip-link-matches.js +0 -1
  647. data/node_modules/axe-core/lib/rules/skip-link.json +0 -13
  648. data/node_modules/axe-core/lib/rules/svg-img-alt.json +0 -24
  649. data/node_modules/axe-core/lib/rules/svg-namespace-matches.js +0 -1
  650. data/node_modules/axe-core/lib/rules/tabindex.json +0 -12
  651. data/node_modules/axe-core/lib/rules/table-duplicate-name.json +0 -12
  652. data/node_modules/axe-core/lib/rules/table-fake-caption.json +0 -20
  653. data/node_modules/axe-core/lib/rules/td-has-header.json +0 -20
  654. data/node_modules/axe-core/lib/rules/td-headers-attr.json +0 -12
  655. data/node_modules/axe-core/lib/rules/th-has-data-cells.json +0 -13
  656. data/node_modules/axe-core/lib/rules/valid-lang.json +0 -13
  657. data/node_modules/axe-core/lib/rules/video-caption.json +0 -19
  658. data/node_modules/axe-core/lib/rules/video-description.json +0 -21
  659. data/node_modules/axe-core/lib/rules/window-is-top.js +0 -3
  660. data/node_modules/axe-core/lib/rules/xml-lang-mismatch-matches.js +0 -12
  661. data/node_modules/axe-core/typings/axe-core/axe-core-tests.ts +0 -188
@@ -1,123 +0,0 @@
1
- # Developing Axe-core Rules
2
-
3
- Before you start writing axe-core rules, be sure to create a proposal for them in a github issue. Read [Proposing Axe-core rules](./rule-proposal.md) for details.
4
-
5
- A rule is a JSON Object that defines a test for axe-core to run. At a high level, think of a rule as doing two things. First it finds all elements that it should test, and after that it runs a number of checks to see if those selected elements pass or fail the rule.
6
-
7
- ## Rule Select and Matches
8
-
9
- Each rule has a 'selector' and optionally a 'matches' property. The selector is a CSS selector. Each element matching this selector will be tested by the rule, unless the matches function says otherwise. The `matches` property is a reference to a function that returns a boolean, which indicates if the element should be tested.
10
-
11
- The last thing that may influence if an element is selected for testing in the rule is it's visibility. By default, hidden elements are ignored by the rule, unless the `excludeHidden` is set to 'false'.
12
-
13
- ## Using Checks in Rules
14
-
15
- The actual testing of elements in axe-core is done by checks. A rule has one or more checks which end up generating a result. There are three properties with which to define a rule's checks. Each of them deals differently:
16
-
17
- - **All**: Takes an array of check names, **all** of which has to return true for the rule to pass.
18
- - **none**: Takes an array of check names, **none** of which can to return true for the rule to pass.
19
- - **any**: Takes an array of check names, **at least one** of which has to return true for the rule to pass.
20
-
21
- ## Rule Properties
22
-
23
- | Prop. Name | Description |
24
- | -------------------- | ------------------------------------------------------------------- |
25
- | id | Unique identifier for the rule |
26
- | selector | CSS Selector that matches elements to test |
27
- | matches | Function to further filter the outcome of the selector |
28
- | excludeHidden | Should hidden elements be excluded |
29
- | all | Checks that must all return true |
30
- | any | Checks of which at least one must return true |
31
- | none | Checks that must all return false |
32
- | pageLevel | Should the rule only run on the main window |
33
- | enabled | Does the rule run by default |
34
- | tags | Grouping for the rule, such as wcag2a, best-practice |
35
- | metadata.description | Description of what a rule does |
36
- | metadata.help | Short description of a violation, used in the axe extension sidebar |
37
-
38
- ## Check Properties
39
-
40
- | Prop. Name | Description |
41
- | ---------------------------- | ---------------------------------------------- |
42
- | id | Unique identifier for the check |
43
- | evaluate | Evaluating function, returning a boolean value |
44
- | options | Configurable value for the check |
45
- | after | Cleanup function, run after check is done |
46
- | metadata impact | "minor", "serious", "critical" |
47
- | metadata.messages.pass | Describes why the check passed |
48
- | metadata.messages.fail | Describes why the check failed |
49
- | metadata.messages.incomplete | Describes why the check didn’t complete |
50
-
51
- Incomplete results occur when axe-core can’t produce a clear pass or fail result,
52
- giving users the opportunity to review it manually. Incomplete messages can take
53
- the form of a string, or an object with arbitrary keys matching the data returned
54
- from the check.
55
-
56
- A pass message is required, while fail and incomplete are dependent on the check result.
57
-
58
- ### Incomplete message string
59
-
60
- As one example, the audio and video caption checks return an incomplete string:
61
-
62
- ```js
63
- messages: {
64
- pass: 'Why the check passed',
65
- fail: 'Why the check failed',
66
- incomplete: 'Why the check returned undefined'
67
- }
68
- ```
69
-
70
- ### Incomplete message object with missingData
71
-
72
- As another example, the color-contrast check returns missingData to aid in
73
- remediation. Here’s the message format:
74
-
75
- ```js
76
- messages: {
77
- pass: 'Why the check passed',
78
- fail: 'Why the check failed',
79
- incomplete: {
80
- bgImage: 'The background color could not be determined due to a background image',
81
- default: 'fallback string'
82
- }
83
- }
84
- ```
85
-
86
- To wire up an incomplete message with a specific reason it returned undefined,
87
- the check needs matching data. Otherwise, it will fall back to the `default` message.
88
- Reasons are arbitrary for the check (such as 'bgImage') but they must match the
89
- data returned:
90
-
91
- ```js
92
- this.data({
93
- missingData: 'bgImage'
94
- });
95
- ```
96
-
97
- # Hierarchical rules
98
-
99
- Axe-core handles shadow DOM and cross-domain iframe rules very well - as long as you take care in the design and implementation of your rule. Any rule that evaluates the DOM hierarchy needs to think about what happens across shadow DOM boundaries and iframe boundaries.
100
-
101
- The rule callbacks all receive both a `node` and a `virtualNode` argument (in addition to the `options` argument). `node` points to the DOM Node that is to be evaluated, whereas `virtualNode` points to the node in the flattened tree (the hierarchy that shadow DOM creates that is used for parent child relationships across shadow DOM boundaries).
102
-
103
- If your rule looks at any hierarchical context (parents or children) then you need to operate on the `virtualNode` for those operations. Calls to `isHidden` and the accessible name calculation calls will all evaluate the hierarchy. The commons and utils functions will all fetch the `virtualNode` from the flattened tree if you use the `node` implementation (and then simply call the virtualNode one) and are there for backwards compatibility. This backwards compatibility comes at a performance cost that can be avoided by simply using the `virtualNode` to start with. We will ask you to change this during PR review, so you might as well just start out by using the `virtualNode`.
104
-
105
- ## iframes
106
-
107
- Rules that evaluate the structure and/or the number of elements on the entire page (for example the heading nesting rule, or the landmark rules) will need to do this evaluation across iframe boundaries. What this means is that the check function instead of determining pass/fail/incomplete, performs a data gathering function. This data is then passed up the iframe hierarchy to the top window where it is passed into the `after` function, which does the evaluation of the gathered data and determines pass/fail.
108
-
109
- ## Rules of Thumb for Rule Code Reviewers
110
-
111
- Rules of thumb for determining whether `virtualNode` should be used - if any of the answers to the following questions is yes, then it should use shadow DOM and `virtualNode`:
112
-
113
- 1. Is it using the non-virtualNode version of a function that wraps the flattened tree lookup?
114
- 2. Is it evaluating the DOM hierarchy?
115
-
116
- Rules that do this MUST have shadow DOM test cases that show passes and fails across the shadow DOM boundary.
117
-
118
- Rules of thumb for determining whether an `after` function is required - if any of the answers to the following questions is yes:
119
-
120
- 1. Does the rule evaluate number of things on a page?
121
- 2. Does the rule evaluate hierarchy of things across a whole page?
122
-
123
- Rules that use an `after` function MUST have iframe test cases that assert correct data passing between iframes and handle all the relevant cases across iframes.
@@ -1,106 +0,0 @@
1
- # Proposing Axe-core Rules
2
-
3
- This document outlines the process of proposing a rule. For a technical description on how to build a rule, read [Developing Axe-core Rules](./rule-development.md)
4
-
5
- Before you start coding a new rule for axe-core, you _must_ create a Github issue to document the rule you want to create. There are many considerations to writing a good rule. It must have no false positives, which is difficult, because there are always many many edge cases to consider. Additionally, a known problem of accessibility testing, is that not all testers hold the same interpretation of the accessibility guidelines. All rules _must_ be consistent with the interpretation of Deque Systems, the developer behind Axe-core.
6
-
7
- In addition to giving the axe-core development team an opportunity to provide feedback on the proposed rule, the Github Issue will serve as documentation of that rule for the future.
8
-
9
- ## WCAG interpretation
10
-
11
- Please read our [principles for deciding on rules](./accessibility-supported.md).
12
-
13
- ## Rules Format
14
-
15
- All Github issues that propose a rule must be tagged as _rule_, and must use the following format:
16
-
17
- ### Intro
18
-
19
- In one sentence, describe what the rule does.
20
-
21
- Example: "Ensures ARIA attributes are allowed for an element's role"\
22
-
23
- #### Rule help
24
-
25
- In one sentence, describe how to resolve the issue.
26
-
27
- Example: "Elements must only use allowed ARIA attributes"
28
-
29
- #### Tags
30
-
31
- Indicate which tags the rule should use.
32
-
33
- Example: wcag2a, wcag211, cat.keyboard
34
-
35
- ### Selector
36
-
37
- If possible using a CSS selector, otherwise describe in one sentence using plain language what elements the rule selects.
38
-
39
- Example 1: `input[type=checkbox][name]`
40
-
41
- Example 2: Select each node that has an attribute starting with `aria-`.
42
-
43
- ### Checks:
44
-
45
- Make each check a subheading of `checks`. Give the check name in the heading, and indicate if the check type is `any`, `all` or `none`.
46
-
47
- In short sentences, using plain language, describe what conditions will lead to the check returning false, true or undefined. Keep the steps simple and short. You don't have to write out all the logic. Preferably not, just give the high level view of what the check does.
48
-
49
- **Example 1:**
50
-
51
- `###` aria/allow-attr (any)
52
-
53
- 1. Look up the element role
54
- 2. Look up a list of aria attributes allowed for that role
55
- 3. Return false if the element has aria attributes not in the list
56
- 4. Otherwise return true
57
-
58
- **Example 2:**
59
-
60
- `###` keyboard/focusable-no-name (none)
61
-
62
- 1. If the element is not in the focus order, return false
63
- 2. If the element has an accessible name, return false
64
- 3. Otherwise return true
65
-
66
- ## Best practices
67
-
68
- For rule design, consider the following as best practices:
69
-
70
- 1. Rules should only have one `none` check so that the error message is specific
71
- 2. Rules should not combine `any` and `none`, these should be broken out into separate rules
72
- 3. Checks should each only test a single specific case (either a passing technique or a single failing test)
73
-
74
- ## Template
75
-
76
- Use this template when creating the issue:
77
-
78
- ```markdown
79
- # {{ Rule name }}
80
-
81
- {{ Rule description }}
82
-
83
- {{ Rule help }}
84
-
85
- **Tags:** {{ tag, tag, tag }}
86
-
87
- ## Selector
88
-
89
- {{ selector }}
90
-
91
- ## Checks
92
-
93
- ### {{ Check name 1 }} ( any / all / none )
94
-
95
- 1.
96
-
97
- ### {{ Check name 2, optional }} ( any / all / none )
98
-
99
- 1.
100
- ```
101
-
102
- ## W3C Standardized Rules
103
-
104
- Deque Systems is one of leading organizations in the development of standardized accessibility conformance testing rules. The above format is an adaptation of the [Accessibility Conformance Testing Rules Format](https://www.w3.org/TR/act-rules-format/).
105
-
106
- For details on how the above format maps to the ACT Rules format, see [act-rules-format.md](./act-rules-format.md).
@@ -1,10 +0,0 @@
1
- const abstractRoles = axe.utils
2
- .tokenList(virtualNode.attr('role'))
3
- .filter(role => axe.commons.aria.getRoleType(role) === 'abstract');
4
-
5
- if (abstractRoles.length > 0) {
6
- this.data(abstractRoles);
7
- return true;
8
- }
9
-
10
- return false;
@@ -1,14 +0,0 @@
1
- {
2
- "id": "abstractrole",
3
- "evaluate": "abstractrole.js",
4
- "metadata": {
5
- "impact": "serious",
6
- "messages": {
7
- "pass": "Abstract roles are not used",
8
- "fail": {
9
- "singular": "Abstract role cannot be directly used: ${data.values}",
10
- "plural": "Abstract roles cannot be directly used: ${data.values}"
11
- }
12
- }
13
- }
14
- }
@@ -1,39 +0,0 @@
1
- options = options || {};
2
-
3
- var invalid = [];
4
-
5
- var attr,
6
- attrName,
7
- allowed,
8
- role = node.getAttribute('role'),
9
- attrs = axe.utils.getNodeAttributes(node);
10
-
11
- if (!role) {
12
- role = axe.commons.aria.implicitRole(node);
13
- }
14
-
15
- allowed = axe.commons.aria.allowedAttr(role);
16
-
17
- if (Array.isArray(options[role])) {
18
- allowed = axe.utils.uniqueArray(options[role].concat(allowed));
19
- }
20
-
21
- if (role && allowed) {
22
- for (var i = 0, l = attrs.length; i < l; i++) {
23
- attr = attrs[i];
24
- attrName = attr.name;
25
- if (
26
- axe.commons.aria.validateAttr(attrName) &&
27
- !allowed.includes(attrName)
28
- ) {
29
- invalid.push(attrName + '="' + attr.nodeValue + '"');
30
- }
31
- }
32
- }
33
-
34
- if (invalid.length) {
35
- this.data(invalid);
36
- return false;
37
- }
38
-
39
- return true;
@@ -1,14 +0,0 @@
1
- {
2
- "id": "aria-allowed-attr",
3
- "evaluate": "allowed-attr.js",
4
- "metadata": {
5
- "impact": "critical",
6
- "messages": {
7
- "pass": "ARIA attributes are used correctly for the defined role",
8
- "fail": {
9
- "singular": "ARIA attribute is not allowed: ${data.values}",
10
- "plural": "ARIA attributes are not allowed: ${data.values}"
11
- }
12
- }
13
- }
14
- }
@@ -1,28 +0,0 @@
1
- /**
2
- * Implements allowed roles defined at:
3
- * https://www.w3.org/TR/html-aria/#docconformance
4
- * https://www.w3.org/TR/SVG2/struct.html#implicit-aria-semantics
5
- */
6
- const { dom } = axe.commons;
7
- const { allowImplicit = true, ignoredTags = [] } = options || {};
8
- const tagName = node.nodeName.toUpperCase();
9
-
10
- // check if the element should be ignored, by an user setting
11
- if (ignoredTags.map(t => t.toUpperCase()).includes(tagName)) {
12
- return true;
13
- }
14
-
15
- const unallowedRoles = axe.commons.aria.getElementUnallowedRoles(
16
- node,
17
- allowImplicit
18
- );
19
-
20
- if (unallowedRoles.length) {
21
- this.data(unallowedRoles);
22
- if (!dom.isVisible(node, true)) {
23
- // flag hidden elements for review
24
- return undefined;
25
- }
26
- return false;
27
- }
28
- return true;
@@ -1,22 +0,0 @@
1
- {
2
- "id": "aria-allowed-role",
3
- "evaluate": "aria-allowed-role.js",
4
- "options": {
5
- "allowImplicit": true,
6
- "ignoredTags": []
7
- },
8
- "metadata": {
9
- "impact": "minor",
10
- "messages": {
11
- "pass": "ARIA role is allowed for given element",
12
- "fail": {
13
- "singular": "ARIA role ${data.values} is not allowed for given element",
14
- "plural": "ARIA roles ${data.values} are not allowed for given element"
15
- },
16
- "incomplete": {
17
- "singular": "ARIA role ${data.values} must be removed when the element is made visible, as it is not allowed for the element",
18
- "plural": "ARIA roles ${data.values} must be removed when the element is made visible, as they are not allowed for the element"
19
- }
20
- }
21
- }
22
- }
@@ -1 +0,0 @@
1
- return node.getAttribute('aria-hidden') !== 'true';
@@ -1,11 +0,0 @@
1
- {
2
- "id": "aria-hidden-body",
3
- "evaluate": "aria-hidden-body.js",
4
- "metadata": {
5
- "impact": "critical",
6
- "messages": {
7
- "pass": "No aria-hidden attribute is present on document body",
8
- "fail": "aria-hidden=true should not be present on the document body"
9
- }
10
- }
11
- }
@@ -1,14 +0,0 @@
1
- options = options || {};
2
-
3
- const role = axe.commons.aria.getRole(node);
4
- const supportedRoles = options.supportedRoles || [];
5
-
6
- if (supportedRoles.includes(role)) {
7
- return true;
8
- }
9
-
10
- if (role && role !== 'presentation' && role !== 'none') {
11
- return undefined;
12
- }
13
-
14
- return false;
@@ -1,23 +0,0 @@
1
- {
2
- "id": "aria-roledescription",
3
- "evaluate": "aria-roledescription.js",
4
- "options": {
5
- "supportedRoles": [
6
- "button",
7
- "img",
8
- "checkbox",
9
- "radio",
10
- "combobox",
11
- "menuitemcheckbox",
12
- "menuitemradio"
13
- ]
14
- },
15
- "metadata": {
16
- "impact": "serious",
17
- "messages": {
18
- "pass": "aria-roledescription used on a supported semantic role",
19
- "incomplete": "Check that the aria-roledescription is announced by supported screen readers",
20
- "fail": "Give the element a role that supports aria-roledescription"
21
- }
22
- }
23
- }
@@ -1,33 +0,0 @@
1
- const { aria, dom } = axe.commons;
2
- options = Array.isArray(options) ? options : [];
3
-
4
- const attr = node.getAttribute('aria-errormessage');
5
- const hasAttr = node.hasAttribute('aria-errormessage');
6
-
7
- const doc = dom.getRootNode(node);
8
-
9
- function validateAttrValue(attr) {
10
- if (attr.trim() === '') {
11
- return aria.lookupTable.attributes['aria-errormessage'].allowEmpty;
12
- }
13
- const idref = attr && doc.getElementById(attr);
14
- if (idref) {
15
- return (
16
- idref.getAttribute('role') === 'alert' ||
17
- idref.getAttribute('aria-live') === 'assertive' ||
18
- axe.utils
19
- .tokenList(node.getAttribute('aria-describedby') || '')
20
- .indexOf(attr) > -1
21
- );
22
- }
23
- }
24
-
25
- // limit results to elements that actually have this attribute
26
- if (options.indexOf(attr) === -1 && hasAttr) {
27
- if (!validateAttrValue(attr)) {
28
- this.data(axe.utils.tokenList(attr));
29
- return false;
30
- }
31
- }
32
-
33
- return true;
@@ -1,14 +0,0 @@
1
- {
2
- "id": "aria-errormessage",
3
- "evaluate": "errormessage.js",
4
- "metadata": {
5
- "impact": "critical",
6
- "messages": {
7
- "pass": "Uses a supported aria-errormessage technique",
8
- "fail": {
9
- "singular": "aria-errormessage value `${data.values}` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)",
10
- "plural": "aria-errormessage values `${data.values}` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)"
11
- }
12
- }
13
- }
14
- }
@@ -1 +0,0 @@
1
- return axe.utils.tokenList(virtualNode.attr('role')).length > 1;
@@ -1,11 +0,0 @@
1
- {
2
- "id": "fallbackrole",
3
- "evaluate": "fallbackrole.js",
4
- "metadata": {
5
- "impact": "serious",
6
- "messages": {
7
- "pass": "Only one role value used",
8
- "fail": "Use only one role value, since fallback roles are not supported in older browsers"
9
- }
10
- }
11
- }
@@ -1,6 +0,0 @@
1
- var role = node.getAttribute('role');
2
- if (role === null) {
3
- return false;
4
- }
5
- var roleType = axe.commons.aria.getRoleType(role);
6
- return roleType === 'widget' || roleType === 'composite';
@@ -1,12 +0,0 @@
1
- {
2
- "id": "has-widget-role",
3
- "evaluate": "has-widget-role.js",
4
- "options": [],
5
- "metadata": {
6
- "impact": "minor",
7
- "messages": {
8
- "pass": "Element has a widget role.",
9
- "fail": "Element does not have a widget role."
10
- }
11
- }
12
- }
@@ -1,6 +0,0 @@
1
- var role = node.getAttribute('role');
2
- if (role === null || !axe.commons.aria.isValidRole(role)) {
3
- return true;
4
- }
5
- var roleType = axe.commons.aria.getRoleType(role);
6
- return axe.commons.aria.implicitRole(node) === roleType;
@@ -1,12 +0,0 @@
1
- {
2
- "id": "implicit-role-fallback",
3
- "evaluate": "implicit-role-fallback.js",
4
- "deprecated": true,
5
- "metadata": {
6
- "impact": "moderate",
7
- "messages": {
8
- "pass": "Element’s implicit ARIA role is an appropriate fallback",
9
- "fail": "Element’s implicit ARIA role is not a good fallback for the (unsupported) role"
10
- }
11
- }
12
- }
@@ -1,17 +0,0 @@
1
- const { tokenList } = axe.utils;
2
- const { aria } = axe.commons;
3
-
4
- const allRoles = tokenList(virtualNode.attr('role'));
5
- const allInvalid = allRoles.every(
6
- role => !aria.isValidRole(role, { allowAbstract: true })
7
- );
8
-
9
- /**
10
- * Only fail when all the roles are invalid
11
- */
12
- if (allInvalid) {
13
- this.data(allRoles);
14
- return true;
15
- }
16
-
17
- return false;
@@ -1,14 +0,0 @@
1
- {
2
- "id": "invalidrole",
3
- "evaluate": "invalidrole.js",
4
- "metadata": {
5
- "impact": "critical",
6
- "messages": {
7
- "pass": "ARIA role is valid",
8
- "fail": {
9
- "singular": "Role must be one of the valid ARIA roles: ${data.values}",
10
- "plural": "Roles must be one of the valid ARIA roles: ${data.values}"
11
- }
12
- }
13
- }
14
- }
@@ -1,21 +0,0 @@
1
- const { aria, text } = axe.commons;
2
-
3
- const role = aria.getRole(node, { noImplicit: true });
4
- this.data(role);
5
-
6
- const labelText = text.sanitize(text.labelText(virtualNode)).toLowerCase();
7
- const accText = text.sanitize(text.accessibleText(node)).toLowerCase();
8
-
9
- if (!accText && !labelText) {
10
- return false;
11
- }
12
-
13
- if (!accText && labelText) {
14
- return undefined;
15
- }
16
-
17
- if (!accText.includes(labelText)) {
18
- return undefined;
19
- }
20
-
21
- return false;
@@ -1,11 +0,0 @@
1
- {
2
- "id": "no-implicit-explicit-label",
3
- "evaluate": "no-implicit-explicit-label.js",
4
- "metadata": {
5
- "impact": "moderate",
6
- "messages": {
7
- "pass": "There is no mismatch between a <label> and accessible name",
8
- "incomplete": "Check that the <label> does not need be part of the ARIA ${data} field's name"
9
- }
10
- }
11
- }
@@ -1,53 +0,0 @@
1
- options = options || {};
2
-
3
- const missing = [];
4
- const {
5
- isNativeTextbox,
6
- isNativeSelect,
7
- isAriaTextbox,
8
- isAriaListbox,
9
- isAriaCombobox,
10
- isAriaRange
11
- } = axe.commons.forms;
12
-
13
- // aria-valuenow should fail if element does not have a value property
14
- // @see https://github.com/dequelabs/axe-core/issues/1501
15
- const preChecks = {
16
- 'aria-valuenow': function() {
17
- return !(
18
- isNativeTextbox(node) ||
19
- isNativeSelect(node) ||
20
- isAriaTextbox(node) ||
21
- isAriaListbox(node) ||
22
- isAriaCombobox(node) ||
23
- (isAriaRange(node) && node.hasAttribute('aria-valuenow'))
24
- );
25
- }
26
- };
27
-
28
- if (node.hasAttributes()) {
29
- const role = node.getAttribute('role');
30
- let required = axe.commons.aria.requiredAttr(role);
31
-
32
- if (Array.isArray(options[role])) {
33
- required = axe.utils.uniqueArray(options[role], required);
34
- }
35
- if (role && required) {
36
- for (let i = 0, l = required.length; i < l; i++) {
37
- const attr = required[i];
38
- if (
39
- !node.getAttribute(attr) &&
40
- (preChecks[attr] ? preChecks[attr]() : true)
41
- ) {
42
- missing.push(attr);
43
- }
44
- }
45
- }
46
- }
47
-
48
- if (missing.length) {
49
- this.data(missing);
50
- return false;
51
- }
52
-
53
- return true;
@@ -1,14 +0,0 @@
1
- {
2
- "id": "aria-required-attr",
3
- "evaluate": "required-attr.js",
4
- "metadata": {
5
- "impact": "critical",
6
- "messages": {
7
- "pass": "All required ARIA attributes are present",
8
- "fail": {
9
- "singular": "Required ARIA attribute not present: ${data.values}",
10
- "plural": "Required ARIA attributes not present: ${data.values}"
11
- }
12
- }
13
- }
14
- }