govuk_publishing_components 30.4.1 → 30.5.0

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