govuk_publishing_components 30.4.1 → 30.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (651) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-core.js +20 -0
  3. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-event-tracker.js +63 -51
  4. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-link-tracker.js +8 -8
  5. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +11 -10
  6. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/init-ga4.js +27 -0
  7. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4.js +2 -3
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -4
  9. data/app/views/govuk_publishing_components/component_guide/show.html.erb +28 -27
  10. data/config/locales/en.yml +8 -8
  11. data/lib/govuk_publishing_components/version.rb +1 -1
  12. data/node_modules/axe-core/README.md +83 -53
  13. data/node_modules/axe-core/axe.d.ts +403 -224
  14. data/node_modules/axe-core/axe.js +23281 -21919
  15. data/node_modules/axe-core/axe.min.js +3 -3
  16. data/node_modules/axe-core/locales/da.json +795 -780
  17. data/node_modules/axe-core/locales/de.json +932 -621
  18. data/node_modules/axe-core/locales/es.json +786 -771
  19. data/node_modules/axe-core/locales/eu.json +787 -0
  20. data/node_modules/axe-core/locales/fr.json +982 -840
  21. data/node_modules/axe-core/locales/ja.json +988 -880
  22. data/node_modules/axe-core/locales/ko.json +999 -775
  23. data/node_modules/axe-core/locales/nl.json +46 -34
  24. data/node_modules/axe-core/locales/pl.json +965 -0
  25. data/node_modules/axe-core/locales/pt_BR.json +966 -880
  26. data/node_modules/axe-core/package.json +189 -145
  27. data/node_modules/axe-core/sri-history.json +312 -192
  28. data/node_modules/govuk-frontend/govuk/all.js +64 -44
  29. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +1 -1
  30. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +3 -13
  31. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +12 -12
  32. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +5 -1
  33. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +1 -1
  34. data/node_modules/govuk-frontend/govuk/components/details/details.js +8 -20
  35. data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +6 -0
  36. data/node_modules/govuk-frontend/govuk/components/details/template.njk +1 -1
  37. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +9 -0
  38. data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +6 -0
  39. data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +2 -2
  40. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +59 -20
  41. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +40 -0
  42. data/node_modules/govuk-frontend/govuk/components/footer/template.njk +17 -7
  43. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +14 -21
  44. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +11 -11
  45. data/node_modules/govuk-frontend/govuk/components/header/header.js +53 -11
  46. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +2 -2
  47. data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
  48. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +9 -10
  49. data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +6 -0
  50. data/node_modules/govuk-frontend/govuk/components/inset-text/template.njk +1 -1
  51. data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +6 -0
  52. data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +2 -2
  53. data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +6 -0
  54. data/node_modules/govuk-frontend/govuk/components/panel/template.njk +2 -2
  55. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +6 -0
  56. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +15 -1
  57. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +37 -10
  58. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +69 -4
  59. data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +3 -3
  60. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +13 -13
  61. data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +5 -1
  62. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +14 -7
  63. data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +56 -12
  64. data/node_modules/govuk-frontend/govuk/settings/_spacing.scss +4 -8
  65. data/node_modules/govuk-frontend/govuk/template.njk +5 -5
  66. data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +3 -13
  67. data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +8 -20
  68. data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +53 -11
  69. data/node_modules/govuk-frontend/package.json +1 -1
  70. metadata +7 -584
  71. data/node_modules/axe-core/CHANGELOG.md +0 -1053
  72. data/node_modules/axe-core/CONTRIBUTING.md +0 -187
  73. data/node_modules/axe-core/bower.json +0 -40
  74. data/node_modules/axe-core/doc/API.md +0 -889
  75. data/node_modules/axe-core/doc/accessibility-supported.md +0 -33
  76. data/node_modules/axe-core/doc/act-rules-format.md +0 -37
  77. data/node_modules/axe-core/doc/aria-supported.md +0 -13
  78. data/node_modules/axe-core/doc/backwards-compatibility-doc.md +0 -94
  79. data/node_modules/axe-core/doc/check-message-template.md +0 -124
  80. data/node_modules/axe-core/doc/code-submission-guidelines.md +0 -178
  81. data/node_modules/axe-core/doc/developer-guide.md +0 -514
  82. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/README.md +0 -13
  83. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/axe-cdp.js +0 -81
  84. data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/package.json +0 -11
  85. data/node_modules/axe-core/doc/examples/html-handlebars.md +0 -164
  86. data/node_modules/axe-core/doc/examples/jasmine/README.md +0 -35
  87. data/node_modules/axe-core/doc/examples/jasmine/karma.conf.js +0 -29
  88. data/node_modules/axe-core/doc/examples/jasmine/package.json +0 -21
  89. data/node_modules/axe-core/doc/examples/jasmine/spec/a11y.js +0 -36
  90. data/node_modules/axe-core/doc/examples/jest_react/README.md +0 -41
  91. data/node_modules/axe-core/doc/examples/jest_react/link.js +0 -7
  92. data/node_modules/axe-core/doc/examples/jest_react/link.test.js +0 -24
  93. data/node_modules/axe-core/doc/examples/jest_react/package.json +0 -28
  94. data/node_modules/axe-core/doc/examples/jest_react/test-helpers.js +0 -21
  95. data/node_modules/axe-core/doc/examples/jsdom/package.json +0 -15
  96. data/node_modules/axe-core/doc/examples/mocha/README.md +0 -35
  97. data/node_modules/axe-core/doc/examples/mocha/karma.conf.js +0 -29
  98. data/node_modules/axe-core/doc/examples/mocha/package.json +0 -22
  99. data/node_modules/axe-core/doc/examples/phantomjs/README.md +0 -17
  100. data/node_modules/axe-core/doc/examples/phantomjs/axe-phantom.js +0 -53
  101. data/node_modules/axe-core/doc/examples/phantomjs/package.json +0 -19
  102. data/node_modules/axe-core/doc/examples/puppeteer/README.md +0 -12
  103. data/node_modules/axe-core/doc/examples/puppeteer/axe-puppeteer.js +0 -60
  104. data/node_modules/axe-core/doc/examples/puppeteer/package.json +0 -13
  105. data/node_modules/axe-core/doc/examples/qunit/README.md +0 -37
  106. data/node_modules/axe-core/doc/examples/qunit/package.json +0 -21
  107. data/node_modules/axe-core/doc/examples/test-examples.js +0 -32
  108. data/node_modules/axe-core/doc/plugins.md +0 -123
  109. data/node_modules/axe-core/doc/projects.md +0 -48
  110. data/node_modules/axe-core/doc/rule-descriptions.md +0 -129
  111. data/node_modules/axe-core/doc/rule-development.md +0 -123
  112. data/node_modules/axe-core/doc/rule-proposal.md +0 -106
  113. data/node_modules/axe-core/lib/checks/aria/abstractrole.js +0 -10
  114. data/node_modules/axe-core/lib/checks/aria/abstractrole.json +0 -14
  115. data/node_modules/axe-core/lib/checks/aria/allowed-attr.js +0 -39
  116. data/node_modules/axe-core/lib/checks/aria/allowed-attr.json +0 -14
  117. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.js +0 -28
  118. data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.json +0 -22
  119. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.js +0 -1
  120. data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.json +0 -11
  121. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.js +0 -14
  122. data/node_modules/axe-core/lib/checks/aria/aria-roledescription.json +0 -23
  123. data/node_modules/axe-core/lib/checks/aria/errormessage.js +0 -33
  124. data/node_modules/axe-core/lib/checks/aria/errormessage.json +0 -14
  125. data/node_modules/axe-core/lib/checks/aria/fallbackrole.js +0 -1
  126. data/node_modules/axe-core/lib/checks/aria/fallbackrole.json +0 -11
  127. data/node_modules/axe-core/lib/checks/aria/has-widget-role.js +0 -6
  128. data/node_modules/axe-core/lib/checks/aria/has-widget-role.json +0 -12
  129. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.js +0 -6
  130. data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.json +0 -12
  131. data/node_modules/axe-core/lib/checks/aria/invalidrole.js +0 -17
  132. data/node_modules/axe-core/lib/checks/aria/invalidrole.json +0 -14
  133. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.js +0 -21
  134. data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.json +0 -11
  135. data/node_modules/axe-core/lib/checks/aria/required-attr.js +0 -53
  136. data/node_modules/axe-core/lib/checks/aria/required-attr.json +0 -14
  137. data/node_modules/axe-core/lib/checks/aria/required-children.js +0 -154
  138. data/node_modules/axe-core/lib/checks/aria/required-children.json +0 -32
  139. data/node_modules/axe-core/lib/checks/aria/required-parent.js +0 -87
  140. data/node_modules/axe-core/lib/checks/aria/required-parent.json +0 -14
  141. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.js +0 -39
  142. data/node_modules/axe-core/lib/checks/aria/unsupportedattr.json +0 -11
  143. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.js +0 -1
  144. data/node_modules/axe-core/lib/checks/aria/unsupportedrole.json +0 -11
  145. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.js +0 -80
  146. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.json +0 -19
  147. data/node_modules/axe-core/lib/checks/aria/valid-attr.js +0 -25
  148. data/node_modules/axe-core/lib/checks/aria/valid-attr.json +0 -15
  149. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.js +0 -62
  150. data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.json +0 -12
  151. data/node_modules/axe-core/lib/checks/color/color-contrast.js +0 -86
  152. data/node_modules/axe-core/lib/checks/color/color-contrast.json +0 -30
  153. data/node_modules/axe-core/lib/checks/color/link-in-text-block.js +0 -85
  154. data/node_modules/axe-core/lib/checks/color/link-in-text-block.json +0 -19
  155. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.js +0 -67
  156. data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.json +0 -11
  157. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.js +0 -2
  158. data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.json +0 -11
  159. data/node_modules/axe-core/lib/checks/forms/fieldset-after.js +0 -25
  160. data/node_modules/axe-core/lib/checks/forms/fieldset.js +0 -109
  161. data/node_modules/axe-core/lib/checks/forms/fieldset.json +0 -20
  162. data/node_modules/axe-core/lib/checks/forms/group-labelledby-after.js +0 -16
  163. data/node_modules/axe-core/lib/checks/forms/group-labelledby.js +0 -66
  164. data/node_modules/axe-core/lib/checks/forms/group-labelledby.json +0 -17
  165. data/node_modules/axe-core/lib/checks/keyboard/accesskeys-after.js +0 -19
  166. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.js +0 -5
  167. data/node_modules/axe-core/lib/checks/keyboard/accesskeys.json +0 -12
  168. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.js +0 -16
  169. data/node_modules/axe-core/lib/checks/keyboard/focusable-content.json +0 -11
  170. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.js +0 -30
  171. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.json +0 -11
  172. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.js +0 -12
  173. data/node_modules/axe-core/lib/checks/keyboard/focusable-element.json +0 -11
  174. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.js +0 -14
  175. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.json +0 -11
  176. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.js +0 -6
  177. data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.json +0 -11
  178. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.js +0 -30
  179. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.json +0 -11
  180. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.js +0 -18
  181. data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.json +0 -11
  182. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm-after.js +0 -11
  183. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm.js +0 -13
  184. data/node_modules/axe-core/lib/checks/keyboard/page-has-heading-one.json +0 -15
  185. data/node_modules/axe-core/lib/checks/keyboard/page-has-main.json +0 -15
  186. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-after.js +0 -2
  187. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-banner.json +0 -16
  188. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-contentinfo.json +0 -16
  189. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-main.json +0 -15
  190. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate.js +0 -36
  191. data/node_modules/axe-core/lib/checks/keyboard/tabindex.js +0 -6
  192. data/node_modules/axe-core/lib/checks/keyboard/tabindex.json +0 -11
  193. data/node_modules/axe-core/lib/checks/label/alt-space-value.js +0 -3
  194. data/node_modules/axe-core/lib/checks/label/alt-space-value.json +0 -11
  195. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.js +0 -22
  196. data/node_modules/axe-core/lib/checks/label/duplicate-img-label.json +0 -11
  197. data/node_modules/axe-core/lib/checks/label/explicit.js +0 -15
  198. data/node_modules/axe-core/lib/checks/label/explicit.json +0 -11
  199. data/node_modules/axe-core/lib/checks/label/help-same-as-label.js +0 -23
  200. data/node_modules/axe-core/lib/checks/label/help-same-as-label.json +0 -12
  201. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.js +0 -12
  202. data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.json +0 -11
  203. data/node_modules/axe-core/lib/checks/label/implicit.js +0 -7
  204. data/node_modules/axe-core/lib/checks/label/implicit.json +0 -11
  205. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.js +0 -59
  206. data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.json +0 -15
  207. data/node_modules/axe-core/lib/checks/label/multiple-label.js +0 -39
  208. data/node_modules/axe-core/lib/checks/label/multiple-label.json +0 -11
  209. data/node_modules/axe-core/lib/checks/label/title-only.js +0 -5
  210. data/node_modules/axe-core/lib/checks/label/title-only.json +0 -11
  211. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique-after.js +0 -23
  212. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.js +0 -7
  213. data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.json +0 -12
  214. data/node_modules/axe-core/lib/checks/language/has-lang.js +0 -20
  215. data/node_modules/axe-core/lib/checks/language/has-lang.json +0 -14
  216. data/node_modules/axe-core/lib/checks/language/valid-lang.js +0 -26
  217. data/node_modules/axe-core/lib/checks/language/valid-lang.json +0 -11
  218. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.js +0 -5
  219. data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.json +0 -11
  220. data/node_modules/axe-core/lib/checks/lists/dlitem.js +0 -23
  221. data/node_modules/axe-core/lib/checks/lists/dlitem.json +0 -11
  222. data/node_modules/axe-core/lib/checks/lists/listitem.js +0 -21
  223. data/node_modules/axe-core/lib/checks/lists/listitem.json +0 -14
  224. data/node_modules/axe-core/lib/checks/lists/only-dlitems.js +0 -42
  225. data/node_modules/axe-core/lib/checks/lists/only-dlitems.json +0 -11
  226. data/node_modules/axe-core/lib/checks/lists/only-listitems.js +0 -58
  227. data/node_modules/axe-core/lib/checks/lists/only-listitems.json +0 -14
  228. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.js +0 -22
  229. data/node_modules/axe-core/lib/checks/lists/structured-dlitems.json +0 -11
  230. data/node_modules/axe-core/lib/checks/media/caption.js +0 -8
  231. data/node_modules/axe-core/lib/checks/media/caption.json +0 -11
  232. data/node_modules/axe-core/lib/checks/media/description.js +0 -8
  233. data/node_modules/axe-core/lib/checks/media/description.json +0 -11
  234. data/node_modules/axe-core/lib/checks/media/frame-tested.js +0 -28
  235. data/node_modules/axe-core/lib/checks/media/frame-tested.json +0 -15
  236. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.js +0 -93
  237. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.json +0 -15
  238. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.js +0 -251
  239. data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.json +0 -15
  240. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-large.json +0 -15
  241. data/node_modules/axe-core/lib/checks/mobile/meta-viewport-scale.js +0 -55
  242. data/node_modules/axe-core/lib/checks/mobile/meta-viewport.json +0 -14
  243. data/node_modules/axe-core/lib/checks/navigation/header-present.js +0 -4
  244. data/node_modules/axe-core/lib/checks/navigation/header-present.json +0 -11
  245. data/node_modules/axe-core/lib/checks/navigation/heading-order-after.js +0 -14
  246. data/node_modules/axe-core/lib/checks/navigation/heading-order.js +0 -15
  247. data/node_modules/axe-core/lib/checks/navigation/heading-order.json +0 -12
  248. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose-after.js +0 -100
  249. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.js +0 -31
  250. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.json +0 -12
  251. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.js +0 -4
  252. data/node_modules/axe-core/lib/checks/navigation/internal-link-present.json +0 -11
  253. data/node_modules/axe-core/lib/checks/navigation/landmark.js +0 -3
  254. data/node_modules/axe-core/lib/checks/navigation/landmark.json +0 -11
  255. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.js +0 -4
  256. data/node_modules/axe-core/lib/checks/navigation/meta-refresh.json +0 -11
  257. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.js +0 -93
  258. data/node_modules/axe-core/lib/checks/navigation/p-as-heading.json +0 -30
  259. data/node_modules/axe-core/lib/checks/navigation/region.js +0 -107
  260. data/node_modules/axe-core/lib/checks/navigation/region.json +0 -11
  261. data/node_modules/axe-core/lib/checks/navigation/skip-link.js +0 -5
  262. data/node_modules/axe-core/lib/checks/navigation/skip-link.json +0 -12
  263. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title-after.js +0 -9
  264. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.js +0 -6
  265. data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.json +0 -12
  266. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-active.json +0 -12
  267. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-after.js +0 -8
  268. data/node_modules/axe-core/lib/checks/parsing/duplicate-id-aria.json +0 -12
  269. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.js +0 -17
  270. data/node_modules/axe-core/lib/checks/parsing/duplicate-id.json +0 -12
  271. data/node_modules/axe-core/lib/checks/shared/aria-label.js +0 -2
  272. data/node_modules/axe-core/lib/checks/shared/aria-label.json +0 -11
  273. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.js +0 -2
  274. data/node_modules/axe-core/lib/checks/shared/aria-labelledby.json +0 -11
  275. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.js +0 -18
  276. data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.json +0 -14
  277. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.js +0 -12
  278. data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.json +0 -11
  279. data/node_modules/axe-core/lib/checks/shared/doc-has-title.js +0 -2
  280. data/node_modules/axe-core/lib/checks/shared/doc-has-title.json +0 -11
  281. data/node_modules/axe-core/lib/checks/shared/exists.js +0 -1
  282. data/node_modules/axe-core/lib/checks/shared/exists.json +0 -11
  283. data/node_modules/axe-core/lib/checks/shared/has-alt.js +0 -6
  284. data/node_modules/axe-core/lib/checks/shared/has-alt.json +0 -11
  285. data/node_modules/axe-core/lib/checks/shared/has-visible-text.js +0 -1
  286. data/node_modules/axe-core/lib/checks/shared/has-visible-text.json +0 -11
  287. data/node_modules/axe-core/lib/checks/shared/is-on-screen.js +0 -4
  288. data/node_modules/axe-core/lib/checks/shared/is-on-screen.json +0 -11
  289. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.js +0 -2
  290. data/node_modules/axe-core/lib/checks/shared/non-empty-alt.json +0 -11
  291. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.js +0 -15
  292. data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.json +0 -14
  293. data/node_modules/axe-core/lib/checks/shared/non-empty-title.js +0 -2
  294. data/node_modules/axe-core/lib/checks/shared/non-empty-title.json +0 -11
  295. data/node_modules/axe-core/lib/checks/shared/non-empty-value.js +0 -2
  296. data/node_modules/axe-core/lib/checks/shared/non-empty-value.json +0 -11
  297. data/node_modules/axe-core/lib/checks/shared/role-none.js +0 -1
  298. data/node_modules/axe-core/lib/checks/shared/role-none.json +0 -11
  299. data/node_modules/axe-core/lib/checks/shared/role-presentation.js +0 -1
  300. data/node_modules/axe-core/lib/checks/shared/role-presentation.json +0 -11
  301. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.js +0 -4
  302. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.json +0 -11
  303. data/node_modules/axe-core/lib/checks/tables/caption-faked.js +0 -10
  304. data/node_modules/axe-core/lib/checks/tables/caption-faked.json +0 -11
  305. data/node_modules/axe-core/lib/checks/tables/has-caption.js +0 -1
  306. data/node_modules/axe-core/lib/checks/tables/has-caption.json +0 -12
  307. data/node_modules/axe-core/lib/checks/tables/has-summary.js +0 -1
  308. data/node_modules/axe-core/lib/checks/tables/has-summary.json +0 -12
  309. data/node_modules/axe-core/lib/checks/tables/has-th.js +0 -31
  310. data/node_modules/axe-core/lib/checks/tables/has-th.json +0 -12
  311. data/node_modules/axe-core/lib/checks/tables/headers-visible-text.js +0 -30
  312. data/node_modules/axe-core/lib/checks/tables/html5-scope.js +0 -5
  313. data/node_modules/axe-core/lib/checks/tables/html5-scope.json +0 -11
  314. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.js +0 -7
  315. data/node_modules/axe-core/lib/checks/tables/same-caption-summary.json +0 -11
  316. data/node_modules/axe-core/lib/checks/tables/scope-value.js +0 -5
  317. data/node_modules/axe-core/lib/checks/tables/scope-value.json +0 -11
  318. data/node_modules/axe-core/lib/checks/tables/td-has-header.js +0 -30
  319. data/node_modules/axe-core/lib/checks/tables/td-has-header.json +0 -11
  320. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.js +0 -61
  321. data/node_modules/axe-core/lib/checks/tables/td-headers-attr.json +0 -12
  322. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.js +0 -76
  323. data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.json +0 -12
  324. data/node_modules/axe-core/lib/checks/tables/th-single-row-column.js +0 -39
  325. data/node_modules/axe-core/lib/checks/visibility/hidden-content.js +0 -21
  326. data/node_modules/axe-core/lib/checks/visibility/hidden-content.json +0 -12
  327. data/node_modules/axe-core/lib/commons/aria/arialabel-text.js +0 -18
  328. data/node_modules/axe-core/lib/commons/aria/arialabelledby-text.js +0 -52
  329. data/node_modules/axe-core/lib/commons/aria/attributes.js +0 -45
  330. data/node_modules/axe-core/lib/commons/aria/get-element-unallowed-roles.js +0 -113
  331. data/node_modules/axe-core/lib/commons/aria/get-owned-virtual.js +0 -24
  332. data/node_modules/axe-core/lib/commons/aria/get-role.js +0 -44
  333. data/node_modules/axe-core/lib/commons/aria/index.js +0 -2424
  334. data/node_modules/axe-core/lib/commons/aria/is-accessible-ref.js +0 -59
  335. data/node_modules/axe-core/lib/commons/aria/is-aria-role-allowed-on-element.js +0 -41
  336. data/node_modules/axe-core/lib/commons/aria/is-unsupported-role.js +0 -14
  337. data/node_modules/axe-core/lib/commons/aria/label-virtual.js +0 -54
  338. data/node_modules/axe-core/lib/commons/aria/named-from-contents.js +0 -39
  339. data/node_modules/axe-core/lib/commons/aria/roles.js +0 -208
  340. data/node_modules/axe-core/lib/commons/aria/validate-attr-value.js +0 -62
  341. data/node_modules/axe-core/lib/commons/color/center-point-of-rect.js +0 -30
  342. data/node_modules/axe-core/lib/commons/color/contrast.js +0 -178
  343. data/node_modules/axe-core/lib/commons/color/element-has-image.js +0 -36
  344. data/node_modules/axe-core/lib/commons/color/element-is-distinct.js +0 -88
  345. data/node_modules/axe-core/lib/commons/color/get-background-color.js +0 -285
  346. data/node_modules/axe-core/lib/commons/color/get-foreground-color.js +0 -61
  347. data/node_modules/axe-core/lib/commons/color/get-own-background-color.js +0 -22
  348. data/node_modules/axe-core/lib/commons/color/incomplete-data.js +0 -50
  349. data/node_modules/axe-core/lib/commons/color/index.js +0 -8
  350. data/node_modules/axe-core/lib/commons/dom/elements-below-floating.js +0 -39
  351. data/node_modules/axe-core/lib/commons/dom/find-elms-in-context.js +0 -28
  352. data/node_modules/axe-core/lib/commons/dom/find-up.js +0 -63
  353. data/node_modules/axe-core/lib/commons/dom/get-composed-parent.js +0 -25
  354. data/node_modules/axe-core/lib/commons/dom/get-element-by-reference.js +0 -34
  355. data/node_modules/axe-core/lib/commons/dom/get-element-coordinates.js +0 -38
  356. data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +0 -589
  357. data/node_modules/axe-core/lib/commons/dom/get-root-node.js +0 -12
  358. data/node_modules/axe-core/lib/commons/dom/get-scroll-offset.js +0 -33
  359. data/node_modules/axe-core/lib/commons/dom/get-tabbable-elements.js +0 -24
  360. data/node_modules/axe-core/lib/commons/dom/get-viewport-size.js +0 -37
  361. data/node_modules/axe-core/lib/commons/dom/has-content-virtual.js +0 -75
  362. data/node_modules/axe-core/lib/commons/dom/idrefs.js +0 -36
  363. data/node_modules/axe-core/lib/commons/dom/index.js +0 -9
  364. data/node_modules/axe-core/lib/commons/dom/is-focusable.js +0 -95
  365. data/node_modules/axe-core/lib/commons/dom/is-hidden-with-css.js +0 -73
  366. data/node_modules/axe-core/lib/commons/dom/is-html5.js +0 -17
  367. data/node_modules/axe-core/lib/commons/dom/is-in-text-block.js +0 -94
  368. data/node_modules/axe-core/lib/commons/dom/is-modal-open.js +0 -98
  369. data/node_modules/axe-core/lib/commons/dom/is-node.js +0 -13
  370. data/node_modules/axe-core/lib/commons/dom/is-offscreen.js +0 -62
  371. data/node_modules/axe-core/lib/commons/dom/is-skip-link.js +0 -45
  372. data/node_modules/axe-core/lib/commons/dom/is-visible.js +0 -176
  373. data/node_modules/axe-core/lib/commons/dom/is-visual-content.js +0 -49
  374. data/node_modules/axe-core/lib/commons/dom/shadow-elements-from-point.js +0 -42
  375. data/node_modules/axe-core/lib/commons/dom/url-props-from-attribute.js +0 -152
  376. data/node_modules/axe-core/lib/commons/dom/visually-contains.js +0 -111
  377. data/node_modules/axe-core/lib/commons/dom/visually-overlaps.js +0 -46
  378. data/node_modules/axe-core/lib/commons/forms/index.js +0 -8
  379. data/node_modules/axe-core/lib/commons/forms/is-aria-combobox.js +0 -13
  380. data/node_modules/axe-core/lib/commons/forms/is-aria-listbox.js +0 -13
  381. data/node_modules/axe-core/lib/commons/forms/is-aria-range.js +0 -14
  382. data/node_modules/axe-core/lib/commons/forms/is-aria-textbox.js +0 -13
  383. data/node_modules/axe-core/lib/commons/forms/is-native-select.js +0 -13
  384. data/node_modules/axe-core/lib/commons/forms/is-native-textbox.js +0 -28
  385. data/node_modules/axe-core/lib/commons/index.js +0 -11
  386. data/node_modules/axe-core/lib/commons/intro.stub +0 -1
  387. data/node_modules/axe-core/lib/commons/matches/attributes.js +0 -27
  388. data/node_modules/axe-core/lib/commons/matches/condition.js +0 -19
  389. data/node_modules/axe-core/lib/commons/matches/from-definition.js +0 -52
  390. data/node_modules/axe-core/lib/commons/matches/from-function.js +0 -38
  391. data/node_modules/axe-core/lib/commons/matches/from-primative.js +0 -30
  392. data/node_modules/axe-core/lib/commons/matches/index.js +0 -39
  393. data/node_modules/axe-core/lib/commons/matches/node-name.js +0 -24
  394. data/node_modules/axe-core/lib/commons/matches/properties.js +0 -28
  395. data/node_modules/axe-core/lib/commons/outro.stub +0 -2
  396. data/node_modules/axe-core/lib/commons/table/get-all-cells.js +0 -28
  397. data/node_modules/axe-core/lib/commons/table/get-cell-position.js +0 -28
  398. data/node_modules/axe-core/lib/commons/table/get-headers.js +0 -79
  399. data/node_modules/axe-core/lib/commons/table/get-scope.js +0 -54
  400. data/node_modules/axe-core/lib/commons/table/index.js +0 -9
  401. data/node_modules/axe-core/lib/commons/table/is-column-header.js +0 -13
  402. data/node_modules/axe-core/lib/commons/table/is-data-cell.js +0 -22
  403. data/node_modules/axe-core/lib/commons/table/is-data-table.js +0 -189
  404. data/node_modules/axe-core/lib/commons/table/is-header.js +0 -22
  405. data/node_modules/axe-core/lib/commons/table/is-row-header.js +0 -13
  406. data/node_modules/axe-core/lib/commons/table/to-grid.js +0 -38
  407. data/node_modules/axe-core/lib/commons/table/traverse.js +0 -78
  408. data/node_modules/axe-core/lib/commons/text/accessible-text-virtual.js +0 -152
  409. data/node_modules/axe-core/lib/commons/text/form-control-value.js +0 -192
  410. data/node_modules/axe-core/lib/commons/text/index.js +0 -8
  411. data/node_modules/axe-core/lib/commons/text/is-human-interpretable.js +0 -51
  412. data/node_modules/axe-core/lib/commons/text/is-icon-ligature.js +0 -210
  413. data/node_modules/axe-core/lib/commons/text/is-valid-autocomplete.js +0 -117
  414. data/node_modules/axe-core/lib/commons/text/label-text.js +0 -58
  415. data/node_modules/axe-core/lib/commons/text/label-virtual.js +0 -53
  416. data/node_modules/axe-core/lib/commons/text/native-element-types.js +0 -100
  417. data/node_modules/axe-core/lib/commons/text/native-text-alternative.js +0 -50
  418. data/node_modules/axe-core/lib/commons/text/native-text-methods.js +0 -122
  419. data/node_modules/axe-core/lib/commons/text/sanitize.js +0 -18
  420. data/node_modules/axe-core/lib/commons/text/subtree-text.js +0 -89
  421. data/node_modules/axe-core/lib/commons/text/title-text.js +0 -33
  422. data/node_modules/axe-core/lib/commons/text/unicode.js +0 -147
  423. data/node_modules/axe-core/lib/commons/text/unsupported.js +0 -5
  424. data/node_modules/axe-core/lib/commons/text/visible-text-nodes.js +0 -25
  425. data/node_modules/axe-core/lib/commons/text/visible-virtual.js +0 -46
  426. data/node_modules/axe-core/lib/commons/utils/index.js +0 -10
  427. data/node_modules/axe-core/lib/core/base/audit.js +0 -781
  428. data/node_modules/axe-core/lib/core/base/cache.js +0 -33
  429. data/node_modules/axe-core/lib/core/base/check-result.js +0 -33
  430. data/node_modules/axe-core/lib/core/base/check.js +0 -170
  431. data/node_modules/axe-core/lib/core/base/context.js +0 -274
  432. data/node_modules/axe-core/lib/core/base/rule-result.js +0 -39
  433. data/node_modules/axe-core/lib/core/base/rule.js +0 -560
  434. data/node_modules/axe-core/lib/core/base/virtual-node/abstract-virtual-node.js +0 -40
  435. data/node_modules/axe-core/lib/core/base/virtual-node/serial-virtual-node.js +0 -88
  436. data/node_modules/axe-core/lib/core/base/virtual-node/virtual-node.js +0 -136
  437. data/node_modules/axe-core/lib/core/constants.js +0 -76
  438. data/node_modules/axe-core/lib/core/imports/index.js +0 -51
  439. data/node_modules/axe-core/lib/core/index.js +0 -43
  440. data/node_modules/axe-core/lib/core/log.js +0 -12
  441. data/node_modules/axe-core/lib/core/public/cleanup-plugins.js +0 -53
  442. data/node_modules/axe-core/lib/core/public/configure.js +0 -110
  443. data/node_modules/axe-core/lib/core/public/get-rules.js +0 -29
  444. data/node_modules/axe-core/lib/core/public/load.js +0 -66
  445. data/node_modules/axe-core/lib/core/public/plugins.js +0 -47
  446. data/node_modules/axe-core/lib/core/public/reporter.js +0 -24
  447. data/node_modules/axe-core/lib/core/public/reset.js +0 -12
  448. data/node_modules/axe-core/lib/core/public/run-rules.js +0 -96
  449. data/node_modules/axe-core/lib/core/public/run-virtual-rule.js +0 -50
  450. data/node_modules/axe-core/lib/core/public/run.js +0 -159
  451. data/node_modules/axe-core/lib/core/reporters/helpers/failure-summary.js +0 -35
  452. data/node_modules/axe-core/lib/core/reporters/helpers/get-environment-data.js +0 -39
  453. data/node_modules/axe-core/lib/core/reporters/helpers/incomplete-fallback-msg.js +0 -13
  454. data/node_modules/axe-core/lib/core/reporters/helpers/index.js +0 -3
  455. data/node_modules/axe-core/lib/core/reporters/helpers/process-aggregate.js +0 -102
  456. data/node_modules/axe-core/lib/core/reporters/na.js +0 -24
  457. data/node_modules/axe-core/lib/core/reporters/no-passes.js +0 -18
  458. data/node_modules/axe-core/lib/core/reporters/raw-env.js +0 -12
  459. data/node_modules/axe-core/lib/core/reporters/raw.js +0 -32
  460. data/node_modules/axe-core/lib/core/reporters/v1.js +0 -29
  461. data/node_modules/axe-core/lib/core/reporters/v2.js +0 -22
  462. data/node_modules/axe-core/lib/core/utils/aggregate.js +0 -19
  463. data/node_modules/axe-core/lib/core/utils/aggregateChecks.js +0 -85
  464. data/node_modules/axe-core/lib/core/utils/aggregateNodeResults.js +0 -61
  465. data/node_modules/axe-core/lib/core/utils/aggregateResult.js +0 -37
  466. data/node_modules/axe-core/lib/core/utils/are-styles-set.js +0 -21
  467. data/node_modules/axe-core/lib/core/utils/assert.js +0 -12
  468. data/node_modules/axe-core/lib/core/utils/check-helper.js +0 -38
  469. data/node_modules/axe-core/lib/core/utils/clone.js +0 -27
  470. data/node_modules/axe-core/lib/core/utils/collect-results-from-frames.js +0 -127
  471. data/node_modules/axe-core/lib/core/utils/contains.js +0 -44
  472. data/node_modules/axe-core/lib/core/utils/css-parser.js +0 -7
  473. data/node_modules/axe-core/lib/core/utils/dq-element.js +0 -97
  474. data/node_modules/axe-core/lib/core/utils/element-matches.js +0 -43
  475. data/node_modules/axe-core/lib/core/utils/escape-selector.js +0 -78
  476. data/node_modules/axe-core/lib/core/utils/extend-meta-data.js +0 -17
  477. data/node_modules/axe-core/lib/core/utils/finalize-result.js +0 -11
  478. data/node_modules/axe-core/lib/core/utils/find-by.js +0 -14
  479. data/node_modules/axe-core/lib/core/utils/flattened-tree.js +0 -156
  480. data/node_modules/axe-core/lib/core/utils/get-all-checks.js +0 -12
  481. data/node_modules/axe-core/lib/core/utils/get-base-lang.js +0 -16
  482. data/node_modules/axe-core/lib/core/utils/get-check-message.js +0 -21
  483. data/node_modules/axe-core/lib/core/utils/get-check-option.js +0 -39
  484. data/node_modules/axe-core/lib/core/utils/get-friendly-uri-end.js +0 -144
  485. data/node_modules/axe-core/lib/core/utils/get-node-attributes.js +0 -21
  486. data/node_modules/axe-core/lib/core/utils/get-root-node.js +0 -17
  487. data/node_modules/axe-core/lib/core/utils/get-scroll.js +0 -39
  488. data/node_modules/axe-core/lib/core/utils/get-selector.js +0 -409
  489. data/node_modules/axe-core/lib/core/utils/get-stylesheet-factory.js +0 -51
  490. data/node_modules/axe-core/lib/core/utils/get-xpath.js +0 -83
  491. data/node_modules/axe-core/lib/core/utils/index.js +0 -10
  492. data/node_modules/axe-core/lib/core/utils/inject-style.js +0 -38
  493. data/node_modules/axe-core/lib/core/utils/is-hidden.js +0 -52
  494. data/node_modules/axe-core/lib/core/utils/is-html-element.js +0 -135
  495. data/node_modules/axe-core/lib/core/utils/is-shadow-root.js +0 -40
  496. data/node_modules/axe-core/lib/core/utils/is-xhtml.js +0 -14
  497. data/node_modules/axe-core/lib/core/utils/matches.js +0 -263
  498. data/node_modules/axe-core/lib/core/utils/memoize.js +0 -17
  499. data/node_modules/axe-core/lib/core/utils/merge-results.js +0 -116
  500. data/node_modules/axe-core/lib/core/utils/node-sorter.js +0 -21
  501. data/node_modules/axe-core/lib/core/utils/parse-crossorigin-stylesheet.js +0 -54
  502. data/node_modules/axe-core/lib/core/utils/parse-sameorigin-stylesheet.js +0 -96
  503. data/node_modules/axe-core/lib/core/utils/parse-stylesheet.js +0 -70
  504. data/node_modules/axe-core/lib/core/utils/performance-timer.js +0 -126
  505. data/node_modules/axe-core/lib/core/utils/pollyfills.js +0 -299
  506. data/node_modules/axe-core/lib/core/utils/preload-cssom.js +0 -253
  507. data/node_modules/axe-core/lib/core/utils/preload-media.js +0 -65
  508. data/node_modules/axe-core/lib/core/utils/preload.js +0 -144
  509. data/node_modules/axe-core/lib/core/utils/process-message.js +0 -72
  510. data/node_modules/axe-core/lib/core/utils/publish-metadata.js +0 -106
  511. data/node_modules/axe-core/lib/core/utils/qsa.js +0 -110
  512. data/node_modules/axe-core/lib/core/utils/queue.js +0 -138
  513. data/node_modules/axe-core/lib/core/utils/respondable.js +0 -261
  514. data/node_modules/axe-core/lib/core/utils/rule-should-run.js +0 -82
  515. data/node_modules/axe-core/lib/core/utils/scroll-state.js +0 -57
  516. data/node_modules/axe-core/lib/core/utils/select.js +0 -135
  517. data/node_modules/axe-core/lib/core/utils/to-array.js +0 -21
  518. data/node_modules/axe-core/lib/core/utils/token-list.js +0 -15
  519. data/node_modules/axe-core/lib/core/utils/uuid.js +0 -244
  520. data/node_modules/axe-core/lib/core/utils/valid-input-type.js +0 -35
  521. data/node_modules/axe-core/lib/core/utils/valid-langs.js +0 -8152
  522. data/node_modules/axe-core/lib/intro.stub +0 -15
  523. data/node_modules/axe-core/lib/misc/any-failure-summary.json +0 -6
  524. data/node_modules/axe-core/lib/misc/incomplete-fallback.json +0 -3
  525. data/node_modules/axe-core/lib/misc/none-failure-summary.json +0 -6
  526. data/node_modules/axe-core/lib/outro.stub +0 -2
  527. data/node_modules/axe-core/lib/rules/accesskeys.json +0 -13
  528. data/node_modules/axe-core/lib/rules/area-alt.json +0 -21
  529. data/node_modules/axe-core/lib/rules/aria-allowed-attr-matches.js +0 -11
  530. data/node_modules/axe-core/lib/rules/aria-allowed-attr.json +0 -12
  531. data/node_modules/axe-core/lib/rules/aria-allowed-role-matches.js +0 -7
  532. data/node_modules/axe-core/lib/rules/aria-allowed-role.json +0 -14
  533. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback-matches.js +0 -10
  534. data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback.json +0 -14
  535. data/node_modules/axe-core/lib/rules/aria-form-field-name-matches.js +0 -50
  536. data/node_modules/axe-core/lib/rules/aria-has-attr-matches.js +0 -11
  537. data/node_modules/axe-core/lib/rules/aria-hidden-body.json +0 -13
  538. data/node_modules/axe-core/lib/rules/aria-hidden-focus-matches.js +0 -18
  539. data/node_modules/axe-core/lib/rules/aria-hidden-focus.json +0 -18
  540. data/node_modules/axe-core/lib/rules/aria-input-field-name.json +0 -13
  541. data/node_modules/axe-core/lib/rules/aria-required-attr.json +0 -12
  542. data/node_modules/axe-core/lib/rules/aria-required-children.json +0 -12
  543. data/node_modules/axe-core/lib/rules/aria-required-parent.json +0 -12
  544. data/node_modules/axe-core/lib/rules/aria-roledescription.json +0 -12
  545. data/node_modules/axe-core/lib/rules/aria-roles.json +0 -13
  546. data/node_modules/axe-core/lib/rules/aria-toggle-field-name.json +0 -18
  547. data/node_modules/axe-core/lib/rules/aria-valid-attr-value.json +0 -12
  548. data/node_modules/axe-core/lib/rules/aria-valid-attr.json +0 -12
  549. data/node_modules/axe-core/lib/rules/audio-caption.json +0 -20
  550. data/node_modules/axe-core/lib/rules/autocomplete-matches.js +0 -49
  551. data/node_modules/axe-core/lib/rules/autocomplete-valid.json +0 -12
  552. data/node_modules/axe-core/lib/rules/avoid-inline-spacing.json +0 -12
  553. data/node_modules/axe-core/lib/rules/blink.json +0 -19
  554. data/node_modules/axe-core/lib/rules/button-name.json +0 -25
  555. data/node_modules/axe-core/lib/rules/bypass-matches.js +0 -1
  556. data/node_modules/axe-core/lib/rules/bypass.json +0 -20
  557. data/node_modules/axe-core/lib/rules/checkboxgroup.json +0 -13
  558. data/node_modules/axe-core/lib/rules/color-contrast-matches.js +0 -161
  559. data/node_modules/axe-core/lib/rules/color-contrast.json +0 -13
  560. data/node_modules/axe-core/lib/rules/css-orientation-lock.json +0 -13
  561. data/node_modules/axe-core/lib/rules/data-table-large-matches.js +0 -11
  562. data/node_modules/axe-core/lib/rules/data-table-matches.js +0 -1
  563. data/node_modules/axe-core/lib/rules/definition-list.json +0 -13
  564. data/node_modules/axe-core/lib/rules/dlitem.json +0 -13
  565. data/node_modules/axe-core/lib/rules/document-title.json +0 -13
  566. data/node_modules/axe-core/lib/rules/duplicate-id-active-matches.js +0 -8
  567. data/node_modules/axe-core/lib/rules/duplicate-id-active.json +0 -14
  568. data/node_modules/axe-core/lib/rules/duplicate-id-aria-matches.js +0 -1
  569. data/node_modules/axe-core/lib/rules/duplicate-id-aria.json +0 -14
  570. data/node_modules/axe-core/lib/rules/duplicate-id-misc-matches.js +0 -11
  571. data/node_modules/axe-core/lib/rules/duplicate-id.json +0 -14
  572. data/node_modules/axe-core/lib/rules/empty-heading.json +0 -13
  573. data/node_modules/axe-core/lib/rules/focus-order-semantics.json +0 -13
  574. data/node_modules/axe-core/lib/rules/form-field-multiple-labels.json +0 -13
  575. data/node_modules/axe-core/lib/rules/frame-tested.json +0 -12
  576. data/node_modules/axe-core/lib/rules/frame-title-has-text.js +0 -2
  577. data/node_modules/axe-core/lib/rules/frame-title-unique.json +0 -13
  578. data/node_modules/axe-core/lib/rules/frame-title.json +0 -25
  579. data/node_modules/axe-core/lib/rules/heading-matches.js +0 -15
  580. data/node_modules/axe-core/lib/rules/heading-order.json +0 -13
  581. data/node_modules/axe-core/lib/rules/hidden-content.json +0 -13
  582. data/node_modules/axe-core/lib/rules/html-has-lang.json +0 -13
  583. data/node_modules/axe-core/lib/rules/html-lang-valid.json +0 -12
  584. data/node_modules/axe-core/lib/rules/html-namespace-matches.js +0 -1
  585. data/node_modules/axe-core/lib/rules/html-xml-lang-mismatch.json +0 -13
  586. data/node_modules/axe-core/lib/rules/identical-links-same-purpose-matches.js +0 -13
  587. data/node_modules/axe-core/lib/rules/identical-links-same-purpose.json +0 -14
  588. data/node_modules/axe-core/lib/rules/image-alt.json +0 -25
  589. data/node_modules/axe-core/lib/rules/img-redundant-alt.json +0 -12
  590. data/node_modules/axe-core/lib/rules/input-button-name.json +0 -26
  591. data/node_modules/axe-core/lib/rules/input-image-alt.json +0 -18
  592. data/node_modules/axe-core/lib/rules/inserted-into-focus-order-matches.js +0 -1
  593. data/node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js +0 -45
  594. data/node_modules/axe-core/lib/rules/label-content-name-mismatch.json +0 -12
  595. data/node_modules/axe-core/lib/rules/label-matches.js +0 -11
  596. data/node_modules/axe-core/lib/rules/label-title-only.json +0 -13
  597. data/node_modules/axe-core/lib/rules/label.json +0 -26
  598. data/node_modules/axe-core/lib/rules/landmark-banner-is-top-level.json +0 -13
  599. data/node_modules/axe-core/lib/rules/landmark-complementary-is-top-level.json +0 -12
  600. data/node_modules/axe-core/lib/rules/landmark-contentinfo-is-top-level.json +0 -13
  601. data/node_modules/axe-core/lib/rules/landmark-has-body-context.js +0 -8
  602. data/node_modules/axe-core/lib/rules/landmark-main-is-top-level.json +0 -12
  603. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-banner.json +0 -12
  604. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-contentinfo.json +0 -12
  605. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-main.json +0 -12
  606. data/node_modules/axe-core/lib/rules/landmark-one-main.json +0 -12
  607. data/node_modules/axe-core/lib/rules/landmark-unique-matches.js +0 -41
  608. data/node_modules/axe-core/lib/rules/landmark-unique.json +0 -13
  609. data/node_modules/axe-core/lib/rules/layout-table-matches.js +0 -8
  610. data/node_modules/axe-core/lib/rules/layout-table.json +0 -14
  611. data/node_modules/axe-core/lib/rules/link-in-text-block-matches.js +0 -14
  612. data/node_modules/axe-core/lib/rules/link-in-text-block.json +0 -14
  613. data/node_modules/axe-core/lib/rules/link-name.json +0 -25
  614. data/node_modules/axe-core/lib/rules/list.json +0 -13
  615. data/node_modules/axe-core/lib/rules/listitem.json +0 -13
  616. data/node_modules/axe-core/lib/rules/marquee.json +0 -13
  617. data/node_modules/axe-core/lib/rules/meta-refresh.json +0 -20
  618. data/node_modules/axe-core/lib/rules/meta-viewport-large.json +0 -13
  619. data/node_modules/axe-core/lib/rules/meta-viewport.json +0 -13
  620. data/node_modules/axe-core/lib/rules/no-autoplay-audio-matches.js +0 -18
  621. data/node_modules/axe-core/lib/rules/no-autoplay-audio.json +0 -15
  622. data/node_modules/axe-core/lib/rules/no-empty-role-matches.js +0 -9
  623. data/node_modules/axe-core/lib/rules/no-role-matches.js +0 -1
  624. data/node_modules/axe-core/lib/rules/not-html-matches.js +0 -1
  625. data/node_modules/axe-core/lib/rules/object-alt.json +0 -25
  626. data/node_modules/axe-core/lib/rules/p-as-heading-matches.js +0 -17
  627. data/node_modules/axe-core/lib/rules/p-as-heading.json +0 -13
  628. data/node_modules/axe-core/lib/rules/page-has-heading-one.json +0 -12
  629. data/node_modules/axe-core/lib/rules/radiogroup.json +0 -13
  630. data/node_modules/axe-core/lib/rules/region.json +0 -12
  631. data/node_modules/axe-core/lib/rules/role-img-alt.json +0 -19
  632. data/node_modules/axe-core/lib/rules/scope-attr-valid.json +0 -12
  633. data/node_modules/axe-core/lib/rules/scrollable-region-focusable-matches.js +0 -30
  634. data/node_modules/axe-core/lib/rules/scrollable-region-focusable.json +0 -12
  635. data/node_modules/axe-core/lib/rules/server-side-image-map.json +0 -18
  636. data/node_modules/axe-core/lib/rules/skip-link-matches.js +0 -1
  637. data/node_modules/axe-core/lib/rules/skip-link.json +0 -13
  638. data/node_modules/axe-core/lib/rules/svg-img-alt.json +0 -24
  639. data/node_modules/axe-core/lib/rules/svg-namespace-matches.js +0 -1
  640. data/node_modules/axe-core/lib/rules/tabindex.json +0 -12
  641. data/node_modules/axe-core/lib/rules/table-duplicate-name.json +0 -12
  642. data/node_modules/axe-core/lib/rules/table-fake-caption.json +0 -20
  643. data/node_modules/axe-core/lib/rules/td-has-header.json +0 -20
  644. data/node_modules/axe-core/lib/rules/td-headers-attr.json +0 -12
  645. data/node_modules/axe-core/lib/rules/th-has-data-cells.json +0 -13
  646. data/node_modules/axe-core/lib/rules/valid-lang.json +0 -13
  647. data/node_modules/axe-core/lib/rules/video-caption.json +0 -19
  648. data/node_modules/axe-core/lib/rules/video-description.json +0 -21
  649. data/node_modules/axe-core/lib/rules/window-is-top.js +0 -3
  650. data/node_modules/axe-core/lib/rules/xml-lang-mismatch-matches.js +0 -12
  651. data/node_modules/axe-core/typings/axe-core/axe-core-tests.ts +0 -188
