govuk_publishing_components 30.4.1 → 30.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (651) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-core.js +20 -0
  3. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-event-tracker.js +63 -51
  4. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-link-tracker.js +8 -8
  5. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +11 -10
  6. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/init-ga4.js +27 -0
  7. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4.js +2 -3
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -4
  9. data/app/views/govuk_publishing_components/component_guide/show.html.erb +28 -27
  10. data/config/locales/en.yml +8 -8
  11. data/lib/govuk_publishing_components/version.rb +1 -1
  12. data/node_modules/axe-core/README.md +83 -53
  13. data/node_modules/axe-core/axe.d.ts +403 -224
  14. data/node_modules/axe-core/axe.js +23281 -21919
  15. data/node_modules/axe-core/axe.min.js +3 -3
  16. data/node_modules/axe-core/locales/da.json +795 -780
  17. data/node_modules/axe-core/locales/de.json +932 -621
  18. data/node_modules/axe-core/locales/es.json +786 -771
  19. data/node_modules/axe-core/locales/eu.json +787 -0
  20. data/node_modules/axe-core/locales/fr.json +982 -840
  21. data/node_modules/axe-core/locales/ja.json +988 -880
  22. data/node_modules/axe-core/locales/ko.json +999 -775
  23. data/node_modules/axe-core/locales/nl.json +46 -34
  24. data/node_modules/axe-core/locales/pl.json +965 -0
  25. data/node_modules/axe-core/locales/pt_BR.json +966 -880
  26. data/node_modules/axe-core/package.json +189 -145
  27. data/node_modules/axe-core/sri-history.json +312 -192
  28. data/node_modules/govuk-frontend/govuk/all.js +64 -44
  29. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +1 -1
  30. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +3 -13
  31. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +12 -12
  32. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +5 -1
  33. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +1 -1
  34. data/node_modules/govuk-frontend/govuk/components/details/details.js +8 -20
  35. data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +6 -0
  36. data/node_modules/govuk-frontend/govuk/components/details/template.njk +1 -1
  37. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +9 -0
  38. data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +6 -0
  39. data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +2 -2
  40. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +59 -20
  41. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +40 -0
  42. data/node_modules/govuk-frontend/govuk/components/footer/template.njk +17 -7
  43. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +14 -21
  44. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +11 -11
  45. data/node_modules/govuk-frontend/govuk/components/header/header.js +53 -11
  46. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +2 -2
  47. data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
  48. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +9 -10
  49. data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +6 -0
  50. data/node_modules/govuk-frontend/govuk/components/inset-text/template.njk +1 -1
  51. data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +6 -0
  52. data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +2 -2
  53. data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +6 -0
  54. data/node_modules/govuk-frontend/govuk/components/panel/template.njk +2 -2
  55. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +6 -0
  56. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +15 -1
  57. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +37 -10
  58. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +69 -4
  59. data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +3 -3
  60. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +13 -13
  61. data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +5 -1
  62. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +14 -7
  63. data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +56 -12
  64. data/node_modules/govuk-frontend/govuk/settings/_spacing.scss +4 -8
  65. data/node_modules/govuk-frontend/govuk/template.njk +5 -5
  66. data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +3 -13
  67. data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +8 -20
  68. data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +53 -11
  69. data/node_modules/govuk-frontend/package.json +1 -1
  70. metadata +7 -584
  71. data/node_modules/axe-core/CHANGELOG.md +0 -1053
  72. data/node_modules/axe-core/CONTRIBUTING.md +0 -187
  73. data/node_modules/axe-core/bower.json +0 -40
  74. data/node_modules/axe-core/doc/API.md +0 -889
  75. data/node_modules/axe-core/doc/accessibility-supported.md +0 -33
  76. data/node_modules/axe-core/doc/act-rules-format.md +0 -37
  77. data/node_modules/axe-core/doc/aria-supported.md +0 -13
  78. data/node_modules/axe-core/doc/backwards-compatibility-doc.md +0 -94
  79. data/node_modules/axe-core/doc/check-message-template.md +0 -124
  80. data/node_modules/axe-core/doc/code-submission-guidelines.md +0 -178
  81. data/node_modules/axe-core/doc/developer-guide.md +0 -514
  82. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/README.md +0 -13
  83. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/axe-cdp.js +0 -81
  84. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/package.json +0 -11
  85. data/node_modules/axe-core/doc/examples/html-handlebars.md +0 -164
  86. data/node_modules/axe-core/doc/examples/jasmine/README.md +0 -35
  87. data/node_modules/axe-core/doc/examples/jasmine/karma.conf.js +0 -29
  88. data/node_modules/axe-core/doc/examples/jasmine/package.json +0 -21
  89. data/node_modules/axe-core/doc/examples/jasmine/spec/a11y.js +0 -36
  90. data/node_modules/axe-core/doc/examples/jest_react/README.md +0 -41
  91. data/node_modules/axe-core/doc/examples/jest_react/link.js +0 -7
  92. data/node_modules/axe-core/doc/examples/jest_react/link.test.js +0 -24
  93. data/node_modules/axe-core/doc/examples/jest_react/package.json +0 -28
  94. data/node_modules/axe-core/doc/examples/jest_react/test-helpers.js +0 -21
  95. data/node_modules/axe-core/doc/examples/jsdom/package.json +0 -15
  96. data/node_modules/axe-core/doc/examples/mocha/README.md +0 -35
  97. data/node_modules/axe-core/doc/examples/mocha/karma.conf.js +0 -29
  98. data/node_modules/axe-core/doc/examples/mocha/package.json +0 -22
  99. data/node_modules/axe-core/doc/examples/phantomjs/README.md +0 -17
  100. data/node_modules/axe-core/doc/examples/phantomjs/axe-phantom.js +0 -53
  101. data/node_modules/axe-core/doc/examples/phantomjs/package.json +0 -19
  102. data/node_modules/axe-core/doc/examples/puppeteer/README.md +0 -12
  103. data/node_modules/axe-core/doc/examples/puppeteer/axe-puppeteer.js +0 -60
  104. data/node_modules/axe-core/doc/examples/puppeteer/package.json +0 -13
  105. data/node_modules/axe-core/doc/examples/qunit/README.md +0 -37
  106. data/node_modules/axe-core/doc/examples/qunit/package.json +0 -21
  107. data/node_modules/axe-core/doc/examples/test-examples.js +0 -32
  108. data/node_modules/axe-core/doc/plugins.md +0 -123
  109. data/node_modules/axe-core/doc/projects.md +0 -48
  110. data/node_modules/axe-core/doc/rule-descriptions.md +0 -129
  111. data/node_modules/axe-core/doc/rule-development.md +0 -123
  112. data/node_modules/axe-core/doc/rule-proposal.md +0 -106
  113. data/node_modules/axe-core/lib/checks/aria/abstractrole.js +0 -10
  114. data/node_modules/axe-core/lib/checks/aria/abstractrole.json +0 -14
  115. data/node_modules/axe-core/lib/checks/aria/allowed-attr.js +0 -39
  116. data/node_modules/axe-core/lib/checks/aria/allowed-attr.json +0 -14
  117. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.js +0 -28
  118. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.json +0 -22
  119. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.js +0 -1
  120. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.json +0 -11
  121. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.js +0 -14
  122. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.json +0 -23
  123. data/node_modules/axe-core/lib/checks/aria/errormessage.js +0 -33
  124. data/node_modules/axe-core/lib/checks/aria/errormessage.json +0 -14
  125. data/node_modules/axe-core/lib/checks/aria/fallbackrole.js +0 -1
  126. data/node_modules/axe-core/lib/checks/aria/fallbackrole.json +0 -11
  127. data/node_modules/axe-core/lib/checks/aria/has-widget-role.js +0 -6
  128. data/node_modules/axe-core/lib/checks/aria/has-widget-role.json +0 -12
  129. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.js +0 -6
  130. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.json +0 -12
  131. data/node_modules/axe-core/lib/checks/aria/invalidrole.js +0 -17
  132. data/node_modules/axe-core/lib/checks/aria/invalidrole.json +0 -14
  133. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.js +0 -21
  134. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.json +0 -11
  135. data/node_modules/axe-core/lib/checks/aria/required-attr.js +0 -53
  136. data/node_modules/axe-core/lib/checks/aria/required-attr.json +0 -14
  137. data/node_modules/axe-core/lib/checks/aria/required-children.js +0 -154
  138. data/node_modules/axe-core/lib/checks/aria/required-children.json +0 -32
  139. data/node_modules/axe-core/lib/checks/aria/required-parent.js +0 -87
  140. data/node_modules/axe-core/lib/checks/aria/required-parent.json +0 -14
  141. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.js +0 -39
  142. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.json +0 -11
  143. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.js +0 -1
  144. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.json +0 -11
  145. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.js +0 -80
  146. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.json +0 -19
  147. data/node_modules/axe-core/lib/checks/aria/valid-attr.js +0 -25
  148. data/node_modules/axe-core/lib/checks/aria/valid-attr.json +0 -15
  149. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.js +0 -62
  150. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.json +0 -12
  151. data/node_modules/axe-core/lib/checks/color/color-contrast.js +0 -86
  152. data/node_modules/axe-core/lib/checks/color/color-contrast.json +0 -30
  153. data/node_modules/axe-core/lib/checks/color/link-in-text-block.js +0 -85
  154. data/node_modules/axe-core/lib/checks/color/link-in-text-block.json +0 -19
  155. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.js +0 -67
  156. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.json +0 -11
  157. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.js +0 -2
  158. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.json +0 -11
  159. data/node_modules/axe-core/lib/checks/forms/fieldset-after.js +0 -25
  160. data/node_modules/axe-core/lib/checks/forms/fieldset.js +0 -109
  161. data/node_modules/axe-core/lib/checks/forms/fieldset.json +0 -20
  162. data/node_modules/axe-core/lib/checks/forms/group-labelledby-after.js +0 -16
  163. data/node_modules/axe-core/lib/checks/forms/group-labelledby.js +0 -66
  164. data/node_modules/axe-core/lib/checks/forms/group-labelledby.json +0 -17
  165. data/node_modules/axe-core/lib/checks/keyboard/accesskeys-after.js +0 -19
  166. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.js +0 -5
  167. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.json +0 -12
  168. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.js +0 -16
  169. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.json +0 -11
  170. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.js +0 -30
  171. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.json +0 -11
  172. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.js +0 -12
  173. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.json +0 -11
  174. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.js +0 -14
  175. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.json +0 -11
  176. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.js +0 -6
  177. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.json +0 -11
  178. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.js +0 -30
  179. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.json +0 -11
  180. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.js +0 -18
  181. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.json +0 -11
  182. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm-after.js +0 -11
  183. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm.js +0 -13
  184. data/node_modules/axe-core/lib/checks/keyboard/page-has-heading-one.json +0 -15
  185. data/node_modules/axe-core/lib/checks/keyboard/page-has-main.json +0 -15
  186. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-after.js +0 -2
  187. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-banner.json +0 -16
  188. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-contentinfo.json +0 -16
  189. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-main.json +0 -15
  190. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate.js +0 -36
  191. data/node_modules/axe-core/lib/checks/keyboard/tabindex.js +0 -6
  192. data/node_modules/axe-core/lib/checks/keyboard/tabindex.json +0 -11
  193. data/node_modules/axe-core/lib/checks/label/alt-space-value.js +0 -3
  194. data/node_modules/axe-core/lib/checks/label/alt-space-value.json +0 -11
  195. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.js +0 -22
  196. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.json +0 -11
  197. data/node_modules/axe-core/lib/checks/label/explicit.js +0 -15
  198. data/node_modules/axe-core/lib/checks/label/explicit.json +0 -11
  199. data/node_modules/axe-core/lib/checks/label/help-same-as-label.js +0 -23
  200. data/node_modules/axe-core/lib/checks/label/help-same-as-label.json +0 -12
  201. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.js +0 -12
  202. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.json +0 -11
  203. data/node_modules/axe-core/lib/checks/label/implicit.js +0 -7
  204. data/node_modules/axe-core/lib/checks/label/implicit.json +0 -11
  205. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.js +0 -59
  206. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.json +0 -15
  207. data/node_modules/axe-core/lib/checks/label/multiple-label.js +0 -39
  208. data/node_modules/axe-core/lib/checks/label/multiple-label.json +0 -11
  209. data/node_modules/axe-core/lib/checks/label/title-only.js +0 -5
  210. data/node_modules/axe-core/lib/checks/label/title-only.json +0 -11
  211. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique-after.js +0 -23
  212. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.js +0 -7
  213. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.json +0 -12
  214. data/node_modules/axe-core/lib/checks/language/has-lang.js +0 -20
  215. data/node_modules/axe-core/lib/checks/language/has-lang.json +0 -14
  216. data/node_modules/axe-core/lib/checks/language/valid-lang.js +0 -26
  217. data/node_modules/axe-core/lib/checks/language/valid-lang.json +0 -11
  218. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.js +0 -5
  219. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.json +0 -11
  220. data/node_modules/axe-core/lib/checks/lists/dlitem.js +0 -23
  221. data/node_modules/axe-core/lib/checks/lists/dlitem.json +0 -11
  222. data/node_modules/axe-core/lib/checks/lists/listitem.js +0 -21
  223. data/node_modules/axe-core/lib/checks/lists/listitem.json +0 -14
  224. data/node_modules/axe-core/lib/checks/lists/only-dlitems.js +0 -42
  225. data/node_modules/axe-core/lib/checks/lists/only-dlitems.json +0 -11
  226. data/node_modules/axe-core/lib/checks/lists/only-listitems.js +0 -58
  227. data/node_modules/axe-core/lib/checks/lists/only-listitems.json +0 -14
  228. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.js +0 -22
  229. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.json +0 -11
  230. data/node_modules/axe-core/lib/checks/media/caption.js +0 -8
  231. data/node_modules/axe-core/lib/checks/media/caption.json +0 -11
  232. data/node_modules/axe-core/lib/checks/media/description.js +0 -8
  233. data/node_modules/axe-core/lib/checks/media/description.json +0 -11
  234. data/node_modules/axe-core/lib/checks/media/frame-tested.js +0 -28
  235. data/node_modules/axe-core/lib/checks/media/frame-tested.json +0 -15
  236. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.js +0 -93
  237. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.json +0 -15
  238. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.js +0 -251
  239. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.json +0 -15
  240. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-large.json +0 -15
  241. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-scale.js +0 -55
  242. data/node_modules/axe-core/lib/checks/mobile/meta-viewport.json +0 -14
  243. data/node_modules/axe-core/lib/checks/navigation/header-present.js +0 -4
  244. data/node_modules/axe-core/lib/checks/navigation/header-present.json +0 -11
  245. data/node_modules/axe-core/lib/checks/navigation/heading-order-after.js +0 -14
  246. data/node_modules/axe-core/lib/checks/navigation/heading-order.js +0 -15
  247. data/node_modules/axe-core/lib/checks/navigation/heading-order.json +0 -12
  248. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose-after.js +0 -100
  249. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.js +0 -31
  250. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.json +0 -12
  251. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.js +0 -4
  252. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.json +0 -11
  253. data/node_modules/axe-core/lib/checks/navigation/landmark.js +0 -3
  254. data/node_modules/axe-core/lib/checks/navigation/landmark.json +0 -11
  255. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.js +0 -4
  256. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.json +0 -11
  257. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.js +0 -93
  258. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.json +0 -30
  259. data/node_modules/axe-core/lib/checks/navigation/region.js +0 -107
  260. data/node_modules/axe-core/lib/checks/navigation/region.json +0 -11
  261. data/node_modules/axe-core/lib/checks/navigation/skip-link.js +0 -5
  262. data/node_modules/axe-core/lib/checks/navigation/skip-link.json +0 -12
  263. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title-after.js +0 -9
  264. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.js +0 -6
  265. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.json +0 -12
  266. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-active.json +0 -12
  267. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-after.js +0 -8
  268. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-aria.json +0 -12
  269. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.js +0 -17
  270. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.json +0 -12
  271. data/node_modules/axe-core/lib/checks/shared/aria-label.js +0 -2
  272. data/node_modules/axe-core/lib/checks/shared/aria-label.json +0 -11
  273. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.js +0 -2
  274. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.json +0 -11
  275. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.js +0 -18
  276. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.json +0 -14
  277. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.js +0 -12
  278. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.json +0 -11
  279. data/node_modules/axe-core/lib/checks/shared/doc-has-title.js +0 -2
  280. data/node_modules/axe-core/lib/checks/shared/doc-has-title.json +0 -11
  281. data/node_modules/axe-core/lib/checks/shared/exists.js +0 -1
  282. data/node_modules/axe-core/lib/checks/shared/exists.json +0 -11
  283. data/node_modules/axe-core/lib/checks/shared/has-alt.js +0 -6
  284. data/node_modules/axe-core/lib/checks/shared/has-alt.json +0 -11
  285. data/node_modules/axe-core/lib/checks/shared/has-visible-text.js +0 -1
  286. data/node_modules/axe-core/lib/checks/shared/has-visible-text.json +0 -11
  287. data/node_modules/axe-core/lib/checks/shared/is-on-screen.js +0 -4
  288. data/node_modules/axe-core/lib/checks/shared/is-on-screen.json +0 -11
  289. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.js +0 -2
  290. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.json +0 -11
  291. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.js +0 -15
  292. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.json +0 -14
  293. data/node_modules/axe-core/lib/checks/shared/non-empty-title.js +0 -2
  294. data/node_modules/axe-core/lib/checks/shared/non-empty-title.json +0 -11
  295. data/node_modules/axe-core/lib/checks/shared/non-empty-value.js +0 -2
  296. data/node_modules/axe-core/lib/checks/shared/non-empty-value.json +0 -11
  297. data/node_modules/axe-core/lib/checks/shared/role-none.js +0 -1
  298. data/node_modules/axe-core/lib/checks/shared/role-none.json +0 -11
  299. data/node_modules/axe-core/lib/checks/shared/role-presentation.js +0 -1
  300. data/node_modules/axe-core/lib/checks/shared/role-presentation.json +0 -11
  301. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.js +0 -4
  302. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.json +0 -11
  303. data/node_modules/axe-core/lib/checks/tables/caption-faked.js +0 -10
  304. data/node_modules/axe-core/lib/checks/tables/caption-faked.json +0 -11
  305. data/node_modules/axe-core/lib/checks/tables/has-caption.js +0 -1
  306. data/node_modules/axe-core/lib/checks/tables/has-caption.json +0 -12
  307. data/node_modules/axe-core/lib/checks/tables/has-summary.js +0 -1
  308. data/node_modules/axe-core/lib/checks/tables/has-summary.json +0 -12
  309. data/node_modules/axe-core/lib/checks/tables/has-th.js +0 -31
  310. data/node_modules/axe-core/lib/checks/tables/has-th.json +0 -12
  311. data/node_modules/axe-core/lib/checks/tables/headers-visible-text.js +0 -30
  312. data/node_modules/axe-core/lib/checks/tables/html5-scope.js +0 -5
  313. data/node_modules/axe-core/lib/checks/tables/html5-scope.json +0 -11
  314. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.js +0 -7
  315. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.json +0 -11
  316. data/node_modules/axe-core/lib/checks/tables/scope-value.js +0 -5
  317. data/node_modules/axe-core/lib/checks/tables/scope-value.json +0 -11
  318. data/node_modules/axe-core/lib/checks/tables/td-has-header.js +0 -30
  319. data/node_modules/axe-core/lib/checks/tables/td-has-header.json +0 -11
  320. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.js +0 -61
  321. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.json +0 -12
  322. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.js +0 -76
  323. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.json +0 -12
  324. data/node_modules/axe-core/lib/checks/tables/th-single-row-column.js +0 -39
  325. data/node_modules/axe-core/lib/checks/visibility/hidden-content.js +0 -21
  326. data/node_modules/axe-core/lib/checks/visibility/hidden-content.json +0 -12
  327. data/node_modules/axe-core/lib/commons/aria/arialabel-text.js +0 -18
  328. data/node_modules/axe-core/lib/commons/aria/arialabelledby-text.js +0 -52
  329. data/node_modules/axe-core/lib/commons/aria/attributes.js +0 -45
  330. data/node_modules/axe-core/lib/commons/aria/get-element-unallowed-roles.js +0 -113
  331. data/node_modules/axe-core/lib/commons/aria/get-owned-virtual.js +0 -24
  332. data/node_modules/axe-core/lib/commons/aria/get-role.js +0 -44
  333. data/node_modules/axe-core/lib/commons/aria/index.js +0 -2424
  334. data/node_modules/axe-core/lib/commons/aria/is-accessible-ref.js +0 -59
  335. data/node_modules/axe-core/lib/commons/aria/is-aria-role-allowed-on-element.js +0 -41
  336. data/node_modules/axe-core/lib/commons/aria/is-unsupported-role.js +0 -14
  337. data/node_modules/axe-core/lib/commons/aria/label-virtual.js +0 -54
  338. data/node_modules/axe-core/lib/commons/aria/named-from-contents.js +0 -39
  339. data/node_modules/axe-core/lib/commons/aria/roles.js +0 -208
  340. data/node_modules/axe-core/lib/commons/aria/validate-attr-value.js +0 -62
  341. data/node_modules/axe-core/lib/commons/color/center-point-of-rect.js +0 -30
  342. data/node_modules/axe-core/lib/commons/color/contrast.js +0 -178
  343. data/node_modules/axe-core/lib/commons/color/element-has-image.js +0 -36
  344. data/node_modules/axe-core/lib/commons/color/element-is-distinct.js +0 -88
  345. data/node_modules/axe-core/lib/commons/color/get-background-color.js +0 -285
  346. data/node_modules/axe-core/lib/commons/color/get-foreground-color.js +0 -61
  347. data/node_modules/axe-core/lib/commons/color/get-own-background-color.js +0 -22
  348. data/node_modules/axe-core/lib/commons/color/incomplete-data.js +0 -50
  349. data/node_modules/axe-core/lib/commons/color/index.js +0 -8
  350. data/node_modules/axe-core/lib/commons/dom/elements-below-floating.js +0 -39
  351. data/node_modules/axe-core/lib/commons/dom/find-elms-in-context.js +0 -28
  352. data/node_modules/axe-core/lib/commons/dom/find-up.js +0 -63
  353. data/node_modules/axe-core/lib/commons/dom/get-composed-parent.js +0 -25
  354. data/node_modules/axe-core/lib/commons/dom/get-element-by-reference.js +0 -34
  355. data/node_modules/axe-core/lib/commons/dom/get-element-coordinates.js +0 -38
  356. data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +0 -589
  357. data/node_modules/axe-core/lib/commons/dom/get-root-node.js +0 -12
  358. data/node_modules/axe-core/lib/commons/dom/get-scroll-offset.js +0 -33
  359. data/node_modules/axe-core/lib/commons/dom/get-tabbable-elements.js +0 -24
  360. data/node_modules/axe-core/lib/commons/dom/get-viewport-size.js +0 -37
  361. data/node_modules/axe-core/lib/commons/dom/has-content-virtual.js +0 -75
  362. data/node_modules/axe-core/lib/commons/dom/idrefs.js +0 -36
  363. data/node_modules/axe-core/lib/commons/dom/index.js +0 -9
  364. data/node_modules/axe-core/lib/commons/dom/is-focusable.js +0 -95
  365. data/node_modules/axe-core/lib/commons/dom/is-hidden-with-css.js +0 -73
  366. data/node_modules/axe-core/lib/commons/dom/is-html5.js +0 -17
  367. data/node_modules/axe-core/lib/commons/dom/is-in-text-block.js +0 -94
  368. data/node_modules/axe-core/lib/commons/dom/is-modal-open.js +0 -98
  369. data/node_modules/axe-core/lib/commons/dom/is-node.js +0 -13
  370. data/node_modules/axe-core/lib/commons/dom/is-offscreen.js +0 -62
  371. data/node_modules/axe-core/lib/commons/dom/is-skip-link.js +0 -45
  372. data/node_modules/axe-core/lib/commons/dom/is-visible.js +0 -176
  373. data/node_modules/axe-core/lib/commons/dom/is-visual-content.js +0 -49
  374. data/node_modules/axe-core/lib/commons/dom/shadow-elements-from-point.js +0 -42
  375. data/node_modules/axe-core/lib/commons/dom/url-props-from-attribute.js +0 -152
  376. data/node_modules/axe-core/lib/commons/dom/visually-contains.js +0 -111
  377. data/node_modules/axe-core/lib/commons/dom/visually-overlaps.js +0 -46
  378. data/node_modules/axe-core/lib/commons/forms/index.js +0 -8
  379. data/node_modules/axe-core/lib/commons/forms/is-aria-combobox.js +0 -13
  380. data/node_modules/axe-core/lib/commons/forms/is-aria-listbox.js +0 -13
  381. data/node_modules/axe-core/lib/commons/forms/is-aria-range.js +0 -14
  382. data/node_modules/axe-core/lib/commons/forms/is-aria-textbox.js +0 -13
  383. data/node_modules/axe-core/lib/commons/forms/is-native-select.js +0 -13
  384. data/node_modules/axe-core/lib/commons/forms/is-native-textbox.js +0 -28
  385. data/node_modules/axe-core/lib/commons/index.js +0 -11
  386. data/node_modules/axe-core/lib/commons/intro.stub +0 -1
  387. data/node_modules/axe-core/lib/commons/matches/attributes.js +0 -27
  388. data/node_modules/axe-core/lib/commons/matches/condition.js +0 -19
  389. data/node_modules/axe-core/lib/commons/matches/from-definition.js +0 -52
  390. data/node_modules/axe-core/lib/commons/matches/from-function.js +0 -38
  391. data/node_modules/axe-core/lib/commons/matches/from-primative.js +0 -30
  392. data/node_modules/axe-core/lib/commons/matches/index.js +0 -39
  393. data/node_modules/axe-core/lib/commons/matches/node-name.js +0 -24
  394. data/node_modules/axe-core/lib/commons/matches/properties.js +0 -28
  395. data/node_modules/axe-core/lib/commons/outro.stub +0 -2
  396. data/node_modules/axe-core/lib/commons/table/get-all-cells.js +0 -28
  397. data/node_modules/axe-core/lib/commons/table/get-cell-position.js +0 -28
  398. data/node_modules/axe-core/lib/commons/table/get-headers.js +0 -79
  399. data/node_modules/axe-core/lib/commons/table/get-scope.js +0 -54
  400. data/node_modules/axe-core/lib/commons/table/index.js +0 -9
  401. data/node_modules/axe-core/lib/commons/table/is-column-header.js +0 -13
  402. data/node_modules/axe-core/lib/commons/table/is-data-cell.js +0 -22
  403. data/node_modules/axe-core/lib/commons/table/is-data-table.js +0 -189
  404. data/node_modules/axe-core/lib/commons/table/is-header.js +0 -22
  405. data/node_modules/axe-core/lib/commons/table/is-row-header.js +0 -13
  406. data/node_modules/axe-core/lib/commons/table/to-grid.js +0 -38
  407. data/node_modules/axe-core/lib/commons/table/traverse.js +0 -78
  408. data/node_modules/axe-core/lib/commons/text/accessible-text-virtual.js +0 -152
  409. data/node_modules/axe-core/lib/commons/text/form-control-value.js +0 -192
  410. data/node_modules/axe-core/lib/commons/text/index.js +0 -8
  411. data/node_modules/axe-core/lib/commons/text/is-human-interpretable.js +0 -51
  412. data/node_modules/axe-core/lib/commons/text/is-icon-ligature.js +0 -210
  413. data/node_modules/axe-core/lib/commons/text/is-valid-autocomplete.js +0 -117
  414. data/node_modules/axe-core/lib/commons/text/label-text.js +0 -58
  415. data/node_modules/axe-core/lib/commons/text/label-virtual.js +0 -53
  416. data/node_modules/axe-core/lib/commons/text/native-element-types.js +0 -100
  417. data/node_modules/axe-core/lib/commons/text/native-text-alternative.js +0 -50
  418. data/node_modules/axe-core/lib/commons/text/native-text-methods.js +0 -122
  419. data/node_modules/axe-core/lib/commons/text/sanitize.js +0 -18
  420. data/node_modules/axe-core/lib/commons/text/subtree-text.js +0 -89
  421. data/node_modules/axe-core/lib/commons/text/title-text.js +0 -33
  422. data/node_modules/axe-core/lib/commons/text/unicode.js +0 -147
  423. data/node_modules/axe-core/lib/commons/text/unsupported.js +0 -5
  424. data/node_modules/axe-core/lib/commons/text/visible-text-nodes.js +0 -25
  425. data/node_modules/axe-core/lib/commons/text/visible-virtual.js +0 -46
  426. data/node_modules/axe-core/lib/commons/utils/index.js +0 -10
  427. data/node_modules/axe-core/lib/core/base/audit.js +0 -781
  428. data/node_modules/axe-core/lib/core/base/cache.js +0 -33
  429. data/node_modules/axe-core/lib/core/base/check-result.js +0 -33
  430. data/node_modules/axe-core/lib/core/base/check.js +0 -170
  431. data/node_modules/axe-core/lib/core/base/context.js +0 -274
  432. data/node_modules/axe-core/lib/core/base/rule-result.js +0 -39
  433. data/node_modules/axe-core/lib/core/base/rule.js +0 -560
  434. data/node_modules/axe-core/lib/core/base/virtual-node/abstract-virtual-node.js +0 -40
  435. data/node_modules/axe-core/lib/core/base/virtual-node/serial-virtual-node.js +0 -88
  436. data/node_modules/axe-core/lib/core/base/virtual-node/virtual-node.js +0 -136
  437. data/node_modules/axe-core/lib/core/constants.js +0 -76
  438. data/node_modules/axe-core/lib/core/imports/index.js +0 -51
  439. data/node_modules/axe-core/lib/core/index.js +0 -43
  440. data/node_modules/axe-core/lib/core/log.js +0 -12
  441. data/node_modules/axe-core/lib/core/public/cleanup-plugins.js +0 -53
  442. data/node_modules/axe-core/lib/core/public/configure.js +0 -110
  443. data/node_modules/axe-core/lib/core/public/get-rules.js +0 -29
  444. data/node_modules/axe-core/lib/core/public/load.js +0 -66
  445. data/node_modules/axe-core/lib/core/public/plugins.js +0 -47
  446. data/node_modules/axe-core/lib/core/public/reporter.js +0 -24
  447. data/node_modules/axe-core/lib/core/public/reset.js +0 -12
  448. data/node_modules/axe-core/lib/core/public/run-rules.js +0 -96
  449. data/node_modules/axe-core/lib/core/public/run-virtual-rule.js +0 -50
  450. data/node_modules/axe-core/lib/core/public/run.js +0 -159
  451. data/node_modules/axe-core/lib/core/reporters/helpers/failure-summary.js +0 -35
  452. data/node_modules/axe-core/lib/core/reporters/helpers/get-environment-data.js +0 -39
  453. data/node_modules/axe-core/lib/core/reporters/helpers/incomplete-fallback-msg.js +0 -13
  454. data/node_modules/axe-core/lib/core/reporters/helpers/index.js +0 -3
  455. data/node_modules/axe-core/lib/core/reporters/helpers/process-aggregate.js +0 -102
  456. data/node_modules/axe-core/lib/core/reporters/na.js +0 -24
  457. data/node_modules/axe-core/lib/core/reporters/no-passes.js +0 -18
  458. data/node_modules/axe-core/lib/core/reporters/raw-env.js +0 -12
  459. data/node_modules/axe-core/lib/core/reporters/raw.js +0 -32
  460. data/node_modules/axe-core/lib/core/reporters/v1.js +0 -29
  461. data/node_modules/axe-core/lib/core/reporters/v2.js +0 -22
  462. data/node_modules/axe-core/lib/core/utils/aggregate.js +0 -19
  463. data/node_modules/axe-core/lib/core/utils/aggregateChecks.js +0 -85
  464. data/node_modules/axe-core/lib/core/utils/aggregateNodeResults.js +0 -61
  465. data/node_modules/axe-core/lib/core/utils/aggregateResult.js +0 -37
  466. data/node_modules/axe-core/lib/core/utils/are-styles-set.js +0 -21
  467. data/node_modules/axe-core/lib/core/utils/assert.js +0 -12
  468. data/node_modules/axe-core/lib/core/utils/check-helper.js +0 -38
  469. data/node_modules/axe-core/lib/core/utils/clone.js +0 -27
  470. data/node_modules/axe-core/lib/core/utils/collect-results-from-frames.js +0 -127
  471. data/node_modules/axe-core/lib/core/utils/contains.js +0 -44
  472. data/node_modules/axe-core/lib/core/utils/css-parser.js +0 -7
  473. data/node_modules/axe-core/lib/core/utils/dq-element.js +0 -97
  474. data/node_modules/axe-core/lib/core/utils/element-matches.js +0 -43
  475. data/node_modules/axe-core/lib/core/utils/escape-selector.js +0 -78
  476. data/node_modules/axe-core/lib/core/utils/extend-meta-data.js +0 -17
  477. data/node_modules/axe-core/lib/core/utils/finalize-result.js +0 -11
  478. data/node_modules/axe-core/lib/core/utils/find-by.js +0 -14
  479. data/node_modules/axe-core/lib/core/utils/flattened-tree.js +0 -156
  480. data/node_modules/axe-core/lib/core/utils/get-all-checks.js +0 -12
  481. data/node_modules/axe-core/lib/core/utils/get-base-lang.js +0 -16
  482. data/node_modules/axe-core/lib/core/utils/get-check-message.js +0 -21
  483. data/node_modules/axe-core/lib/core/utils/get-check-option.js +0 -39
  484. data/node_modules/axe-core/lib/core/utils/get-friendly-uri-end.js +0 -144
  485. data/node_modules/axe-core/lib/core/utils/get-node-attributes.js +0 -21
  486. data/node_modules/axe-core/lib/core/utils/get-root-node.js +0 -17
  487. data/node_modules/axe-core/lib/core/utils/get-scroll.js +0 -39
  488. data/node_modules/axe-core/lib/core/utils/get-selector.js +0 -409
  489. data/node_modules/axe-core/lib/core/utils/get-stylesheet-factory.js +0 -51
  490. data/node_modules/axe-core/lib/core/utils/get-xpath.js +0 -83
  491. data/node_modules/axe-core/lib/core/utils/index.js +0 -10
  492. data/node_modules/axe-core/lib/core/utils/inject-style.js +0 -38
  493. data/node_modules/axe-core/lib/core/utils/is-hidden.js +0 -52
  494. data/node_modules/axe-core/lib/core/utils/is-html-element.js +0 -135
  495. data/node_modules/axe-core/lib/core/utils/is-shadow-root.js +0 -40
  496. data/node_modules/axe-core/lib/core/utils/is-xhtml.js +0 -14
  497. data/node_modules/axe-core/lib/core/utils/matches.js +0 -263
  498. data/node_modules/axe-core/lib/core/utils/memoize.js +0 -17
  499. data/node_modules/axe-core/lib/core/utils/merge-results.js +0 -116
  500. data/node_modules/axe-core/lib/core/utils/node-sorter.js +0 -21
  501. data/node_modules/axe-core/lib/core/utils/parse-crossorigin-stylesheet.js +0 -54
  502. data/node_modules/axe-core/lib/core/utils/parse-sameorigin-stylesheet.js +0 -96
  503. data/node_modules/axe-core/lib/core/utils/parse-stylesheet.js +0 -70
  504. data/node_modules/axe-core/lib/core/utils/performance-timer.js +0 -126
  505. data/node_modules/axe-core/lib/core/utils/pollyfills.js +0 -299
  506. data/node_modules/axe-core/lib/core/utils/preload-cssom.js +0 -253
  507. data/node_modules/axe-core/lib/core/utils/preload-media.js +0 -65
  508. data/node_modules/axe-core/lib/core/utils/preload.js +0 -144
  509. data/node_modules/axe-core/lib/core/utils/process-message.js +0 -72
  510. data/node_modules/axe-core/lib/core/utils/publish-metadata.js +0 -106
  511. data/node_modules/axe-core/lib/core/utils/qsa.js +0 -110
  512. data/node_modules/axe-core/lib/core/utils/queue.js +0 -138
  513. data/node_modules/axe-core/lib/core/utils/respondable.js +0 -261
  514. data/node_modules/axe-core/lib/core/utils/rule-should-run.js +0 -82
  515. data/node_modules/axe-core/lib/core/utils/scroll-state.js +0 -57
  516. data/node_modules/axe-core/lib/core/utils/select.js +0 -135
  517. data/node_modules/axe-core/lib/core/utils/to-array.js +0 -21
  518. data/node_modules/axe-core/lib/core/utils/token-list.js +0 -15
  519. data/node_modules/axe-core/lib/core/utils/uuid.js +0 -244
  520. data/node_modules/axe-core/lib/core/utils/valid-input-type.js +0 -35
  521. data/node_modules/axe-core/lib/core/utils/valid-langs.js +0 -8152
  522. data/node_modules/axe-core/lib/intro.stub +0 -15
  523. data/node_modules/axe-core/lib/misc/any-failure-summary.json +0 -6
  524. data/node_modules/axe-core/lib/misc/incomplete-fallback.json +0 -3
  525. data/node_modules/axe-core/lib/misc/none-failure-summary.json +0 -6
  526. data/node_modules/axe-core/lib/outro.stub +0 -2
  527. data/node_modules/axe-core/lib/rules/accesskeys.json +0 -13
  528. data/node_modules/axe-core/lib/rules/area-alt.json +0 -21
  529. data/node_modules/axe-core/lib/rules/aria-allowed-attr-matches.js +0 -11
  530. data/node_modules/axe-core/lib/rules/aria-allowed-attr.json +0 -12
  531. data/node_modules/axe-core/lib/rules/aria-allowed-role-matches.js +0 -7
  532. data/node_modules/axe-core/lib/rules/aria-allowed-role.json +0 -14
  533. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback-matches.js +0 -10
  534. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback.json +0 -14
  535. data/node_modules/axe-core/lib/rules/aria-form-field-name-matches.js +0 -50
  536. data/node_modules/axe-core/lib/rules/aria-has-attr-matches.js +0 -11
  537. data/node_modules/axe-core/lib/rules/aria-hidden-body.json +0 -13
  538. data/node_modules/axe-core/lib/rules/aria-hidden-focus-matches.js +0 -18
  539. data/node_modules/axe-core/lib/rules/aria-hidden-focus.json +0 -18
  540. data/node_modules/axe-core/lib/rules/aria-input-field-name.json +0 -13
  541. data/node_modules/axe-core/lib/rules/aria-required-attr.json +0 -12
  542. data/node_modules/axe-core/lib/rules/aria-required-children.json +0 -12
  543. data/node_modules/axe-core/lib/rules/aria-required-parent.json +0 -12
  544. data/node_modules/axe-core/lib/rules/aria-roledescription.json +0 -12
  545. data/node_modules/axe-core/lib/rules/aria-roles.json +0 -13
  546. data/node_modules/axe-core/lib/rules/aria-toggle-field-name.json +0 -18
  547. data/node_modules/axe-core/lib/rules/aria-valid-attr-value.json +0 -12
  548. data/node_modules/axe-core/lib/rules/aria-valid-attr.json +0 -12
  549. data/node_modules/axe-core/lib/rules/audio-caption.json +0 -20
  550. data/node_modules/axe-core/lib/rules/autocomplete-matches.js +0 -49
  551. data/node_modules/axe-core/lib/rules/autocomplete-valid.json +0 -12
  552. data/node_modules/axe-core/lib/rules/avoid-inline-spacing.json +0 -12
  553. data/node_modules/axe-core/lib/rules/blink.json +0 -19
  554. data/node_modules/axe-core/lib/rules/button-name.json +0 -25
  555. data/node_modules/axe-core/lib/rules/bypass-matches.js +0 -1
  556. data/node_modules/axe-core/lib/rules/bypass.json +0 -20
  557. data/node_modules/axe-core/lib/rules/checkboxgroup.json +0 -13
  558. data/node_modules/axe-core/lib/rules/color-contrast-matches.js +0 -161
  559. data/node_modules/axe-core/lib/rules/color-contrast.json +0 -13
  560. data/node_modules/axe-core/lib/rules/css-orientation-lock.json +0 -13
  561. data/node_modules/axe-core/lib/rules/data-table-large-matches.js +0 -11
  562. data/node_modules/axe-core/lib/rules/data-table-matches.js +0 -1
  563. data/node_modules/axe-core/lib/rules/definition-list.json +0 -13
  564. data/node_modules/axe-core/lib/rules/dlitem.json +0 -13
  565. data/node_modules/axe-core/lib/rules/document-title.json +0 -13
  566. data/node_modules/axe-core/lib/rules/duplicate-id-active-matches.js +0 -8
  567. data/node_modules/axe-core/lib/rules/duplicate-id-active.json +0 -14
  568. data/node_modules/axe-core/lib/rules/duplicate-id-aria-matches.js +0 -1
  569. data/node_modules/axe-core/lib/rules/duplicate-id-aria.json +0 -14
  570. data/node_modules/axe-core/lib/rules/duplicate-id-misc-matches.js +0 -11
  571. data/node_modules/axe-core/lib/rules/duplicate-id.json +0 -14
  572. data/node_modules/axe-core/lib/rules/empty-heading.json +0 -13
  573. data/node_modules/axe-core/lib/rules/focus-order-semantics.json +0 -13
  574. data/node_modules/axe-core/lib/rules/form-field-multiple-labels.json +0 -13
  575. data/node_modules/axe-core/lib/rules/frame-tested.json +0 -12
  576. data/node_modules/axe-core/lib/rules/frame-title-has-text.js +0 -2
  577. data/node_modules/axe-core/lib/rules/frame-title-unique.json +0 -13
  578. data/node_modules/axe-core/lib/rules/frame-title.json +0 -25
  579. data/node_modules/axe-core/lib/rules/heading-matches.js +0 -15
  580. data/node_modules/axe-core/lib/rules/heading-order.json +0 -13
  581. data/node_modules/axe-core/lib/rules/hidden-content.json +0 -13
  582. data/node_modules/axe-core/lib/rules/html-has-lang.json +0 -13
  583. data/node_modules/axe-core/lib/rules/html-lang-valid.json +0 -12
  584. data/node_modules/axe-core/lib/rules/html-namespace-matches.js +0 -1
  585. data/node_modules/axe-core/lib/rules/html-xml-lang-mismatch.json +0 -13
  586. data/node_modules/axe-core/lib/rules/identical-links-same-purpose-matches.js +0 -13
  587. data/node_modules/axe-core/lib/rules/identical-links-same-purpose.json +0 -14
  588. data/node_modules/axe-core/lib/rules/image-alt.json +0 -25
  589. data/node_modules/axe-core/lib/rules/img-redundant-alt.json +0 -12
  590. data/node_modules/axe-core/lib/rules/input-button-name.json +0 -26
  591. data/node_modules/axe-core/lib/rules/input-image-alt.json +0 -18
  592. data/node_modules/axe-core/lib/rules/inserted-into-focus-order-matches.js +0 -1
  593. data/node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js +0 -45
  594. data/node_modules/axe-core/lib/rules/label-content-name-mismatch.json +0 -12
  595. data/node_modules/axe-core/lib/rules/label-matches.js +0 -11
  596. data/node_modules/axe-core/lib/rules/label-title-only.json +0 -13
  597. data/node_modules/axe-core/lib/rules/label.json +0 -26
  598. data/node_modules/axe-core/lib/rules/landmark-banner-is-top-level.json +0 -13
  599. data/node_modules/axe-core/lib/rules/landmark-complementary-is-top-level.json +0 -12
  600. data/node_modules/axe-core/lib/rules/landmark-contentinfo-is-top-level.json +0 -13
  601. data/node_modules/axe-core/lib/rules/landmark-has-body-context.js +0 -8
  602. data/node_modules/axe-core/lib/rules/landmark-main-is-top-level.json +0 -12
  603. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-banner.json +0 -12
  604. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-contentinfo.json +0 -12
  605. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-main.json +0 -12
  606. data/node_modules/axe-core/lib/rules/landmark-one-main.json +0 -12
  607. data/node_modules/axe-core/lib/rules/landmark-unique-matches.js +0 -41
  608. data/node_modules/axe-core/lib/rules/landmark-unique.json +0 -13
  609. data/node_modules/axe-core/lib/rules/layout-table-matches.js +0 -8
  610. data/node_modules/axe-core/lib/rules/layout-table.json +0 -14
  611. data/node_modules/axe-core/lib/rules/link-in-text-block-matches.js +0 -14
  612. data/node_modules/axe-core/lib/rules/link-in-text-block.json +0 -14
  613. data/node_modules/axe-core/lib/rules/link-name.json +0 -25
  614. data/node_modules/axe-core/lib/rules/list.json +0 -13
  615. data/node_modules/axe-core/lib/rules/listitem.json +0 -13
  616. data/node_modules/axe-core/lib/rules/marquee.json +0 -13
  617. data/node_modules/axe-core/lib/rules/meta-refresh.json +0 -20
  618. data/node_modules/axe-core/lib/rules/meta-viewport-large.json +0 -13
  619. data/node_modules/axe-core/lib/rules/meta-viewport.json +0 -13
  620. data/node_modules/axe-core/lib/rules/no-autoplay-audio-matches.js +0 -18
  621. data/node_modules/axe-core/lib/rules/no-autoplay-audio.json +0 -15
  622. data/node_modules/axe-core/lib/rules/no-empty-role-matches.js +0 -9
  623. data/node_modules/axe-core/lib/rules/no-role-matches.js +0 -1
  624. data/node_modules/axe-core/lib/rules/not-html-matches.js +0 -1
  625. data/node_modules/axe-core/lib/rules/object-alt.json +0 -25
  626. data/node_modules/axe-core/lib/rules/p-as-heading-matches.js +0 -17
  627. data/node_modules/axe-core/lib/rules/p-as-heading.json +0 -13
  628. data/node_modules/axe-core/lib/rules/page-has-heading-one.json +0 -12
  629. data/node_modules/axe-core/lib/rules/radiogroup.json +0 -13
  630. data/node_modules/axe-core/lib/rules/region.json +0 -12
  631. data/node_modules/axe-core/lib/rules/role-img-alt.json +0 -19
  632. data/node_modules/axe-core/lib/rules/scope-attr-valid.json +0 -12
  633. data/node_modules/axe-core/lib/rules/scrollable-region-focusable-matches.js +0 -30
  634. data/node_modules/axe-core/lib/rules/scrollable-region-focusable.json +0 -12
  635. data/node_modules/axe-core/lib/rules/server-side-image-map.json +0 -18
  636. data/node_modules/axe-core/lib/rules/skip-link-matches.js +0 -1
  637. data/node_modules/axe-core/lib/rules/skip-link.json +0 -13
  638. data/node_modules/axe-core/lib/rules/svg-img-alt.json +0 -24
  639. data/node_modules/axe-core/lib/rules/svg-namespace-matches.js +0 -1
  640. data/node_modules/axe-core/lib/rules/tabindex.json +0 -12
  641. data/node_modules/axe-core/lib/rules/table-duplicate-name.json +0 -12
  642. data/node_modules/axe-core/lib/rules/table-fake-caption.json +0 -20
  643. data/node_modules/axe-core/lib/rules/td-has-header.json +0 -20
  644. data/node_modules/axe-core/lib/rules/td-headers-attr.json +0 -12
  645. data/node_modules/axe-core/lib/rules/th-has-data-cells.json +0 -13
  646. data/node_modules/axe-core/lib/rules/valid-lang.json +0 -13
  647. data/node_modules/axe-core/lib/rules/video-caption.json +0 -19
  648. data/node_modules/axe-core/lib/rules/video-description.json +0 -21
  649. data/node_modules/axe-core/lib/rules/window-is-top.js +0 -3
  650. data/node_modules/axe-core/lib/rules/xml-lang-mismatch-matches.js +0 -12
  651. data/node_modules/axe-core/typings/axe-core/axe-core-tests.ts +0 -188
