govuk_publishing_components 30.4.1 → 30.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (649) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-event-tracker.js +63 -51
  3. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-link-tracker.js +8 -8
  4. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +11 -10
  5. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/init-ga4.js +26 -0
  6. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4.js +1 -3
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -4
  8. data/app/views/govuk_publishing_components/component_guide/show.html.erb +28 -27
  9. data/lib/govuk_publishing_components/version.rb +1 -1
  10. data/node_modules/axe-core/README.md +83 -53
  11. data/node_modules/axe-core/axe.d.ts +403 -224
  12. data/node_modules/axe-core/axe.js +23281 -21919
  13. data/node_modules/axe-core/axe.min.js +3 -3
  14. data/node_modules/axe-core/locales/da.json +795 -780
  15. data/node_modules/axe-core/locales/de.json +932 -621
  16. data/node_modules/axe-core/locales/es.json +786 -771
  17. data/node_modules/axe-core/locales/eu.json +787 -0
  18. data/node_modules/axe-core/locales/fr.json +982 -840
  19. data/node_modules/axe-core/locales/ja.json +988 -880
  20. data/node_modules/axe-core/locales/ko.json +999 -775
  21. data/node_modules/axe-core/locales/nl.json +46 -34
  22. data/node_modules/axe-core/locales/pl.json +965 -0
  23. data/node_modules/axe-core/locales/pt_BR.json +966 -880
  24. data/node_modules/axe-core/package.json +189 -145
  25. data/node_modules/axe-core/sri-history.json +312 -192
  26. data/node_modules/govuk-frontend/govuk/all.js +64 -44
  27. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +1 -1
  28. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +3 -13
  29. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +12 -12
  30. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +5 -1
  31. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +1 -1
  32. data/node_modules/govuk-frontend/govuk/components/details/details.js +8 -20
  33. data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +6 -0
  34. data/node_modules/govuk-frontend/govuk/components/details/template.njk +1 -1
  35. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +9 -0
  36. data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +6 -0
  37. data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +2 -2
  38. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +59 -20
  39. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +40 -0
  40. data/node_modules/govuk-frontend/govuk/components/footer/template.njk +17 -7
  41. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +14 -21
  42. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +11 -11
  43. data/node_modules/govuk-frontend/govuk/components/header/header.js +53 -11
  44. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +2 -2
  45. data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
  46. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +9 -10
  47. data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +6 -0
  48. data/node_modules/govuk-frontend/govuk/components/inset-text/template.njk +1 -1
  49. data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +6 -0
  50. data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +2 -2
  51. data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +6 -0
  52. data/node_modules/govuk-frontend/govuk/components/panel/template.njk +2 -2
  53. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +6 -0
  54. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +15 -1
  55. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +37 -10
  56. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +69 -4
  57. data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +3 -3
  58. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +13 -13
  59. data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +5 -1
  60. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +14 -7
  61. data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +56 -12
  62. data/node_modules/govuk-frontend/govuk/settings/_spacing.scss +4 -8
  63. data/node_modules/govuk-frontend/govuk/template.njk +5 -5
  64. data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +3 -13
  65. data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +8 -20
  66. data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +53 -11
  67. data/node_modules/govuk-frontend/package.json +1 -1
  68. metadata +6 -584
  69. data/node_modules/axe-core/CHANGELOG.md +0 -1053
  70. data/node_modules/axe-core/CONTRIBUTING.md +0 -187
  71. data/node_modules/axe-core/bower.json +0 -40
  72. data/node_modules/axe-core/doc/API.md +0 -889
  73. data/node_modules/axe-core/doc/accessibility-supported.md +0 -33
  74. data/node_modules/axe-core/doc/act-rules-format.md +0 -37
  75. data/node_modules/axe-core/doc/aria-supported.md +0 -13
  76. data/node_modules/axe-core/doc/backwards-compatibility-doc.md +0 -94
  77. data/node_modules/axe-core/doc/check-message-template.md +0 -124
  78. data/node_modules/axe-core/doc/code-submission-guidelines.md +0 -178
  79. data/node_modules/axe-core/doc/developer-guide.md +0 -514
  80. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/README.md +0 -13
  81. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/axe-cdp.js +0 -81
  82. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/package.json +0 -11
  83. data/node_modules/axe-core/doc/examples/html-handlebars.md +0 -164
  84. data/node_modules/axe-core/doc/examples/jasmine/README.md +0 -35
  85. data/node_modules/axe-core/doc/examples/jasmine/karma.conf.js +0 -29
  86. data/node_modules/axe-core/doc/examples/jasmine/package.json +0 -21
  87. data/node_modules/axe-core/doc/examples/jasmine/spec/a11y.js +0 -36
  88. data/node_modules/axe-core/doc/examples/jest_react/README.md +0 -41
  89. data/node_modules/axe-core/doc/examples/jest_react/link.js +0 -7
  90. data/node_modules/axe-core/doc/examples/jest_react/link.test.js +0 -24
  91. data/node_modules/axe-core/doc/examples/jest_react/package.json +0 -28
  92. data/node_modules/axe-core/doc/examples/jest_react/test-helpers.js +0 -21
  93. data/node_modules/axe-core/doc/examples/jsdom/package.json +0 -15
  94. data/node_modules/axe-core/doc/examples/mocha/README.md +0 -35
  95. data/node_modules/axe-core/doc/examples/mocha/karma.conf.js +0 -29
  96. data/node_modules/axe-core/doc/examples/mocha/package.json +0 -22
  97. data/node_modules/axe-core/doc/examples/phantomjs/README.md +0 -17
  98. data/node_modules/axe-core/doc/examples/phantomjs/axe-phantom.js +0 -53
  99. data/node_modules/axe-core/doc/examples/phantomjs/package.json +0 -19
  100. data/node_modules/axe-core/doc/examples/puppeteer/README.md +0 -12
  101. data/node_modules/axe-core/doc/examples/puppeteer/axe-puppeteer.js +0 -60
  102. data/node_modules/axe-core/doc/examples/puppeteer/package.json +0 -13
  103. data/node_modules/axe-core/doc/examples/qunit/README.md +0 -37
  104. data/node_modules/axe-core/doc/examples/qunit/package.json +0 -21
  105. data/node_modules/axe-core/doc/examples/test-examples.js +0 -32
  106. data/node_modules/axe-core/doc/plugins.md +0 -123
  107. data/node_modules/axe-core/doc/projects.md +0 -48
  108. data/node_modules/axe-core/doc/rule-descriptions.md +0 -129
  109. data/node_modules/axe-core/doc/rule-development.md +0 -123
  110. data/node_modules/axe-core/doc/rule-proposal.md +0 -106
  111. data/node_modules/axe-core/lib/checks/aria/abstractrole.js +0 -10
  112. data/node_modules/axe-core/lib/checks/aria/abstractrole.json +0 -14
  113. data/node_modules/axe-core/lib/checks/aria/allowed-attr.js +0 -39
  114. data/node_modules/axe-core/lib/checks/aria/allowed-attr.json +0 -14
  115. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.js +0 -28
  116. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.json +0 -22
  117. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.js +0 -1
  118. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.json +0 -11
  119. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.js +0 -14
  120. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.json +0 -23
  121. data/node_modules/axe-core/lib/checks/aria/errormessage.js +0 -33
  122. data/node_modules/axe-core/lib/checks/aria/errormessage.json +0 -14
  123. data/node_modules/axe-core/lib/checks/aria/fallbackrole.js +0 -1
  124. data/node_modules/axe-core/lib/checks/aria/fallbackrole.json +0 -11
  125. data/node_modules/axe-core/lib/checks/aria/has-widget-role.js +0 -6
  126. data/node_modules/axe-core/lib/checks/aria/has-widget-role.json +0 -12
  127. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.js +0 -6
  128. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.json +0 -12
  129. data/node_modules/axe-core/lib/checks/aria/invalidrole.js +0 -17
  130. data/node_modules/axe-core/lib/checks/aria/invalidrole.json +0 -14
  131. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.js +0 -21
  132. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.json +0 -11
  133. data/node_modules/axe-core/lib/checks/aria/required-attr.js +0 -53
  134. data/node_modules/axe-core/lib/checks/aria/required-attr.json +0 -14
  135. data/node_modules/axe-core/lib/checks/aria/required-children.js +0 -154
  136. data/node_modules/axe-core/lib/checks/aria/required-children.json +0 -32
  137. data/node_modules/axe-core/lib/checks/aria/required-parent.js +0 -87
  138. data/node_modules/axe-core/lib/checks/aria/required-parent.json +0 -14
  139. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.js +0 -39
  140. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.json +0 -11
  141. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.js +0 -1
  142. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.json +0 -11
  143. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.js +0 -80
  144. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.json +0 -19
  145. data/node_modules/axe-core/lib/checks/aria/valid-attr.js +0 -25
  146. data/node_modules/axe-core/lib/checks/aria/valid-attr.json +0 -15
  147. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.js +0 -62
  148. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.json +0 -12
  149. data/node_modules/axe-core/lib/checks/color/color-contrast.js +0 -86
  150. data/node_modules/axe-core/lib/checks/color/color-contrast.json +0 -30
  151. data/node_modules/axe-core/lib/checks/color/link-in-text-block.js +0 -85
  152. data/node_modules/axe-core/lib/checks/color/link-in-text-block.json +0 -19
  153. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.js +0 -67
  154. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.json +0 -11
  155. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.js +0 -2
  156. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.json +0 -11
  157. data/node_modules/axe-core/lib/checks/forms/fieldset-after.js +0 -25
  158. data/node_modules/axe-core/lib/checks/forms/fieldset.js +0 -109
  159. data/node_modules/axe-core/lib/checks/forms/fieldset.json +0 -20
  160. data/node_modules/axe-core/lib/checks/forms/group-labelledby-after.js +0 -16
  161. data/node_modules/axe-core/lib/checks/forms/group-labelledby.js +0 -66
  162. data/node_modules/axe-core/lib/checks/forms/group-labelledby.json +0 -17
  163. data/node_modules/axe-core/lib/checks/keyboard/accesskeys-after.js +0 -19
  164. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.js +0 -5
  165. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.json +0 -12
  166. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.js +0 -16
  167. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.json +0 -11
  168. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.js +0 -30
  169. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.json +0 -11
  170. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.js +0 -12
  171. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.json +0 -11
  172. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.js +0 -14
  173. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.json +0 -11
  174. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.js +0 -6
  175. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.json +0 -11
  176. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.js +0 -30
  177. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.json +0 -11
  178. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.js +0 -18
  179. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.json +0 -11
  180. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm-after.js +0 -11
  181. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm.js +0 -13
  182. data/node_modules/axe-core/lib/checks/keyboard/page-has-heading-one.json +0 -15
  183. data/node_modules/axe-core/lib/checks/keyboard/page-has-main.json +0 -15
  184. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-after.js +0 -2
  185. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-banner.json +0 -16
  186. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-contentinfo.json +0 -16
  187. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-main.json +0 -15
  188. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate.js +0 -36
  189. data/node_modules/axe-core/lib/checks/keyboard/tabindex.js +0 -6
  190. data/node_modules/axe-core/lib/checks/keyboard/tabindex.json +0 -11
  191. data/node_modules/axe-core/lib/checks/label/alt-space-value.js +0 -3
  192. data/node_modules/axe-core/lib/checks/label/alt-space-value.json +0 -11
  193. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.js +0 -22
  194. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.json +0 -11
  195. data/node_modules/axe-core/lib/checks/label/explicit.js +0 -15
  196. data/node_modules/axe-core/lib/checks/label/explicit.json +0 -11
  197. data/node_modules/axe-core/lib/checks/label/help-same-as-label.js +0 -23
  198. data/node_modules/axe-core/lib/checks/label/help-same-as-label.json +0 -12
  199. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.js +0 -12
  200. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.json +0 -11
  201. data/node_modules/axe-core/lib/checks/label/implicit.js +0 -7
  202. data/node_modules/axe-core/lib/checks/label/implicit.json +0 -11
  203. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.js +0 -59
  204. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.json +0 -15
  205. data/node_modules/axe-core/lib/checks/label/multiple-label.js +0 -39
  206. data/node_modules/axe-core/lib/checks/label/multiple-label.json +0 -11
  207. data/node_modules/axe-core/lib/checks/label/title-only.js +0 -5
  208. data/node_modules/axe-core/lib/checks/label/title-only.json +0 -11
  209. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique-after.js +0 -23
  210. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.js +0 -7
  211. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.json +0 -12
  212. data/node_modules/axe-core/lib/checks/language/has-lang.js +0 -20
  213. data/node_modules/axe-core/lib/checks/language/has-lang.json +0 -14
  214. data/node_modules/axe-core/lib/checks/language/valid-lang.js +0 -26
  215. data/node_modules/axe-core/lib/checks/language/valid-lang.json +0 -11
  216. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.js +0 -5
  217. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.json +0 -11
  218. data/node_modules/axe-core/lib/checks/lists/dlitem.js +0 -23
  219. data/node_modules/axe-core/lib/checks/lists/dlitem.json +0 -11
  220. data/node_modules/axe-core/lib/checks/lists/listitem.js +0 -21
  221. data/node_modules/axe-core/lib/checks/lists/listitem.json +0 -14
  222. data/node_modules/axe-core/lib/checks/lists/only-dlitems.js +0 -42
  223. data/node_modules/axe-core/lib/checks/lists/only-dlitems.json +0 -11
  224. data/node_modules/axe-core/lib/checks/lists/only-listitems.js +0 -58
  225. data/node_modules/axe-core/lib/checks/lists/only-listitems.json +0 -14
  226. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.js +0 -22
  227. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.json +0 -11
  228. data/node_modules/axe-core/lib/checks/media/caption.js +0 -8
  229. data/node_modules/axe-core/lib/checks/media/caption.json +0 -11
  230. data/node_modules/axe-core/lib/checks/media/description.js +0 -8
  231. data/node_modules/axe-core/lib/checks/media/description.json +0 -11
  232. data/node_modules/axe-core/lib/checks/media/frame-tested.js +0 -28
  233. data/node_modules/axe-core/lib/checks/media/frame-tested.json +0 -15
  234. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.js +0 -93
  235. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.json +0 -15
  236. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.js +0 -251
  237. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.json +0 -15
  238. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-large.json +0 -15
  239. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-scale.js +0 -55
  240. data/node_modules/axe-core/lib/checks/mobile/meta-viewport.json +0 -14
  241. data/node_modules/axe-core/lib/checks/navigation/header-present.js +0 -4
  242. data/node_modules/axe-core/lib/checks/navigation/header-present.json +0 -11
  243. data/node_modules/axe-core/lib/checks/navigation/heading-order-after.js +0 -14
  244. data/node_modules/axe-core/lib/checks/navigation/heading-order.js +0 -15
  245. data/node_modules/axe-core/lib/checks/navigation/heading-order.json +0 -12
  246. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose-after.js +0 -100
  247. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.js +0 -31
  248. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.json +0 -12
  249. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.js +0 -4
  250. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.json +0 -11
  251. data/node_modules/axe-core/lib/checks/navigation/landmark.js +0 -3
  252. data/node_modules/axe-core/lib/checks/navigation/landmark.json +0 -11
  253. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.js +0 -4
  254. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.json +0 -11
  255. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.js +0 -93
  256. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.json +0 -30
  257. data/node_modules/axe-core/lib/checks/navigation/region.js +0 -107
  258. data/node_modules/axe-core/lib/checks/navigation/region.json +0 -11
  259. data/node_modules/axe-core/lib/checks/navigation/skip-link.js +0 -5
  260. data/node_modules/axe-core/lib/checks/navigation/skip-link.json +0 -12
  261. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title-after.js +0 -9
  262. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.js +0 -6
  263. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.json +0 -12
  264. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-active.json +0 -12
  265. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-after.js +0 -8
  266. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-aria.json +0 -12
  267. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.js +0 -17
  268. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.json +0 -12
  269. data/node_modules/axe-core/lib/checks/shared/aria-label.js +0 -2
  270. data/node_modules/axe-core/lib/checks/shared/aria-label.json +0 -11
  271. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.js +0 -2
  272. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.json +0 -11
  273. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.js +0 -18
  274. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.json +0 -14
  275. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.js +0 -12
  276. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.json +0 -11
  277. data/node_modules/axe-core/lib/checks/shared/doc-has-title.js +0 -2
  278. data/node_modules/axe-core/lib/checks/shared/doc-has-title.json +0 -11
  279. data/node_modules/axe-core/lib/checks/shared/exists.js +0 -1
  280. data/node_modules/axe-core/lib/checks/shared/exists.json +0 -11
  281. data/node_modules/axe-core/lib/checks/shared/has-alt.js +0 -6
  282. data/node_modules/axe-core/lib/checks/shared/has-alt.json +0 -11
  283. data/node_modules/axe-core/lib/checks/shared/has-visible-text.js +0 -1
  284. data/node_modules/axe-core/lib/checks/shared/has-visible-text.json +0 -11
  285. data/node_modules/axe-core/lib/checks/shared/is-on-screen.js +0 -4
  286. data/node_modules/axe-core/lib/checks/shared/is-on-screen.json +0 -11
  287. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.js +0 -2
  288. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.json +0 -11
  289. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.js +0 -15
  290. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.json +0 -14
  291. data/node_modules/axe-core/lib/checks/shared/non-empty-title.js +0 -2
  292. data/node_modules/axe-core/lib/checks/shared/non-empty-title.json +0 -11
  293. data/node_modules/axe-core/lib/checks/shared/non-empty-value.js +0 -2
  294. data/node_modules/axe-core/lib/checks/shared/non-empty-value.json +0 -11
  295. data/node_modules/axe-core/lib/checks/shared/role-none.js +0 -1
  296. data/node_modules/axe-core/lib/checks/shared/role-none.json +0 -11
  297. data/node_modules/axe-core/lib/checks/shared/role-presentation.js +0 -1
  298. data/node_modules/axe-core/lib/checks/shared/role-presentation.json +0 -11
  299. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.js +0 -4
  300. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.json +0 -11
  301. data/node_modules/axe-core/lib/checks/tables/caption-faked.js +0 -10
  302. data/node_modules/axe-core/lib/checks/tables/caption-faked.json +0 -11
  303. data/node_modules/axe-core/lib/checks/tables/has-caption.js +0 -1
  304. data/node_modules/axe-core/lib/checks/tables/has-caption.json +0 -12
  305. data/node_modules/axe-core/lib/checks/tables/has-summary.js +0 -1
  306. data/node_modules/axe-core/lib/checks/tables/has-summary.json +0 -12
  307. data/node_modules/axe-core/lib/checks/tables/has-th.js +0 -31
  308. data/node_modules/axe-core/lib/checks/tables/has-th.json +0 -12
  309. data/node_modules/axe-core/lib/checks/tables/headers-visible-text.js +0 -30
  310. data/node_modules/axe-core/lib/checks/tables/html5-scope.js +0 -5
  311. data/node_modules/axe-core/lib/checks/tables/html5-scope.json +0 -11
  312. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.js +0 -7
  313. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.json +0 -11
  314. data/node_modules/axe-core/lib/checks/tables/scope-value.js +0 -5
  315. data/node_modules/axe-core/lib/checks/tables/scope-value.json +0 -11
  316. data/node_modules/axe-core/lib/checks/tables/td-has-header.js +0 -30
  317. data/node_modules/axe-core/lib/checks/tables/td-has-header.json +0 -11
  318. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.js +0 -61
  319. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.json +0 -12
  320. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.js +0 -76
  321. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.json +0 -12
  322. data/node_modules/axe-core/lib/checks/tables/th-single-row-column.js +0 -39
  323. data/node_modules/axe-core/lib/checks/visibility/hidden-content.js +0 -21
  324. data/node_modules/axe-core/lib/checks/visibility/hidden-content.json +0 -12
  325. data/node_modules/axe-core/lib/commons/aria/arialabel-text.js +0 -18
  326. data/node_modules/axe-core/lib/commons/aria/arialabelledby-text.js +0 -52
  327. data/node_modules/axe-core/lib/commons/aria/attributes.js +0 -45
  328. data/node_modules/axe-core/lib/commons/aria/get-element-unallowed-roles.js +0 -113
  329. data/node_modules/axe-core/lib/commons/aria/get-owned-virtual.js +0 -24
  330. data/node_modules/axe-core/lib/commons/aria/get-role.js +0 -44
  331. data/node_modules/axe-core/lib/commons/aria/index.js +0 -2424
  332. data/node_modules/axe-core/lib/commons/aria/is-accessible-ref.js +0 -59
  333. data/node_modules/axe-core/lib/commons/aria/is-aria-role-allowed-on-element.js +0 -41
  334. data/node_modules/axe-core/lib/commons/aria/is-unsupported-role.js +0 -14
  335. data/node_modules/axe-core/lib/commons/aria/label-virtual.js +0 -54
  336. data/node_modules/axe-core/lib/commons/aria/named-from-contents.js +0 -39
  337. data/node_modules/axe-core/lib/commons/aria/roles.js +0 -208
  338. data/node_modules/axe-core/lib/commons/aria/validate-attr-value.js +0 -62
  339. data/node_modules/axe-core/lib/commons/color/center-point-of-rect.js +0 -30
  340. data/node_modules/axe-core/lib/commons/color/contrast.js +0 -178
  341. data/node_modules/axe-core/lib/commons/color/element-has-image.js +0 -36
  342. data/node_modules/axe-core/lib/commons/color/element-is-distinct.js +0 -88
  343. data/node_modules/axe-core/lib/commons/color/get-background-color.js +0 -285
  344. data/node_modules/axe-core/lib/commons/color/get-foreground-color.js +0 -61
  345. data/node_modules/axe-core/lib/commons/color/get-own-background-color.js +0 -22
  346. data/node_modules/axe-core/lib/commons/color/incomplete-data.js +0 -50
  347. data/node_modules/axe-core/lib/commons/color/index.js +0 -8
  348. data/node_modules/axe-core/lib/commons/dom/elements-below-floating.js +0 -39
  349. data/node_modules/axe-core/lib/commons/dom/find-elms-in-context.js +0 -28
  350. data/node_modules/axe-core/lib/commons/dom/find-up.js +0 -63
  351. data/node_modules/axe-core/lib/commons/dom/get-composed-parent.js +0 -25
  352. data/node_modules/axe-core/lib/commons/dom/get-element-by-reference.js +0 -34
  353. data/node_modules/axe-core/lib/commons/dom/get-element-coordinates.js +0 -38
  354. data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +0 -589
  355. data/node_modules/axe-core/lib/commons/dom/get-root-node.js +0 -12
  356. data/node_modules/axe-core/lib/commons/dom/get-scroll-offset.js +0 -33
  357. data/node_modules/axe-core/lib/commons/dom/get-tabbable-elements.js +0 -24
  358. data/node_modules/axe-core/lib/commons/dom/get-viewport-size.js +0 -37
  359. data/node_modules/axe-core/lib/commons/dom/has-content-virtual.js +0 -75
  360. data/node_modules/axe-core/lib/commons/dom/idrefs.js +0 -36
  361. data/node_modules/axe-core/lib/commons/dom/index.js +0 -9
  362. data/node_modules/axe-core/lib/commons/dom/is-focusable.js +0 -95
  363. data/node_modules/axe-core/lib/commons/dom/is-hidden-with-css.js +0 -73
  364. data/node_modules/axe-core/lib/commons/dom/is-html5.js +0 -17
  365. data/node_modules/axe-core/lib/commons/dom/is-in-text-block.js +0 -94
  366. data/node_modules/axe-core/lib/commons/dom/is-modal-open.js +0 -98
  367. data/node_modules/axe-core/lib/commons/dom/is-node.js +0 -13
  368. data/node_modules/axe-core/lib/commons/dom/is-offscreen.js +0 -62
  369. data/node_modules/axe-core/lib/commons/dom/is-skip-link.js +0 -45
  370. data/node_modules/axe-core/lib/commons/dom/is-visible.js +0 -176
  371. data/node_modules/axe-core/lib/commons/dom/is-visual-content.js +0 -49
  372. data/node_modules/axe-core/lib/commons/dom/shadow-elements-from-point.js +0 -42
  373. data/node_modules/axe-core/lib/commons/dom/url-props-from-attribute.js +0 -152
  374. data/node_modules/axe-core/lib/commons/dom/visually-contains.js +0 -111
  375. data/node_modules/axe-core/lib/commons/dom/visually-overlaps.js +0 -46
  376. data/node_modules/axe-core/lib/commons/forms/index.js +0 -8
  377. data/node_modules/axe-core/lib/commons/forms/is-aria-combobox.js +0 -13
  378. data/node_modules/axe-core/lib/commons/forms/is-aria-listbox.js +0 -13
  379. data/node_modules/axe-core/lib/commons/forms/is-aria-range.js +0 -14
  380. data/node_modules/axe-core/lib/commons/forms/is-aria-textbox.js +0 -13
  381. data/node_modules/axe-core/lib/commons/forms/is-native-select.js +0 -13
  382. data/node_modules/axe-core/lib/commons/forms/is-native-textbox.js +0 -28
  383. data/node_modules/axe-core/lib/commons/index.js +0 -11
  384. data/node_modules/axe-core/lib/commons/intro.stub +0 -1
  385. data/node_modules/axe-core/lib/commons/matches/attributes.js +0 -27
  386. data/node_modules/axe-core/lib/commons/matches/condition.js +0 -19
  387. data/node_modules/axe-core/lib/commons/matches/from-definition.js +0 -52
  388. data/node_modules/axe-core/lib/commons/matches/from-function.js +0 -38
  389. data/node_modules/axe-core/lib/commons/matches/from-primative.js +0 -30
  390. data/node_modules/axe-core/lib/commons/matches/index.js +0 -39
  391. data/node_modules/axe-core/lib/commons/matches/node-name.js +0 -24
  392. data/node_modules/axe-core/lib/commons/matches/properties.js +0 -28
  393. data/node_modules/axe-core/lib/commons/outro.stub +0 -2
  394. data/node_modules/axe-core/lib/commons/table/get-all-cells.js +0 -28
  395. data/node_modules/axe-core/lib/commons/table/get-cell-position.js +0 -28
  396. data/node_modules/axe-core/lib/commons/table/get-headers.js +0 -79
  397. data/node_modules/axe-core/lib/commons/table/get-scope.js +0 -54
  398. data/node_modules/axe-core/lib/commons/table/index.js +0 -9
  399. data/node_modules/axe-core/lib/commons/table/is-column-header.js +0 -13
  400. data/node_modules/axe-core/lib/commons/table/is-data-cell.js +0 -22
  401. data/node_modules/axe-core/lib/commons/table/is-data-table.js +0 -189
  402. data/node_modules/axe-core/lib/commons/table/is-header.js +0 -22
  403. data/node_modules/axe-core/lib/commons/table/is-row-header.js +0 -13
  404. data/node_modules/axe-core/lib/commons/table/to-grid.js +0 -38
  405. data/node_modules/axe-core/lib/commons/table/traverse.js +0 -78
  406. data/node_modules/axe-core/lib/commons/text/accessible-text-virtual.js +0 -152
  407. data/node_modules/axe-core/lib/commons/text/form-control-value.js +0 -192
  408. data/node_modules/axe-core/lib/commons/text/index.js +0 -8
  409. data/node_modules/axe-core/lib/commons/text/is-human-interpretable.js +0 -51
  410. data/node_modules/axe-core/lib/commons/text/is-icon-ligature.js +0 -210
  411. data/node_modules/axe-core/lib/commons/text/is-valid-autocomplete.js +0 -117
  412. data/node_modules/axe-core/lib/commons/text/label-text.js +0 -58
  413. data/node_modules/axe-core/lib/commons/text/label-virtual.js +0 -53
  414. data/node_modules/axe-core/lib/commons/text/native-element-types.js +0 -100
  415. data/node_modules/axe-core/lib/commons/text/native-text-alternative.js +0 -50
  416. data/node_modules/axe-core/lib/commons/text/native-text-methods.js +0 -122
  417. data/node_modules/axe-core/lib/commons/text/sanitize.js +0 -18
  418. data/node_modules/axe-core/lib/commons/text/subtree-text.js +0 -89
  419. data/node_modules/axe-core/lib/commons/text/title-text.js +0 -33
  420. data/node_modules/axe-core/lib/commons/text/unicode.js +0 -147
  421. data/node_modules/axe-core/lib/commons/text/unsupported.js +0 -5
  422. data/node_modules/axe-core/lib/commons/text/visible-text-nodes.js +0 -25
  423. data/node_modules/axe-core/lib/commons/text/visible-virtual.js +0 -46
  424. data/node_modules/axe-core/lib/commons/utils/index.js +0 -10
  425. data/node_modules/axe-core/lib/core/base/audit.js +0 -781
  426. data/node_modules/axe-core/lib/core/base/cache.js +0 -33
  427. data/node_modules/axe-core/lib/core/base/check-result.js +0 -33
  428. data/node_modules/axe-core/lib/core/base/check.js +0 -170
  429. data/node_modules/axe-core/lib/core/base/context.js +0 -274
  430. data/node_modules/axe-core/lib/core/base/rule-result.js +0 -39
  431. data/node_modules/axe-core/lib/core/base/rule.js +0 -560
  432. data/node_modules/axe-core/lib/core/base/virtual-node/abstract-virtual-node.js +0 -40
  433. data/node_modules/axe-core/lib/core/base/virtual-node/serial-virtual-node.js +0 -88
  434. data/node_modules/axe-core/lib/core/base/virtual-node/virtual-node.js +0 -136
  435. data/node_modules/axe-core/lib/core/constants.js +0 -76
  436. data/node_modules/axe-core/lib/core/imports/index.js +0 -51
  437. data/node_modules/axe-core/lib/core/index.js +0 -43
  438. data/node_modules/axe-core/lib/core/log.js +0 -12
  439. data/node_modules/axe-core/lib/core/public/cleanup-plugins.js +0 -53
  440. data/node_modules/axe-core/lib/core/public/configure.js +0 -110
  441. data/node_modules/axe-core/lib/core/public/get-rules.js +0 -29
  442. data/node_modules/axe-core/lib/core/public/load.js +0 -66
  443. data/node_modules/axe-core/lib/core/public/plugins.js +0 -47
  444. data/node_modules/axe-core/lib/core/public/reporter.js +0 -24
  445. data/node_modules/axe-core/lib/core/public/reset.js +0 -12
  446. data/node_modules/axe-core/lib/core/public/run-rules.js +0 -96
  447. data/node_modules/axe-core/lib/core/public/run-virtual-rule.js +0 -50
  448. data/node_modules/axe-core/lib/core/public/run.js +0 -159
  449. data/node_modules/axe-core/lib/core/reporters/helpers/failure-summary.js +0 -35
  450. data/node_modules/axe-core/lib/core/reporters/helpers/get-environment-data.js +0 -39
  451. data/node_modules/axe-core/lib/core/reporters/helpers/incomplete-fallback-msg.js +0 -13
  452. data/node_modules/axe-core/lib/core/reporters/helpers/index.js +0 -3
  453. data/node_modules/axe-core/lib/core/reporters/helpers/process-aggregate.js +0 -102
  454. data/node_modules/axe-core/lib/core/reporters/na.js +0 -24
  455. data/node_modules/axe-core/lib/core/reporters/no-passes.js +0 -18
  456. data/node_modules/axe-core/lib/core/reporters/raw-env.js +0 -12
  457. data/node_modules/axe-core/lib/core/reporters/raw.js +0 -32
  458. data/node_modules/axe-core/lib/core/reporters/v1.js +0 -29
  459. data/node_modules/axe-core/lib/core/reporters/v2.js +0 -22
  460. data/node_modules/axe-core/lib/core/utils/aggregate.js +0 -19
  461. data/node_modules/axe-core/lib/core/utils/aggregateChecks.js +0 -85
  462. data/node_modules/axe-core/lib/core/utils/aggregateNodeResults.js +0 -61
  463. data/node_modules/axe-core/lib/core/utils/aggregateResult.js +0 -37
  464. data/node_modules/axe-core/lib/core/utils/are-styles-set.js +0 -21
  465. data/node_modules/axe-core/lib/core/utils/assert.js +0 -12
  466. data/node_modules/axe-core/lib/core/utils/check-helper.js +0 -38
  467. data/node_modules/axe-core/lib/core/utils/clone.js +0 -27
  468. data/node_modules/axe-core/lib/core/utils/collect-results-from-frames.js +0 -127
  469. data/node_modules/axe-core/lib/core/utils/contains.js +0 -44
  470. data/node_modules/axe-core/lib/core/utils/css-parser.js +0 -7
  471. data/node_modules/axe-core/lib/core/utils/dq-element.js +0 -97
  472. data/node_modules/axe-core/lib/core/utils/element-matches.js +0 -43
  473. data/node_modules/axe-core/lib/core/utils/escape-selector.js +0 -78
  474. data/node_modules/axe-core/lib/core/utils/extend-meta-data.js +0 -17
  475. data/node_modules/axe-core/lib/core/utils/finalize-result.js +0 -11
  476. data/node_modules/axe-core/lib/core/utils/find-by.js +0 -14
  477. data/node_modules/axe-core/lib/core/utils/flattened-tree.js +0 -156
  478. data/node_modules/axe-core/lib/core/utils/get-all-checks.js +0 -12
  479. data/node_modules/axe-core/lib/core/utils/get-base-lang.js +0 -16
  480. data/node_modules/axe-core/lib/core/utils/get-check-message.js +0 -21
  481. data/node_modules/axe-core/lib/core/utils/get-check-option.js +0 -39
  482. data/node_modules/axe-core/lib/core/utils/get-friendly-uri-end.js +0 -144
  483. data/node_modules/axe-core/lib/core/utils/get-node-attributes.js +0 -21
  484. data/node_modules/axe-core/lib/core/utils/get-root-node.js +0 -17
  485. data/node_modules/axe-core/lib/core/utils/get-scroll.js +0 -39
  486. data/node_modules/axe-core/lib/core/utils/get-selector.js +0 -409
  487. data/node_modules/axe-core/lib/core/utils/get-stylesheet-factory.js +0 -51
  488. data/node_modules/axe-core/lib/core/utils/get-xpath.js +0 -83
  489. data/node_modules/axe-core/lib/core/utils/index.js +0 -10
  490. data/node_modules/axe-core/lib/core/utils/inject-style.js +0 -38
  491. data/node_modules/axe-core/lib/core/utils/is-hidden.js +0 -52
  492. data/node_modules/axe-core/lib/core/utils/is-html-element.js +0 -135
  493. data/node_modules/axe-core/lib/core/utils/is-shadow-root.js +0 -40
  494. data/node_modules/axe-core/lib/core/utils/is-xhtml.js +0 -14
  495. data/node_modules/axe-core/lib/core/utils/matches.js +0 -263
  496. data/node_modules/axe-core/lib/core/utils/memoize.js +0 -17
  497. data/node_modules/axe-core/lib/core/utils/merge-results.js +0 -116
  498. data/node_modules/axe-core/lib/core/utils/node-sorter.js +0 -21
  499. data/node_modules/axe-core/lib/core/utils/parse-crossorigin-stylesheet.js +0 -54
  500. data/node_modules/axe-core/lib/core/utils/parse-sameorigin-stylesheet.js +0 -96
  501. data/node_modules/axe-core/lib/core/utils/parse-stylesheet.js +0 -70
  502. data/node_modules/axe-core/lib/core/utils/performance-timer.js +0 -126
  503. data/node_modules/axe-core/lib/core/utils/pollyfills.js +0 -299
  504. data/node_modules/axe-core/lib/core/utils/preload-cssom.js +0 -253
  505. data/node_modules/axe-core/lib/core/utils/preload-media.js +0 -65
  506. data/node_modules/axe-core/lib/core/utils/preload.js +0 -144
  507. data/node_modules/axe-core/lib/core/utils/process-message.js +0 -72
  508. data/node_modules/axe-core/lib/core/utils/publish-metadata.js +0 -106
  509. data/node_modules/axe-core/lib/core/utils/qsa.js +0 -110
  510. data/node_modules/axe-core/lib/core/utils/queue.js +0 -138
  511. data/node_modules/axe-core/lib/core/utils/respondable.js +0 -261
  512. data/node_modules/axe-core/lib/core/utils/rule-should-run.js +0 -82
  513. data/node_modules/axe-core/lib/core/utils/scroll-state.js +0 -57
  514. data/node_modules/axe-core/lib/core/utils/select.js +0 -135
  515. data/node_modules/axe-core/lib/core/utils/to-array.js +0 -21
  516. data/node_modules/axe-core/lib/core/utils/token-list.js +0 -15
  517. data/node_modules/axe-core/lib/core/utils/uuid.js +0 -244
  518. data/node_modules/axe-core/lib/core/utils/valid-input-type.js +0 -35
  519. data/node_modules/axe-core/lib/core/utils/valid-langs.js +0 -8152
  520. data/node_modules/axe-core/lib/intro.stub +0 -15
  521. data/node_modules/axe-core/lib/misc/any-failure-summary.json +0 -6
  522. data/node_modules/axe-core/lib/misc/incomplete-fallback.json +0 -3
  523. data/node_modules/axe-core/lib/misc/none-failure-summary.json +0 -6
  524. data/node_modules/axe-core/lib/outro.stub +0 -2
  525. data/node_modules/axe-core/lib/rules/accesskeys.json +0 -13
  526. data/node_modules/axe-core/lib/rules/area-alt.json +0 -21
  527. data/node_modules/axe-core/lib/rules/aria-allowed-attr-matches.js +0 -11
  528. data/node_modules/axe-core/lib/rules/aria-allowed-attr.json +0 -12
  529. data/node_modules/axe-core/lib/rules/aria-allowed-role-matches.js +0 -7
  530. data/node_modules/axe-core/lib/rules/aria-allowed-role.json +0 -14
  531. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback-matches.js +0 -10
  532. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback.json +0 -14
  533. data/node_modules/axe-core/lib/rules/aria-form-field-name-matches.js +0 -50
  534. data/node_modules/axe-core/lib/rules/aria-has-attr-matches.js +0 -11
  535. data/node_modules/axe-core/lib/rules/aria-hidden-body.json +0 -13
  536. data/node_modules/axe-core/lib/rules/aria-hidden-focus-matches.js +0 -18
  537. data/node_modules/axe-core/lib/rules/aria-hidden-focus.json +0 -18
  538. data/node_modules/axe-core/lib/rules/aria-input-field-name.json +0 -13
  539. data/node_modules/axe-core/lib/rules/aria-required-attr.json +0 -12
  540. data/node_modules/axe-core/lib/rules/aria-required-children.json +0 -12
  541. data/node_modules/axe-core/lib/rules/aria-required-parent.json +0 -12
  542. data/node_modules/axe-core/lib/rules/aria-roledescription.json +0 -12
  543. data/node_modules/axe-core/lib/rules/aria-roles.json +0 -13
  544. data/node_modules/axe-core/lib/rules/aria-toggle-field-name.json +0 -18
  545. data/node_modules/axe-core/lib/rules/aria-valid-attr-value.json +0 -12
  546. data/node_modules/axe-core/lib/rules/aria-valid-attr.json +0 -12
  547. data/node_modules/axe-core/lib/rules/audio-caption.json +0 -20
  548. data/node_modules/axe-core/lib/rules/autocomplete-matches.js +0 -49
  549. data/node_modules/axe-core/lib/rules/autocomplete-valid.json +0 -12
  550. data/node_modules/axe-core/lib/rules/avoid-inline-spacing.json +0 -12
  551. data/node_modules/axe-core/lib/rules/blink.json +0 -19
  552. data/node_modules/axe-core/lib/rules/button-name.json +0 -25
  553. data/node_modules/axe-core/lib/rules/bypass-matches.js +0 -1
  554. data/node_modules/axe-core/lib/rules/bypass.json +0 -20
  555. data/node_modules/axe-core/lib/rules/checkboxgroup.json +0 -13
  556. data/node_modules/axe-core/lib/rules/color-contrast-matches.js +0 -161
  557. data/node_modules/axe-core/lib/rules/color-contrast.json +0 -13
  558. data/node_modules/axe-core/lib/rules/css-orientation-lock.json +0 -13
  559. data/node_modules/axe-core/lib/rules/data-table-large-matches.js +0 -11
  560. data/node_modules/axe-core/lib/rules/data-table-matches.js +0 -1
  561. data/node_modules/axe-core/lib/rules/definition-list.json +0 -13
  562. data/node_modules/axe-core/lib/rules/dlitem.json +0 -13
  563. data/node_modules/axe-core/lib/rules/document-title.json +0 -13
  564. data/node_modules/axe-core/lib/rules/duplicate-id-active-matches.js +0 -8
  565. data/node_modules/axe-core/lib/rules/duplicate-id-active.json +0 -14
  566. data/node_modules/axe-core/lib/rules/duplicate-id-aria-matches.js +0 -1
  567. data/node_modules/axe-core/lib/rules/duplicate-id-aria.json +0 -14
  568. data/node_modules/axe-core/lib/rules/duplicate-id-misc-matches.js +0 -11
  569. data/node_modules/axe-core/lib/rules/duplicate-id.json +0 -14
  570. data/node_modules/axe-core/lib/rules/empty-heading.json +0 -13
  571. data/node_modules/axe-core/lib/rules/focus-order-semantics.json +0 -13
  572. data/node_modules/axe-core/lib/rules/form-field-multiple-labels.json +0 -13
  573. data/node_modules/axe-core/lib/rules/frame-tested.json +0 -12
  574. data/node_modules/axe-core/lib/rules/frame-title-has-text.js +0 -2
  575. data/node_modules/axe-core/lib/rules/frame-title-unique.json +0 -13
  576. data/node_modules/axe-core/lib/rules/frame-title.json +0 -25
  577. data/node_modules/axe-core/lib/rules/heading-matches.js +0 -15
  578. data/node_modules/axe-core/lib/rules/heading-order.json +0 -13
  579. data/node_modules/axe-core/lib/rules/hidden-content.json +0 -13
  580. data/node_modules/axe-core/lib/rules/html-has-lang.json +0 -13
  581. data/node_modules/axe-core/lib/rules/html-lang-valid.json +0 -12
  582. data/node_modules/axe-core/lib/rules/html-namespace-matches.js +0 -1
  583. data/node_modules/axe-core/lib/rules/html-xml-lang-mismatch.json +0 -13
  584. data/node_modules/axe-core/lib/rules/identical-links-same-purpose-matches.js +0 -13
  585. data/node_modules/axe-core/lib/rules/identical-links-same-purpose.json +0 -14
  586. data/node_modules/axe-core/lib/rules/image-alt.json +0 -25
  587. data/node_modules/axe-core/lib/rules/img-redundant-alt.json +0 -12
  588. data/node_modules/axe-core/lib/rules/input-button-name.json +0 -26
  589. data/node_modules/axe-core/lib/rules/input-image-alt.json +0 -18
  590. data/node_modules/axe-core/lib/rules/inserted-into-focus-order-matches.js +0 -1
  591. data/node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js +0 -45
  592. data/node_modules/axe-core/lib/rules/label-content-name-mismatch.json +0 -12
  593. data/node_modules/axe-core/lib/rules/label-matches.js +0 -11
  594. data/node_modules/axe-core/lib/rules/label-title-only.json +0 -13
  595. data/node_modules/axe-core/lib/rules/label.json +0 -26
  596. data/node_modules/axe-core/lib/rules/landmark-banner-is-top-level.json +0 -13
  597. data/node_modules/axe-core/lib/rules/landmark-complementary-is-top-level.json +0 -12
  598. data/node_modules/axe-core/lib/rules/landmark-contentinfo-is-top-level.json +0 -13
  599. data/node_modules/axe-core/lib/rules/landmark-has-body-context.js +0 -8
  600. data/node_modules/axe-core/lib/rules/landmark-main-is-top-level.json +0 -12
  601. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-banner.json +0 -12
  602. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-contentinfo.json +0 -12
  603. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-main.json +0 -12
  604. data/node_modules/axe-core/lib/rules/landmark-one-main.json +0 -12
  605. data/node_modules/axe-core/lib/rules/landmark-unique-matches.js +0 -41
  606. data/node_modules/axe-core/lib/rules/landmark-unique.json +0 -13
  607. data/node_modules/axe-core/lib/rules/layout-table-matches.js +0 -8
  608. data/node_modules/axe-core/lib/rules/layout-table.json +0 -14
  609. data/node_modules/axe-core/lib/rules/link-in-text-block-matches.js +0 -14
  610. data/node_modules/axe-core/lib/rules/link-in-text-block.json +0 -14
  611. data/node_modules/axe-core/lib/rules/link-name.json +0 -25
  612. data/node_modules/axe-core/lib/rules/list.json +0 -13
  613. data/node_modules/axe-core/lib/rules/listitem.json +0 -13
  614. data/node_modules/axe-core/lib/rules/marquee.json +0 -13
  615. data/node_modules/axe-core/lib/rules/meta-refresh.json +0 -20
  616. data/node_modules/axe-core/lib/rules/meta-viewport-large.json +0 -13
  617. data/node_modules/axe-core/lib/rules/meta-viewport.json +0 -13
  618. data/node_modules/axe-core/lib/rules/no-autoplay-audio-matches.js +0 -18
  619. data/node_modules/axe-core/lib/rules/no-autoplay-audio.json +0 -15
  620. data/node_modules/axe-core/lib/rules/no-empty-role-matches.js +0 -9
  621. data/node_modules/axe-core/lib/rules/no-role-matches.js +0 -1
  622. data/node_modules/axe-core/lib/rules/not-html-matches.js +0 -1
  623. data/node_modules/axe-core/lib/rules/object-alt.json +0 -25
  624. data/node_modules/axe-core/lib/rules/p-as-heading-matches.js +0 -17
  625. data/node_modules/axe-core/lib/rules/p-as-heading.json +0 -13
  626. data/node_modules/axe-core/lib/rules/page-has-heading-one.json +0 -12
  627. data/node_modules/axe-core/lib/rules/radiogroup.json +0 -13
  628. data/node_modules/axe-core/lib/rules/region.json +0 -12
  629. data/node_modules/axe-core/lib/rules/role-img-alt.json +0 -19
  630. data/node_modules/axe-core/lib/rules/scope-attr-valid.json +0 -12
  631. data/node_modules/axe-core/lib/rules/scrollable-region-focusable-matches.js +0 -30
  632. data/node_modules/axe-core/lib/rules/scrollable-region-focusable.json +0 -12
  633. data/node_modules/axe-core/lib/rules/server-side-image-map.json +0 -18
  634. data/node_modules/axe-core/lib/rules/skip-link-matches.js +0 -1
  635. data/node_modules/axe-core/lib/rules/skip-link.json +0 -13
  636. data/node_modules/axe-core/lib/rules/svg-img-alt.json +0 -24
  637. data/node_modules/axe-core/lib/rules/svg-namespace-matches.js +0 -1
  638. data/node_modules/axe-core/lib/rules/tabindex.json +0 -12
  639. data/node_modules/axe-core/lib/rules/table-duplicate-name.json +0 -12
  640. data/node_modules/axe-core/lib/rules/table-fake-caption.json +0 -20
  641. data/node_modules/axe-core/lib/rules/td-has-header.json +0 -20
  642. data/node_modules/axe-core/lib/rules/td-headers-attr.json +0 -12
  643. data/node_modules/axe-core/lib/rules/th-has-data-cells.json +0 -13
  644. data/node_modules/axe-core/lib/rules/valid-lang.json +0 -13
  645. data/node_modules/axe-core/lib/rules/video-caption.json +0 -19
  646. data/node_modules/axe-core/lib/rules/video-description.json +0 -21
  647. data/node_modules/axe-core/lib/rules/window-is-top.js +0 -3
  648. data/node_modules/axe-core/lib/rules/xml-lang-mismatch-matches.js +0 -12
  649. data/node_modules/axe-core/typings/axe-core/axe-core-tests.ts +0 -188
@@ -1,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
  }