@@ -1,842 +1,984 @@
1
1
  {
2
- "lang": "fr",
3
- "rules": {
4
- "accesskeys": {
5
- "description": "S’assure que chaque valeur de l’attribut accesskey soit unique",
6
- "help": "La valeur de l’attribut accesskey doit être unique"
7
- },
8
- "area-alt": {
9
- "description": "S’assure que les éléments <area> d’une image réactive ont une alternative textuelle",
10
- "help": "Les éléments <area> actifs doivent avoir une alternative textuelle"
11
- },
12
- "aria-allowed-attr": {
13
- "description": "S’assure que les attributs ARIA sont autorisés pour le rôle d’un élément",
14
- "help": "Les éléments doivent seulement utiliser les attributs ARIA autorisés"
15
- },
16
- "aria-allowed-role": {
17
- "description": "S’assure que l’attribut role a une valeur valide pour cet élément",
18
- "help": "Le rôle ARIA doit être valide pour cet élément"
19
- },
20
- "aria-dpub-role-fallback": {
21
- "description": "S’assure que les rôles DPUB non supportés ne sont utilisés que sur des éléments avec des rôles implicites",
22
- "help": "Les rôles DPUB non supportés doivent être utilisés sur des éléments avec des rôles implicites"
23
- },
24
- "aria-hidden-body": {
25
- "description": "S’assure que aria-hidden='true' n’est pas présent sur le corps du document (élément body)",
26
- "help": "aria-hidden='true' ne doit pas être présent sur <body>"
27
- },
28
- "aria-hidden-focus": {
29
- "description": "S'assure que aria-hidden n'est pas assigmé aux éléments qui recoivent le focus au clavier",
30
- "help": "ARIA hidden n'est pas assigné aux éléments qui reçoivent le focus au clavier"
31
- },
32
- "aria-input-field-name": {
33
- "description": "S'assure que chaque champ de formulaire avec ARIA est dôté d'un intitulé accessible",
34
- "help": "Les champs de formulaire ARIA ont un intitulé accessible"
35
- },
36
- "aria-required-attr": {
37
- "description": "S’assure que les éléments avec des rôles ARIA ont les attributs ARIA requis",
38
- "help": "Les attributs ARIA requis doivent être présents"
39
- },
40
- "aria-required-children": {
41
- "description": "S’assure que les éléments avec un rôle ARIA comportent aussi des rôles pour les descendants directs",
42
- "help": "Certains rôles ARIA doivent comporter des descendants directs spécifiques"
43
- },
44
- "aria-required-parent": {
45
- "description": "S’assure que les éléments avec un rôle ARIA requérant des rôles parents y sont contenus",
46
- "help": "Certains rôles ARIA doivent être contenus par des parents spécifiques"
47
- },
48
- "aria-roledescription": {
49
- "description": "S'assure que aria-roledescription n'est utilisé que sur des éléments qui ont un rôle implicite ou explicite",
50
- "help": "Utiliser aria-roledescription sur les éléments dont le rôle a une valeur sémantique"
51
- },
52
- "aria-roles": {
53
- "description": "S’assure que les éléments avec un attribut role utilisent une valeur valide",
54
- "help": "Les rôles ARIA doivent se conformer aux valeurs valides"
55
- },
56
- "aria-toggle-field-name": {
57
- "description": "S'assure que chaque champ de basculement ARIA a un libellé accessible",
58
- "help": "Les champs de basculement ARIA ont un libellé accessible"
59
- },
60
- "aria-valid-attr-value": {
61
- "description": "Sassure que tous les attributs ARIA comportent des valeurs valides",
62
- "help": "Les attributs ARIA doivent comporter des valeurs valides"
63
- },
64
- "aria-valid-attr": {
65
- "description": "S’assure que les attributs commençant par aria- sont des attributs ARIA valides",
66
- "help": "Les attributs ARIA doivent se conformer aux noms valides"
67
- },
68
- "audio-caption": {
69
- "description": "S’assure que les éléments <audio> ont des sous-titres",
70
- "help": "Les éléments <audio> doivent avoir une psite de sous-titres"
71
- },
72
- "autocomplete-valid": {
73
- "description": "S’assure que l’attribut autocomplete est correctement adapté au champ de formulaire",
74
- "help": "L’attribut autocomplete doit être utilisé correctement"
75
- },
76
- "avoid-inline-spacing": {
77
- "description": "S'assure que l'espacement du texte défini à travers une attribution de styles peut être ajusté via une feuille de style personalisée",
78
- "help": "L'espacement du texte inline peut être ajusté avec des feuilles de style personalisées"
79
- },
80
- "blink": {
81
- "description": "S’assure que l’élément <blink> n’est pas utilisé",
82
- "help": "L’élément <blink> est déprécié et ne doit pas être utilisé"
83
- },
84
- "button-name": {
85
- "description": "S’assure que les boutons ont un texte perceptible",
86
- "help": "Les boutons doivent avoir un texte perceptible"
87
- },
88
- "bypass": {
89
- "description": "S’assure que chaque page dispose au minimum d’un mécanisme de contournement de la navigation pour accéder directement au contenu",
90
- "help": "Chaque page doit fournir des moyens de contourner les contenus répétés"
91
- },
92
- "checkboxgroup": {
93
- "description": "S’assure que les éléments <input type=\"checkbox\"> en relation sont regroupés et que la désignation du groupe est cohérente",
94
- "help": "Les cases à cocher avec la même valeur pour l’attribut name doivent faire partie d’un groupe"
95
- },
96
- "color-contrast": {
97
- "description": "S’assure que les contrastes entre le premier plan et l’arrière-plan rencontrent les seuils de contrastes exigés par les WCAG 2 AA",
98
- "help": "Les éléments doivent avoir un contraste de couleurs suffisant"
99
- },
100
- "css-orientation-lock": {
101
- "description": "S'assure que les contenus ne sont pas limités à une orientation spécifique de l'écran, et que le contenu est utilisable sous toutes les orientations de l'écran",
102
- "help": "Les CSS Media queries ne sont pas utilisées pour vérrouiller l'orientation de l'écran"
103
- },
104
- "definition-list": {
105
- "description": "S’assure que les éléments <dl> sont correctement structurés",
106
- "help": "Les éléments <dl> ne doivent contenir directement que des groupes d’éléments <dt> et <dd> correctement ordonnés, ou des éléments <script> ou <template>"
107
- },
108
- "dlitem": {
109
- "description": "S’assure que les éléments <dt> et <dd> sont contenus dans un élément <dl>",
110
- "help": "Les éléments <dt> et <dd> doivent être contenus dans un élément <dl>"
111
- },
112
- "document-title": {
113
- "description": "S’assure que chaque document HTML contient un élément <title> non vide",
114
- "help": "Chaque document doit avoir un élément <title> pour aider à la navigation"
115
- },
116
- "duplicate-id-active": {
117
- "description": "S'assure que la valeur d'attribut id de chaque élément actif est unique",
118
- "help": "Les IDs des éléments actifs doivent être uniques"
119
- },
120
- "duplicate-id-aria": {
121
- "description": "S'assure que chaque valeur d'attribut id utilisée avec ARIA et dans les étiquettes est unique",
122
- "help": "Les IDs utilisés avec ARIA et dans les étiquettes doivent être uniques"
123
- },
124
- "duplicate-id": {
125
- "description": "S’assure que la valeur de chaque attribut id est unique",
126
- "help": "La valeur de l’attribut id doit être unique"
127
- },
128
- "empty-heading": {
129
- "description": "S’assure que les niveaux de titre ont un texte perceptible",
130
- "help": "Les niveaux de titre ne doivent pas être vides"
131
- },
132
- "focus-order-semantics": {
133
- "description": "S’assure que les éléments dans le parcours du focus onnt un rôle approprié",
134
- "help": "Les éléments dans le parcours du focus doivent avoir un rôle approprié pour le contenu interactif"
135
- },
136
- "form-field-multiple-labels": {
137
- "description": "S'assure que le champ de formulaire n'a pas plusieurs éléments d'étiquettes",
138
- "help": "Le champ de formulaire ne devrait pas comporter plusieurs éléments d'étiquettes"
139
- },
140
- "frame-tested": {
141
- "description": "S’assure que les éléments <iframe> et <frame> contiennent le script axe-core",
142
- "help": "Les cadres doivent être testés avec axe-core"
143
- },
144
- "frame-title-unique": {
145
- "description": "S’assure que les éléments <iframe> et <frame> ont un attribut title unique",
146
- "help": "Chaque cadre doit avoir un attribut title unique"
147
- },
148
- "frame-title": {
149
- "description": "S’assure que les éléments <iframe> et <frame> ont un attribut title non vide",
150
- "help": "Chaque cadre doit avoir un attribut title"
151
- },
152
- "heading-order": {
153
- "description": "S’assure que la hiérarchie des niveaux de titre est sémantiquement correcte",
154
- "help": "Les niveaux de titre doivent s’incrémenter d’un seul niveau à la fois"
155
- },
156
- "hidden-content": {
157
- "description": "Informe les utilisateurs sur les contenus cachés",
158
- "help": "Le contenu caché sur la page ne peut pas être analysé"
159
- },
160
- "html-has-lang": {
161
- "description": "S’assure que chaque document HTML a un attribut lang",
162
- "help": "L’élément <html> doit avoir un attribut lang"
163
- },
164
- "html-lang-valid": {
165
- "description": "S’assure que l’attribut lang sur l’élément <html> a une valeur valide",
166
- "help": "L’élément <html> doit avoir une valeur valide pour l’attribut lang"
167
- },
168
- "html-xml-lang-mismatch": {
169
- "description": "S’assure que les éléments HTML avec les attributs lang et xml:lang valides indiquent la même langue de base pour la page",
170
- "help": "Les éléments HTML avec les attributs lang et xml:lang doivent avoir la même langue de base"
171
- },
172
- "image-alt": {
173
- "description": "S’assure que les éléments <img> ont une alternative textuelle, ou un rôle de type 'none' ou 'presentation'",
174
- "help": "Les images doivent avoir une alternative textuelle"
175
- },
176
- "image-redundant-alt": {
177
- "description": "S’assure que l’intitulé des liens et boutons n’est pas répété dans l’alternative de l’image",
178
- "help": "L’intitulé des liens et boutons ne doit pas être répété dans l’alternative de l’image"
179
- },
180
- "input-button-name": {
181
- "description": "S'assure que la valeur textuelle des contrôles de boutons est perceptible",
182
- "help": "La valeur textuelle des contrôles de boutons doit être perceptible"
183
- },
184
- "input-image-alt": {
185
- "description": "S’assure que les éléments <input type=\"image\"> ont une alternative textuelle",
186
- "help": "Les boutons images doivent avoir une alternative textuelle"
187
- },
188
- "label-content-name-mismatch": {
189
- "description": "S'assure que dans le cas d'éléments identifiés par leur contenu textuel, le texte visible fait partie du intitulé accessible",
190
- "help": "Le contenu textuel des éléments doit aussi se retrouver dans leur intitulé accessible"
191
- },
192
- "label-title-only": {
193
- "description": "S’assure que chaque élément de formulaire n’est pas labellisé uniquement par les attributs title ou aria-describedby",
194
- "help": "Chaque élément de formulaire doit avoir un label visible"
195
- },
196
- "label": {
197
- "description": "S’assure que chaque élément de formulaire a une étiquette",
198
- "help": "Chaque élément de formulaire doit avoir une étiquette"
199
- },
200
- "landmark-banner-is-top-level": {
201
- "description": "La région banner ne devrait pas être contenue dans une autre région",
202
- "help": "La région banner doit être au niveau le plus haut"
203
- },
204
- "landmark-complementary-is-top-level": {
205
- "description": "S'assure que les landmarks complementary ou aside se retrouvent au plus haut niveau",
206
- "help": "Aside ne doit pas être contenu dans un autre landmark"
207
- },
208
- "landmark-contentinfo-is-top-level": {
209
- "description": "La région contentinfo ne devrait pas être contenue dans une autre région",
210
- "help": "La région contentinfo doit être au niveau le plus haut"
211
- },
212
- "landmark-main-is-top-level": {
213
- "description": "La région main ne devrait pas être contenue dans une autre région",
214
- "help": "La région main doit être au niveau le plus haut"
215
- },
216
- "landmark-no-duplicate-banner": {
217
- "description": "S’assure que le document n’a pas plus d’une région banner",
218
- "help": "Le document contient au plus une région banner"
219
- },
220
- "landmark-no-duplicate-contentinfo": {
221
- "description": "S’assure que le document n’a pas plus d’une région contentinfo",
222
- "help": "Le document contient au plus une région contentinfo"
223
- },
224
- "landmark-no-duplicate-main": {
225
- "description": "S'assure que le document a tout au plus, un seul landmark main",
226
- "help": "Le document ne doit pas contenir plus d'un landmark main"
227
- },
228
- "landmark-one-main": {
229
- "description": "S’assure qu’une navigation pointe vers le contenu principal de la page. Si la page contient des iframes, chaque iframe ne doit contenir au plus qu’une région main",
230
- "help": "La page doit contenir une région main"
231
- },
232
- "landmark-unique": {
233
- "help": "S'assure que chaque landmark est unique",
234
- "description": "Les landmarks doivent comporter un rôle unique, ou une étiquette accessible par la combinaison de role/label/title"
235
- },
236
- "layout-table": {
237
- "description": "S’assure que les éléments <table> de présentation n’utilisent pas les éléments <th>, <caption> ni l’attribut summary",
238
- "help": "Les tableaux de présentation ne doivent pas utiliser les éléments de tableaux de données"
239
- },
240
- "link-in-text-block": {
241
- "description": "Les liens doivent pouvoir être distingués autrement que par la couleur",
242
- "help": "Les liens doivent pouvoir être distingués du texte environnant d’une façon qui ne repose pas sur la couleur"
243
- },
244
- "link-name": {
245
- "description": "S’assure que les liens ont un texte perceptible",
246
- "help": "Les liens doivent avoir un texte perceptible"
247
- },
248
- "list": {
249
- "description": "S’assure que les listes sont structurées correctement",
250
- "help": "<ul> et <ol> doivent ne contenir directement que des éléments <li>, <script> ou <template>"
251
- },
252
- "listitem": {
253
- "description": "S’assure que les éléments <li> sont utilisés sémantiquement",
254
- "help": "Les éléments <li> doivent être contenus dans un élément <ul> ou <ol>"
255
- },
256
- "marquee": {
257
- "description": "S’assure que l’élément <marquee> n’est pas utilisé",
258
- "help": "L’élément <marquee> est déprécié et ne doit pas être utilisé"
259
- },
260
- "meta-refresh": {
261
- "description": "S’assure que <meta http-equiv=\"refresh\"> n’est pas utilisé",
262
- "help": "La page HTML ne doit pas être actualisée automatiquement"
263
- },
264
- "meta-viewport-large": {
265
- "description": "Sassure que <meta name=\"viewport\"> permet un agrandissement significatif",
266
- "help": "Les utilisateurs devraient pouvoir zoomer et agrandir le texte jusqu’à 500%"
267
- },
268
- "meta-viewport": {
269
- "description": "S’assure que <meta name=\"viewport\"> ne désactive pas le zoom ni l’agrandissement",
270
- "help": "Le zoom et l’agrandissement ne doivent pas être désactivés"
271
- },
272
- "object-alt": {
273
- "description": "S’assure que les éléments <object> ont une alternative textuelle",
274
- "help": "Les éléments <object> doivent avoir une alternative textuelle"
275
- },
276
- "p-as-heading": {
277
- "description": "S’assure que les éléments p ne sont pas utilisés pour styler des niveaux de titres",
278
- "help": "La graisse, le style et le corps du texte ne doivent pas être utilisés pour styler les éléments p comme des niveaux de titres"
279
- },
280
- "page-has-heading-one": {
281
- "description": "S’assure que la page, ou au moins une de ses iframes, contient un titre de niveau un",
282
- "help": "La page doit contenir un titre de niveau un"
283
- },
284
- "radiogroup": {
285
- "description": "S’assure que les éléments <input type=\"radio\"> liés sont regroupés et que le nom du groupe est cohérent",
286
- "help": "Les boutons radios ayant le même attribut name doivent être regroupés"
287
- },
288
- "region": {
289
- "description": "S’assure que tout le contenu est localisé dans une région",
290
- "help": "Le contenu doit être localisé dans une région"
291
- },
292
- "role-img-alt": {
293
- "description": "S'assure que les éléments avec [role='img'] ont une équivalence textuelle",
294
- "help": "Les éléments avec [role='img'] ont une équivalence textuelle"
295
- },
296
- "scope-attr-valid": {
297
- "description": "S’assure que l’attribut scope est utilisé correctement dans les tableaux",
298
- "help": "L’attribut scope doit être utilisé correctement"
299
- },
300
- "scrollable-region-focusable": {
301
- "description": "Les éléments dont le contenu défile devraient être accesibles au clavier",
302
- "help": "S'assure que les régions défilantes sont accessibles au clavier"
303
- },
304
- "server-side-image-map": {
305
- "description": "S’assure que les images réactives côté serveur ne sont pas utilisées",
306
- "help": "Les images réactives côté serveur ne devraient pas être utilisées"
307
- },
308
- "skip-link": {
309
- "description": "S’assure que tous les liens d’évitement ont une cible pouvant recevoir le focus",
310
- "help": "La cible d’un lien d’évitement doit exister et pouvoir recevoir le focus"
311
- },
312
- "tabindex": {
313
- "description": "S’assure que les valeurs de l’attribut tabindex ne sont pas supérieures à 0",
314
- "help": "Aucun élément ne devrait avoir un tabindex avec une valeur supérieure à zéro"
315
- },
316
- "table-duplicate-name": {
317
- "description": "S’assure que chaque tableau n’ait pas un summary et un caption identiques",
318
- "help": "L’élément <caption> ne devrait pas contenir le même texte que l’attribut summary"
319
- },
320
- "table-fake-caption": {
321
- "description": "S’assure que les tableaux avec une légende utilisent l’élément <caption>",
322
- "help": "Les données ou les cellules d’entête ne devraient pas être utilisées pour légender un tableau de données"
323
- },
324
- "td-has-header": {
325
- "description": "S’assure que chaque cellule de données non vide dans un tableau de données a une ou plusieurs cellules d’entête",
326
- "help": "Chaque élément td non vide dans un tableau plus grand que 3 × 3 doit avoir une cellule d’entête associée"
327
- },
328
- "td-headers-attr": {
329
- "description": "S’assure que chaque cellule utilisant l’attribut headers fait référence à une autre cellule du même tableau",
330
- "help": "Les cellules utilisant l’attribut headers ne doivent faire référence qu’à d’autres cellules du même tableau"
331
- },
332
- "th-has-data-cells": {
333
- "description": "S’assure que chaque cellule d’entête dans un tableau de données fait référence à des cellules de données",
334
- "help": "Tous les éléments th et ceux avec role=columnheader/rowheader doivent décrire des cellules de données"
335
- },
336
- "valid-lang": {
337
- "description": "S’assure que les attributs lang ont des valeurs valides",
338
- "help": "L’attribut lang doit avoir une valeur valide"
339
- },
340
- "video-caption": {
341
- "description": "S’assure que les éléments <video> ont des sous-titres",
342
- "help": "Les éléments <video> doivent avoir des sous-titres"
343
- },
344
- "video-description": {
345
- "description": "S’assure que les éléments <video> ont des audiodescriptions",
346
- "help": "Les éléments <video> doivent avoir des audiodescriptions"
347
- }
348
- },
349
- "checks": {
350
- "abstractrole": {
351
- "pass": "Les rôles abstraits ne sont pas utilisés",
352
- "fail": "Les rôles abstraits ne peuvent pas être utilisés directement"
353
- },
354
- "aria-allowed-attr": {
355
- "pass": "Les attributs ARIA sont utilisés correctement pour le rôle défini",
356
- "fail": {
357
- "singular": "L'attribut ARIA n'est pas autorisé: ${data.values}",
358
- "plural": "Les attributs ARIA ne sont pas autorisés: ${data.values}"
359
- }
360
- },
361
- "aria-allowed-role": {
362
- "pass": "Le rôle ARIA est autorisé pour l’élément donné",
363
- "fail": {
364
- "singular": "Le rôle ARIA ${data.values} n'est pas autorisé pour l'élément donné",
365
- "plural": "Les rôles ARIA ${data.values} ne sont pas autorisés pour l'élément donné"
366
- },
367
- "incomplete": {
368
- "singular": "Le rôle ARIA ${data.values} doit être retiré lorsque l'élément est rendu visible, car il n'est pas autorisé pour cet élément",
369
- "plural": "Les rôles ARIA ${data.values} doivent être retirés lorsque l'élément est rendu visible, car il nee sont pas autorisés pour cet élément"
370
- }
371
- },
372
- "aria-hidden-body": {
373
- "pass": "Aucun attribut aria-hidden n’est présent sur body",
374
- "fail": "aria-hidden=true ne devrait pas être présent sur body"
375
- },
376
- "aria-roledescription": {
377
- "pass": "aria-roledescription utilisé sur un élément sémantique supporté",
378
- "incomplete": "Vérifier que la valeur de aria-roledescription est annoncée par les lecteurs d'écran supportés",
379
- "fail": "Attribuer à l'élément un role qui supporte aria-roledescription"
380
- },
381
- "aria-errormessage": {
382
- "pass": "Utilise une technique prise en charge pour aria-errormessage",
383
- "fail": {
384
- "singular": "La valeur de aria-errormessage `${data.values}` doit recourir à une technique pour annoncer le message (aria-live, aria-describedby, role=alert, etc.)",
385
- "plural": "Les valeurs aria-errormessage `${data.values}` doivent recourir à une technique pour annoncer le message (aria-live, aria-describedby, role=alert, etc.)"
386
- }
387
- },
388
- "has-widget-role": {
389
- "pass": "L’élément a un rôle widget.",
390
- "fail": "L’élément n’a pas de rôle widget."
391
- },
392
- "implicit-role-fallback": {
393
- "pass": "Le rôle ARIA implicite de l’élément est un repli approprié",
394
- "fail": "Le rôle ARIA implicite de l’élément n’est pas un bon repli pour ce rôle (non pris en charge)"
395
- },
396
- "invalidrole": {
397
- "pass": "Le rôle ARIA est valide",
398
- "fail": "Le rôle doit être un des rôles ARIA valides"
399
- },
400
- "no-implicit-explicit-label": {
401
- "pass": "Il n'y a pas de décalage entre le <label> et le intitulé accessible",
402
- "incomplete": "Vérifier que le <label> n'a pas à faire partie du nom du champ de formulaire ARIA ${data}"
403
- },
404
- "aria-required-attr": {
405
- "pass": "Tous les attributs ARIA requis sont présents",
406
- "fail": {
407
- "singular": "L'attribut ARIA requis est manquant: ${data.values}",
408
- "plural": "Les attributs ARIA requis sont manquants: ${data.values}"
409
- }
410
- },
411
- "aria-required-children": {
412
- "pass": "Les descendants ARIA requis sont présents",
413
- "fail": {
414
- "singular": "Le descendant ARIA requis est manquant: ${data.values}",
415
- "plural": "Les descendants ARIA requis sont manquants: ${data.values}"
416
- },
417
- "incomplete": {
418
- "singular": "Le rôle du descendant ARIA attendu doit être ajouté: ${data.values}",
419
- "plural": "Les rôles des descendants ARIA attendus doivent être ajoutés: ${data.values}"
420
- }
421
- },
422
- "aria-required-parent": {
423
- "pass": "Les rôles parents ARIA requis sont présents",
424
- "fail": {
425
- "singular": "Le rôle parent ARIA requis est manquant: ${data.values}",
426
- "plural": "Les rôles parents ARIA requis sont manquants: ${data.values}"
427
- }
428
- },
429
- "aria-unsupported-attr": {
430
- "pass": "L'attribut ARIA est supporté",
431
- "fail": "L'attribut ARIA n'est pas suffisamment supporté par les lecteurs d'écran et autres technologies d'assistance: ${data.values}"
432
- },
433
- "unsupportedrole": {
434
- "pass": "Le rôle ARIA est supporté",
435
- "fail": "Le rôle utilisé n’est pas suffisamment supporté par les technologies d’assistance"
436
- },
437
- "aria-valid-attr-value": {
438
- "pass": "Les valeurs d’attribut ARIA sont valides",
439
- "fail": {
440
- "singular": "La valeur d’attribut ARIA est invalide: ${data.values}",
441
- "plural": "Les valeurs d’attribut ARIA sont invalides: ${data.values}"
442
- },
443
- "incomplete": {
444
- "singular": "Le id de l'attribut ARIA de l'élément n'existe pas dans cette page: ${data.values}",
445
- "plural": "Le id de l'attribut ARIA des éléments n'existent pas dans cette page: ${data.values}"
446
- }
447
- },
448
- "aria-valid-attr": {
449
- "pass": "{{=it.data && it.data.length > 1 ? 'Les noms d’attributs ARIA sont valides' : 'Le nom d’attribut ARIA est valide'}}",
450
- "fail": {
451
- "singular": "Le nom d’attribut ARIA est invalide: ${data.values}",
452
- "plural": "Les noms d’attributs ARIA sont invalides: ${data.values}"
453
- }
454
- },
455
- "valid-scrollable-semantics": {
456
- "pass": "L’élément a une sémantique valide pour un élément dans l’ordre de tabulation.",
457
- "fail": "L’élément n’a pas une sémantique valide pour un élément dans l’ordre de tabulation."
458
- },
459
- "color-contrast": {
460
- "pass": "L’élément a un contraste de couleurs suffisant de {{=it.data.contrastRatio}}",
461
- "fail": "L’élément a un contraste de couleurs insuffisant de {{=it.data.contrastRatio}} (couleur du texte : {{=it.data.fgColor}}, couleur d’arrière-plan : {{=it.data.bgColor}}, corps : {{=it.data.fontSize}}, graisse : {{=it.data.fontWeight}}). Le rapport de contraste attendu est {{=it.data.expectedContrastRatio}}",
462
- "incomplete": {
463
- "default": "Impossible de déterminer le rapport de contraste",
464
- "bgImage": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’une image d’arrière-plan",
465
- "bgGradient": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’un dégradé d’arrière-plan",
466
- "imgNode": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément contient une balise image",
467
- "bgOverlap": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car un autre élément le chevauche",
468
- "fgAlpha": "La couleur du texte de l’élément n’a pu être déterminée à cause d’une opacité réduite",
469
- "elmPartiallyObscured": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément est partiellement masqué par un autre élément",
470
- "elmPartiallyObscuring": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il chevauche partiellement un autre élément",
471
- "outsideViewport": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il est à l’extérieur du viewport",
472
- "equalRatio": "L’élément a un rapport de contraste de 1:1 avec son arrière-plan",
473
- "shortTextContent": "Le contenu de l'élément est trop court pour déterminer S'il s'agit réellement de contenu textuel"
474
- }
475
- },
476
- "link-in-text-block": {
477
- "pass": "Les liens peuvent être distingués du texte environnant par un autre moyen que la couleur",
478
- "fail": "Les liens doivent se distinguer du texte environnant par un autre moyen que la couleur",
479
- "incomplete": {
480
- "default": "Impossible de déterminer le rapport de contraste",
481
- "bgContrast": "Le rapport de contraste de l’élément na pu être déterminé. Recherchez un style différent pour le hover/focus.",
482
- "bgImage": "Le rapport de contraste de l’élément na pu être déterminé à cause d’une image d’arrière-plan",
483
- "bgGradient": "Le rapport de contraste de l’élément n’a pu être déterminé à cause d’un dégradé d’arrière-plan",
484
- "imgNode": "Le rapport de contraste de l’élément n’a pu être déterminé, car l’élément contient une balise image",
485
- "bgOverlap": "Le rapport de contraste de l’élément n’a pu être déterminé à cause d’un chevauchement"
486
- }
487
- },
488
- "autocomplete-appropriate": {
489
- "pass": "La valeur autocomplete est sur un élément approprié",
490
- "fail": "La valeur autocomplete est inappropriée sur ce type de champ de formulaire"
491
- },
492
- "autocomplete-valid": {
493
- "pass": "L’attribut autocomplete est formaté correctement",
494
- "fail": "L’attribut autocomplete est formaté incorrectement"
495
- },
496
- "fieldset": {
497
- "pass": "L’élément est contenu dans un fieldset",
498
- "fail": {
499
- "default": "L’élément n'est pas contenu dans un fieldset ou un ARIA group",
500
- "no-legend": "Le fieldset ne possède pas un legend comme descendant direct",
501
- "empty-legend": "Le legend n'offre pas de texte visible pour les lecteurs d'écran",
502
- "mixed-inputs": "Le fieldset contient des contrôles sans rapports directs",
503
- "no-group-label": "Le ARIA group ne possèdee pas de aria-label ou aria-labelledby",
504
- "group-mixed-inputs": "Le ARIA group contient des contrôles sans rapports directs"
505
- }
506
- },
507
- "group-labelledby": {
508
- "pass": "Tous les éléments avec le nom \"{{=it.data.name}}\" font référence au même élément avec aria-labelledby",
509
- "fail": {
510
- "default": "Les éléments avec le nom \"${data.name}\" ne possèdent pas à la fois une étiquette commune, et une étiquette unique référencée par aria-labelledby",
511
- "no-shared-label": "Les éléments avec le nom \"${data.name}\" ne partagent pas tous une étiquette commune, référencée par aria-labelledby",
512
- "no-unique-label": "Les éléments avec le nom \"${data.name}\" n'ont pas tous une étiquette unique, référencée par aria-labelledby"
513
- }
514
- },
515
- "accesskeys": {
516
- "pass": "La valeur de l'attribut accesskey est unique",
517
- "fail": "Plusieurs éléments ont le même accesskey au sein du document"
518
- },
519
- "focusable-content": {
520
- "pass": "L'élément contient des éléments focalisables",
521
- "fail": "L'élément devrait avoir du contenu focalisable"
522
- },
523
- "focusable-disabled": {
524
- "pass": "Aucun élément focalisable contenu dans l'élément",
525
- "fail": "Le contenu focalisable devrait être désactivé ou retiré du DOM"
526
- },
527
- "focusable-element": {
528
- "pass": "L'élément est focalisable",
529
- "fail": "L'élément devrait être focalisable"
530
- },
531
- "focusable-no-name": {
532
- "pass": "L’élément n’est pas dans l’ordre de tabulation ou a un intitulé accessible",
533
- "fail": "L’élément est dans lordre de tabulation et n’a pas d’intitulé accessible"
534
- },
535
- "focusable-not-tabbable": {
536
- "pass": "Aucun élément focalisable contenu dans l'élément",
537
- "fail": "Le contenu focalisable devrait se voir assigné un tabindex='-1' ou être retiré du DOM"
538
- },
539
- "landmark-is-top-level": {
540
- "pass": "La région {{=it.data.role }} est au niveau le plus haut.",
541
- "fail": "La région {{=it.data.role }} est contenue dans une autre région."
542
- },
543
- "page-has-heading-one": {
544
- "pass": "La page a au moins un titre de niveau un",
545
- "fail": "La page doit avoir un titre de niveau un"
546
- },
547
- "page-has-main": {
548
- "pass": "La page a au moins une région main",
549
- "fail": "La page doit avoir une région main"
550
- },
551
- "page-no-duplicate-banner": {
552
- "pass": "Le document n’a pas plus d’une région banner",
553
- "fail": "Le document a plus dune région banner"
554
- },
555
- "page-no-duplicate-contentinfo": {
556
- "pass": "Le document n’a pas plus d’une région contentinfo",
557
- "fail": "Le document a plus d’une région contentinfo"
558
- },
559
- "page-no-duplicate-main": {
560
- "pass": "Le document n’a pas plus d’une région main",
561
- "fail": "Le document a plus d’une région banner"
562
- },
563
- "tabindex": {
564
- "pass": "L’élément n’a pas de tabindex supérieur à 0",
565
- "fail": "L’élément a un tabindex supérieur à 0"
566
- },
567
- "alt-space-value": {
568
- "pass": "L'élément a une valeur d'attribut alt valide",
569
- "fail": "L'élément a un attribut alt qui contient un caractères d'espacement, qui n'est pas ignoré par les lecteurs d'écran"
570
- },
571
- "duplicate-img-label": {
572
- "pass": "L’élément ne duplique pas un texte existant dans lalternative textuelle de l’élément <img>",
573
- "fail": "L’élément contient un élément <img> dont l’alternative textuelle duplique un texte existant"
574
- },
575
- "explicit-label": {
576
- "pass": "L’élément de formulaire a un <label> explicite",
577
- "fail": "L’élément de formulaire n’a pas de <label> explicite"
578
- },
579
- "help-same-as-label": {
580
- "pass": "L’aide à la saisie (title ou aria-describedby) ne duplique pas le contenu du label",
581
- "fail": "L’aide à la saisie (title ou aria-describedby) est identique au contenu du label"
582
- },
583
- "hidden-explicit-label": {
584
- "pass": "L’élément de formulaire a un <label> visible et explicite",
585
- "fail": "L’élément de formulaire a un <label> explicite qui est masqué"
586
- },
587
- "implicit-label": {
588
- "pass": "L’élément de formulaire a un <label> implicite (imbriqué)",
589
- "fail": "L’élément de formulaire n’a pas de <label> implicite (imbriqué)"
590
- },
591
- "label-content-name-mismatch": {
592
- "pass": "L'élément contient du texte visible qui n'est pas inclus dans l'intitulé accessible",
593
- "fail": "Le texte contenu dans l'élément n'est pas inclus dans l'intitulé accessible"
594
- },
595
- "multiple-label": {
596
- "pass": "L’élément de formulaire n’a pas plusieurs éléments <label>",
597
- "incomplete": "Des éléments associés à plusieurs étiquettes ne sont pas suffisamment supportés par les teechnologies d'assistance. S'assurer que la première étiquette contient toute l'information nécessaire."
598
- },
599
- "title-only": {
600
- "pass": "L’élément de formulaire n’a pas uniquement l’attribut title comme étiquette",
601
- "fail": "Seul l’attribut title est utilisé comme étiquette pour l’élément de formulaire"
602
- },
603
- "landmark-is-unique": {
604
- "pass": "Les landmarks doivent comporter un rôle unique, ou une étiquette accessible par la combinaison de role/label/title",
605
- "fail": "L'attribut landmark doit comporter une valeur d'attribut aria-label, aria-labelledby, ou title unique pour rendre le landmark distinct"
606
- },
607
- "has-lang": {
608
- "pass": "L’élément <html> a un attribut lang",
609
- "fail": "L’élément <html> n’a pas d’attribut lang"
610
- },
611
- "valid-lang": {
612
- "pass": "La valeur de l’attribut lang fait partie des codes de langues valides",
613
- "fail": "La valeur de l’attribut lang ne fait pas partie des codes de langues valides"
614
- },
615
- "xml-lang-mismatch": {
616
- "pass": "Les attributs lang et xml:lang indiquent la même langue de base",
617
- "fail": "Les attributs lang et xml:lang indiquent des langues de base différentes"
618
- },
619
- "dlitem": {
620
- "pass": "L’item de liste de description a un élément <dl> parent",
621
- "fail": "L’item de liste de description n’a pas d’élément <dl> parent"
622
- },
623
- "listitem": {
624
- "pass": "L’item de liste a un élément <ul>, <ol> ou role=\"list\" parent",
625
- "fail": {
626
- "default": "L'item de liste n'a pas d'élément <ul> ou <ol> parent",
627
- "roleNotValid": "L'item de liste n'a pas d'élément <ul> ou <ol> parent sans un role ou un role=\"list\""
628
- }
629
- },
630
- "only-dlitems": {
631
- "pass": "L’élément de liste n’a que des descendants directs qui sont autorisés dans les éléments <dt> ou <dd>",
632
- "fail": "L’élément de liste a des descendants directs qui ne sont pas autorisés dans les éléments <dt> ou <dd>"
633
- },
634
- "only-listitems": {
635
- "pass": "L’élément de liste n’a que des descendants directs qui sont autorisés dans les éléments <li>",
636
- "fail": {
637
- "default": "L’élément de liste comporte des descendants directs qui ne sont pas autorisés à l'intérieur de l'élément <li>",
638
- "roleNotValid": "L’élément de liste comporte des descendants directs avec un rôle qui n'est pas autorisé: ${data.roles}"
639
- }
640
- },
641
- "structured-dlitems": {
642
- "pass": "S’il n’est pas vide, l’élément contient au moins un élément <dt> et un élément <dd>",
643
- "fail": "S’il n’est pas vide, l’élément doit contenir au moins un élément <dt> et un élément <dd>"
644
- },
645
- "caption": {
646
- "pass": "L’élément multimédia a une piste de sous-titres",
647
- "incomplete": "Aucune piste de sous-titres n’a pu être trouvée pour cet élément"
648
- },
649
- "description": {
650
- "pass": "L’élément multimédia a une piste d’audiodescription",
651
- "incomplete": "Aucune piste d’audiodescription n’a pu être trouvée pour cet élément"
652
- },
653
- "frame-tested": {
654
- "pass": "L’iframe a été testée avec axe-core",
655
- "fail": "L’iframe n’a pu être testée avec axe-core",
656
- "incomplete": "L’iframe doit encore être testée avec axe-core"
657
- },
658
- "css-orientation-lock": {
659
- "pass": "L'utilisation de l'écran est indépendant de l'orientation et n'est pas limitée à un mode d'affichage donné",
660
- "fail": "L'utilisation de l'écran est limitée à une orientation donnée par CSS, rendant l'affichage inutilisable",
661
- "incomplete": "Le verouillage de l'orientation d'affichage par CSS ne peut être déterminé"
662
- },
663
- "meta-viewport-large": {
664
- "pass": "La balise <meta> ne limite pas l’agrandissement sur les appareils mobiles",
665
- "fail": "La balise <meta> limite lagrandissement sur les appareils mobiles"
666
- },
667
- "meta-viewport": {
668
- "pass": "La balise <meta> n’empêche pas l’agrandissement sur les appareils mobiles",
669
- "fail": "La balise <meta> empêche l’agrandissement sur les appareils mobiles"
670
- },
671
- "header-present": {
672
- "pass": "La page a un entête",
673
- "fail": "La page n’a pas d’entête"
674
- },
675
- "heading-order": {
676
- "pass": "Hiérarchie entre les titres valide",
677
- "fail": "Hiérarchie entre les titres invalide"
678
- },
679
- "internal-link-present": {
680
- "pass": "Lien d’évitement valide trouvé",
681
- "fail": "Aucun lien d’évitement valide trouvé"
682
- },
683
- "landmark": {
684
- "pass": "La page a une région",
685
- "fail": "La page n’a pas de région"
686
- },
687
- "meta-refresh": {
688
- "pass": "Aucune balise <meta> ne rafraîchit immédiatement la page",
689
- "fail": "La balise <meta> force le rafraîchissement minuté de la page"
690
- },
691
- "p-as-heading": {
692
- "pass": "Les éléments <p> ne sont pas stylés comme des titres",
693
- "fail": "Des titres doivent être utilisés au lieu de styler des éléments <p>"
694
- },
695
- "region": {
696
- "pass": "Contenu imbriqué dans une région ARIA",
697
- "fail": "Contenu non imbriqué dans une région ARIA"
698
- },
699
- "skip-link": {
700
- "pass": "La cible du lien d’évitement existe",
701
- "incomplete": "La cible du lien d’évitement devrait devenir visible lors de l’activation",
702
- "fail": "Lien d’évitement sans cible"
703
- },
704
- "unique-frame-title": {
705
- "pass": "Lattribut title de l’élément est unique",
706
- "fail": "L’attribut title de l’élément n’est pas unique"
707
- },
708
- "duplicate-id-active": {
709
- "pass": "Le document ne comporte aucun élément actif partageant la même valeur d'attribut id",
710
- "fail": "Le document comporte ou un plusieurs éléments actifs partageant la même valeur d'attribut id: ${data}"
711
- },
712
- "duplicate-id-aria": {
713
- "pass": "Le document ne comporte aucun élément référencés par ARIA ou étiquettes partageant la même valeur d'attribut id",
714
- "fail": "Le document comporte un ou plusieurs éléments référencés par ARIA partageant la même valeur d'attribut id: ${data}"
715
- },
716
- "duplicate-id": {
717
- "pass": "Le document n’a pas d’éléments qui partagent le même attribut id",
718
- "fail": "Le document a plusieurs éléments avec le même attribut id : {{=it.data}}"
719
- },
720
- "aria-label": {
721
- "pass": "L’attribut aria-label existe et n’est pas vide",
722
- "fail": "L’attribut aria-label n’existe pas ou est vide"
723
- },
724
- "aria-labelledby": {
725
- "pass": "L’attribut aria-labelledby existe et fait référence à des éléments visibles par les lecteurs d’écran",
726
- "fail": "L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles"
727
- },
728
- "avoid-inline-spacing": {
729
- "pass": "Aucun style inline affectant l'espacement du texte avec '!important' n'a été spécifié",
730
- "fail": {
731
- "singular": "Retirer '!important' du style inline ${data.values}, car le remplacement n'est pas pris en charge par la plupart des navigateurs",
732
- "plural": "Retirer '!important' des styles inline ${data.values}, car le remplacement n'est pas pris en charge par la plupart des navigateurs"
733
- }
734
- },
735
- "button-has-visible-text": {
736
- "pass": "L’élément a un contenu textuel visible par les lecteurs d’écran",
737
- "fail": "L’élément n’a aucun contenu textuel visible par les lecteurs d’écran"
738
- },
739
- "doc-has-title": {
740
- "pass": "Le document a un élément <title> non vide",
741
- "fail": "Le document n’a pas d’élément <title> non vide"
742
- },
743
- "exists": {
744
- "pass": "L’élément n’existe pas",
745
- "incomplete": "Element exists"
746
- },
747
- "has-alt": {
748
- "pass": "L’élément a un attribut alt",
749
- "fail": "L’élément n’a pas d’attribut alt"
750
- },
751
- "has-visible-text": {
752
- "pass": "L’élément a un contenu textuel visible par les lecteurs d’écran",
753
- "fail": "L’élément n’a aucun contenu textuel visible par les lecteurs d’écran"
754
- },
755
- "is-on-screen": {
756
- "pass": "L’élément n’est pas visible",
757
- "fail": "L’élément est visible"
758
- },
759
- "non-empty-alt": {
760
- "pass": "L’élément a un attribut alt non vide",
761
- "fail": "L’élément n’a pas d'attribut alt ou l’attribut alt est vide"
762
- },
763
- "non-empty-if-present": {
764
- "pass": {
765
- "default": "L'élément n'a pas d'attribut value",
766
- "has-label": "L'élément a un attribut value non-vide"
767
- },
768
- "fail": "L’élément a un attribut value, et cet attribut est vide"
769
- },
770
- "non-empty-title": {
771
- "pass": "L’élément a un attribut title",
772
- "fail": "L’élément n’a pas d’attribut title ou l’attribut title est vide."
773
- },
774
- "non-empty-value": {
775
- "pass": "L’élément a un attribut value non vide",
776
- "fail": "L’élément n’a pas d’attribut value, ou a un attribut value vide"
777
- },
778
- "role-none": {
779
- "pass": "La sémantique par défaut de l’élément est annulée avec role=\"none\"",
780
- "fail": "La sémantique par défaut de l’élément nest pas annulée avec role=\"none\""
781
- },
782
- "role-presentation": {
783
- "pass": "La sémantique par défaut de l’élément est annulée avec role=\"presentation\"",
784
- "fail": "La sémantique par défaut de l’élément n’est pas annulée avec role=\"presentation\""
785
- },
786
- "caption-faked": {
787
- "pass": "La première ligne d’un tableau n’est pas utilisée en guise de légende",
788
- "fail": "La première ligne d’un tableau devrait être un caption et non des cellules de tableau"
789
- },
790
- "has-caption": {
791
- "pass": "Le tableau de présentation n’utilise pas d’élément <caption>",
792
- "fail": "Le tableau de présentation utilise un élément <caption>"
793
- },
794
- "has-summary": {
795
- "pass": "Le tableau de présentation n’utilise pas d’attribut summary",
796
- "fail": "Le tableau de présentation utilise un attribut summary"
797
- },
798
- "has-th": {
799
- "pass": "Le tableau de présentation n’utilise pas d’éléments <th>",
800
- "fail": "Le tableau de présentation utilise des éléments <th>"
801
- },
802
- "html5-scope": {
803
- "pass": "L’attribut scope est utilisé uniquement sur des cellules d’entête de tableau",
804
- "fail": "En HTML 5, l’attribut scope ne peut être utilisé que sur des cellules d’entête de tableau"
805
- },
806
- "same-caption-summary": {
807
- "pass": "Les contenus de l’attribut summary et de <caption> ne sont pas identiques",
808
- "fail": "Les contenus de l’attribut summary et de <caption> sont identiques"
809
- },
810
- "scope-value": {
811
- "pass": "L’attribut scope est utilisé correctement",
812
- "fail": "La valeur de l’attribut scope ne peut être que 'row' ou 'col'"
813
- },
814
- "td-has-header": {
815
- "pass": "Toutes les cellules de données non vides ont un entête de tableau",
816
- "fail": "Certaines cellules de données non vides n’ont pas d’entête de tableau"
817
- },
818
- "td-headers-attr": {
819
- "pass": "L’attribut headers est utilisé exclusivement pour faire référence à d’autres cellules dans le tableau",
820
- "fail": "L’attribut headers n’est pas utilisé exclusivement pour faire référence à d’autres cellules dans le tableau"
821
- },
822
- "th-has-data-cells": {
823
- "pass": "Toutes les cellules d’entête de tableau font référence à des cellules de données",
824
- "fail": "Toutes les cellules d’entête de tableau ne font pas référence à des cellules de données",
825
- "incomplete": "Les cellules de données sont absentes ou vides"
826
- },
827
- "hidden-content": {
828
- "pass": "Tout le contenu de la page a été analysé.",
829
- "fail": "Il y a eu des problèmes pour analyser le contenu de cette page.",
830
- "incomplete": "Il y a du contenu caché sur la page qui n’a pas été analysé. Vous allez devoir modifier laffichage de ce contenu afin de l’analyser."
831
- }
832
- },
833
- "failureSummaries": {
834
- "any": {
835
- "failureMessage": "Corriger l’un des éléments suivants : {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
836
- },
837
- "none": {
838
- "failureMessage": "Corriger tous les éléments suivants : {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
839
- }
840
- },
841
- "incompleteFallbackMessage": "axe n'a pu en déterminer la raison. Il est temps de sortir l'inspecteur d'éléments!"
2
+ "lang": "fr",
3
+ "rules": {
4
+ "accesskeys": {
5
+ "description": "Vérifier que chaque valeur de l’attribut accesskey est unique",
6
+ "help": "La valeur de l’attribut accesskey doit être unique"
7
+ },
8
+ "area-alt": {
9
+ "description": "Vérifier que les éléments <area> d’une image réactive ont une alternative textuelle",
10
+ "help": "Les éléments <area> actifs doivent avoir une alternative textuelle"
11
+ },
12
+ "aria-allowed-attr": {
13
+ "description": "Vérifier que les attributs ARIA sont autorisés pour le rôle d’un élément",
14
+ "help": "Les éléments doivent seulement utiliser les attributs ARIA autorisés"
15
+ },
16
+ "aria-allowed-role": {
17
+ "description": "Vérifier que l’attribut role a une valeur valide pour cet élément",
18
+ "help": "Le rôle ARIA doit être valide pour cet élément"
19
+ },
20
+ "aria-command-name": {
21
+ "description": "Vérifier que chaque \"button\", \"link\" et \"menuitem\" ARIA a un nom accessible",
22
+ "help": "Les commandes ARIA doivent avoir un nom accessible"
23
+ },
24
+ "aria-dialog-name": {
25
+ "description": "Vérifier que chaque nœud ARIA \"dialog\" et \"alertdialog\" a un nom accessible",
26
+ "help": "Les nœuds ARIA \"dialog\" and \"alertdialog\" doivent avoir un nom accessible"
27
+ },
28
+ "aria-hidden-body": {
29
+ "description": "Vérifier qu’aria-hidden='true' nest pas présent sur le corps du document (élément body)",
30
+ "help": "aria-hidden='true' ne doit pas être présent sur <body>"
31
+ },
32
+ "aria-hidden-focus": {
33
+ "description": "Vérifier qu’aria-hidden n’est pas assigné aux éléments qui reçoivent le focus au clavier",
34
+ "help": "aria-hidden n’est pas assigné aux éléments qui reçoivent le focus au clavier"
35
+ },
36
+ "aria-input-field-name": {
37
+ "description": "Vérifier que chaque champ de formulaire avec ARIA est doté d’un intitulé accessible",
38
+ "help": "Les champs de formulaire ARIA ont un intitulé accessible"
39
+ },
40
+ "aria-meter-name": {
41
+ "description": "Vérifier que chaque nœud ARIA \"meter\" a un nom accessible",
42
+ "help": "Les nœuds ARIA \"meter\" doivent avoir un nom accessible"
43
+ },
44
+ "aria-progressbar-name": {
45
+ "description": "Vérifier que chaque nœud ARIA \"progressbar\" a un nom accessible",
46
+ "help": "Les nœuds ARIA \"progressbar\" doivent avoir un nom accessible"
47
+ },
48
+ "aria-required-attr": {
49
+ "description": "Vérifier que les éléments avec des rôles ARIA ont les attributs ARIA requis",
50
+ "help": "Les attributs ARIA requis doivent être présents"
51
+ },
52
+ "aria-required-children": {
53
+ "description": "Vérifier que les éléments avec un rôle ARIA comportent aussi des rôles pour les descendants directs",
54
+ "help": "Certains rôles ARIA doivent comporter des descendants directs spécifiques"
55
+ },
56
+ "aria-required-parent": {
57
+ "description": "Vérifier que les éléments avec un rôle ARIA requérant des rôles parents y sont contenus",
58
+ "help": "Certains rôles ARIA doivent être contenus par des parents spécifiques"
59
+ },
60
+ "aria-roledescription": {
61
+ "description": "Vérifier quaria-roledescription n’est utilisé que sur des éléments qui ont un rôle implicite ou explicite",
62
+ "help": "Utiliser aria-roledescription sur les éléments dont le rôle a une valeur sémantique"
63
+ },
64
+ "aria-roles": {
65
+ "description": "Vérifier que les éléments avec un attribut role utilisent une valeur valide",
66
+ "help": "Les rôles ARIA doivent se conformer aux valeurs valides"
67
+ },
68
+ "aria-text": {
69
+ "description": "Vérifier que \"role=text\" est uniquement utilisé sur des éléments sans descendants focalisables",
70
+ "help": "\"role=text\" ne doit pas avoir de descendant focalisable"
71
+ },
72
+ "aria-toggle-field-name": {
73
+ "description": "Vérifier que chaque champ de basculement ARIA a un libellé accessible",
74
+ "help": "Les champs de basculement ARIA ont un libellé accessible"
75
+ },
76
+ "aria-tooltip-name": {
77
+ "description": "Vérifier que chaque nœud ARIA \"tooltip\" a un nom accessible",
78
+ "help": "Les nœuds ARIA \"tooltip\" doivent avoir un nom accessible"
79
+ },
80
+ "aria-treeitem-name": {
81
+ "description": "Vérifier que chaque nœud ARIA \"treeitem\" a un nom accessible",
82
+ "help": "Les nœuds ARIA \"treeitem\" doivent avoir un nom accessible"
83
+ },
84
+ "aria-valid-attr-value": {
85
+ "description": "Vérifier que tous les attributs ARIA comportent des valeurs valides",
86
+ "help": "Les attributs ARIA doivent comporter des valeurs valides"
87
+ },
88
+ "aria-valid-attr": {
89
+ "description": "Vérifier que les attributs commençant par aria- sont des attributs ARIA valides",
90
+ "help": "Les attributs ARIA doivent se conformer aux noms valides"
91
+ },
92
+ "audio-caption": {
93
+ "description": "Vérifier que les éléments <audio> ont des sous-titres",
94
+ "help": "Les éléments <audio> doivent avoir une piste de sous-titres"
95
+ },
96
+ "autocomplete-valid": {
97
+ "description": "Vérifier que l’attribut autocomplete est correctement adapté au champ de formulaire",
98
+ "help": "L’attribut autocomplete doit être utilisé correctement"
99
+ },
100
+ "avoid-inline-spacing": {
101
+ "description": "Vérifier que l’espacement du texte défini à travers une attribution de styles peut être ajusté via une feuille de style personnalisée",
102
+ "help": "L’espacement du texte inline peut être ajusté avec des feuilles de style personnalisées"
103
+ },
104
+ "blink": {
105
+ "description": "Vérifier que l’élément <blink> n’est pas utilisé",
106
+ "help": "L’élément <blink> est déprécié et ne doit pas être utilisé"
107
+ },
108
+ "button-name": {
109
+ "description": "Vérifier que les boutons ont un texte perceptible",
110
+ "help": "Les boutons doivent avoir un texte perceptible"
111
+ },
112
+ "bypass": {
113
+ "description": "Vérifier que chaque page dispose au minimum d’un mécanisme de contournement de la navigation pour accéder directement au contenu",
114
+ "help": "Chaque page doit fournir des moyens de contourner les contenus répétés"
115
+ },
116
+ "color-contrast": {
117
+ "description": "Vérifier que les contrastes entre le premier plan et l’arrière-plan rencontrent les seuils de contrastes exigés par les WCAG 2 AA",
118
+ "help": "Les éléments doivent avoir un contraste de couleurs suffisant"
119
+ },
120
+ "color-contrast-enhanced": {
121
+ "description": "Vérifier que les contrastes entre le premier plan et l’arrière-plan rencontrent les seuils de contrastes exigés par les WCAG 2 AAA",
122
+ "help": "Les éléments doivent avoir un contraste de couleurs suffisant"
123
+ },
124
+ "css-orientation-lock": {
125
+ "description": "Vérifier que les contenus ne sont pas limités à une orientation spécifique de l’écran, et que le contenu est utilisable sous toutes les orientations de l’écran",
126
+ "help": "Les CSS Media queries ne sont pas utilisées pour verrouiller l’orientation de l’écran"
127
+ },
128
+ "definition-list": {
129
+ "description": "Vérifier que les éléments <dl> sont correctement structurés",
130
+ "help": "Les éléments <dl> ne doivent contenir directement que des groupes d’éléments <dt> et <dd> correctement ordonnés, ou des éléments <script> ou <template>"
131
+ },
132
+ "dlitem": {
133
+ "description": "Vérifier que les éléments <dt> et <dd> sont contenus dans un élément <dl>",
134
+ "help": "Les éléments <dt> et <dd> doivent être contenus dans un élément <dl>"
135
+ },
136
+ "document-title": {
137
+ "description": "Vérifier que chaque document HTML contient un élément <title> non vide",
138
+ "help": "Chaque document doit avoir un élément <title> pour aider à la navigation"
139
+ },
140
+ "duplicate-id-active": {
141
+ "description": "Vérifier que la valeur d’attribut id de chaque élément actif est unique",
142
+ "help": "Les IDs des éléments actifs doivent être uniques"
143
+ },
144
+ "duplicate-id-aria": {
145
+ "description": "Vérifier que chaque valeur d’attribut id utilisée avec ARIA et dans les étiquettes est unique",
146
+ "help": "Les IDs utilisés avec ARIA et dans les étiquettes doivent être uniques"
147
+ },
148
+ "duplicate-id": {
149
+ "description": "Vérifier que la valeur de chaque attribut id est unique",
150
+ "help": "La valeur de l’attribut id doit être unique"
151
+ },
152
+ "empty-heading": {
153
+ "description": "Vérifier que les niveaux de titre ont un texte perceptible",
154
+ "help": "Les niveaux de titre ne doivent pas être vides"
155
+ },
156
+ "empty-table-header": {
157
+ "description": "Vérifier que les entêtes de tableaux ont un texte perceptible",
158
+ "help": "Les textes d’entêtes de tableaux ne doivent pas être vides"
159
+ },
160
+ "focus-order-semantics": {
161
+ "description": "Vérifier que les éléments dans le parcours du focus ont un rôle approprié",
162
+ "help": "Les éléments dans le parcours du focus doivent avoir un rôle approprié pour le contenu interactif"
163
+ },
164
+ "form-field-multiple-labels": {
165
+ "description": "Vérifier que le champ de formulaire n’a pas plusieurs éléments d’étiquettes",
166
+ "help": "Le champ de formulaire ne devrait pas comporter plusieurs éléments d’étiquettes"
167
+ },
168
+ "frame-focusable-content": {
169
+ "description": "Vérifier que les éléments <frame> et <iframe> avec du contenu focalisable n’ont pas de tabindex=-1",
170
+ "help": "Les cadres avec du contenu focalisable ne doivent pas avoir tabindex=-1"
171
+ },
172
+ "frame-tested": {
173
+ "description": "Vérifier que les éléments <iframe> et <frame> contiennent le script axe-core",
174
+ "help": "Les cadres doivent être testés avec axe-core"
175
+ },
176
+ "frame-title-unique": {
177
+ "description": "Vérifier que les éléments <iframe> et <frame> ont un attribut title unique",
178
+ "help": "Chaque cadre doit avoir un attribut title unique"
179
+ },
180
+ "frame-title": {
181
+ "description": "Vérifier que les éléments <iframe> et <frame> ont un attribut title non vide",
182
+ "help": "Chaque cadre doit avoir un attribut title"
183
+ },
184
+ "heading-order": {
185
+ "description": "Vérifier que la hiérarchie des niveaux de titre est sémantiquement correcte",
186
+ "help": "Les niveaux de titre doivent s’incrémenter d’un seul niveau à la fois"
187
+ },
188
+ "hidden-content": {
189
+ "description": "Informer les utilisateurs sur les contenus cachés",
190
+ "help": "Le contenu caché sur la page ne peut pas être analysé"
191
+ },
192
+ "html-has-lang": {
193
+ "description": "Vérifier que chaque document HTML a un attribut lang",
194
+ "help": "L’élément <html> doit avoir un attribut lang"
195
+ },
196
+ "html-lang-valid": {
197
+ "description": "Vérifier que l’attribut lang sur l’élément <html> a une valeur valide",
198
+ "help": "L’élément <html> doit avoir une valeur valide pour l’attribut lang"
199
+ },
200
+ "html-xml-lang-mismatch": {
201
+ "description": "Vérifier que les éléments HTML avec les attributs lang et xml:lang valides indiquent la même langue de base pour la page",
202
+ "help": "Les éléments HTML avec les attributs lang et xml:lang doivent avoir la même langue de base"
203
+ },
204
+ "identical-links-same-purpose": {
205
+ "description": "Vérifier que les liens qui ont le même nom accessible ont la même finalité",
206
+ "help": "Les liens avec le même nom ont la même finalité"
207
+ },
208
+ "image-alt": {
209
+ "description": "Vérifier que les éléments <img> ont une alternative textuelle, ou un rôle de type 'none' ou 'presentation'",
210
+ "help": "Les images doivent avoir une alternative textuelle"
211
+ },
212
+ "image-redundant-alt": {
213
+ "description": "Vérifier que l’intitulé des liens et boutons n’est pas répété dans l’alternative de l’image",
214
+ "help": "L’intitulé des liens et boutons ne doit pas être répété dans l’alternative de l’image"
215
+ },
216
+ "input-button-name": {
217
+ "description": "Vérifier que la valeur textuelle des contrôles de boutons est perceptible",
218
+ "help": "La valeur textuelle des contrôles de boutons doit être perceptible"
219
+ },
220
+ "input-image-alt": {
221
+ "description": "Vérifier que les éléments <input type=\"image\"> ont une alternative textuelle",
222
+ "help": "Les boutons images doivent avoir une alternative textuelle"
223
+ },
224
+ "label-content-name-mismatch": {
225
+ "description": "Vérifier que dans le cas d’éléments identifiés par leur contenu textuel, le texte visible fait partie de l’intitulé accessible",
226
+ "help": "Le contenu textuel des éléments doit aussi se retrouver dans leur intitulé accessible"
227
+ },
228
+ "label-title-only": {
229
+ "description": "Vérifier que chaque élément de formulaire n’est pas labellisé uniquement par les attributs title ou aria-describedby",
230
+ "help": "Chaque élément de formulaire doit avoir un label visible"
231
+ },
232
+ "label": {
233
+ "description": "Vérifier que chaque élément de formulaire a une étiquette",
234
+ "help": "Chaque élément de formulaire doit avoir une étiquette"
235
+ },
236
+ "landmark-banner-is-top-level": {
237
+ "description": "La région banner ne devrait pas être contenue dans une autre région",
238
+ "help": "La région banner doit être au niveau le plus haut"
239
+ },
240
+ "landmark-complementary-is-top-level": {
241
+ "description": "Vérifier que les landmarks complementary ou aside se retrouvent au plus haut niveau",
242
+ "help": "Aside ne doit pas être contenu dans un autre landmark"
243
+ },
244
+ "landmark-contentinfo-is-top-level": {
245
+ "description": "La région contentinfo ne devrait pas être contenue dans une autre région",
246
+ "help": "La région contentinfo doit être au niveau le plus haut"
247
+ },
248
+ "landmark-main-is-top-level": {
249
+ "description": "La région main ne devrait pas être contenue dans une autre région",
250
+ "help": "La région main doit être au niveau le plus haut"
251
+ },
252
+ "landmark-no-duplicate-banner": {
253
+ "description": "Vérifier que le document n’a pas plus d’une région banner",
254
+ "help": "Le document contient au plus une région banner"
255
+ },
256
+ "landmark-no-duplicate-contentinfo": {
257
+ "description": "Vérifier que le document n’a pas plus d’une région contentinfo",
258
+ "help": "Le document contient au plus une région contentinfo"
259
+ },
260
+ "landmark-no-duplicate-main": {
261
+ "description": "Vérifier que le document a tout au plus, un seul landmark main",
262
+ "help": "Le document ne doit pas contenir plus d’un landmark main"
263
+ },
264
+ "landmark-one-main": {
265
+ "description": "Vérifier quune navigation pointe vers le contenu principal de la page. Si la page contient des iframes, chaque iframe ne doit contenir au plus qu’une région main",
266
+ "help": "La page doit contenir une région main"
267
+ },
268
+ "landmark-unique": {
269
+ "help": "Vérifier que chaque landmark est unique",
270
+ "description": "Les landmarks doivent comporter un rôle unique, ou une étiquette accessible par la combinaison de role/label/title"
271
+ },
272
+ "link-in-text-block": {
273
+ "description": "Les liens doivent pouvoir être distingués autrement que par la couleur",
274
+ "help": "Les liens doivent pouvoir être distingués du texte environnant d’une façon qui ne repose pas sur la couleur"
275
+ },
276
+ "link-name": {
277
+ "description": "Vérifier que les liens ont un texte perceptible",
278
+ "help": "Les liens doivent avoir un texte perceptible"
279
+ },
280
+ "list": {
281
+ "description": "Vérifier que les listes sont structurées correctement",
282
+ "help": "<ul> et <ol> ne doivent contenir directement que des éléments <li>, <script> ou <template>"
283
+ },
284
+ "listitem": {
285
+ "description": "Vérifier que les éléments <li> sont utilisés sémantiquement",
286
+ "help": "Les éléments <li> doivent être contenus dans un élément <ul> ou <ol>"
287
+ },
288
+ "marquee": {
289
+ "description": "Vérifier que l’élément <marquee> n’est pas utilisé",
290
+ "help": "L’élément <marquee> est déprécié et ne doit pas être utilisé"
291
+ },
292
+ "meta-refresh": {
293
+ "description": "Vérifier que <meta http-equiv=\"refresh\"> n’est pas utilisé",
294
+ "help": "La page HTML ne doit pas être actualisée automatiquement"
295
+ },
296
+ "meta-viewport-large": {
297
+ "description": "Vérifier que <meta name=\"viewport\"> permet un agrandissement significatif",
298
+ "help": "Les utilisateurs devraient pouvoir zoomer et agrandir le texte jusqu’à 500%"
299
+ },
300
+ "meta-viewport": {
301
+ "description": "Vérifier que <meta name=\"viewport\"> ne désactive pas le zoom ni l’agrandissement",
302
+ "help": "Le zoom et l’agrandissement ne doivent pas être désactivés"
303
+ },
304
+ "nested-interactive": {
305
+ "description": "Les éléments interactifs imbriqués ne sont pas annoncés par les lecteurs d’écrans",
306
+ "help": "Verifier que les éléments interactifs ne sont pas imbriqués"
307
+ },
308
+ "no-autoplay-audio": {
309
+ "description": "Vérifier que les éléments <video> ou <audio> ne jouent pas de son automatiquement pendant plus de 3 secondes sans mécanisme de contrôle pour stopper la lecture ou couper le son.",
310
+ "help": "Les éléments <video> ou <audio> ne jouent pas de son automatiquement"
311
+ },
312
+ "object-alt": {
313
+ "description": "Vérifier que les éléments <object> ont une alternative textuelle",
314
+ "help": "Les éléments <object> doivent avoir une alternative textuelle"
315
+ },
316
+ "p-as-heading": {
317
+ "description": "Vérifier que les éléments p ne sont pas utilisés pour styler des niveaux de titres",
318
+ "help": "La graisse, le style et le corps du texte ne doivent pas être utilisés pour styler les éléments p comme des niveaux de titres"
319
+ },
320
+ "page-has-heading-one": {
321
+ "description": "Vérifier que la page, ou au moins une de ses iframes, contient un titre de niveau 1",
322
+ "help": "La page doit contenir un titre de niveau 1"
323
+ },
324
+ "presentation-role-conflict": {
325
+ "description": "Signaler les éléments dont le rôle est 'none' ou 'presentation' et qui déclenchent la résolution de conflits de rôles.",
326
+ "help": "Les éléments avec un rôle 'none' ou 'presentation' doivent être signalés"
327
+ },
328
+ "region": {
329
+ "description": "Vérifier que tout le contenu est localisé dans une région",
330
+ "help": "Le contenu doit être localisé dans une région"
331
+ },
332
+ "role-img-alt": {
333
+ "description": "Vérifier que les éléments avec [role='img'] ont une équivalence textuelle",
334
+ "help": "Les éléments avec [role='img'] ont une équivalence textuelle"
335
+ },
336
+ "scope-attr-valid": {
337
+ "description": "Vérifier que l’attribut scope est utilisé correctement dans les tableaux",
338
+ "help": "L’attribut scope doit être utilisé correctement"
339
+ },
340
+ "scrollable-region-focusable": {
341
+ "description": "Les éléments dont le contenu défile devraient être accessibles au clavier",
342
+ "help": "Vérifier que les régions défilantes sont accessibles au clavier"
343
+ },
344
+ "select-name": {
345
+ "description": "Vérifier que l’élément 'select' a un nom accessible",
346
+ "help": "L’élément 'select' doit avoir un nom accessible"
347
+ },
348
+ "server-side-image-map": {
349
+ "description": "Vérifier que les images réactives côté serveur ne sont pas utilisées",
350
+ "help": "Les images réactives côté serveur ne devraient pas être utilisées"
351
+ },
352
+ "skip-link": {
353
+ "description": "Vérifier que tous les liens d’évitement ont une cible pouvant recevoir le focus",
354
+ "help": "La cible d’un lien d’évitement doit exister et pouvoir recevoir le focus"
355
+ },
356
+ "svg-img-alt": {
357
+ "description": "Vérifier que les éléments svg avec un rôle 'img', 'graphics-document', ou 'graphics-symbol' ont un texte accessible",
358
+ "help": "Les éléments svg avec un rôle 'img' ont un texte alternatif"
359
+ },
360
+ "tabindex": {
361
+ "description": "Vérifier que les valeurs de l’attribut tabindex ne sont pas supérieures à 0",
362
+ "help": "Aucun élément ne devrait avoir un tabindex avec une valeur supérieure à zéro"
363
+ },
364
+ "table-duplicate-name": {
365
+ "description": "Vérifier que chaque tableau n’ait pas un summary et un caption identiques",
366
+ "help": "L’élément <caption> ne devrait pas contenir le même texte que l’attribut summary"
367
+ },
368
+ "table-fake-caption": {
369
+ "description": "Vérifier que les tableaux avec une légende utilisent l’élément <caption>",
370
+ "help": "Les données ou les cellules d’entête ne devraient pas être utilisées pour légender un tableau de données"
371
+ },
372
+ "td-has-header": {
373
+ "description": "Vérifier que chaque cellule de données non vide dans un tableau de données a une ou plusieurs cellules d’entête",
374
+ "help": "Chaque élément td non vide dans un tableau plus grand que 3 × 3 doit avoir une cellule d’entête associée"
375
+ },
376
+ "td-headers-attr": {
377
+ "description": "Vérifier que chaque cellule utilisant l’attribut headers fait référence à une autre cellule du même tableau",
378
+ "help": "Les cellules utilisant l’attribut headers ne doivent faire référence qu’à d’autres cellules du même tableau"
379
+ },
380
+ "th-has-data-cells": {
381
+ "description": "Vérifier que chaque cellule d’entête dans un tableau de données fait référence à des cellules de données",
382
+ "help": "Tous les éléments th et ceux avec role=columnheader/rowheader doivent décrire des cellules de données"
383
+ },
384
+ "valid-lang": {
385
+ "description": "Vérifier que les attributs lang ont des valeurs valides",
386
+ "help": "L’attribut lang doit avoir une valeur valide"
387
+ },
388
+ "video-caption": {
389
+ "description": "Vérifier que les éléments <video> ont des sous-titres",
390
+ "help": "Les éléments <video> doivent avoir des sous-titres"
391
+ }
392
+ },
393
+ "checks": {
394
+ "abstractrole": {
395
+ "pass": "Les rôles abstraits ne sont pas utilisés",
396
+ "fail": {
397
+ "singular": "Le rôle abstrait ne peut pas être utilisé directement : ${data.values}",
398
+ "plural": "Les rôles abstraits ne peuvent pas être utilisés directement : ${data.values}"
399
+ }
400
+ },
401
+ "aria-allowed-attr": {
402
+ "pass": "Les attributs ARIA sont utilisés correctement pour le rôle défini",
403
+ "fail": {
404
+ "singular": "L’attribut ARIA n’est pas autorisé : ${data.values}",
405
+ "plural": "Les attributs ARIA ne sont pas autorisés : ${data.values}"
406
+ }
407
+ },
408
+ "aria-allowed-role": {
409
+ "pass": "Le rôle ARIA est autorisé pour l’élément donné",
410
+ "fail": {
411
+ "singular": "Le rôle ARIA ${data.values} n’est pas autorisé pour l’élément donné",
412
+ "plural": "Les rôles ARIA ${data.values} ne sont pas autorisés pour l’élément donné"
413
+ },
414
+ "incomplete": {
415
+ "singular": "Le rôle ARIA ${data.values} doit être retiré lorsque l’élément est rendu visible, car il n’est pas autorisé pour cet élément",
416
+ "plural": "Les rôles ARIA ${data.values} doivent être retirés lorsque l’élément est rendu visible, car ils ne sont pas autorisés pour cet élément"
417
+ }
418
+ },
419
+ "aria-errormessage": {
420
+ "pass": "Utiliser une technique prise en charge pour aria-errormessage",
421
+ "fail": {
422
+ "singular": "La valeur d’aria-errormessage `${data.values}` doit recourir à une technique pour annoncer le message (aria-live, aria-describedby, role=alert, etc.)",
423
+ "plural": "Les valeurs aria-errormessage `${data.values}` doivent recourir à une technique pour annoncer le message (aria-live, aria-describedby, role=alert, etc.)"
424
+ },
425
+ "incomplete": {
426
+ "singular": "Vérifier que la valeur de l’attribut 'aria-errormessage' `${data.values}` se réfère à un élément existant",
427
+ "plural": "Vérifier que les valeurs de l’attribut 'aria-errormessage' `${data.values}` se réfèrent à des éléments existants",
428
+ "idrefs": "Impossible de déterminer si l’élément référencé par 'aria-errormessage' existe dans la page : ${data.values}"
429
+ }
430
+ },
431
+ "aria-hidden-body": {
432
+ "pass": "Aucun attribut aria-hidden n’est présent sur body",
433
+ "fail": "aria-hidden=true ne devrait pas être présent sur body"
434
+ },
435
+ "aria-level": {
436
+ "pass": "Les valeurs d’aria-level sont valides",
437
+ "incomplete": "Les valeurs d’aria-level supérieures à 6 ne sont pas supportées par toutes les combinaisons de navigateurs et de lecteurs d’écrans"
438
+ },
439
+ "aria-prohibited-attr":{
440
+ "pass": "L’attribut ARIA est autorisé",
441
+ "fail": "L’attribut ARIA ne peut pas être utilisé, ajoutez un attribut role ou utilisez un élément différent : ${data.values}",
442
+ "incomplete": "L’attribut ARIA n’est pas bien supporté sur l’élément et le contenu texte sera utilisé à la place : ${data.values}"
443
+ },
444
+ "aria-required-attr": {
445
+ "pass": "Tous les attributs ARIA requis sont présents",
446
+ "fail": {
447
+ "singular": "L’attribut ARIA requis est manquant : ${data.values}",
448
+ "plural": "Les attributs ARIA requis sont manquants : ${data.values}"
449
+ }
450
+ },
451
+ "aria-required-children": {
452
+ "pass": "Les descendants ARIA requis sont présents",
453
+ "fail": {
454
+ "singular": "Le descendant ARIA requis est manquant : ${data.values}",
455
+ "plural": "Les descendants ARIA requis sont manquants : ${data.values}"
456
+ },
457
+ "incomplete": {
458
+ "singular": "Le rôle du descendant ARIA attendu doit être ajouté : ${data.values}",
459
+ "plural": "Les rôles des descendants ARIA attendus doivent être ajoutés : ${data.values}"
460
+ }
461
+ },
462
+ "aria-required-parent": {
463
+ "pass": "Les rôles parents ARIA requis sont présents",
464
+ "fail": {
465
+ "singular": "Le rôle parent ARIA requis est manquant : ${data.values}",
466
+ "plural": "Les rôles parents ARIA requis sont manquants : ${data.values}"
467
+ }
468
+ },
469
+ "aria-roledescription": {
470
+ "pass": "aria-roledescription utilisé sur un élément sémantique supporté",
471
+ "incomplete": "Vérifier que la valeur d’aria-roledescription est annoncée par les lecteurs d’écran supportés",
472
+ "fail": "Attribuer à l’élément un rôle qui supporte aria-roledescription"
473
+ },
474
+ "aria-unsupported-attr": {
475
+ "pass": "L’attribut ARIA est supporté",
476
+ "fail": "L’attribut ARIA n’est pas suffisamment supporté par les lecteurs d’écran et autres technologies d’assistance : ${data.values}"
477
+ },
478
+ "aria-valid-attr-value": {
479
+ "pass": "Les valeurs d’attribut ARIA sont valides",
480
+ "fail": {
481
+ "singular": "La valeur dattribut ARIA est invalide : ${data.values}",
482
+ "plural": "Les valeurs dattribut ARIA sont invalides : ${data.values}"
483
+ },
484
+ "incomplete": {
485
+ "noId": "L’ID d’élément référencé par l’attribut ARIA n’existe pas dans la page : ${data.needsReview}",
486
+ "ariaCurrent": "La valeur de l’attribut ARIA est invalide et sera traitée comme \"aria-current=true\" : ${data.needsReview}",
487
+ "idrefs": "Impossible de vérifier si l’ID d’élément référencé par l’attribut ARIA existe dans la page : ${data.needsReview}"
488
+ }
489
+ },
490
+ "aria-valid-attr": {
491
+ "pass": {
492
+ "singular": "Les noms d’attributs ARIA sont valides",
493
+ "plural": "Le nom d’attribut ARIA est valide"
494
+ },
495
+ "fail": {
496
+ "singular": "Le nom d’attribut ARIA est invalide : ${data.values}",
497
+ "plural": "Les noms d’attributs ARIA sont invalides : ${data.values}"
498
+ }
499
+ },
500
+ "fallbackrole": {
501
+ "pass": "Une seule valeur de rôle utilisée",
502
+ "fail": "Utiliser une seule valeur de rôle, dans la mesure où les rôles de secours ne sont pas supportés par les navigateurs anciens",
503
+ "incomplete": "Utiliser seulement les rôles 'presentation' ou 'none' puisqu’ils sont synonymes."
504
+ },
505
+ "has-global-aria-attribute": {
506
+ "pass": {
507
+ "singular": "L’élément a un attribut ARIA global : ${data.values}",
508
+ "plural": "L’élément a des attributs ARIA globaux : ${data.values}"
509
+ },
510
+ "fail": "L’élément n’a pas d’attribut ARIA global"
511
+ },
512
+ "has-widget-role": {
513
+ "pass": "L’élément a un rôle widget.",
514
+ "fail": "L’élément n’a pas de rôle widget."
515
+ },
516
+ "invalidrole": {
517
+ "pass": "Le rôle ARIA est valide",
518
+ "fail": {
519
+ "singular": "Le rôle doit être un rôle ARIA valide : ${data.values}",
520
+ "plural": "Les rôles doivent être des rôles ARIA valides : ${data.values}"
521
+ }
522
+ },
523
+ "is-element-focusable": {
524
+ "pass": "L’élément est focalisable.",
525
+ "fail": "L’élément n’est pas focalisable."
526
+ },
527
+ "no-implicit-explicit-label": {
528
+ "pass": "Il n’y a pas de décalage entre le <label> et l’intitulé accessible",
529
+ "incomplete": "Vérifier que le <label> n’a pas à faire partie du nom du champ de formulaire ARIA ${data}"
530
+ },
531
+ "unsupportedrole": {
532
+ "pass": "Le rôle ARIA est supporté",
533
+ "fail": "Le rôle utilisé nest pas suffisamment supporté par les technologies d’assistance"
534
+ },
535
+ "valid-scrollable-semantics": {
536
+ "pass": "L’élément a une sémantique valide pour un élément dans l’ordre de tabulation.",
537
+ "fail": "L’élément n’a pas une sémantique valide pour un élément dans l’ordre de tabulation."
538
+ },
539
+ "color-contrast": {
540
+ "pass": "L’élément a un contraste de couleurs suffisant de ${data.contrastRatio}",
541
+ "fail": {
542
+ "default": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} (couleur d’avant plan : ${data.fgColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse : ${data.fontWeight}). Contraste de couleur attendu : ${data.expectedContrastRatio}",
543
+ "fgOnShadowColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre l’avant plan et la couleur de l’ombre de texte (couleur d’avant plan : ${data.fgColor}, couleur de l’ombre de texte : ${data.shadowColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}",
544
+ "shadowOnBgColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre la couleur de l’ombre de texte et l’arrière plan (couleur de l’ombre de texte : ${data.shadowColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}"
545
+ },
546
+ "incomplete": {
547
+ "default": "Impossible de déterminer le rapport de contraste",
548
+ "bgImage": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’une image d’arrière-plan",
549
+ "bgGradient": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’un dégradé d’arrière-plan",
550
+ "imgNode": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément contient une balise image",
551
+ "bgOverlap": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car un autre élément le chevauche",
552
+ "fgAlpha": "La couleur du texte de l’élément n’a pu être déterminée à cause d’une opacité réduite",
553
+ "elmPartiallyObscured": "La couleur d’arrière-plan de l’élément na pu être déterminée, car l’élément est partiellement masqué par un autre élément",
554
+ "elmPartiallyObscuring": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il chevauche partiellement un autre élément",
555
+ "outsideViewport": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il est à l’extérieur du viewport",
556
+ "equalRatio": "L’élément a un rapport de contraste de 1:1 avec son arrière-plan",
557
+ "shortTextContent": "Le contenu de l’élément est trop court pour déterminer s’il s’agit réellement d’un contenu textuel",
558
+ "nonBmp": "Le contenu de l’élément contient seulement des caractères non textuels",
559
+ "pseudoContent": "La couleur d’arrière plan de l’élément n’a pu être déterminée à cause d’un pseudo-élément"
560
+ }
561
+ },
562
+ "color-contrast-enhanced": {
563
+ "pass": "L’élément a un contraste de couleurs suffisant de ${data.contrastRatio}",
564
+ "fail": {
565
+ "default": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} (couleur d’avant plan : ${data.fgColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse : ${data.fontWeight}). Contraste de couleur attendu : ${data.expectedContrastRatio}",
566
+ "fgOnShadowColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre l’avant plan et la couleur de l’ombre de texte (couleur d’avant plan : ${data.fgColor}, couleur de l’ombre de texte : ${data.shadowColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}",
567
+ "shadowOnBgColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre la couleur de l’ombre de texte et l’arrière plan (couleur de l’ombre de texte : ${data.shadowColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}"
568
+ },
569
+ "incomplete": {
570
+ "default": "Impossible de déterminer le rapport de contraste",
571
+ "bgImage": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’une image d’arrière-plan",
572
+ "bgGradient": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause dun dégradé d’arrière-plan",
573
+ "imgNode": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément contient une balise image",
574
+ "bgOverlap": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car un autre élément le chevauche",
575
+ "fgAlpha": "La couleur du texte de l’élément n’a pu être déterminée à cause d’une opacité réduite",
576
+ "elmPartiallyObscured": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément est partiellement masqué par un autre élément",
577
+ "elmPartiallyObscuring": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il chevauche partiellement un autre élément",
578
+ "outsideViewport": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il est à l’extérieur du viewport",
579
+ "equalRatio": "L’élément a un rapport de contraste de 1:1 avec son arrière-plan",
580
+ "shortTextContent": "Le contenu de l’élément est trop court pour déterminer s’il s’agit réellement d’un contenu textuel",
581
+ "nonBmp": "Le contenu de l’élément contient seulement des caractères non textuels",
582
+ "pseudoContent": "La couleur d’arrière plan de l’élément n’a pu être déterminée à cause d’un pseudo-élément"
583
+ }
584
+ },
585
+ "link-in-text-block": {
586
+ "pass": "Les liens peuvent être distingués du texte environnant par un autre moyen que la couleur",
587
+ "fail": "Les liens doivent se distinguer du texte environnant par un autre moyen que la couleur",
588
+ "incomplete": {
589
+ "default": "Impossible de déterminer le rapport de contraste",
590
+ "bgContrast": "Le rapport de contraste de l’élément n’a pu être déterminé. Recherchez un style différent pour le hover/focus.",
591
+ "bgImage": "Le rapport de contraste de l’élément n’a pu être déterminé à cause d’une image d’arrière-plan",
592
+ "bgGradient": "Le rapport de contraste de l’élément n’a pu être déterminé à cause d’un dégradé d’arrière-plan",
593
+ "imgNode": "Le rapport de contraste de l’élément n’a pu être déterminé, car l’élément contient une balise image",
594
+ "bgOverlap": "Le rapport de contraste de l’élément n’a pu être déterminé à cause d’un chevauchement"
595
+ }
596
+ },
597
+ "autocomplete-appropriate": {
598
+ "pass": "La valeur autocomplete est sur un élément approprié",
599
+ "fail": "La valeur autocomplete est inappropriée sur ce type de champ de formulaire"
600
+ },
601
+ "autocomplete-valid": {
602
+ "pass": "L’attribut autocomplete est formaté correctement",
603
+ "fail": "L’attribut autocomplete n’est pas formaté correctement"
604
+ },
605
+ "accesskeys": {
606
+ "pass": "La valeur de l’attribut accesskey est unique",
607
+ "fail": "Plusieurs éléments ont le même accesskey au sein du document"
608
+ },
609
+ "focusable-content": {
610
+ "pass": "L’élément contient des éléments focalisables",
611
+ "fail": "L’élément devrait avoir du contenu focalisable"
612
+ },
613
+ "focusable-disabled": {
614
+ "pass": "Aucun élément focalisable contenu dans l’élément",
615
+ "fail": "Le contenu focalisable devrait être désactivé ou retiré du DOM"
616
+ },
617
+ "focusable-element": {
618
+ "pass": "L’élément est focalisable",
619
+ "fail": "L’élément devrait être focalisable"
620
+ },
621
+ "focusable-modal-open": {
622
+ "pass": "Pas d’élément focalisable quand une modale est ouverte",
623
+ "incomplete": "Vérifiez que les éléments focalisables ne sont pas atteignables via la tabulation dans l’état actuel"
624
+ },
625
+ "focusable-no-name": {
626
+ "pass": "L’élément n’est pas dans l’ordre de tabulation ou a un intitulé accessible",
627
+ "fail": "L’élément est dans l’ordre de tabulation et na pas d’intitulé accessible",
628
+ "incomplete": "Impossible de déterminer si l’élément a un nom accessible"
629
+ },
630
+ "focusable-not-tabbable": {
631
+ "pass": "Aucun élément focalisable contenu dans l’élément",
632
+ "fail": "Le contenu focalisable devrait se voir assigné un tabindex='-1' ou être retiré du DOM"
633
+ },
634
+ "frame-focusable-content": {
635
+ "pass": "L’élément n’a pas de descendants focalisables",
636
+ "fail": "L’élément a des descendants focalisables",
637
+ "incomplete": "Impossible de déterminer si l’élément a des descendants"
638
+ },
639
+ "landmark-is-top-level": {
640
+ "pass": "La région ${data.role} est au niveau le plus haut.",
641
+ "fail": "La région ${data.role} est contenue dans une autre région."
642
+ },
643
+ "no-focusable-content": {
644
+ "pass": "L’élément n’a pas de descendants focalisables",
645
+ "fail": "L’élément a des descendants focalisables",
646
+ "incomplete": "Impossible de déterminer si l’élément a des descendants"
647
+ },
648
+ "page-has-heading-one": {
649
+ "pass": "La page a au moins un titre de niveau un",
650
+ "fail": "La page doit avoir un titre de niveau un"
651
+ },
652
+ "page-has-main": {
653
+ "pass": "La page a au moins une région main",
654
+ "fail": "La page doit avoir une région main"
655
+ },
656
+ "page-no-duplicate-banner": {
657
+ "pass": "Le document n’a pas plus d’une région banner",
658
+ "fail": "Le document a plus d’une région banner"
659
+ },
660
+ "page-no-duplicate-contentinfo": {
661
+ "pass": "Le document n’a pas plus d’une région contentinfo",
662
+ "fail": "Le document a plus d’une région contentinfo"
663
+ },
664
+ "page-no-duplicate-main": {
665
+ "pass": "Le document n’a pas plus dune région main",
666
+ "fail": "Le document a plus d’une région banner"
667
+ },
668
+ "tabindex": {
669
+ "pass": "L’élément n’a pas de tabindex supérieur à 0",
670
+ "fail": "L’élément a un tabindex supérieur à 0"
671
+ },
672
+ "alt-space-value": {
673
+ "pass": "L’élément a une valeur d’attribut alt valide",
674
+ "fail": "L’élément a un attribut alt qui contient un caractère d’espacement qui n’est pas ignoré par les lecteurs d’écran"
675
+ },
676
+ "duplicate-img-label": {
677
+ "pass": "L’élément ne duplique pas un texte existant dans l’alternative textuelle de l’élément <img>",
678
+ "fail": "L’élément contient un élément <img> dont l’alternative textuelle duplique un texte existant"
679
+ },
680
+ "explicit-label": {
681
+ "pass": "L’élément de formulaire a un <label> explicite",
682
+ "fail": "L’élément de formulaire n’a pas de <label> explicite",
683
+ "incomplete": "Impossible de déterminer si l’élément de formulaire a un <label> explicite"
684
+ },
685
+ "help-same-as-label": {
686
+ "pass": "L’aide à la saisie (title ou aria-describedby) ne duplique pas le contenu du label",
687
+ "fail": "L’aide à la saisie (title ou aria-describedby) est identique au contenu du label"
688
+ },
689
+ "hidden-explicit-label": {
690
+ "pass": "L’élément de formulaire a un <label> visible et explicite",
691
+ "fail": "L’élément de formulaire a un <label> explicite qui est masqué",
692
+ "incomplete": "Impossible de déterminer si l’élément de formulaire a un <label> explicite qui est masqué"
693
+ },
694
+ "implicit-label": {
695
+ "pass": "L’élément de formulaire a un <label> implicite (imbriqué)",
696
+ "fail": "L’élément de formulaire n’a pas de <label> implicite (imbriqué)",
697
+ "incomplete": "Impossible de déterminer si l’élément de formulaire a un <label> implicite (imbriqué)"
698
+ },
699
+ "label-content-name-mismatch": {
700
+ "pass": "L’élément contient du texte visible qui n’est pas inclus dans l’intitulé accessible",
701
+ "fail": "Le texte contenu dans l’élément n’est pas inclus dans l’intitulé accessible"
702
+ },
703
+ "multiple-label": {
704
+ "pass": "L’élément de formulaire n’a pas plusieurs éléments <label>",
705
+ "incomplete": "Des éléments associés à plusieurs étiquettes ne sont pas suffisamment supportés par les technologies dassistance. Vérifier que la première étiquette contient toute l’information nécessaire."
706
+ },
707
+ "title-only": {
708
+ "pass": "L’élément de formulaire n’a pas uniquement l’attribut title comme étiquette",
709
+ "fail": "Seul l’attribut title est utilisé comme étiquette pour l’élément de formulaire"
710
+ },
711
+ "landmark-is-unique": {
712
+ "pass": "Les landmarks doivent comporter un rôle unique, ou une étiquette accessible par la combinaison de role/label/title",
713
+ "fail": "L’attribut landmark doit comporter une valeur d’attribut aria-label, aria-labelledby, ou title unique pour rendre le landmark distinct"
714
+ },
715
+ "has-lang": {
716
+ "pass": "L’élément <html> a un attribut lang",
717
+ "fail": {
718
+ "noXHTML": "L’attribut xml:lang n’est pas valide sur les pages HTML, utiliser l’attribut lang.",
719
+ "noLang": "L’élément <html> n’a pas d’attribut lang"
720
+ }
721
+ },
722
+ "valid-lang": {
723
+ "pass": "La valeur de l’attribut lang fait partie des codes de langues valides",
724
+ "fail": "La valeur de l’attribut lang ne fait pas partie des codes de langues valides"
725
+ },
726
+ "xml-lang-mismatch": {
727
+ "pass": "Les attributs lang et xml:lang indiquent la même langue de base",
728
+ "fail": "Les attributs lang et xml:lang indiquent des langues de base différentes"
729
+ },
730
+ "dlitem": {
731
+ "pass": "L’item de liste de description a un élément <dl> parent",
732
+ "fail": "L’item de liste de description n’a pas d’élément <dl> parent"
733
+ },
734
+ "listitem": {
735
+ "pass": "L’item de liste a un élément <ul>, <ol> ou role=\"list\" parent",
736
+ "fail": {
737
+ "default": "L’item de liste n’a pas d’élément <ul> ou <ol> parent",
738
+ "roleNotValid": "L’item de liste n’a pas d’élément <ul> ou <ol> parent sans un role ou un role=\"list\""
739
+ }
740
+ },
741
+ "only-dlitems": {
742
+ "pass": "L’élément de liste n’a que des descendants directs qui sont autorisés dans les éléments <dt> ou <dd>",
743
+ "fail": "L’élément de liste a des descendants directs qui ne sont pas autorisés dans les éléments <dt> ou <dd>"
744
+ },
745
+ "only-listitems": {
746
+ "pass": "L’élément de liste n’a que des descendants directs qui sont autorisés dans les éléments <li>",
747
+ "fail": {
748
+ "default": "L’élément de liste comporte des descendants directs qui ne sont pas autorisés à l’intérieur de l’élément <li>",
749
+ "roleNotValid": "L’élément de liste comporte des descendants directs avec un rôle qui n’est pas autorisé : ${data.roles}"
750
+ }
751
+ },
752
+ "structured-dlitems": {
753
+ "pass": "S’il n’est pas vide, l’élément contient au moins un élément <dt> et un élément <dd>",
754
+ "fail": "S’il n’est pas vide, l’élément doit contenir au moins un élément <dt> et un élément <dd>"
755
+ },
756
+ "caption": {
757
+ "pass": "L’élément multimédia a une piste de sous-titres",
758
+ "incomplete": "Aucune piste de sous-titres n’a pu être trouvée pour cet élément"
759
+ },
760
+ "frame-tested": {
761
+ "pass": "L’iframe a été testée avec axe-core",
762
+ "fail": "L’iframe n’a pu être testée avec axe-core",
763
+ "incomplete": "L’iframe doit encore être testée avec axe-core"
764
+ },
765
+ "no-autoplay-audio": {
766
+ "pass": "<video> ou <audio> ne produit pas de son pour une durée plus grande que celle permise ou a un mécanisme de contrôle",
767
+ "fail": "<video> ou <audio> produisent du son pour une durée plus grande que celle permise et n’ont pas de mécanisme de contrôle",
768
+ "incomplete": "Verifier que l’élément <video> ou <audio> ne produit pas de son pour une durée plus grande que celle permise ou a un mécanisme de contrôle"
769
+ },
770
+ "css-orientation-lock": {
771
+ "pass": "L’utilisation de l’écran est indépendante de l’orientation et n’est pas limitée à un mode d’affichage donné",
772
+ "fail": "L’utilisation de l’écran est limitée à une orientation donnée par CSS, rendant l’affichage inutilisable",
773
+ "incomplete": "Le verrouillage de l’orientation d’affichage par CSS ne peut être déterminé"
774
+ },
775
+ "meta-viewport-large": {
776
+ "pass": "La balise <meta> ne limite pas l’agrandissement sur les appareils mobiles",
777
+ "fail": "La balise <meta> limite l’agrandissement sur les appareils mobiles"
778
+ },
779
+ "meta-viewport": {
780
+ "pass": "La balise <meta> n’empêche pas l’agrandissement sur les appareils mobiles",
781
+ "fail": "La balise <meta> empêche l’agrandissement sur les appareils mobiles"
782
+ },
783
+ "header-present": {
784
+ "pass": "La page a un entête",
785
+ "fail": "La page n’a pas d’entête"
786
+ },
787
+ "heading-order": {
788
+ "pass": "Hiérarchie entre les titres valide",
789
+ "fail": "Hiérarchie entre les titres invalide",
790
+ "incomplete": "Impossible de déterminer le titre précédent"
791
+ },
792
+ "identical-links-same-purpose": {
793
+ "pass": "Il n’y a pas d’autre lien avec le même nom qui a pour destination une URL différente",
794
+ "incomplete": "Vérifier que les liens ont la même finalité ou sont volontairement ambigus."
795
+ },
796
+ "internal-link-present": {
797
+ "pass": "Lien d’évitement valide trouvé",
798
+ "fail": "Aucun lien d’évitement valide trouvé"
799
+ },
800
+ "landmark": {
801
+ "pass": "La page a une région",
802
+ "fail": "La page n’a pas de région"
803
+ },
804
+ "meta-refresh": {
805
+ "pass": "Aucune balise <meta> ne rafraîchit immédiatement la page",
806
+ "fail": "La balise <meta> force le rafraîchissement minuté de la page"
807
+ },
808
+ "p-as-heading": {
809
+ "pass": "Les éléments <p> ne sont pas stylés comme des titres",
810
+ "fail": "Des titres doivent être utilisés au lieu de styler des éléments <p>"
811
+ },
812
+ "region": {
813
+ "pass": "Contenu imbriqué dans une région ARIA",
814
+ "fail": "Contenu non imbriqué dans une région ARIA"
815
+ },
816
+ "skip-link": {
817
+ "pass": "La cible du lien d’évitement existe",
818
+ "incomplete": "La cible du lien d’évitement devrait devenir visible lors de l’activation",
819
+ "fail": "Lien d’évitement sans cible"
820
+ },
821
+ "unique-frame-title": {
822
+ "pass": "L’attribut title de l’élément est unique",
823
+ "fail": "L’attribut title de l’élément n’est pas unique"
824
+ },
825
+ "duplicate-id-active": {
826
+ "pass": "Le document ne comporte aucun élément actif partageant la même valeur d’attribut id",
827
+ "fail": "Le document comporte ou un plusieurs éléments actifs partageant la même valeur d’attribut id : ${data}"
828
+ },
829
+ "duplicate-id-aria": {
830
+ "pass": "Le document ne comporte aucun élément référencé par ARIA ou étiquettes partageant la même valeur dattribut id",
831
+ "fail": "Le document comporte un ou plusieurs éléments référencés par ARIA partageant la même valeur d’attribut id : ${data}"
832
+ },
833
+ "duplicate-id": {
834
+ "pass": "Le document n’a pas d’éléments qui partagent le même attribut id",
835
+ "fail": "Le document a plusieurs éléments avec le même attribut id : ${data}"
836
+ },
837
+ "aria-label": {
838
+ "pass": "L’attribut aria-label existe et n’est pas vide",
839
+ "fail": "L’attribut aria-label n’existe pas ou est vide"
840
+ },
841
+ "aria-labelledby": {
842
+ "pass": "L’attribut aria-labelledby existe et fait référence à des éléments visibles par les lecteurs d’écran",
843
+ "fail": "L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles",
844
+ "incomplete": "S’assurer que l’attribut aria-labelledby fait référence à un élément existant"
845
+ },
846
+ "avoid-inline-spacing": {
847
+ "pass": "Aucun style inline affectant l’espacement du texte avec '!important' n’a été spécifié",
848
+ "fail": {
849
+ "singular": "Retirer '!important' du style inline ${data.values}, car le remplacement n’est pas pris en charge par la plupart des navigateurs",
850
+ "plural": "Retirer '!important' des styles inline ${data.values}, car le remplacement n’est pas pris en charge par la plupart des navigateurs"
851
+ }
852
+ },
853
+ "button-has-visible-text": {
854
+ "pass": "L’élément a un contenu textuel visible par les lecteurs d’écran",
855
+ "fail": "L’élément n’a aucun contenu textuel visible par les lecteurs d’écran",
856
+ "incomplete": "Impossible de vérifier si l’élément a des enfants"
857
+ },
858
+ "doc-has-title": {
859
+ "pass": "Le document a un élément <title> non vide",
860
+ "fail": "Le document n’a pas d’élément <title> non vide"
861
+ },
862
+ "exists": {
863
+ "pass": "L’élément n’existe pas",
864
+ "incomplete": "L’élément existe"
865
+ },
866
+ "has-alt": {
867
+ "pass": "L’élément a un attribut alt",
868
+ "fail": "L’élément n’a pas d’attribut alt"
869
+ },
870
+ "has-visible-text": {
871
+ "pass": "L’élément a un contenu textuel visible par les lecteurs d’écran",
872
+ "fail": "L’élément n’a aucun contenu textuel visible par les lecteurs d’écran",
873
+ "incomplete": "Impossible de vérifier si l’élément a des enfants"
874
+ },
875
+ "is-on-screen": {
876
+ "pass": "L’élément n’est pas visible",
877
+ "fail": "L’élément est visible"
878
+ },
879
+ "non-empty-alt": {
880
+ "pass": "L’élément a un attribut alt non vide",
881
+ "fail": {
882
+ "noAttr": "L’élément n’a pas d’attribut alt",
883
+ "emptyAttr": "L’élément a un attribut alt vide"
884
+ }
885
+ },
886
+ "non-empty-if-present": {
887
+ "pass": {
888
+ "default": "L’élément n’a pas d’attribut value",
889
+ "has-label": "L’élément a un attribut value non-vide"
890
+ },
891
+ "fail": "L’élément a un attribut value, et cet attribut est vide"
892
+ },
893
+ "non-empty-placeholder": {
894
+ "pass": "L’élément a un attribut placeholder",
895
+ "fail": {
896
+ "noAttr": "L’élément n’a pas d’attribut placeholder",
897
+ "emptyAttr": "L’élément a un attribut placeholder vide"
898
+ }
899
+ },
900
+ "non-empty-title": {
901
+ "pass": "L’élément a un attribut title",
902
+ "fail": {
903
+ "noAttr": "L’élément n’a pas d’attribut title",
904
+ "emptyAttr": "L’élément a un attribut title vide"
905
+ }
906
+ },
907
+ "non-empty-value": {
908
+ "pass": "L’élément a un attribut value non vide",
909
+ "fail": {
910
+ "noAttr": "L’élément n’a pas d’attribut value",
911
+ "emptyAttr": "L’élément a un attribut value vide"
912
+ }
913
+ },
914
+ "presentational-role": {
915
+ "pass": "La sémantique par défaut de l’élément a été remplacée par role=\"${data.role}\"",
916
+ "fail": {
917
+ "default": "La sémantique par défaut de l’élément n’a pas été remplacée par role=\"none\" ou role=\"presentation\"",
918
+ "globalAria": "Le rôle de l’élément n’est pas un rôle de présentation car il a un attribut ARIA global",
919
+ "focusable": "Le rôle de l’élément n’est pas un rôle de présentation car il est focalisable",
920
+ "both": "Le rôle de l’élément n’est pas un rôle de présentation car il a un attribut ARIA global et est focalisable"
921
+ }
922
+ },
923
+ "role-none": {
924
+ "pass": "La sémantique par défaut de l’élément est annulée avec role=\"none\"",
925
+ "fail": "La sémantique par défaut de l’élément n’est pas annulée avec role=\"none\""
926
+ },
927
+ "role-presentation": {
928
+ "pass": "La sémantique par défaut de l’élément est annulée avec role=\"presentation\"",
929
+ "fail": "La sémantique par défaut de l’élément n’est pas annulée avec role=\"presentation\""
930
+ },
931
+ "svg-non-empty-title": {
932
+ "pass": "L’élément a un enfant qui est un titre",
933
+ "fail": {
934
+ "noTitle": "L’élément n’a pas d’enfant qui est un titre",
935
+ "emptyTitle": "Le titre qui est enfant de cet élément est vide"
936
+ },
937
+ "incomplete": "Impossible de déterminer si l’élément a un enfant qui est un titre"
938
+ },
939
+ "caption-faked": {
940
+ "pass": "La première ligne d’un tableau n’est pas utilisée en guise de légende",
941
+ "fail": "La première ligne d’un tableau devrait être un caption et non des cellules de tableau"
942
+ },
943
+ "html5-scope": {
944
+ "pass": "L’attribut scope est utilisé uniquement sur des cellules d’entête de tableau",
945
+ "fail": "En HTML 5, l’attribut scope ne peut être utilisé que sur des cellules d’entête de tableau"
946
+ },
947
+ "same-caption-summary": {
948
+ "pass": "Les contenus de l’attribut summary et de <caption> ne sont pas identiques",
949
+ "fail": "Les contenus de l’attribut summary et de <caption> sont identiques"
950
+ },
951
+ "scope-value": {
952
+ "pass": "L’attribut scope est utilisé correctement",
953
+ "fail": "La valeur de l’attribut scope ne peut être que 'row' ou 'col'"
954
+ },
955
+ "td-has-header": {
956
+ "pass": "Toutes les cellules de données non vides ont un entête de tableau",
957
+ "fail": "Certaines cellules de données non vides n’ont pas d’entête de tableau"
958
+ },
959
+ "td-headers-attr": {
960
+ "pass": "L’attribut headers est utilisé exclusivement pour faire référence à d’autres cellules dans le tableau",
961
+ "incomplete": "L’attribut headers est vide",
962
+ "fail": "L’attribut headers n’est pas utilisé exclusivement pour faire référence à d’autres cellules dans le tableau"
963
+ },
964
+ "th-has-data-cells": {
965
+ "pass": "Toutes les cellules d’entête de tableau font référence à des cellules de données",
966
+ "fail": "Toutes les cellules d’entête de tableau ne font pas référence à des cellules de données",
967
+ "incomplete": "Les cellules de données sont absentes ou vides"
968
+ },
969
+ "hidden-content": {
970
+ "pass": "Tout le contenu de la page a été analysé.",
971
+ "fail": "Il y a eu des problèmes pour analyser le contenu de cette page.",
972
+ "incomplete": "Il y a du contenu caché sur la page qui n’a pas été analysé. Vous allez devoir modifier l’affichage de ce contenu afin de l’analyser."
973
+ }
974
+ },
975
+ "failureSummaries": {
976
+ "any": {
977
+ "failureMessage": "Corriger l’un des éléments suivants : {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
978
+ },
979
+ "none": {
980
+ "failureMessage": "Corriger tous les éléments suivants : {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
981
+ }
982
+ },
983
+ "incompleteFallbackMessage": "axe n’a pu en déterminer la raison. Il est temps de sortir l’inspecteur d’éléments !"
842
984
  }