@@ -1,782 +1,797 @@
1
1
  {
2
- "lang": "da",
3
- "rules": {
4
- "accesskeys": {
5
- "description": "",
6
- "help": "Værdien for attributten 'accesskey' skal være unik"
7
- },
8
- "area-alt": {
9
- "description": "",
10
- "help": "Aktive <area> elementer skal have alternativ tekst"
11
- },
12
- "aria-allowed-attr": {
13
- "description": "",
14
- "help": "Elementer må kun bruge tilladte ARIA-attributter"
15
- },
16
- "aria-allowed-role": {
17
- "description": "",
18
- "help": "ARIA-attributten 'role' skal være passende for elementet"
19
- },
20
- "aria-dpub-role-fallback": {
21
- "description": "",
22
- "help": "Ikke-understøttede DPUB ARIA-roller bør kun bruges på elementer med implicitte fallback-roller"
23
- },
24
- "aria-hidden-body": {
25
- "description": "",
26
- "help": "aria-hidden='true' må ikke bruges dokumentets <body> element"
27
- },
28
- "aria-hidden-focus": {
29
- "description": "",
30
- "help": "Elementer med ARIA-'hidden' ikke indeholde fokuserbare elementer"
31
- },
32
- "aria-input-field-name": {
33
- "description": "",
34
- "help": "ARIA-input-felter skal have et tilgængeligt navn"
35
- },
36
- "aria-required-attr": {
37
- "description": "",
38
- "help": "Krævede ARIA-attributter skal være angivet"
39
- },
40
- "aria-required-children": {
41
- "description": "",
42
- "help": "Bestemte ARIA-roller skal indeholde specifikke under-elementer"
43
- },
44
- "aria-required-parent": {
45
- "description": "",
46
- "help": "Bestemte ARIA-roller skal være under-element til specifikke over-elementer"
47
- },
48
- "aria-roledescription": {
49
- "description": "",
50
- "help": "Brug 'aria-roledescription' elementer med en semantisk rolle"
51
- },
52
- "aria-roles": {
53
- "description": "",
54
- "help": "ARIA-roller skal have en korrekt værdi"
55
- },
56
- "aria-toggle-field-name": {
57
- "description": "",
58
- "help": "ARIA afkrydsningsfelter skal have et tilgængeligt navn"
59
- },
60
- "aria-valid-attr-value": {
61
- "description": "",
62
- "help": "ARIA-attributter skal have en korrekt værdi"
63
- },
64
- "aria-valid-attr": {
65
- "description": "",
66
- "help": "ARIA-attributter skal have et korrekt navn"
67
- },
68
- "audio-caption": {
69
- "description": "",
70
- "help": "<audio> elementer skal have en transskription ('captions track')"
71
- },
72
- "autocomplete-valid": {
73
- "description": "",
74
- "help": "Attributten 'autocomplete' skal benyttes korrekt"
75
- },
76
- "avoid-inline-spacing": {
77
- "description": "",
78
- "help": "Inline tekst-afstande skal være justerbare med brugerdefinerede stylesheets"
79
- },
80
- "blink": {
81
- "description": "",
82
- "help": "Elementet <blink> er udfaset og ikke bruges"
83
- },
84
- "button-name": {
85
- "description": "",
86
- "help": "Knapper skal have forståelig (dvs. detekterbar) tekst"
87
- },
88
- "bypass": {
89
- "description": "",
90
- "help": "Sider skal have en metode til at springe over gentaget indhold"
91
- },
92
- "checkboxgroup": {
93
- "description": "",
94
- "help": "Afkrydsningsfelter med den samme 'name' attributværdi skal være del af en gruppe"
95
- },
96
- "color-contrast": {
97
- "description": "",
98
- "help": "Elementer skal have tilstrækkelig farvekontrast"
99
- },
100
- "css-orientation-lock": {
101
- "description": "",
102
- "help": "'CSS Media queries' bør ikke bruges til at låse skærmretningen ('orientation')"
103
- },
104
- "definition-list": {
105
- "description": "",
106
- "help": "<dl> elementer må kun direkte indeholde velsorterede <dt> og <dd> grupper, <script> eller <template> elementer"
107
- },
108
- "dlitem": {
109
- "description": "",
110
- "help": "<dt> og <dd> elementer skal være under-element til et <dl> element"
111
- },
112
- "document-title": {
113
- "description": "",
114
- "help": "Dokumenter skal have et <title> element for at bidrage til nemmere navigation"
115
- },
116
- "duplicate-id-active": {
117
- "description": "",
118
- "help": "'id'-attributten for aktive elementer skal være unik"
119
- },
120
- "duplicate-id-aria": {
121
- "description": "",
122
- "help": "'id'-attributten brugt på ARIA-elementer og -labels skal være unik"
123
- },
124
- "duplicate-id": {
125
- "description": "",
126
- "help": "Værdien for 'id'-attributen skal være unik"
127
- },
128
- "empty-heading": {
129
- "description": "",
130
- "help": "Overskrifter ikke være tomme"
131
- },
132
- "focus-order-semantics": {
133
- "description": "",
134
- "help": "Elementer i fokus-rækkefølgen bør have en 'role'-attribut, som er passende for det interaktive indhold"
135
- },
136
- "form-field-multiple-labels": {
137
- "description": "",
138
- "help": "Form-feltet bør ikke have flere label-elementer"
139
- },
140
- "frame-tested": {
141
- "description": "",
142
- "help": "Frame-elementer skal være testet med axe-core"
143
- },
144
- "frame-title-unique": {
145
- "description": "",
146
- "help": "Frame-elementer skal have en unik 'title'-attribut"
147
- },
148
- "frame-title": {
149
- "description": "",
150
- "help": "Frame-elementer skal have 'title'-attribut"
151
- },
152
- "heading-order": {
153
- "description": "",
154
- "help": "Overskriftsniveauer bør kun ændres sekventielt"
155
- },
156
- "hidden-content": {
157
- "description": "",
158
- "help": "Skjult indhold siden kan ikke analyseres"
159
- },
160
- "html-has-lang": {
161
- "description": "",
162
- "help": "<html> elementet skal have en 'lang'-attribut"
163
- },
164
- "html-lang-valid": {
165
- "description": "",
166
- "help": "<html> elementet skal have en korrekt værdi for 'lang'-attributten"
167
- },
168
- "html-xml-lang-mismatch": {
169
- "description": "",
170
- "help": "<html> elementer med 'lang' og 'xml:lang' skal have det samme basesprog"
171
- },
172
- "image-alt": {
173
- "description": "",
174
- "help": "Billeder skal have en alternativ tekst"
175
- },
176
- "image-redundant-alt": {
177
- "description": "",
178
- "help": "Alternativ tekst til billeder (alt-tekst) bør ikke gentages som brødtekst"
179
- },
180
- "input-button-name": {
181
- "description": "",
182
- "help": "Input-knapper skal have en forståelig tekst"
183
- },
184
- "input-image-alt": {
185
- "description": "",
186
- "help": "Billed-knapper skal have en alternativ tekst"
187
- },
188
- "label-content-name-mismatch": {
189
- "description": "",
190
- "help": "Elementers synlige tekst skal være del af deres tilgængelige navn"
191
- },
192
- "label-title-only": {
193
- "description": "",
194
- "help": "Form-elementer bør have en synlig label"
195
- },
196
- "label": {
197
- "description": "",
198
- "help": "Form-elementer skal have labels"
199
- },
200
- "landmark-banner-is-top-level": {
201
- "description": "",
202
- "help": "Et 'banner'-landmark må ikke være indeholdt i et andet landmark"
203
- },
204
- "landmark-complementary-is-top-level": {
205
- "description": "",
206
- "help": "Et 'aside'- eller 'complimentary'-landmark må ikke være indeholdt i et andet landmark"
207
- },
208
- "landmark-contentinfo-is-top-level": {
209
- "description": "",
210
- "help": "Et 'contentinfo'-landmark må ikke være indeholdt i et andet landmark"
211
- },
212
- "landmark-main-is-top-level": {
213
- "description": "",
214
- "help": "Et 'main'-landmark må ikke være indeholdt i et andet landmark"
215
- },
216
- "landmark-no-duplicate-banner": {
217
- "description": "",
218
- "help": "Dokumentet må ikke have mere end ét 'banner'-landmark"
219
- },
220
- "landmark-no-duplicate-contentinfo": {
221
- "description": "",
222
- "help": "Dokumentet ikke have mere end ét 'contentinfo'-landmark"
223
- },
224
- "landmark-one-main": {
225
- "description": "",
226
- "help": "Dokumentet skal have ét 'main'-landmark"
227
- },
228
- "landmark-unique": {
229
- "description": "",
230
- "help": "Sikrer at landmarks er unikke"
231
- },
232
- "layout-table": {
233
- "description": "",
234
- "help": "Tabeller brugt til layout må ikke bruge beskrivende elementer ( som <th> og <caption>)"
235
- },
236
- "link-in-text-block": {
237
- "description": "",
238
- "help": "Links skal være fremtrædende fra den omkringliggende tekst en måde, som ikke afhænger af farve"
239
- },
240
- "link-name": {
241
- "description": "",
242
- "help": "Links skal have forståelig (detekterbar) tekst"
243
- },
244
- "list": {
245
- "description": "",
246
- "help": "<ul> og <ol> kun direkte indeholde <li>, <script> eller <template> elementer"
247
- },
248
- "listitem": {
249
- "description": "",
250
- "help": "<li> elementer skal være indeholdt i et <ul> eller <ol> element"
251
- },
252
- "marquee": {
253
- "description": "",
254
- "help": "<marquee> elementer er udfaset og ikke bruges"
255
- },
256
- "meta-refresh": {
257
- "description": "",
258
- "help": "Tidsindstillet 'refresh' må ikke bruges"
259
- },
260
- "meta-viewport-large": {
261
- "description": "",
262
- "help": "Brugere bør kunne zoome og skalere tekst op til 500%"
263
- },
264
- "meta-viewport": {
265
- "description": "",
266
- "help": "Zoom og skalering må ikke være slået fra"
267
- },
268
- "object-alt": {
269
- "description": "",
270
- "help": "<object> elementer skal have en alternativ tekst"
271
- },
272
- "p-as-heading": {
273
- "description": "",
274
- "help": "Fremhævelse med fed, kursiv og skriftstørrelse (font-size) ikke bruges til at style <p> elementer som en overskrift"
275
- },
276
- "page-has-heading-one": {
277
- "description": "",
278
- "help": "Siden skal indeholde en overskrift på øverste niveau"
279
- },
280
- "radiogroup": {
281
- "description": "",
282
- "help": "Radioknapper med identiske 'name' attributværdier skal være del af samme gruppe"
283
- },
284
- "region": {
285
- "description": "",
286
- "help": "Alt indhold siden skal være indeholdt i landmarks"
287
- },
288
- "role-img-alt": {
289
- "description": "",
290
- "help": "Elementer med 'role' attributværdien 'img' skal have en alternativ tekst"
291
- },
292
- "scope-attr-valid": {
293
- "description": "",
294
- "help": "'scope'-attributten skal bruges korrekt i tabeller"
295
- },
296
- "scrollable-region-focusable": {
297
- "description": "",
298
- "help": "Sørg for, at en scrollbar region er tilgængeligt via keyboard"
299
- },
300
- "server-side-image-map": {
301
- "description": "",
302
- "help": "Såkaldte 'server-side image-maps' ikke bruges"
303
- },
304
- "skip-link": {
305
- "description": "",
306
- "help": "Et 'skip-link' skal pege et eksisterende og fokuserbart element"
307
- },
308
- "tabindex": {
309
- "description": "",
310
- "help": "Elementer bør ikke have et 'tabindex' højere end 0"
311
- },
312
- "table-duplicate-name": {
313
- "description": "",
314
- "help": "Elementet <caption> bør ikke indeholde samme tekst som 'summary'-attributten"
315
- },
316
- "table-fake-caption": {
317
- "description": "",
318
- "help": "Data- eller overskrifts-celler bør ikke bruges til at beskrive indholdet af en data-tabel"
319
- },
320
- "td-has-header": {
321
- "description": "",
322
- "help": "Alle ikke-tomme <td> elementer i en tabel større end 3x3 bør have en tabeloverskrift (<th>)"
323
- },
324
- "td-headers-attr": {
325
- "description": "",
326
- "help": "Alle celler i en tabel, som bruger 'header'-attributten må kun referere til andre celler i samme tabel"
327
- },
328
- "th-has-data-cells": {
329
- "description": "",
330
- "help": "Alle <th> elementer og elementer med 'role=columnheader/rowheader' skal referere til de data-celler, som de beskriver"
331
- },
332
- "valid-lang": {
333
- "description": "",
334
- "help": "'lang'-attributten skal have en korrekt værdi"
335
- },
336
- "video-caption": {
337
- "description": "",
338
- "help": "<video> elementer skal have undertekster ('captions')"
339
- },
340
- "video-description": {
341
- "description": "",
342
- "help": "<video> elementer skal have et 'description' track"
343
- }
344
- },
345
- "checks": {
346
- "abstractrole": {
347
- "pass": "Abstrakte roller er ikke brugt",
348
- "fail": "Abstrakte roller bør ikke bruges"
349
- },
350
- "aria-allowed-attr": {
351
- "pass": "ARIA-attribut er brugt korrekt for den angivede rolle",
352
- "fail": "ARIA-attribut{{=it.data && it.data.length > 1 ? 'terne' : ''}} er ikke tilladt:{{~it.data:value}} {{=value}}{{~}}"
353
- },
354
- "aria-allowed-role": {
355
- "pass": "ARIA-rollen er tilladt for det givne element",
356
- "fail": "ARIA-rolle{{=it.data && it.data.length > 1 ? 'rne' : 'n'}} {{=it.data.join(', ')}} er ikke tilladt for det givne element",
357
- "incomplete": "ARIA-rolle{{=it.data && it.data.length > 1 ? 'rne' : 'n'}} {{=it.data.join(', ')}} skal være fjernet, når elementet er synligt, da {{=it.data && it.data.length > 1 ? 'de' : 'det'}} ikke er tilladt for elementet"
358
- },
359
- "aria-hidden-body": {
360
- "pass": "Ingen 'aria-hidden'-attribut er at finde i dokumentets <body> element",
361
- "fail": "'aria-hidden=true' bør ikke bruges på dokumentets <body> element"
362
- },
363
- "aria-roledescription": {
364
- "pass": "'aria-roledescription' bruges en understøttet semantisk rolle",
365
- "incomplete": "Tjek at 'aria-roledescription' bliver læst op af understøttet skærmlæser",
366
- "fail": "Giv elementet en rolle, som understøtter 'aria-roledescription'"
367
- },
368
- "aria-errormessage": {
369
- "pass": "Bruger en understøttet 'aria-errormessage'-teknik",
370
- "fail": "'aria-errormessage'-værdi{{=it.data && it.data.length > 1 ? 'er' : ''}} {{~it.data:value}} `{{=value}}{{~}}` bør bruge en teknik til at annoncere beskeden (fx 'aria-live', 'aria-describedby', 'role=alert', osv.)"
371
- },
372
- "has-widget-role": {
373
- "pass": "Elementet har en 'widget'-rolle.",
374
- "fail": "Elementet har ikke en 'widget'-rolle."
375
- },
376
- "implicit-role-fallback": {
377
- "pass": "Elementets implicitte ARIA-rolle er en passende fallback",
378
- "fail": "Elementets implicitte ARIA-rolle er ikke en god fallback for den (ikke-supporterede) rolle"
379
- },
380
- "invalidrole": {
381
- "pass": "ARIA-rollen er korrekt",
382
- "fail": "Rollen skal være en af de mulige ARIA-roller"
383
- },
384
- "no-implicit-explicit-label": {
385
- "pass": "Der er uoverensstemmelse mellem <label> og det tilgængelige navn",
386
- "incomplete": "Tjek at <label> elementet ikke behøver være en del af {{=it.data}}-feltets navn"
387
- },
388
- "aria-required-attr": {
389
- "pass": "Alle krævede ARIA-attributter er tilstede",
390
- "fail": "Krævet ARIA-attribut{{=it.data && it.data.length > 1 ? 'ter' : ''}} er ikke til stede:{{~it.data:value}} {{=value}}{{~}}"
391
- },
392
- "aria-required-children": {
393
- "pass": "Krævet ARIA-under-elementer er til stede",
394
- "fail": "Krævet ARIA-under-element{{=it.data && it.data.length > 1 ? 'er' : ''}}s rolle er ikke til stede:{{~it.data:value}} {{=value}}{{~}}",
395
- "incomplete": "Forventer at ARIA under-element{{=it.data && it.data.length > 1 ? 'er' : ''}}s rolle bliver tilføjet:{{~it.data:value}} {{=value}}{{~}}"
396
- },
397
- "aria-required-parent": {
398
- "pass": "Krævet ARIA-over-elements rolle er til stede",
399
- "fail": "Krævet ARIA-over-element{{=it.data && it.data.length > 1 ? 'er' : ''}}s rolle er ikke til stede:{{~it.data:value}} {{=value}}{{~}}"
400
- },
401
- "aria-unsupported-attr": {
402
- "pass": "ARIA-attribut er understøttet",
403
- "fail": "ARIA-attribut er ikke bredt understøttet i skærmlæsere og tilgængelighedsteknologier: {{~it.data:value}} {{=value}}{{~}}"
404
- },
405
- "unsupportedrole": {
406
- "pass": "ARIA rollen er understøttet",
407
- "fail": "Den brugte rolle er ikke bredt understøttet i skærmlæsere og tilgængelighedsteknologier: {{~it.data:value}} {{=value}}{{~}}"
408
- },
409
- "aria-valid-attr-value": {
410
- "pass": "ARIA-attributværdien er valid",
411
- "fail": "Ikke-korrekt ARIA-attributværdi{{=it.data && it.data.length > 1 ? 'er' : ''}}:{{~it.data:value}} {{=value}}{{~}}",
412
- "incomplete": "ARIA-attribut{{=it.data && it.data.length > 1 ? 'ternes' : 'tens'}} element 'id' er ikke at finde på siden:{{~it.data:value}} {{=value}}{{~}}"
413
- },
414
- "aria-valid-attr": {
415
- "pass": "ARIA-attributnavn{{=it.data && it.data.length > 1 ? 'ene' : 'et'}} er korrekt",
416
- "fail": "Ikke-korrekt ARIA-attributnavn{{=it.data && it.data.length > 1 ? 'e' : ''}}:{{~it.data:value}} {{=value}}{{~}}"
417
- },
418
- "valid-scrollable-semantics": {
419
- "pass": "Elementet har korrekt semantik for et element i fokus-rækkefølgen.",
420
- "fail": "Elementet har ikke korrekt semantik for et element i fokus-rækkefølgen."
421
- },
422
- "color-contrast": {
423
- "pass": "Elementet har stor farvekontrast, den er {{=it.data.contrastRatio}}",
424
- "fail": "Elementet har ikke nok farvekontrast, den er {{=it.data.contrastRatio}} (forgrundsfarve: {{=it.data.fgColor}}, baggrundsfarve: {{=it.data.bgColor}}, tekststørrelse: {{=it.data.fontSize}}, teksttykkelse: {{=it.data.fontWeight}}). Forventet kontrastforhold er {{=it.data.expectedContrastRatio}}",
425
- "incomplete": {
426
- "bgImage": "Elementets baggrundsfarve kunne ikke detekteres på grund af et baggrundsbillede",
427
- "bgGradient": "Elementets baggrundsfarve kunne ikke detekteres på grund af en baggrundsgradient",
428
- "imgNode": "Elementets baggrundsfarve kunne ikke detekteres, fordi elementet indeholder et billedelement",
429
- "bgOverlap": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er overlappet af et andet element",
430
- "fgAlpha": "Elementets forgrundsfarve kunne ikke detekteres på grund af dets gennemsigtighed",
431
- "elmPartiallyObscured": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er delvist dækket af et andet element",
432
- "elmPartiallyObscuring": "Elementets baggrundsfarve kunne ikke detekteres, fordi det delvist dækker et andet element",
433
- "outsideViewport": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er udenfor sidens 'viewport'",
434
- "equalRatio": "Elementet har et 1:1-kontrastforhold med baggrunden",
435
- "shortTextContent": "Elementets indhold er for kort til at kunne afgøre, om indholdet ren faktisk ER tekst",
436
- "default": "Kan ikke udregne kontrastforhold"
437
- }
438
- },
439
- "link-in-text-block": {
440
- "pass": "Links kan adskilles fra den omkringliggende tekst anden måde end med farve",
441
- "fail": "Links bør skille sig ud fra den omkringliggende tekst på anden måde end med farve",
442
- "incomplete": {
443
- "bgContrast": "Elementets kontrastforhold kunne ikke detekteres. Tjek for specifik 'hover'/'focus' styling",
444
- "bgImage": "Elementets kontrastforhold kunne ikke detekteres grund af et baggrundsbillede",
445
- "bgGradient": "Elementets kontrastforhold kunne ikke detekteres grund af en baggrundsgradient",
446
- "imgNode": "Elementets kontrastforhold kunne ikke detekteres, fordi elementet indeholder et billedelement",
447
- "bgOverlap": "Elementets kontrastforhold kunne ikke detekteres grund af overlappende elementer",
448
- "default": "Kan ikke udregne kontrastforhold"
449
- }
450
- },
451
- "autocomplete-appropriate": {
452
- "pass": "'autocomplete'-værdien er brugt på et passende element",
453
- "fail": "'autocomplete'-værdien er ikke passende for denne type input"
454
- },
455
- "autocomplete-valid": {
456
- "pass": "'autocomplete'-attributten er korrekt formateret",
457
- "fail": "'autocomplete'-attributten er forkert formateret"
458
- },
459
- "fieldset": {
460
- "pass": "Elementet er indhold i en gruppe af form-felter",
461
- "fail": "{{var code = it.data && it.data.failureCode;}}{{? code === 'no-legend'}}Gruppen af form-felter ('fieldset') mangler et 'legend'-element som sit første under-element{{?? code === 'empty-legend'}}'Legend'-elementet har ikke tekst, som er synlig for skærmlæsere{{?? code === 'mixed-inputs'}}Gruppen af form-felter ('fieldset') indeholder ikke-relaterede input-elementer{{?? code === 'no-group-label'}}ARIA-gruppen mangler en 'aria-label' eller 'aria-labelledby'{{?? code === 'group-mixed-inputs'}}ARIA-gruppen indeholder ikke-relateret indhold{{??}}Elementet mangler en omkringliggende grupperingselement ('fieldset') eller ARIA-gruppe{{?}}"
462
- },
463
- "group-labelledby": {
464
- "pass": "Elementer med navnet \"{{=it.data.name}}\" har både en delt og en unik label via 'aria-labelledby'-referencer",
465
- "fail": "{{var code = it.data && it.data.failureCode;}}elementer med navnet \"{{=it.data.name}}\" har ikke alle {{? code === 'no-shared-label' }}en delt label{{?? code === 'no-unik-label' }}en unik label{{??}}både en delt og unik label{{?}}, via 'aria-labelledby'-referencer"
466
- },
467
- "accesskeys": {
468
- "pass": "'Accesskey' attributværdien er unik",
469
- "fail": "Dokumentet har flere elementer med den samme 'accesskey'-attribut"
470
- },
471
- "focusable-content": {
472
- "pass": "Elementet indeholder fokuserbare elementer",
473
- "fail": "Elementet bør have fokuserbart indhold"
474
- },
475
- "focusable-disabled": {
476
- "pass": "Ingen fokuserbare elementer indeholdt i elementet",
477
- "fail": "Fokuserbart indhold bør slås fra eller fjernes fra sidens DOM"
478
- },
479
- "focusable-element": {
480
- "pass": "Elementet er fokuserbart",
481
- "fail": "Elementet bør være fokuserbart"
482
- },
483
- "focusable-no-name": {
484
- "pass": "Elementet er ikke i sidens tabulerings-rækkefølge ('tab order') eller har tilgængelig tekst",
485
- "fail": "Elementet er i sidens tabulerings-rækkefølge ('tab order') og har ikke tilgængelig tekst"
486
- },
487
- "focusable-not-tabbable": {
488
- "pass": "Ingen fokuserbare elementer indeholdt i element",
489
- "fail": "Fokuserbart indhold bør have tabindex='-1' eller fjernes fra sidens DOM"
490
- },
491
- "landmark-is-top-level": {
492
- "pass": "{{=it.data.role }} landmark er på det øverste niveau.",
493
- "fail": "{{=it.data.role }} landmark er indhold i et andet landmark."
494
- },
495
- "page-has-heading-one": {
496
- "pass": "Siden har mindst én overskrift på niveau 1",
497
- "fail": "Siden skal have mindst én overskrift på niveau 1"
498
- },
499
- "page-has-main": {
500
- "pass": "Dokumentet har mindst ét 'main'-landmark",
501
- "fail": "Dokumentet har ikke et 'main'-landmark"
502
- },
503
- "page-no-duplicate-banner": {
504
- "pass": "Dokumentet har ikke mere end ét 'banner'-landmark",
505
- "fail": "Dokumentet har mere end ét 'banner-'landmark"
506
- },
507
- "page-no-duplicate-contentinfo": {
508
- "pass": "Dokumentet har ikke mere end ét 'contentinfo'-landmark",
509
- "fail": "Dokumentet har mere end ét 'contentinfo'-landmark"
510
- },
511
- "page-no-duplicate-main": {
512
- "pass": "Dokumentet har ikke mere end ét 'main'-landmark",
513
- "fail": "Dokumentet har mere end ét 'main'-landmark"
514
- },
515
- "tabindex": {
516
- "pass": "Elementet har ikke et 'tabindex' større end 0",
517
- "fail": "Elementet har et 'tabindex' større end 0"
518
- },
519
- "alt-space-value": {
520
- "pass": "Elementet har en alt-attribut med valid værdi",
521
- "fail": "Elementet har en alt-attribut, som kun indeholder et mellemrum, hvilket ikke ignoreres af alle skærmlæsere"
522
- },
523
- "duplicate-img-label": {
524
- "pass": "Elementet duplikerer ikke den eksisterende tekst fra <img> elementets alt-tekst",
525
- "fail": "Elementet indeholder et <img> element med alt-tekst, som duplikerer den eksisterende tekst"
526
- },
527
- "explicit-label": {
528
- "pass": "Form-elementet har en eksplicit <label>",
529
- "fail": "Form-elementet har ikke en eksplicit <label>"
530
- },
531
- "help-same-as-label": {
532
- "pass": "Hjælpeteksten ('title' eller 'aria-describedby') duplikerer ikke label-teksten",
533
- "fail": "Hjælpeteksten ('title' eller 'aria-describedby') er den samme som label-teksten"
534
- },
535
- "hidden-explicit-label": {
536
- "pass": "Form-elementet har en synlig og eksplicit <label>",
537
- "fail": "Form-elementet har en eksplicit <label>, som er skjult"
538
- },
539
- "implicit-label": {
540
- "pass": "Form-elementet har en implicit (indeholdt i en) <label>",
541
- "fail": "Form-elementet har ikke en implicit (indeholdt i en) <label>"
542
- },
543
- "label-content-name-mismatch": {
544
- "pass": "Elementet indeholder synlig tekst som del af dets tilgængelige navn",
545
- "fail": "Tekst i elementet er ikke inkluderet i det tilgængelige navn"
546
- },
547
- "multiple-label": {
548
- "pass": "Form-feltet har ikke flere label-elementer",
549
- "incomplete": "Flere label-elementer er ikke bredt understøttet i tilgængelighedsteknologier. Sørg for, at det første label-element indeholder alle de nødvendige informationer."
550
- },
551
- "title-only": {
552
- "pass": "Form-elementet bruger ikke udelukkende 'title'-attributten som label",
553
- "fail": "Kun 'title'-attributten er brugt som label for form-elementet"
554
- },
555
- "landmark-is-unique": {
556
- "pass": "Landmarks skal have en unik rolle eller 'role'/'label'/'title'-attribut-kombination (som tilgængeligt navn)",
557
- "fail": "Et landmark skal have en unik 'aria-label', 'aria-labelledby', eller 'title' for at gøre landmarks adskillelige"
558
- },
559
- "has-lang": {
560
- "pass": "<html> elementet har en 'lang'-attribut",
561
- "fail": "<html> elementet har ikke en 'lang'-attribut"
562
- },
563
- "valid-lang": {
564
- "pass": "'lang'-attributtens værdi er inkluderet i listen over godkendte sprog",
565
- "fail": "'lang'-attributtens værdi er ikke inkluderet i listen over godkendte sprog"
566
- },
567
- "xml-lang-mismatch": {
568
- "pass": "Attributterne 'lang' og 'xml:lang' har samme basissprog",
569
- "fail": "Attributterne 'lang' og 'xml:lang' har ikke samme basissprog"
570
- },
571
- "dlitem": {
572
- "pass": "Beskrivelsesliste-elementet har et <dl>-over-element",
573
- "fail": "Beskrivelsesliste-elementet har ikke et <dl>-over-element"
574
- },
575
- "listitem": {
576
- "pass": "Elementet i listen har et <ul>, <ol> eller 'role=\"list\"'-over-element",
577
- "fail": "Elementet i listen har ikke et <ul>, <ol> eller 'role=\"list\"'-over-element"
578
- },
579
- "only-dlitems": {
580
- "pass": "Elementet i listen har kun direkte under-elementer, som er tilladt i <dt> eller <dd> elementer",
581
- "fail": "Elementet i listen har direkte under-elementer, som ikke er tilladt inde i <dt> eller <dd> elementer"
582
- },
583
- "only-listitems": {
584
- "pass": "Elementet i listen har kun direkte under-elementer, som er tilladt i <li> elementer",
585
- "fail": "Elementet i listen har direkte under-elementer, som ikke er tilladt inde i <li> elementer"
586
- },
587
- "structured-dlitems": {
588
- "pass": "Det ikke-tomme element har både <dt> og <dd> elementer",
589
- "fail": "Det ikke-tomme element har ikke mindst ét <dt> element efterfulgt af mindst ét <dd> element"
590
- },
591
- "caption": {
592
- "pass": "Multimedia-elementet har et track med undertekster",
593
- "incomplete": "Tjek at undertekster er tilgængelige for elementet"
594
- },
595
- "description": {
596
- "pass": "Multimedia-elementet har et lydbeskrivende ('audio-description') track",
597
- "incomplete": "Tjek at elementet har et lydbeskrivende ('audio-description') track"
598
- },
599
- "frame-tested": {
600
- "pass": "Denne <iframe> blev testet af axe-core",
601
- "fail": "Denne <iframe> kunne ikke testes af axe-core",
602
- "incomplete": "Denne <iframe> er endnu ikke blevet testet af axe-core"
603
- },
604
- "css-orientation-lock": {
605
- "pass": "Skærmen kan styres, og sidens skærmretning er ikke låst med med 'css-orientation-lock'",
606
- "fail": "Skærmretningen ('css-orientation-lock') er låst, hvilket gør sidevisning svær at styre skærmen",
607
- "incomplete": "Det kan ikke detekteres om skærmretning er låst (med 'css-orientation-lock')"
608
- },
609
- "meta-viewport-large": {
610
- "pass": "<meta>-tagget begrænser ikke høj zoom mobile enheder",
611
- "fail": "<meta>-tagget begrænser zoom på mobile enheder"
612
- },
613
- "meta-viewport": {
614
- "pass": "<meta>-tagget slår ikke zoom fra mobile enheder",
615
- "fail": "{{=it.data}} på <meta>-tagget slår zoom fra på mobile enheder"
616
- },
617
- "header-present": {
618
- "pass": "Siden har en overskrift (header)",
619
- "fail": "Siden har ikke en overskrift (header)"
620
- },
621
- "heading-order": {
622
- "pass": "Rækkefølgen af overskiftsniveauer er korrekt",
623
- "fail": "Rækkefølgen af overskiftsniveauer er ikke korrekt"
624
- },
625
- "internal-link-present": {
626
- "pass": "Passende 'skip link' fundet",
627
- "fail": "Intet passende 'skip link' fundet"
628
- },
629
- "landmark": {
630
- "pass": "Siden har en 'landmark' region",
631
- "fail": "Siden har ikke en 'landmark' region"
632
- },
633
- "meta-refresh": {
634
- "pass": "<meta>-tagget genindlæser ikke siden med det samme",
635
- "fail": "<meta>-tagget genindlæser siden med det samme"
636
- },
637
- "p-as-heading": {
638
- "pass": "<p> elementer er ikke stylet som en overskrift",
639
- "fail": "Overskrifts-elementer (<h1>, <h2>, osv.) bør bruges i stedet for stylet <p> elementer"
640
- },
641
- "region": {
642
- "pass": "Al indhold på siden er lagt ind under landmarks",
643
- "fail": "Dele af sidens indhold er ikke lagt under et landmark"
644
- },
645
- "skip-link": {
646
- "pass": "Det element, som 'skip link' refererer til, eksisterer",
647
- "incomplete": "Det element, som 'skip link' refererer til, bør blive synligt ved aktivering",
648
- "fail": "Manglende 'skip link' 'target'-attribut"
649
- },
650
- "unique-frame-title": {
651
- "pass": "Elementets 'title'-attribut er unik",
652
- "fail": "Elementets 'title'-attribut er ikke unik"
653
- },
654
- "duplicate-id-active": {
655
- "pass": "Dokumentet har ingen aktive elementer, der deler den samme 'id'-attribut",
656
- "fail": "Dokumentet har aktive elementer, der deler den samme 'id'-attribut: {{=it.data}}"
657
- },
658
- "duplicate-id-aria": {
659
- "pass": "Dokumentet har ingen elementer refereret med ARIA eller labels, der deler den samme 'id'-attribut",
660
- "fail": "Dokumentet har flere elementer refereret med ARIA med den samme 'id'-attribut: {{=it.data}}"
661
- },
662
- "duplicate-id": {
663
- "pass": "Dokumentet har ingen statiske elementer, der deler den samme 'id'-attribut",
664
- "fail": "Dokumentet har flere statiske elementer med den samme 'id'-attribut"
665
- },
666
- "aria-label": {
667
- "pass": "'aria-label'-attribut er til stede og er ikke tom",
668
- "fail": "'aria-label'-attribut eksisterer ikke eller er tom"
669
- },
670
- "aria-labelledby": {
671
- "pass": "'aria-labelledby'-attribut eksisterer og refererer elementer, der er synlige for skærmlæsere",
672
- "fail": "'aria-labelledby'-attribut eksisterer ikke, eller refererer elementer, som ikke eksisterer - eller refererer til elementer, der er tomme"
673
- },
674
- "avoid-inline-spacing": {
675
- "pass": "Ingen inline styling med '!important', som påvirker tekst-mellemrums-afstand er specificeret",
676
- "fail": "Fjern '!important' fra inline styling{{=it.data && it.data.length > 1 ? 's' : ''}} {{=it.data.join(', ')}}, da overskrivning af dette, ikke er understøttet i de fleste browsere"
677
- },
678
- "button-has-visible-text": {
679
- "pass": "Elementet har indre tekst, som er synlig for skærmlæsere",
680
- "fail": "Elementet har ingen indre tekst, som er synlig for skærmlæsere"
681
- },
682
- "doc-has-title": {
683
- "pass": "Dokumentet har et <title> element, der ikke er tomt",
684
- "fail": "Dokumentet mangler et <title> element med indhold"
685
- },
686
- "exists": {
687
- "pass": "Elementet eksisterer ikke",
688
- "fail": "Elementet eksisterer"
689
- },
690
- "has-alt": {
691
- "pass": "Elementet har en 'alt'-attribut",
692
- "fail": "Elementet har ikke en 'alt'-attribut"
693
- },
694
- "has-visible-text": {
695
- "pass": "Elementet har tekst, der er synligt for skærmlæsere",
696
- "fail": "Elementet har ikke tekst, der er synligt for skærmlæsere"
697
- },
698
- "is-on-screen": {
699
- "pass": "Elementet er ikke synligt",
700
- "fail": "Elementet er synligt"
701
- },
702
- "non-empty-alt": {
703
- "pass": "Elementet har 'alt'-attribut med indhold",
704
- "fail": "Elementet har ingen 'alt'-attribut, eller 'alt'-attributten er tom"
705
- },
706
- "non-empty-if-present": {
707
- "pass": "Elementet {{?it.data}} har en 'værdi'-attribut med indhold{{??}} har ikke en 'value'-attribut{{?}}",
708
- "fail": "Elementet har en 'value'-attribut, og 'værdi'-attributten er tom"
709
- },
710
- "non-empty-title": {
711
- "pass": "Elementet har en 'title'-attribut",
712
- "fail": "Elementet har ingen 'title'-attribut, eller 'title'-attributten er tom"
713
- },
714
- "non-empty-value": {
715
- "pass": "Elementet har 'value'-attribut med indhold",
716
- "fail": "Elementet har ingen 'value'-attribut, eller 'value'-attributten er tom"
717
- },
718
- "role-none": {
719
- "pass": "Elementets standard semantik blev overskrevet med attributten 'role=\"none\"'",
720
- "fail": "Elementets standard semantik blev ikke overskrevet med attributten 'role=\"none\"'"
721
- },
722
- "role-presentation": {
723
- "pass": "Elementets standard semantik blev overskrevet med attributten 'role=\"presentation\"'",
724
- "fail": "Elementets standard semantik blev ikke overskrevet med attributten 'role=\"presentation\"'"
725
- },
726
- "caption-faked": {
727
- "pass": "Den første række i tabellen er ikke brugt som en beskrivelse ('caption')",
728
- "fail": "Det første element i tabellen bør være en beskrivelse (<caption>) i stedet for en celle"
729
- },
730
- "has-caption": {
731
- "pass": "Layouttabellen bruger ikke et <caption> element",
732
- "fail": "Layouttabellen bruger <caption> element"
733
- },
734
- "has-summary": {
735
- "pass": "Layouttabellen bruger ikke 'summary'-attribut",
736
- "fail": "Layouttabellen bruger 'summary'-attribut"
737
- },
738
- "has-th": {
739
- "pass": "Layouttabellen bruger ikke <th> elementer",
740
- "fail": "Layouttabellen bruger <th> elementer"
741
- },
742
- "html5-scope": {
743
- "pass": "'Scope'-attributten bør kun bruges på tabellens header-elementer (<th>)",
744
- "fail": "'Scope'-attributten bør kun bruges på tabellens header-elementer (<th>)"
745
- },
746
- "same-caption-summary": {
747
- "pass": "Indholdet af 'summary'-attributten og <caption> elementet er ikke identisk",
748
- "fail": "Indholdet af 'summary'-attributten og <caption> elementet er identisk"
749
- },
750
- "scope-value": {
751
- "pass": "'scope'-attributten bruges korrekt",
752
- "fail": "Værdien af 'scope'-attributten må kun være 'row' eller 'col'"
753
- },
754
- "td-has-header": {
755
- "pass": "Alle data-celler med indhold har en tabel-header",
756
- "fail": "Nogle data-celler med indhold har ikke tabel-headers"
757
- },
758
- "td-headers-attr": {
759
- "pass": "Header-attributten bruges kun til at referere til andre celler i den samme tabel",
760
- "fail": "Header-attributten bruges ikke kun til at referere til andre celler i den samme tabel"
761
- },
762
- "th-has-data-cells": {
763
- "pass": "Alle tabellens header-celler refererer til data-celler",
764
- "fail": "Ikke alle tabellens header-celler refererer til data-celler",
765
- "incomplete": "Nogle af tabellens data-celler mangler eller er tomme"
766
- },
767
- "hidden-content": {
768
- "pass": "Alt indhold på siden er blevet analyseret.",
769
- "fail": "Der var problemer med at analysere dele af indholdet på denne side.",
770
- "incomplete": "Der er skjult indhold siden, som ikke blev analyseret. Du skal gøre dette indhold synligt for at kunne analysere det."
771
- }
772
- },
773
- "failureSummaries": {
774
- "any": {
775
- "failureMessage": "Ret en af følgende:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
776
- },
777
- "none": {
778
- "failureMessage": "Ret alle de følgende:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
779
- }
780
- },
781
- "incompleteFallbackMessage": "axe kunne ikke give en årsag. Tid til at finde dit udviklingsværktøj frem!"
2
+ "lang": "da",
3
+ "rules": {
4
+ "accesskeys": {
5
+ "description": "",
6
+ "help": "Værdien for attributten 'accesskey' skal være unik"
7
+ },
8
+ "area-alt": {
9
+ "description": "",
10
+ "help": "Aktive <area> elementer skal have alternativ tekst"
11
+ },
12
+ "aria-allowed-attr": {
13
+ "description": "",
14
+ "help": "Elementer må kun bruge tilladte ARIA-attributter"
15
+ },
16
+ "aria-allowed-role": {
17
+ "description": "",
18
+ "help": "ARIA-attributten 'role' skal være passende for elementet"
19
+ },
20
+ "aria-hidden-body": {
21
+ "description": "",
22
+ "help": "aria-hidden='true' ikke bruges på dokumentets <body> element"
23
+ },
24
+ "aria-hidden-focus": {
25
+ "description": "",
26
+ "help": "Elementer med ARIA-'hidden' må ikke indeholde fokuserbare elementer"
27
+ },
28
+ "aria-input-field-name": {
29
+ "description": "",
30
+ "help": "ARIA-input-felter skal have et tilgængeligt navn"
31
+ },
32
+ "aria-required-attr": {
33
+ "description": "",
34
+ "help": "Krævede ARIA-attributter skal være angivet"
35
+ },
36
+ "aria-required-children": {
37
+ "description": "",
38
+ "help": "Bestemte ARIA-roller skal indeholde specifikke under-elementer"
39
+ },
40
+ "aria-required-parent": {
41
+ "description": "",
42
+ "help": "Bestemte ARIA-roller skal være under-element til specifikke over-elementer"
43
+ },
44
+ "aria-roledescription": {
45
+ "description": "",
46
+ "help": "Brug 'aria-roledescription' elementer med en semantisk rolle"
47
+ },
48
+ "aria-roles": {
49
+ "description": "",
50
+ "help": "ARIA-roller skal have en korrekt værdi"
51
+ },
52
+ "aria-toggle-field-name": {
53
+ "description": "",
54
+ "help": "ARIA afkrydsningsfelter skal have et tilgængeligt navn"
55
+ },
56
+ "aria-valid-attr-value": {
57
+ "description": "",
58
+ "help": "ARIA-attributter skal have en korrekt værdi"
59
+ },
60
+ "aria-valid-attr": {
61
+ "description": "",
62
+ "help": "ARIA-attributter skal have et korrekt navn"
63
+ },
64
+ "audio-caption": {
65
+ "description": "",
66
+ "help": "<audio> elementer skal have en transskription ('captions track')"
67
+ },
68
+ "autocomplete-valid": {
69
+ "description": "",
70
+ "help": "Attributten 'autocomplete' skal benyttes korrekt"
71
+ },
72
+ "avoid-inline-spacing": {
73
+ "description": "",
74
+ "help": "Inline tekst-afstande skal være justerbare med brugerdefinerede stylesheets"
75
+ },
76
+ "blink": {
77
+ "description": "",
78
+ "help": "Elementet <blink> er udfaset og ikke bruges"
79
+ },
80
+ "button-name": {
81
+ "description": "",
82
+ "help": "Knapper skal have forståelig (dvs. detekterbar) tekst"
83
+ },
84
+ "bypass": {
85
+ "description": "",
86
+ "help": "Sider skal have en metode til at springe over gentaget indhold"
87
+ },
88
+ "color-contrast": {
89
+ "description": "",
90
+ "help": "Elementer skal have tilstrækkelig farvekontrast"
91
+ },
92
+ "color-contrast-enhanced": {
93
+ "description": "",
94
+ "help": "Elementer skal have tilstrækkelig farvekontrast"
95
+ },
96
+ "css-orientation-lock": {
97
+ "description": "",
98
+ "help": "'CSS Media queries' bør ikke bruges til at låse skærmretningen ('orientation')"
99
+ },
100
+ "definition-list": {
101
+ "description": "",
102
+ "help": "<dl> elementer kun direkte indeholde velsorterede <dt> og <dd> grupper, <script> eller <template> elementer"
103
+ },
104
+ "dlitem": {
105
+ "description": "",
106
+ "help": "<dt> og <dd> elementer skal være under-element til et <dl> element"
107
+ },
108
+ "document-title": {
109
+ "description": "",
110
+ "help": "Dokumenter skal have et <title> element for at bidrage til nemmere navigation"
111
+ },
112
+ "duplicate-id-active": {
113
+ "description": "",
114
+ "help": "'id'-attributten for aktive elementer skal være unik"
115
+ },
116
+ "duplicate-id-aria": {
117
+ "description": "",
118
+ "help": "'id'-attributten brugt ARIA-elementer og -labels skal være unik"
119
+ },
120
+ "duplicate-id": {
121
+ "description": "",
122
+ "help": "Værdien for 'id'-attributen skal være unik"
123
+ },
124
+ "empty-heading": {
125
+ "description": "",
126
+ "help": "Overskrifter ikke være tomme"
127
+ },
128
+ "focus-order-semantics": {
129
+ "description": "",
130
+ "help": "Elementer i fokus-rækkefølgen bør have en 'role'-attribut, som er passende for det interaktive indhold"
131
+ },
132
+ "form-field-multiple-labels": {
133
+ "description": "",
134
+ "help": "Form-feltet bør ikke have flere label-elementer"
135
+ },
136
+ "frame-tested": {
137
+ "description": "",
138
+ "help": "Frame-elementer skal være testet med axe-core"
139
+ },
140
+ "frame-title-unique": {
141
+ "description": "",
142
+ "help": "Frame-elementer skal have en unik 'title'-attribut"
143
+ },
144
+ "frame-title": {
145
+ "description": "",
146
+ "help": "Frame-elementer skal have 'title'-attribut"
147
+ },
148
+ "heading-order": {
149
+ "description": "",
150
+ "help": "Overskriftsniveauer bør kun ændres sekventielt"
151
+ },
152
+ "hidden-content": {
153
+ "description": "",
154
+ "help": "Skjult indhold siden kan ikke analyseres"
155
+ },
156
+ "html-has-lang": {
157
+ "description": "",
158
+ "help": "<html> elementet skal have en 'lang'-attribut"
159
+ },
160
+ "html-lang-valid": {
161
+ "description": "",
162
+ "help": "<html> elementet skal have en korrekt værdi for 'lang'-attributten"
163
+ },
164
+ "html-xml-lang-mismatch": {
165
+ "description": "",
166
+ "help": "<html> elementer med 'lang' og 'xml:lang' skal have det samme basesprog"
167
+ },
168
+ "image-alt": {
169
+ "description": "",
170
+ "help": "Billeder skal have en alternativ tekst"
171
+ },
172
+ "image-redundant-alt": {
173
+ "description": "",
174
+ "help": "Alternativ tekst til billeder (alt-tekst) bør ikke gentages som brødtekst"
175
+ },
176
+ "input-button-name": {
177
+ "description": "",
178
+ "help": "Input-knapper skal have en forståelig tekst"
179
+ },
180
+ "input-image-alt": {
181
+ "description": "",
182
+ "help": "Billed-knapper skal have en alternativ tekst"
183
+ },
184
+ "label-content-name-mismatch": {
185
+ "description": "",
186
+ "help": "Elementers synlige tekst skal være del af deres tilgængelige navn"
187
+ },
188
+ "label-title-only": {
189
+ "description": "",
190
+ "help": "Form-elementer bør have en synlig label"
191
+ },
192
+ "label": {
193
+ "description": "",
194
+ "help": "Form-elementer skal have labels"
195
+ },
196
+ "landmark-banner-is-top-level": {
197
+ "description": "",
198
+ "help": "Et 'banner'-landmark ikke være indeholdt i et andet landmark"
199
+ },
200
+ "landmark-complementary-is-top-level": {
201
+ "description": "",
202
+ "help": "Et 'aside'- eller 'complimentary'-landmark må ikke være indeholdt i et andet landmark"
203
+ },
204
+ "landmark-contentinfo-is-top-level": {
205
+ "description": "",
206
+ "help": "Et 'contentinfo'-landmark må ikke være indeholdt i et andet landmark"
207
+ },
208
+ "landmark-main-is-top-level": {
209
+ "description": "",
210
+ "help": "Et 'main'-landmark må ikke være indeholdt i et andet landmark"
211
+ },
212
+ "landmark-no-duplicate-banner": {
213
+ "description": "",
214
+ "help": "Dokumentet må ikke have mere end ét 'banner'-landmark"
215
+ },
216
+ "landmark-no-duplicate-contentinfo": {
217
+ "description": "",
218
+ "help": "Dokumentet må ikke have mere end ét 'contentinfo'-landmark"
219
+ },
220
+ "landmark-one-main": {
221
+ "description": "",
222
+ "help": "Dokumentet skal have ét 'main'-landmark"
223
+ },
224
+ "landmark-unique": {
225
+ "description": "",
226
+ "help": "Sikrer at landmarks er unikke"
227
+ },
228
+ "link-in-text-block": {
229
+ "description": "",
230
+ "help": "Links skal være fremtrædende fra den omkringliggende tekst på en måde, som ikke afhænger af farve"
231
+ },
232
+ "link-name": {
233
+ "description": "",
234
+ "help": "Links skal have forståelig (detekterbar) tekst"
235
+ },
236
+ "list": {
237
+ "description": "",
238
+ "help": "<ul> og <ol> kun direkte indeholde <li>, <script> eller <template> elementer"
239
+ },
240
+ "listitem": {
241
+ "description": "",
242
+ "help": "<li> elementer skal være indeholdt i et <ul> eller <ol> element"
243
+ },
244
+ "marquee": {
245
+ "description": "",
246
+ "help": "<marquee> elementer er udfaset og ikke bruges"
247
+ },
248
+ "meta-refresh": {
249
+ "description": "",
250
+ "help": "Tidsindstillet 'refresh' ikke bruges"
251
+ },
252
+ "meta-viewport-large": {
253
+ "description": "",
254
+ "help": "Brugere bør kunne zoome og skalere tekst op til 500%"
255
+ },
256
+ "meta-viewport": {
257
+ "description": "",
258
+ "help": "Zoom og skalering må ikke være slået fra"
259
+ },
260
+ "object-alt": {
261
+ "description": "",
262
+ "help": "<object> elementer skal have en alternativ tekst"
263
+ },
264
+ "p-as-heading": {
265
+ "description": "",
266
+ "help": "Fremhævelse med fed, kursiv og skriftstørrelse (font-size) må ikke bruges til at style <p> elementer som en overskrift"
267
+ },
268
+ "page-has-heading-one": {
269
+ "description": "",
270
+ "help": "Siden skal indeholde en overskrift på øverste niveau"
271
+ },
272
+ "region": {
273
+ "description": "",
274
+ "help": "Alt indhold siden skal være indeholdt i landmarks"
275
+ },
276
+ "role-img-alt": {
277
+ "description": "",
278
+ "help": "Elementer med 'role' attributværdien 'img' skal have en alternativ tekst"
279
+ },
280
+ "scope-attr-valid": {
281
+ "description": "",
282
+ "help": "'scope'-attributten skal bruges korrekt i tabeller"
283
+ },
284
+ "scrollable-region-focusable": {
285
+ "description": "",
286
+ "help": "Sørg for, at en scrollbar region er tilgængeligt via keyboard"
287
+ },
288
+ "server-side-image-map": {
289
+ "description": "",
290
+ "help": "Såkaldte 'server-side image-maps' ikke bruges"
291
+ },
292
+ "skip-link": {
293
+ "description": "",
294
+ "help": "Et 'skip-link' skal pege et eksisterende og fokuserbart element"
295
+ },
296
+ "tabindex": {
297
+ "description": "",
298
+ "help": "Elementer bør ikke have et 'tabindex' højere end 0"
299
+ },
300
+ "table-duplicate-name": {
301
+ "description": "",
302
+ "help": "Elementet <caption> bør ikke indeholde samme tekst som 'summary'-attributten"
303
+ },
304
+ "table-fake-caption": {
305
+ "description": "",
306
+ "help": "Data- eller overskrifts-celler bør ikke bruges til at beskrive indholdet af en data-tabel"
307
+ },
308
+ "td-has-header": {
309
+ "description": "",
310
+ "help": "Alle ikke-tomme <td> elementer i en tabel større end 3x3 bør have en tabeloverskrift (<th>)"
311
+ },
312
+ "td-headers-attr": {
313
+ "description": "",
314
+ "help": "Alle celler i en tabel, som bruger 'header'-attributten må kun referere til andre celler i samme tabel"
315
+ },
316
+ "th-has-data-cells": {
317
+ "description": "",
318
+ "help": "Alle <th> elementer og elementer med 'role=columnheader/rowheader' skal referere til de data-celler, som de beskriver"
319
+ },
320
+ "valid-lang": {
321
+ "description": "",
322
+ "help": "'lang'-attributten skal have en korrekt værdi"
323
+ },
324
+ "video-caption": {
325
+ "description": "",
326
+ "help": "<video> elementer skal have undertekster ('captions')"
327
+ }
328
+ },
329
+ "checks": {
330
+ "abstractrole": {
331
+ "pass": "Abstrakte roller er ikke brugt",
332
+ "fail": "Abstrakte roller bør ikke bruges"
333
+ },
334
+ "aria-allowed-attr": {
335
+ "pass": "ARIA-attribut er brugt korrekt for den angivede rolle",
336
+ "fail": {
337
+ "singular": "ARIA-attributterne er ikke tilladt: ${data.values}",
338
+ "plural": "ARIA-attribut er ikke tilladt: ${data.values}"
339
+ }
340
+ },
341
+ "aria-allowed-role": {
342
+ "pass": "ARIA-rollen er tilladt for det givne element",
343
+ "fail": {
344
+ "singular": "ARIA-rollerne ${data.values} er ikke tilladt for det givne element",
345
+ "plural": "ARIA-rollen ${data.values} er ikke tilladt for det givne element"
346
+ },
347
+ "incomplete": {
348
+ "singular": "ARIA-rollerne ${data.values} skal være fjernet, når elementet er synligt, da de ikke er tilladt for elementet",
349
+ "plural": "ARIA-rollen ${data.values} skal være fjernet, når elementet er synligt, da det ikke er tilladt for elementet"
350
+ }
351
+ },
352
+ "aria-hidden-body": {
353
+ "pass": "Ingen 'aria-hidden'-attribut er at finde i dokumentets <body> element",
354
+ "fail": "'aria-hidden=true' bør ikke bruges på dokumentets <body> element"
355
+ },
356
+ "aria-roledescription": {
357
+ "pass": "'aria-roledescription' bruges en understøttet semantisk rolle",
358
+ "incomplete": "Tjek at 'aria-roledescription' bliver læst op af understøttet skærmlæser",
359
+ "fail": "Giv elementet en rolle, som understøtter 'aria-roledescription'"
360
+ },
361
+ "aria-errormessage": {
362
+ "pass": "Bruger en understøttet 'aria-errormessage'-teknik",
363
+ "fail": {
364
+ "singular": "'aria-errormessage'-værdier ${data.values}` bør bruge en teknik til at annoncere beskeden (fx 'aria-live', 'aria-describedby', 'role=alert', osv.)",
365
+ "plural": "'aria-errormessage'-værdi ${data.values}` bør bruge en teknik til at annoncere beskeden (fx 'aria-live', 'aria-describedby', 'role=alert', osv.)"
366
+ }
367
+ },
368
+ "has-widget-role": {
369
+ "pass": "Elementet har en 'widget'-rolle.",
370
+ "fail": "Elementet har ikke en 'widget'-rolle."
371
+ },
372
+ "invalidrole": {
373
+ "pass": "ARIA-rollen er korrekt",
374
+ "fail": "Rollen skal være en af de mulige ARIA-roller"
375
+ },
376
+ "no-implicit-explicit-label": {
377
+ "pass": "Der er uoverensstemmelse mellem <label> og det tilgængelige navn",
378
+ "incomplete": "Tjek at <label> elementet ikke behøver være en del af ${data}-feltets navn"
379
+ },
380
+ "aria-required-attr": {
381
+ "pass": "Alle krævede ARIA-attributter er tilstede",
382
+ "fail": {
383
+ "singular": "Krævet ARIA-attributter er ikke til stede: ${data.values}",
384
+ "plural": "Krævet ARIA-attribut er ikke til stede: ${data.values}"
385
+ }
386
+ },
387
+ "aria-required-children": {
388
+ "pass": "Krævet ARIA-under-elementer er til stede",
389
+ "fail": {
390
+ "singular": "Krævet ARIA-under-elementers rolle er ikke til stede: ${data.values}",
391
+ "plural": "Krævet ARIA-under-elements rolle er ikke til stede: ${data.values}"
392
+ },
393
+ "incomplete": {
394
+ "singular": "Forventer at ARIA under-elementers rolle bliver tilføjet: ${data.values}",
395
+ "plural": "Forventer at ARIA under-elements rolle bliver tilføjet: ${data.values}"
396
+ }
397
+ },
398
+ "aria-required-parent": {
399
+ "pass": "Krævet ARIA-over-elements rolle er til stede",
400
+ "fail": {
401
+ "singular": "Krævet ARIA-over-elementers rolle er ikke til stede: ${data.values}",
402
+ "plural": "Krævet ARIA-over-elements rolle er ikke til stede: ${data.values}"
403
+ }
404
+ },
405
+ "aria-unsupported-attr": {
406
+ "pass": "ARIA-attribut er understøttet",
407
+ "fail": "ARIA-attribut er ikke bredt understøttet i skærmlæsere og tilgængelighedsteknologier: ${data.values}"
408
+ },
409
+ "unsupportedrole": {
410
+ "pass": "ARIA rollen er understøttet",
411
+ "fail": "Den brugte rolle er ikke bredt understøttet i skærmlæsere og tilgængelighedsteknologier: ${data.values}"
412
+ },
413
+ "aria-valid-attr-value": {
414
+ "pass": "ARIA-attributværdien er valid",
415
+ "fail": {
416
+ "singular": "Ikke-korrekt ARIA-attributværdier: ${data.values}",
417
+ "plural": "Ikke-korrekt ARIA-attributværdi: ${data.values}"
418
+ },
419
+ "incomplete": {
420
+ "singular": "ARIA-attributternes element 'id' er ikke at finde siden: ${data.values}",
421
+ "plural": "ARIA-attributtens element 'id' er ikke at finde på siden: ${data.values}"
422
+ }
423
+ },
424
+ "aria-valid-attr": {
425
+ "pass": {
426
+ "singular": "ARIA-attributnavnene er korrekt",
427
+ "plural": "ARIA-attributnavnet er korrekt"
428
+ },
429
+ "fail": {
430
+ "singular": "Ikke-korrekt ARIA-attributnavne: ${data.values}",
431
+ "plural": "Ikke-korrekt ARIA-attributnavn: ${data.values}"
432
+ }
433
+ },
434
+ "valid-scrollable-semantics": {
435
+ "pass": "Elementet har korrekt semantik for et element i fokus-rækkefølgen.",
436
+ "fail": "Elementet har ikke korrekt semantik for et element i fokus-rækkefølgen."
437
+ },
438
+ "color-contrast": {
439
+ "pass": "Elementet har stor farvekontrast, den er ${data.contrastRatio}",
440
+ "fail": "Elementet har ikke nok farvekontrast, den er ${data.contrastRatio} (forgrundsfarve: ${data.fgColor}, baggrundsfarve: ${data.bgColor}, tekststørrelse: ${data.fontSize}, teksttykkelse: ${data.fontWeight}). Forventet kontrastforhold er ${data.expectedContrastRatio}",
441
+ "incomplete": {
442
+ "bgImage": "Elementets baggrundsfarve kunne ikke detekteres på grund af et baggrundsbillede",
443
+ "bgGradient": "Elementets baggrundsfarve kunne ikke detekteres grund af en baggrundsgradient",
444
+ "imgNode": "Elementets baggrundsfarve kunne ikke detekteres, fordi elementet indeholder et billedelement",
445
+ "bgOverlap": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er overlappet af et andet element",
446
+ "fgAlpha": "Elementets forgrundsfarve kunne ikke detekteres grund af dets gennemsigtighed",
447
+ "elmPartiallyObscured": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er delvist dækket af et andet element",
448
+ "elmPartiallyObscuring": "Elementets baggrundsfarve kunne ikke detekteres, fordi det delvist dækker et andet element",
449
+ "outsideViewport": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er udenfor sidens 'viewport'",
450
+ "equalRatio": "Elementet har et 1:1-kontrastforhold med baggrunden",
451
+ "shortTextContent": "Elementets indhold er for kort til at kunne afgøre, om indholdet ren faktisk ER tekst",
452
+ "default": "Kan ikke udregne kontrastforhold"
453
+ }
454
+ },
455
+ "color-contrast-enhanced": {
456
+ "pass": "Elementet har stor farvekontrast, den er ${data.contrastRatio}",
457
+ "fail": "Elementet har ikke nok farvekontrast, den er ${data.contrastRatio} (forgrundsfarve: ${data.fgColor}, baggrundsfarve: ${data.bgColor}, tekststørrelse: ${data.fontSize}, teksttykkelse: ${data.fontWeight}). Forventet kontrastforhold er ${data.expectedContrastRatio}",
458
+ "incomplete": {
459
+ "bgImage": "Elementets baggrundsfarve kunne ikke detekteres på grund af et baggrundsbillede",
460
+ "bgGradient": "Elementets baggrundsfarve kunne ikke detekteres grund af en baggrundsgradient",
461
+ "imgNode": "Elementets baggrundsfarve kunne ikke detekteres, fordi elementet indeholder et billedelement",
462
+ "bgOverlap": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er overlappet af et andet element",
463
+ "fgAlpha": "Elementets forgrundsfarve kunne ikke detekteres på grund af dets gennemsigtighed",
464
+ "elmPartiallyObscured": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er delvist dækket af et andet element",
465
+ "elmPartiallyObscuring": "Elementets baggrundsfarve kunne ikke detekteres, fordi det delvist dækker et andet element",
466
+ "outsideViewport": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er udenfor sidens 'viewport'",
467
+ "equalRatio": "Elementet har et 1:1-kontrastforhold med baggrunden",
468
+ "shortTextContent": "Elementets indhold er for kort til at kunne afgøre, om indholdet ren faktisk ER tekst",
469
+ "default": "Kan ikke udregne kontrastforhold"
470
+ }
471
+ },
472
+ "link-in-text-block": {
473
+ "pass": "Links kan adskilles fra den omkringliggende tekst på anden måde end med farve",
474
+ "fail": "Links bør skille sig ud fra den omkringliggende tekst på anden måde end med farve",
475
+ "incomplete": {
476
+ "bgContrast": "Elementets kontrastforhold kunne ikke detekteres. Tjek for specifik 'hover'/'focus' styling",
477
+ "bgImage": "Elementets kontrastforhold kunne ikke detekteres grund af et baggrundsbillede",
478
+ "bgGradient": "Elementets kontrastforhold kunne ikke detekteres på grund af en baggrundsgradient",
479
+ "imgNode": "Elementets kontrastforhold kunne ikke detekteres, fordi elementet indeholder et billedelement",
480
+ "bgOverlap": "Elementets kontrastforhold kunne ikke detekteres på grund af overlappende elementer",
481
+ "default": "Kan ikke udregne kontrastforhold"
482
+ }
483
+ },
484
+ "autocomplete-appropriate": {
485
+ "pass": "'autocomplete'-værdien er brugt et passende element",
486
+ "fail": "'autocomplete'-værdien er ikke passende for denne type input"
487
+ },
488
+ "autocomplete-valid": {
489
+ "pass": "'autocomplete'-attributten er korrekt formateret",
490
+ "fail": "'autocomplete'-attributten er forkert formateret"
491
+ },
492
+ "accesskeys": {
493
+ "pass": "'Accesskey' attributværdien er unik",
494
+ "fail": "Dokumentet har flere elementer med den samme 'accesskey'-attribut"
495
+ },
496
+ "focusable-content": {
497
+ "pass": "Elementet indeholder fokuserbare elementer",
498
+ "fail": "Elementet bør have fokuserbart indhold"
499
+ },
500
+ "focusable-disabled": {
501
+ "pass": "Ingen fokuserbare elementer indeholdt i elementet",
502
+ "fail": "Fokuserbart indhold bør slås fra eller fjernes fra sidens DOM"
503
+ },
504
+ "focusable-element": {
505
+ "pass": "Elementet er fokuserbart",
506
+ "fail": "Elementet bør være fokuserbart"
507
+ },
508
+ "focusable-no-name": {
509
+ "pass": "Elementet er ikke i sidens tabulerings-rækkefølge ('tab order') eller har tilgængelig tekst",
510
+ "fail": "Elementet er i sidens tabulerings-rækkefølge ('tab order') og har ikke tilgængelig tekst"
511
+ },
512
+ "focusable-not-tabbable": {
513
+ "pass": "Ingen fokuserbare elementer indeholdt i element",
514
+ "fail": "Fokuserbart indhold bør have tabindex='-1' eller fjernes fra sidens DOM"
515
+ },
516
+ "landmark-is-top-level": {
517
+ "pass": "${data.role} landmark er det øverste niveau.",
518
+ "fail": "${data.role} landmark er indhold i et andet landmark."
519
+ },
520
+ "page-has-heading-one": {
521
+ "pass": "Siden har mindst én overskrift niveau 1",
522
+ "fail": "Siden skal have mindst én overskrift på niveau 1"
523
+ },
524
+ "page-has-main": {
525
+ "pass": "Dokumentet har mindst ét 'main'-landmark",
526
+ "fail": "Dokumentet har ikke et 'main'-landmark"
527
+ },
528
+ "page-no-duplicate-banner": {
529
+ "pass": "Dokumentet har ikke mere end ét 'banner'-landmark",
530
+ "fail": "Dokumentet har mere end ét 'banner-'landmark"
531
+ },
532
+ "page-no-duplicate-contentinfo": {
533
+ "pass": "Dokumentet har ikke mere end ét 'contentinfo'-landmark",
534
+ "fail": "Dokumentet har mere end ét 'contentinfo'-landmark"
535
+ },
536
+ "page-no-duplicate-main": {
537
+ "pass": "Dokumentet har ikke mere end ét 'main'-landmark",
538
+ "fail": "Dokumentet har mere end ét 'main'-landmark"
539
+ },
540
+ "tabindex": {
541
+ "pass": "Elementet har ikke et 'tabindex' større end 0",
542
+ "fail": "Elementet har et 'tabindex' større end 0"
543
+ },
544
+ "alt-space-value": {
545
+ "pass": "Elementet har en alt-attribut med valid værdi",
546
+ "fail": "Elementet har en alt-attribut, som kun indeholder et mellemrum, hvilket ikke ignoreres af alle skærmlæsere"
547
+ },
548
+ "duplicate-img-label": {
549
+ "pass": "Elementet duplikerer ikke den eksisterende tekst fra <img> elementets alt-tekst",
550
+ "fail": "Elementet indeholder et <img> element med alt-tekst, som duplikerer den eksisterende tekst"
551
+ },
552
+ "explicit-label": {
553
+ "pass": "Form-elementet har en eksplicit <label>",
554
+ "fail": "Form-elementet har ikke en eksplicit <label>"
555
+ },
556
+ "help-same-as-label": {
557
+ "pass": "Hjælpeteksten ('title' eller 'aria-describedby') duplikerer ikke label-teksten",
558
+ "fail": "Hjælpeteksten ('title' eller 'aria-describedby') er den samme som label-teksten"
559
+ },
560
+ "hidden-explicit-label": {
561
+ "pass": "Form-elementet har en synlig og eksplicit <label>",
562
+ "fail": "Form-elementet har en eksplicit <label>, som er skjult"
563
+ },
564
+ "implicit-label": {
565
+ "pass": "Form-elementet har en implicit (indeholdt i en) <label>",
566
+ "fail": "Form-elementet har ikke en implicit (indeholdt i en) <label>"
567
+ },
568
+ "label-content-name-mismatch": {
569
+ "pass": "Elementet indeholder synlig tekst som del af dets tilgængelige navn",
570
+ "fail": "Tekst i elementet er ikke inkluderet i det tilgængelige navn"
571
+ },
572
+ "multiple-label": {
573
+ "pass": "Form-feltet har ikke flere label-elementer",
574
+ "incomplete": "Flere label-elementer er ikke bredt understøttet i tilgængelighedsteknologier. Sørg for, at det første label-element indeholder alle de nødvendige informationer."
575
+ },
576
+ "title-only": {
577
+ "pass": "Form-elementet bruger ikke udelukkende 'title'-attributten som label",
578
+ "fail": "Kun 'title'-attributten er brugt som label for form-elementet"
579
+ },
580
+ "landmark-is-unique": {
581
+ "pass": "Landmarks skal have en unik rolle eller 'role'/'label'/'title'-attribut-kombination (som tilgængeligt navn)",
582
+ "fail": "Et landmark skal have en unik 'aria-label', 'aria-labelledby', eller 'title' for at gøre landmarks adskillelige"
583
+ },
584
+ "has-lang": {
585
+ "pass": "<html> elementet har en 'lang'-attribut",
586
+ "fail": "<html> elementet har ikke en 'lang'-attribut"
587
+ },
588
+ "valid-lang": {
589
+ "pass": "'lang'-attributtens værdi er inkluderet i listen over godkendte sprog",
590
+ "fail": "'lang'-attributtens værdi er ikke inkluderet i listen over godkendte sprog"
591
+ },
592
+ "xml-lang-mismatch": {
593
+ "pass": "Attributterne 'lang' og 'xml:lang' har samme basissprog",
594
+ "fail": "Attributterne 'lang' og 'xml:lang' har ikke samme basissprog"
595
+ },
596
+ "dlitem": {
597
+ "pass": "Beskrivelsesliste-elementet har et <dl>-over-element",
598
+ "fail": "Beskrivelsesliste-elementet har ikke et <dl>-over-element"
599
+ },
600
+ "listitem": {
601
+ "pass": "Elementet i listen har et <ul>, <ol> eller 'role=\"list\"'-over-element",
602
+ "fail": "Elementet i listen har ikke et <ul>, <ol> eller 'role=\"list\"'-over-element"
603
+ },
604
+ "only-dlitems": {
605
+ "pass": "Elementet i listen har kun direkte under-elementer, som er tilladt i <dt> eller <dd> elementer",
606
+ "fail": "Elementet i listen har direkte under-elementer, som ikke er tilladt inde i <dt> eller <dd> elementer"
607
+ },
608
+ "only-listitems": {
609
+ "pass": "Elementet i listen har kun direkte under-elementer, som er tilladt i <li> elementer",
610
+ "fail": "Elementet i listen har direkte under-elementer, som ikke er tilladt inde i <li> elementer"
611
+ },
612
+ "structured-dlitems": {
613
+ "pass": "Det ikke-tomme element har både <dt> og <dd> elementer",
614
+ "fail": "Det ikke-tomme element har ikke mindst ét <dt> element efterfulgt af mindst ét <dd> element"
615
+ },
616
+ "caption": {
617
+ "pass": "Multimedia-elementet har et track med undertekster",
618
+ "incomplete": "Tjek at undertekster er tilgængelige for elementet"
619
+ },
620
+ "frame-tested": {
621
+ "pass": "Denne <iframe> blev testet af axe-core",
622
+ "fail": "Denne <iframe> kunne ikke testes af axe-core",
623
+ "incomplete": "Denne <iframe> er endnu ikke blevet testet af axe-core"
624
+ },
625
+ "css-orientation-lock": {
626
+ "pass": "Skærmen kan styres, og sidens skærmretning er ikke låst med med 'css-orientation-lock'",
627
+ "fail": "Skærmretningen ('css-orientation-lock') er låst, hvilket gør sidevisning svær at styre på skærmen",
628
+ "incomplete": "Det kan ikke detekteres om skærmretning er låst (med 'css-orientation-lock')"
629
+ },
630
+ "meta-viewport-large": {
631
+ "pass": "<meta>-tagget begrænser ikke høj zoom på mobile enheder",
632
+ "fail": "<meta>-tagget begrænser zoom på mobile enheder"
633
+ },
634
+ "meta-viewport": {
635
+ "pass": "<meta>-tagget slår ikke zoom fra på mobile enheder",
636
+ "fail": "${data} på <meta>-tagget slår zoom fra på mobile enheder"
637
+ },
638
+ "header-present": {
639
+ "pass": "Siden har en overskrift (header)",
640
+ "fail": "Siden har ikke en overskrift (header)"
641
+ },
642
+ "heading-order": {
643
+ "pass": "Rækkefølgen af overskiftsniveauer er korrekt",
644
+ "fail": "Rækkefølgen af overskiftsniveauer er ikke korrekt"
645
+ },
646
+ "internal-link-present": {
647
+ "pass": "Passende 'skip link' fundet",
648
+ "fail": "Intet passende 'skip link' fundet"
649
+ },
650
+ "landmark": {
651
+ "pass": "Siden har en 'landmark' region",
652
+ "fail": "Siden har ikke en 'landmark' region"
653
+ },
654
+ "meta-refresh": {
655
+ "pass": "<meta>-tagget genindlæser ikke siden med det samme",
656
+ "fail": "<meta>-tagget genindlæser siden med det samme"
657
+ },
658
+ "p-as-heading": {
659
+ "pass": "<p> elementer er ikke stylet som en overskrift",
660
+ "fail": "Overskrifts-elementer (<h1>, <h2>, osv.) bør bruges i stedet for stylet <p> elementer"
661
+ },
662
+ "region": {
663
+ "pass": "Al indhold siden er lagt ind under landmarks",
664
+ "fail": "Dele af sidens indhold er ikke lagt under et landmark"
665
+ },
666
+ "skip-link": {
667
+ "pass": "Det element, som 'skip link' refererer til, eksisterer",
668
+ "incomplete": "Det element, som 'skip link' refererer til, bør blive synligt ved aktivering",
669
+ "fail": "Manglende 'skip link' 'target'-attribut"
670
+ },
671
+ "unique-frame-title": {
672
+ "pass": "Elementets 'title'-attribut er unik",
673
+ "fail": "Elementets 'title'-attribut er ikke unik"
674
+ },
675
+ "duplicate-id-active": {
676
+ "pass": "Dokumentet har ingen aktive elementer, der deler den samme 'id'-attribut",
677
+ "fail": "Dokumentet har aktive elementer, der deler den samme 'id'-attribut: ${data}"
678
+ },
679
+ "duplicate-id-aria": {
680
+ "pass": "Dokumentet har ingen elementer refereret med ARIA eller labels, der deler den samme 'id'-attribut",
681
+ "fail": "Dokumentet har flere elementer refereret med ARIA med den samme 'id'-attribut: ${data}"
682
+ },
683
+ "duplicate-id": {
684
+ "pass": "Dokumentet har ingen statiske elementer, der deler den samme 'id'-attribut",
685
+ "fail": "Dokumentet har flere statiske elementer med den samme 'id'-attribut"
686
+ },
687
+ "aria-label": {
688
+ "pass": "'aria-label'-attribut er til stede og er ikke tom",
689
+ "fail": "'aria-label'-attribut eksisterer ikke eller er tom"
690
+ },
691
+ "aria-labelledby": {
692
+ "pass": "'aria-labelledby'-attribut eksisterer og refererer elementer, der er synlige for skærmlæsere",
693
+ "fail": "'aria-labelledby'-attribut eksisterer ikke, eller refererer elementer, som ikke eksisterer - eller refererer til elementer, der er tomme"
694
+ },
695
+ "avoid-inline-spacing": {
696
+ "pass": "Ingen inline styling med '!important', som påvirker tekst-mellemrums-afstand er specificeret",
697
+ "fail": {
698
+ "singular": "Fjern '!important' fra inline stylings ${data.values}, da overskrivning af dette, ikke er understøttet i de fleste browsere",
699
+ "plural": "Fjern '!important' fra inline styling ${data.values}, da overskrivning af dette, ikke er understøttet i de fleste browsere"
700
+ }
701
+ },
702
+ "button-has-visible-text": {
703
+ "pass": "Elementet har indre tekst, som er synlig for skærmlæsere",
704
+ "fail": "Elementet har ingen indre tekst, som er synlig for skærmlæsere"
705
+ },
706
+ "doc-has-title": {
707
+ "pass": "Dokumentet har et <title> element, der ikke er tomt",
708
+ "fail": "Dokumentet mangler et <title> element med indhold"
709
+ },
710
+ "exists": {
711
+ "pass": "Elementet eksisterer ikke",
712
+ "fail": "Elementet eksisterer"
713
+ },
714
+ "has-alt": {
715
+ "pass": "Elementet har en 'alt'-attribut",
716
+ "fail": "Elementet har ikke en 'alt'-attribut"
717
+ },
718
+ "has-visible-text": {
719
+ "pass": "Elementet har tekst, der er synligt for skærmlæsere",
720
+ "fail": "Elementet har ikke tekst, der er synligt for skærmlæsere"
721
+ },
722
+ "is-on-screen": {
723
+ "pass": "Elementet er ikke synligt",
724
+ "fail": "Elementet er synligt"
725
+ },
726
+ "non-empty-alt": {
727
+ "pass": "Elementet har 'alt'-attribut med indhold",
728
+ "fail": "Elementet har ingen 'alt'-attribut, eller 'alt'-attributten er tom"
729
+ },
730
+ "non-empty-if-present": {
731
+ "pass": {
732
+ "default": "Elementet har ikke en 'value'-attribut",
733
+ "has-label": "Elementet har en 'værdi'-attribut med indhold"
734
+ },
735
+ "fail": "Elementet har en 'value'-attribut, og 'værdi'-attributten er tom"
736
+ },
737
+ "non-empty-title": {
738
+ "pass": "Elementet har en 'title'-attribut",
739
+ "fail": "Elementet har ingen 'title'-attribut, eller 'title'-attributten er tom"
740
+ },
741
+ "non-empty-value": {
742
+ "pass": "Elementet har 'value'-attribut med indhold",
743
+ "fail": "Elementet har ingen 'value'-attribut, eller 'value'-attributten er tom"
744
+ },
745
+ "role-none": {
746
+ "pass": "Elementets standard semantik blev overskrevet med attributten 'role=\"none\"'",
747
+ "fail": "Elementets standard semantik blev ikke overskrevet med attributten 'role=\"none\"'"
748
+ },
749
+ "role-presentation": {
750
+ "pass": "Elementets standard semantik blev overskrevet med attributten 'role=\"presentation\"'",
751
+ "fail": "Elementets standard semantik blev ikke overskrevet med attributten 'role=\"presentation\"'"
752
+ },
753
+ "caption-faked": {
754
+ "pass": "Den første række i tabellen er ikke brugt som en beskrivelse ('caption')",
755
+ "fail": "Det første element i tabellen bør være en beskrivelse (<caption>) i stedet for en celle"
756
+ },
757
+ "html5-scope": {
758
+ "pass": "'Scope'-attributten bør kun bruges på tabellens header-elementer (<th>)",
759
+ "fail": "'Scope'-attributten bør kun bruges tabellens header-elementer (<th>)"
760
+ },
761
+ "same-caption-summary": {
762
+ "pass": "Indholdet af 'summary'-attributten og <caption> elementet er ikke identisk",
763
+ "fail": "Indholdet af 'summary'-attributten og <caption> elementet er identisk"
764
+ },
765
+ "scope-value": {
766
+ "pass": "'scope'-attributten bruges korrekt",
767
+ "fail": "Værdien af 'scope'-attributten må kun være 'row' eller 'col'"
768
+ },
769
+ "td-has-header": {
770
+ "pass": "Alle data-celler med indhold har en tabel-header",
771
+ "fail": "Nogle data-celler med indhold har ikke tabel-headers"
772
+ },
773
+ "td-headers-attr": {
774
+ "pass": "Header-attributten bruges kun til at referere til andre celler i den samme tabel",
775
+ "fail": "Header-attributten bruges ikke kun til at referere til andre celler i den samme tabel"
776
+ },
777
+ "th-has-data-cells": {
778
+ "pass": "Alle tabellens header-celler refererer til data-celler",
779
+ "fail": "Ikke alle tabellens header-celler refererer til data-celler",
780
+ "incomplete": "Nogle af tabellens data-celler mangler eller er tomme"
781
+ },
782
+ "hidden-content": {
783
+ "pass": "Alt indhold på siden er blevet analyseret.",
784
+ "fail": "Der var problemer med at analysere dele af indholdet på denne side.",
785
+ "incomplete": "Der er skjult indhold på siden, som ikke blev analyseret. Du skal gøre dette indhold synligt for at kunne analysere det."
786
+ }
787
+ },
788
+ "failureSummaries": {
789
+ "any": {
790
+ "failureMessage": "Ret en af følgende:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
791
+ },
792
+ "none": {
793
+ "failureMessage": "Ret alle de følgende:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
794
+ }
795
+ },
796
+ "incompleteFallbackMessage": "axe kunne ikke give en årsag. Tid til at finde dit udviklingsværktøj frem!"
782
797
  }