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,882 +1,968 @@
1
1
  {
2
- "lang": "pt_BR",
3
- "rules": {
4
- "accesskeys": {
5
- "description": "Certifique-se de que cada valor do atributo 'acesskey' é único",
6
- "help": "O valor do atributo 'accesskey' deve ser único"
7
- },
8
- "area-alt": {
9
- "description": "Certifique-se de que elementos <area> de mapas de imagem tenham um texto alternativo",
10
- "help": "Elementos <area> ativos devem ter um texto alternativo"
11
- },
12
- "aria-allowed-attr": {
13
- "description": "Certifique-se de que os atributos ARIA são permitidos para a função de um elemento",
14
- "help": "Os elementos devem usar apenas atributos ARIA permitidos"
15
- },
16
- "aria-allowed-role": {
17
- "description": "Certifique-se de que o atributo 'role' tem um valor apropriado para o elemento",
18
- "help": "A função ARIA deve ser apropriada para o elemento"
19
- },
20
- "aria-dpub-role-fallback": {
21
- "description": "Certifique-se de que as funções DPUB não suportadas são usados somente em elementos com funções implícitas (fallback)",
22
- "help": "As funções DPUB não suportadas devem ser usadas em elementos com funções implícitas (fallback)"
23
- },
24
- "aria-hidden-body": {
25
- "description": "Certifique-se de que aria-hidden='true' não está presente no elemento <body>.",
26
- "help": "aria-hidden='true' não deve estar presente no elemento <body>"
27
- },
28
- "aria-hidden-focus": {
29
- "description": "Certifique-se de que elementos com aria-hidden não contenham elementos focalizáveis",
30
- "help": "Elementos ocultados através de ARIA não devem conter elementos focalizáveis"
31
- },
32
- "aria-input-field-name": {
33
- "description": "Certifique-se de que cada campo de entrada ARIA tenha um nome acessível",
34
- "help": "Campos de entrada ARIA tenham um nome acessível"
35
- },
36
- "aria-required-attr": {
37
- "description": "Certifique-se de que elementos com funções ARIA tenham todos os atributos ARIA necessários",
38
- "help": "Os atributos ARIA necessários devem ser fornecidos"
39
- },
40
- "aria-required-children": {
41
- "description": "Certifique-se de que elementos com uma função ARIA que requer funções filhas as contenham",
42
- "help": "Certas funções ARIA devem conter filhos específicos"
43
- },
44
- "aria-required-parent": {
45
- "description": "Certifique-se de que elementos com uma função ARIA que requer funções pais estejam contidas nestas",
46
- "help": "Certas funções ARIA devem estar contidas em pais específicos"
47
- },
48
- "aria-roledescription": {
49
- "description": "Certifique-se de que 'aria-roledescription' somente é utilizado em elementos com uma função implícita ou explícita",
50
- "help": "Use 'aria-roledescription' em elementos com função semântica"
51
- },
52
- "aria-roles": {
53
- "description": "Certifique-se de que todos os elementos com um atributo 'role' utilizem um valor válido",
54
- "help": "Os ARIA 'roles' utilizados devem ter valores válidos"
55
- },
56
- "aria-toggle-field-name": {
57
- "description": "Certifique-se de que cada botão de alternância ARIA tenha um nome acessível",
58
- "help": "Botões de alternância ARIA tenham um nome acessível"
59
- },
60
- "aria-valid-attr-value": {
61
- "description": "Certifique-se de que cada atributo ARIA tenha um valor válido",
62
- "help": "Atributos ARIA devem ter valores válidos"
63
- },
64
- "aria-valid-attr": {
65
- "description": "Certifique-se de que atributos que se iniciem com aria- são atributos ARIA válidos",
66
- "help": "Atributos ARIA devem ter nomes válidos"
67
- },
68
- "audio-caption": {
69
- "description": "Certifique-se de que elementos <audio> tenham legendas",
70
- "help": "Elementos <audio> devem ter uma trilha de legenda"
71
- },
72
- "autocomplete-valid": {
73
- "description": "Certifique-se de que o atributo 'autocomplete' esteja correto e adequado para o campo de formulário",
74
- "help": "Atributo 'autocomplete' deve ser usado corretamente"
75
- },
76
- "avoid-inline-spacing": {
77
- "description": "Certifique-se de que o espaçamento de texto definido via atributos de estilo pode ser ajustado com folhas de estilo personalizadas",
78
- "help": "O espaçamento de texto 'inline' deve ser ajustável com folhas de estilo personalizadas"
79
- },
80
- "blink": {
81
- "description": "Certifique-se de que elementos <blink> não são utilizados",
82
- "help": "Elementos <blink> foram descontinuados e não devem ser utilizados"
83
- },
84
- "button-name": {
85
- "description": "Certifique-se de que botões tenham texto discernível",
86
- "help": "Botões devem ter texto discernível"
87
- },
88
- "bypass": {
89
- "description": "Certifique-se de que cada página tenha ao menos um mecanismo para o usuário ignorar a navegação e ir direto ao conteúdo",
90
- "help": "A página deve ter meios para ignorar blocos repetidos"
91
- },
92
- "checkboxgroup": {
93
- "description": "Certifique-se de que elementos <input type=\"checkbox\"> relacionados tenham um grupo e que a designação do grupo seja consistente",
94
- "help": "Caixas de seleção com o mesmo valor do atributo 'name' devem ser parte de um grupo"
95
- },
96
- "color-contrast": {
97
- "description": "Certifique-se de que o contraste entre as cores de primeiro plano e de fundo atenda aos limites de relação de contraste WCAG 2 AA",
98
- "help": "Os elementos devem ter contraste de cor suficiente"
99
- },
100
- "css-orientation-lock": {
101
- "description": "Certifique-se de que o conteúdo não está bloqueado para nenhuma orientação de tela específica, e que o mesmo seja operável em todas as orientações de tela",
102
- "help": "CSS Media queries não são usadas para bloquear a orientação de tela"
103
- },
104
- "definition-list": {
105
- "description": "Certifique-se de que elementos <dl> estão estruturados corretamente",
106
- "help": "Elementos <dl> devem conter diretamente apenas grupos <dt> e <dd> propriamente ordenados, ou elementos <script> ou <template>"
107
- },
108
- "dlitem": {
109
- "description": "Certifique-se de que elementos <dt> e <dd> estão contidos em um elemento <dl>",
110
- "help": "Elementos <dt> e <dd> devem estar contidos em um elemento <dl>"
111
- },
112
- "document-title": {
113
- "description": "Certifique-se de que cada documento HTML contenha um elemento <title> não vazio",
114
- "help": "Documentos devem ter um elemento <title> para ajudar na navegação"
115
- },
116
- "duplicate-id-active": {
117
- "description": "Certifique-se de que cada valor do atributo 'id' de elementos ativos seja único",
118
- "help": "IDs de elementos ativos devem ser únicos"
119
- },
120
- "duplicate-id-aria": {
121
- "description": "Certifique-se de que cada valor do atributo 'id' usado no ARIA e em rótulos seja único",
122
- "help": "IDs usados no ARIA e em 'labels' devem ser únicos"
123
- },
124
- "duplicate-id": {
125
- "description": "Certifique-se de que cada valor do atributo 'id' seja único",
126
- "help": "O valor do atributo 'id' deve ser único"
127
- },
128
- "empty-heading": {
129
- "description": "Certifique-se de que os títulos tenham texto discernível",
130
- "help": "Os títulos não devem ser vazios"
131
- },
132
- "focus-order-semantics": {
133
- "description": "Certifique-se de que os elementos na ordem de foco tenham uma função apropriada",
134
- "help": "Elementos na ordem de foco necessitam de uma função apropriada para conteúdo interativo"
135
- },
136
- "form-field-multiple-labels": {
137
- "description": "Certifique-se de que campos de formulários não tenham múltiplos elementos 'label'",
138
- "help": "Campos de formulário não devem ter múltiplos elementos 'label'"
139
- },
140
- "frame-tested": {
141
- "description": "Certifique-se de que elementos <iframe> e <frame> contenham o script axe-core",
142
- "help": "Os 'frames' devem ser testados com o axe-core"
143
- },
144
- "frame-title-unique": {
145
- "description": "Certifique-se de que os elementos <iframe> e <frame> contenham um atributo 'title' único",
146
- "help": "Os 'frames' devem ter um atributo 'title' único"
147
- },
148
- "frame-title": {
149
- "description": "Certifique-se de que os elementos <iframe> e <frame> contenham um atributo 'title' não vazio",
150
- "help": "Os 'frames' devem ter um atributo 'title'"
151
- },
152
- "heading-order": {
153
- "description": "Certifique-se de que a hierarquia dos níveis de títulos seja semanticamente correta",
154
- "help": "Níveis dos títulos devem aumentar de um em um"
155
- },
156
- "hidden-content": {
157
- "description": "Informar aos usuários sobre conteúdo oculto.",
158
- "help": "O conteúdo oculto na página não pode ser analisado"
159
- },
160
- "html-has-lang": {
161
- "description": "Certifique-se de que cada documento HTML tenha um atributo 'lang'",
162
- "help": "O elemento <html> deve ter um atributo 'lang'"
163
- },
164
- "html-lang-valid": {
165
- "description": "Certifique-se de que o atributo 'lang' do elemento <html> tenha um valor válido",
166
- "help": "O elemento <html> deve ter um valor válido para o atributo 'lang'"
167
- },
168
- "html-xml-lang-mismatch": {
169
- "description": "Certifique-se de que elementos HTML com ambos os atributos 'lang' e 'xml:lang' válidos concordem entre si sobre o idioma base da página",
170
- "help": "Elementos HTML com 'lang' e 'xml:lang' devem ter o mesmo idioma base"
171
- },
172
- "identical-links-same-purpose": {
173
- "description": "Certifique-se de que links com o mesmo nome acessível servem a um propósito similar",
174
- "help": "Links com o mesmo nome devem ter um propósito similar"
175
- },
176
- "image-alt": {
177
- "description": "Certifique-se de que elementos <img> tenham texto alternativo ou um 'role' igual a 'none' ou 'presentation'",
178
- "help": "Imagens devem ter texto alternativo"
179
- },
180
- "image-redundant-alt": {
181
- "description": "Certifique-se de que a alternativa de imagem não seja repetida como texto",
182
- "help": "O texto alternativo de imagens não deve ser repetido como texto"
183
- },
184
- "input-button-name": {
185
- "description": "Certifique-se de que botões tenham um texto discernível",
186
- "help": "Botões de controle devem ter um texto discernível"
187
- },
188
- "input-image-alt": {
189
- "description": "Certifique-se de que elementos <input type=\"image\"> tenham um texto alternativo",
190
- "help": "Botões de imagem devem ter um texto alternativo"
191
- },
192
- "label-content-name-mismatch": {
193
- "description": "Certifique-se de que elementos nomeados por meio de seu conteúdo tenham seu texto visível como parte de seu nome acessível",
194
- "help": "Elementos devem ter seu texto visível como parte de seu nome acessível"
195
- },
196
- "label-title-only": {
197
- "description": "Certifique-se de que cada elemento de formulário não seja rotulado apenas usando os atributos 'title' ou 'aria-describedby'",
198
- "help": "Elementos de formulário devem ter um rótulo visível"
199
- },
200
- "label": {
201
- "description": "Certifique-se de que cada elemento de formulário tenha um rótulo",
202
- "help": "Elementos de formulário devem ter rótulos"
203
- },
204
- "landmark-banner-is-top-level": {
205
- "description": "Certifique-se de que a região 'banner' esteja no nível principal",
206
- "help": "A região 'banner' não deve estar contida em outra região"
207
- },
208
- "landmark-complementary-is-top-level": {
209
- "description": "Certifique-se de que a região 'complementary' ou 'aside' estejam no nível principal",
210
- "help": "'Aside' não deve estar contido em outra região"
211
- },
212
- "landmark-contentinfo-is-top-level": {
213
- "description": "Certifique-se de que a região 'contentinfo' esteja no nível principal",
214
- "help": "A região 'contentinfo' não deve estar contida em outra região"
215
- },
216
- "landmark-main-is-top-level": {
217
- "description": "Certifique-se de que a região 'main' esteja no nível principal",
218
- "help": "A região 'main' não deve estar contida em outra região"
219
- },
220
- "landmark-no-duplicate-banner": {
221
- "description": "Certifique-se de que o documento tenha no máximo uma região 'banner'",
222
- "help": "O documento não deve ter mais do que uma região 'banner'"
223
- },
224
- "landmark-no-duplicate-contentinfo": {
225
- "description": "Certifique-se de que o documento tenha no máximo uma região 'contentinfo'",
226
- "help": "O documento não deve ter mais do que uma região 'contentinfo'"
227
- },
228
- "landmark-no-duplicate-main": {
229
- "description": "Certifique-se de que o documento tenha, no máximo, uma região 'main'",
230
- "help": "O documento não deve ter mais de uma região 'main'"
231
- },
232
- "landmark-one-main": {
233
- "description": "Certifique-se de que o documento tenha apenas uma região 'main' e que cada 'iframe' na página tenha no náximo uma região 'main'",
234
- "help": "O documento deve ter uma região 'main'"
235
- },
236
- "landmark-unique": {
237
- "help": "Certifique-se de que as regiões são únicas",
238
- "description": "As regiões devem ter um 'role' ou combinação de 'role'/'label'/'title' (ou seja, um nome acessível) únicos"
239
- },
240
- "layout-table": {
241
- "description": "Certifique-se de que elementos <table> de apresentação não usem elementos <th>, <caption> ou o atributo 'summary'",
242
- "help": "Tabelas de apresentação não devem usar elementos de tabela de dados"
243
- },
244
- "link-in-text-block": {
245
- "description": "Links podem ser distinguidos sem depender da cor",
246
- "help": "Links devem ser distinguidos do texto ao redor de uma maneira que não dependa da cor"
247
- },
248
- "link-name": {
249
- "description": "Certifique-se de que links tenham um texto discernível",
250
- "help": "Links devem ter um texto discernível"
251
- },
252
- "list": {
253
- "description": "Certifique-se de que listas sejam estruturadas corretamente",
254
- "help": "Elementos <ul> e <ol> devem conter diretamente apenas elementos <li>, <script> ou <template>"
255
- },
256
- "listitem": {
257
- "description": "Certifique-se de que elementos <li> são usados semanticamente",
258
- "help": "Elementos <li> devem estar contidos em um <ul> ou <ol>"
259
- },
260
- "marquee": {
261
- "description": "Certifique-se de que elementos <marquee> não são utilizados",
262
- "help": "Elementos <marquee> foram descontinuados e não devem ser utilizados"
263
- },
264
- "meta-refresh": {
265
- "description": "Certifique-se de que <meta http-equiv=\"refresh\"> não é utilizado",
266
- "help": "Atualização temporizada não deve existir"
267
- },
268
- "meta-viewport-large": {
269
- "description": "Certifique-se de que <meta name=\"viewport\"> permite ampliar de maneira significativa",
270
- "help": "Os usuários devem poder dar zoom e ampliar o texto em até 500%"
271
- },
272
- "meta-viewport": {
273
- "description": "Certifique-se de que <meta name=\"viewport\"> não desabilite a ampliação de texto e o zoom",
274
- "help": "O zoom e a ampliação de texto não devem ser desabilitados"
275
- },
276
- "no-autoplay-audio": {
277
- "description": "Certifique-se de que elementos <video> ou <audio> não reproduzam áudio automaticamente por mais de 3 segundos sem um mecanismo de controle para parar ou silenciar o áudio",
278
- "help": "Elementos <video> ou <audio> não reproduzam áudio automaticamente"
279
- },
280
- "object-alt": {
281
- "description": "Certifique-se de que elementos <object> tenham um texto alternativo",
282
- "help": "Elementos <object> devem ter um texto alternativo"
283
- },
284
- "p-as-heading": {
285
- "description": "Certifique-se de que elementos <p> não sejam utilizados para estilizar títulos",
286
- "help": "Negrito, itálico e 'font-size' não sejam utilizados para estilizar elementos <p> como um título"
287
- },
288
- "page-has-heading-one": {
289
- "description": "Certifique-se de que a página, ou pelo menos um dos seus 'frames', contenha um título de primeiro nível",
290
- "help": "A página deve conter um título de primeiro nível"
291
- },
292
- "radiogroup": {
293
- "description": "Certifique-se de que elementos <input type=\"radio\"> relacionados tenham o mesmo grupo e que o nome do grupo é consistente",
294
- "help": "Controles do tipo 'botão de rádio' com o mesmo valor para o atributo 'name' devem ser parte de um grupo"
295
- },
296
- "region": {
297
- "description": "Certifique-se de todo o conteúdo da página esteja contido em regiões (landmarks)",
298
- "help": "Todo o conteúdo da página deve estar contido em regiões (landmarks)"
299
- },
300
- "role-img-alt": {
301
- "description": "Certifique-se de que elementos com [role='img'] tenham texto alternativo",
302
- "help": "Elementos com [role='img'] tenham um texto alternativo"
303
- },
304
- "scope-attr-valid": {
305
- "description": "Certifique-se de que o atributo 'scope' é utilizado corretamente em tabelas",
306
- "help": "O atributo 'scope' deve ser utilizado corretamente"
307
- },
308
- "scrollable-region-focusable": {
309
- "description": "Elementos que tenham conteúdo rolável devem ser acessíveis via teclado",
310
- "help": "Certificar-se de que regiões roláveis tenham acesso via teclado"
311
- },
312
- "server-side-image-map": {
313
- "description": "Certifique-se de que mapas de imagem do lado do servidor não são utilizados",
314
- "help": "Mapas de imagem do lado do servidor não devem ser utilizados"
315
- },
316
- "skip-link": {
317
- "description": "Certifique-se de que todos os links de escape tenham um destino focalizável",
318
- "help": "O destino de um link de escape deve existir e ser focalizável"
319
- },
320
- "svg-img-alt": {
321
- "description": "Certifique-se de que elementos svg com um 'role' de 'img', 'graphics-document' ou 'graphics-symbol' tenham um texto acessível",
322
- "help": "Elementos svg com um 'role' de 'img' tenham um texto alternativo"
323
- },
324
- "tabindex": {
325
- "description": "Certifique-se de que os valores do atributo 'tabindex' não são maiores do que 0",
326
- "help": "Elementos não devem ter um 'tabindex' maior do que zero"
327
- },
328
- "table-duplicate-name": {
329
- "description": "Certifique-se de que tabelas não tenham 'summary' e <caption> iguais",
330
- "help": "O elemento <caption> não deve conter o mesmo texto que o atributo 'summary'"
331
- },
332
- "table-fake-caption": {
333
- "description": "Certifique-se de que tabelas com uma legenda usem o elemento <caption>.",
334
- "help": "Células de dados ou cabeçalhos não devem ser usadas para exibir uma legenda para uma tabela de dados."
335
- },
336
- "td-has-header": {
337
- "description": "Certifique-se de que cada célula de dados não vazia em uma tabela grande tenha um ou mais cabeçalhos",
338
- "help": "Todos os elementos 'td' não vazios em uma tabela maior que 3 por 3 devem ter um cabeçalho associado"
339
- },
340
- "td-headers-attr": {
341
- "description": "Certifique-se de que cada célula em uma tabela usando o atributo 'headers' se refira a outra célula nesta tabela",
342
- "help": "Todas as células em uma tabela que utilizem o atributo 'headers' devem se referir apenas a outras células desta mesma tabela"
343
- },
344
- "th-has-data-cells": {
345
- "description": "Certifique-se de cada cabeçalho em uma tabela de dados se refira a células de dados",
346
- "help": "Todos os elementos 'th' e elementos com role=columnheader/rowheader devem ter células de dados que eles descrevem"
347
- },
348
- "valid-lang": {
349
- "description": "Certifique-se de que os atributos 'lang' tenham valores válidos",
350
- "help": "O atributo 'lang' deve ter um valor válido"
351
- },
352
- "video-caption": {
353
- "description": "Certifique-se de que elementos <video> tenham legendas",
354
- "help": "Elementos <video> devem ter legendas"
355
- },
356
- "video-description": {
357
- "description": "Certifique-se de que elementos <video> tenham descrição de áudio",
358
- "help": "Elementos <video> devem ter uma faixa de áudio de descrição"
359
- }
360
- },
361
- "checks": {
362
- "abstractrole": {
363
- "pass": "As funções abstratas não são utilizadas",
364
- "fail": {
365
- "singular": "A função abstrata não pode ser diretamente utilizada: ${data.values}",
366
- "plural": "As funções abstratas não podem ser diretamente utilizadas: ${data.values}"
367
- }
368
- },
369
- "aria-allowed-attr": {
370
- "pass": "Atributos ARIA são usados corretamente para a função definida",
371
- "fail": {
372
- "singular": "O atributo ARIA não é permitido: ${data.values}",
373
- "plural": "Os atributos ARIA não são permitidos: ${data.values}"
374
- }
375
- },
376
- "aria-allowed-role": {
377
- "pass": "O ARIA 'role' é permitido para o elemento dado",
378
- "fail": {
379
- "singular": "O ARIA 'role' ${data.values} não é permitido para o elemento dado",
380
- "plural": "Os ARIA 'roles' ${data.values} não são permitidos para o elemento dado"
381
- },
382
- "incomplete": {
383
- "singular": "O ARIA 'role' ${data.values} deve ser removido quando o elemento é tornado visível, uma vez que não é permitido para o elemento",
384
- "plural": "Os ARIA 'roles' ${data.values} devem ser removidos quando o elemento é tornado visível, uma vez que não são permitidos para o elemento"
385
- }
386
- },
387
- "aria-hidden-body": {
388
- "pass": "Nenhum atributo 'aria-hidden' está presente no elemento <body>",
389
- "fail": "'aria-hidden=true' não deve estar presente no elemento <body>"
390
- },
391
- "aria-roledescription": {
392
- "pass": "'aria-roledescription' usado em função semântica suportada",
393
- "incomplete": "Garanta que o 'aria-roledescription' é anunciado pelos leitores de tela suportados",
394
- "fail": "Dê ao elemento uma função que suporte 'aria-roledescription'"
395
- },
396
- "aria-errormessage": {
397
- "pass": "Usa uma técnica de 'aria-errormessage' suportada",
398
- "fail": {
399
- "singular": "O valor de 'aria-errormessage' `${data.values}` deve umsar uma técnica para anunciar a mensagem (por exemplo, 'aria-live', 'aria-describedby', role=alert, etc.)",
400
- "plural": "Os valores de 'aria-errormessage' `${data.values}` devem usar uma técnica para anunciar a mensagem (por exemplo, 'aria-live', 'aria-describedby', role=alert, etc.)"
401
- }
402
- },
403
- "fallbackrole": {
404
- "pass": "Apenas um valor de 'role' deve ser utilizado",
405
- "fail": "Use apenas um valor de 'role', uma vez que funções 'fallback' não são suportadas em navegadores mais antigos"
406
- },
407
- "has-widget-role": {
408
- "pass": "Elemento tem um 'role' de 'widget'.",
409
- "fail": "Elemento não tem um 'role' de 'widget'."
410
- },
411
- "implicit-role-fallback": {
412
- "pass": "A função ARIA implícita do elemento é um 'fallback' apropriado",
413
- "fail": "A função ARIA implícita do elemento não é um bom 'fallback' para esta função (não suportada)"
414
- },
415
- "invalidrole": {
416
- "pass": "O ARIA 'role' é válido",
417
- "fail": {
418
- "singular": "O 'role' deve ser um dos ARIA 'roles' válidos: ${data.values}",
419
- "plural": "Os 'roles' devem ser um dos ARIA 'roles' válidos: ${data.values}"
420
- }
421
- },
422
- "no-implicit-explicit-label": {
423
- "pass": "Não nenhuma divergência entre <label> e o nome acessível",
424
- "incomplete": "Verifique se o <label> não precisa fazer parte do nome do campo ARIA {{=it.data}}"
425
- },
426
- "aria-required-attr": {
427
- "pass": "Todos os atributos ARIA necessários estão presentes",
428
- "fail": {
429
- "singular": "Atributo ARIA necessário ausente: ${data.values}",
430
- "plural": "Atributos ARIA necessários ausentes: ${data.values}"
431
- }
432
- },
433
- "aria-required-children": {
434
- "pass": "Os ARIA filhos necessários estão presentes",
435
- "fail": {
436
- "singular": "Função ARIA filha necessária ausente: ${data.values}",
437
- "plural": "Funções ARIA filhas necessárias ausentes: ${data.values}"
438
- },
439
- "incomplete": {
440
- "singular": "Esperando função ARIA filha a ser adicionada: ${data.values}",
441
- "plural": "Esperando funções ARIA filhas a serem adicionadas: ${data.values}"
442
- }
443
- },
444
- "aria-required-parent": {
445
- "pass": "A função ARIA pai necessária está presente",
446
- "fail": {
447
- "singular": "Função ARIA pai necessária ausente: ${data.values}",
448
- "plural": "Funções ARIA pais necessárias ausentes: ${data.values}"
449
- }
450
- },
451
- "aria-unsupported-attr": {
452
- "pass": "O atributo ARIA é suportado",
453
- "fail": "O atributo ARIA não é amplamente suportado em leitores de tela e tecnologias assistivas: {{~it.data:value}} {{=value}}{{~}}"
454
- },
455
- "unsupportedrole": {
456
- "pass": "O ARIA 'role' é suportado",
457
- "fail": "O 'role' usado não é amplamente suportado em leitores de tela e tecnologias assistivas: {{~it.data:value}} {{=value}}{{~}}"
458
- },
459
- "aria-valid-attr-value": {
460
- "pass": "Os valores dos atributos ARIA são válidos",
461
- "fail": {
462
- "singular": "Valor de atributo ARIA inválido: ${data.values}",
463
- "plural": "Valores de atributos ARIA inválidos: ${data.values}"
464
- },
465
- "incomplete": {
466
- "noId": "O ID do atributo ARIA do elemento não existe na página: ${data.needsReview}",
467
- "ariaCurrent": "O valor do atributo ARIA é inválido e será tratado como \"aria-current=true\": ${data.needsReview}"
468
- }
469
- },
470
- "aria-valid-attr": {
471
- "pass": "{{=it.data && it.data.length > 1 ? 'Os nomes dos atributos ARIA são válidos' : 'O nome do atributo ARIA é valido'}}",
472
- "fail": {
473
- "singular": "Nome de atributo ARIA inválido: ${data.values}",
474
- "plural": "Nomes de atributos ARIA inválidos: ${data.values}"
475
- }
476
- },
477
- "valid-scrollable-semantics": {
478
- "pass": "O elemento possui semântica válida para um elemento na ordem de foco.",
479
- "fail": "O elemento possui semântica inválida para um elemento na ordem de foco."
480
- },
481
- "color-contrast": {
482
- "pass": "O elemento tem contraste suficiente no valor de {{=it.data.contrastRatio}}",
483
- "fail": "O elemento tem contraste insuficiente no valor de {{=it.data.contrastRatio}} (cor do primeiro plano: {{=it.data.fgColor}}, cor de fundo: {{=it.data.bgColor}}, tamanho da fonte: {{=it.data.fontSize}}, normal/negrito: {{=it.data.fontWeight}}). Contraste esperado no valor de {{=it.data.expectedContrastRatio}}",
484
- "incomplete": {
485
- "default": "Impossível determinar o contraste",
486
- "bgImage": "A cor de fundo do elemento não pôde ser determinada devido a uma imagem de fundo",
487
- "bgGradient": "A cor de fundo do elemento não pôde ser determinada devido a um gradiente de fundo",
488
- "imgNode": "A cor de fundo do elemento não pôde ser determinada porque o elemento contém um nó de imagem",
489
- "bgOverlap": "A cor de fundo do elemento não pôde ser determinada porque está sobreposta por outro elemento",
490
- "fgAlpha": "A cor do primeiro plano do elemento não pôde ser determinada devido à transparência alfa",
491
- "elmPartiallyObscured": "A cor de fundo do elemento não pôde ser determinada porque está parcialmente obscurecida por outro elemento",
492
- "elmPartiallyObscuring": "A cor de fundo do elemento não pôde ser determinada porque está parcialmente sobreposta a outros elementos",
493
- "outsideViewport": "A cor de fundo do elemento não pôde ser determinada porque está fora da 'viewport'",
494
- "equalRatio": "O elemento tem um contraste de 1:1 com plano de fundo",
495
- "shortTextContent": "O conteúdo do elemento é muito curto para determinar se é conteúdo de texto real",
496
- "nonBmp": "O conteúdo do elemento contém apenas caracteres não textuais"
497
- }
498
- },
499
- "link-in-text-block": {
500
- "pass": "Links pode ser distinguidos do texto ao redor de outra maneira além da cor",
501
- "fail": "Links precisam ser distinguidos do texto ao redor de outra maneira além da cor",
502
- "incomplete": {
503
- "default": "Impossível determinar o contraste",
504
- "bgContrast": "O contraste do elemento não pôde ser determinado. Verifique se há um estilo distinto para 'hover'/'focus'.",
505
- "bgImage": "O contraste do elemento não pôde ser determinado devido a uma imagem de fundo",
506
- "bgGradient": "O contraste do elemento não pôde ser determinado devido a um gradiente de fundo",
507
- "imgNode": "O contraste do elemento não pôde ser determinado porque o elemento contém um de imagem",
508
- "bgOverlap": "O contraste do elemento não pôde ser determinado devido a uma sobreposição do elemento"
509
- }
510
- },
511
- "autocomplete-appropriate": {
512
- "pass": "o valor 'autocomplete' está em um elemento apropriado",
513
- "fail": "o valor 'autocomplete' está em um elemento inapropriado para este tipo de entrada"
514
- },
515
- "autocomplete-valid": {
516
- "pass": "o atributo 'autocomplete' está corretamente formatado",
517
- "fail": "o atributo 'autocomplete' está incorretamente formatado"
518
- },
519
- "fieldset": {
520
- "pass": "O elemento está contido em um <fieldset>",
521
- "fail": {
522
- "default": "O elemento não está contido em um >fieldset> ou grupo ARIA",
523
- "no-legend": "O <fieldset> não tem um elemento <legend> como seu primeiro filho",
524
- "empty-legend": "O elemento <legend> não tem texto visível para leitores de tela",
525
- "mixed-inputs": "O <fieldset> contem controles não relacionados",
526
- "no-group-label": "O grupo ARIA não tem um 'aria-label' ou 'aria-labelledby'",
527
- "group-mixed-inputs": "O grupo ARIA contém controles não relacionados"
528
- }
529
- },
530
- "group-labelledby": {
531
- "pass": "Os elementos com o nome \"{{=it.data.name}}\" possuem tanto um 'label' compartilhado, como um 'label' único, referenciados através do 'aria-labelledby'",
532
- "fail": {
533
- "default": "Os elementos com o nome \"${data.name}\" não possuem todos tanto um 'label' compartilhado, como um 'label' único, referenciados através do 'aria-labelledby'",
534
- "no-shared-label": "Os elementos com o nome \"${data.name}\" não possuem todos um 'label' compartilhado, referenciado através do 'aria-labelledby'",
535
- "no-unique-label": "Os elementos com o nome \"${data.name}\" não possuem todos um 'label' único, referenciado através do 'aria-labelledby'"
536
- }
537
- },
538
- "accesskeys": {
539
- "pass": "O valor do atributo 'accesskey' é único",
540
- "fail": "O documento tem múltiplos elementos com a mesma 'accesskey'"
541
- },
542
- "focusable-content": {
543
- "pass": "O elemento contém elementos focalizáveis",
544
- "fail": "O elemento deveria ter conteúdo focalizável"
545
- },
546
- "focusable-disabled": {
547
- "pass": "Nenhum elemento focalizável contido no elemento",
548
- "fail": "Conteúdo focalizável deve ser desabilitado ou removido do DOM"
549
- },
550
- "focusable-element": {
551
- "pass": "O elemento é focalizável",
552
- "fail": "O elemento deveria ser focalizável"
553
- },
554
- "focusable-modal-open": {
555
- "pass": "Nenhum elemento focalizável enquanto um modal está aberto",
556
- "incomplete": "Garanta que os elementos focalizáveis não estejam na ordem de tabulação no estado atual"
557
- },
558
- "focusable-no-name": {
559
- "pass": "O elemento não está na ordem de tabulação ou tem texto acessível",
560
- "fail": "O elemento está na ordem de tabulação e não tem nome acessível"
561
- },
562
- "focusable-not-tabbable": {
563
- "pass": "Nenhum elemento focalizável contido no elemento",
564
- "fail": "Conteúdo focalizável deve ter tabindex='-1' ou ser removido do DOM"
565
- },
566
- "landmark-is-top-level": {
567
- "pass": "A região {{=it.data.role }} está no nível principal.",
568
- "fail": "A região {{=it.data.role }} está contida em outra região."
569
- },
570
- "page-has-heading-one": {
571
- "pass": "A página tem pelo menos um título de primeiro nível",
572
- "fail": "A página deve ter pelo menos um título de primeiro nível"
573
- },
574
- "page-has-main": {
575
- "pass": "O documento tem pelo menos uma região 'main'",
576
- "fail": "O documento não tem uma região 'main'"
577
- },
578
- "page-no-duplicate-banner": {
579
- "pass": "O documento não tem mais de uma região 'banner'",
580
- "fail": "O documento tem mais de uma região 'banner'"
581
- },
582
- "page-no-duplicate-contentinfo": {
583
- "pass": "O documento não tem mais de uma região 'contentinfo'",
584
- "fail": "O documento tem mais de uma região 'contenteinfo'"
585
- },
586
- "page-no-duplicate-main": {
587
- "pass": "O documento não tem mais de uma região 'main'",
588
- "fail": "O documento tem mais de uma região 'main'"
589
- },
590
- "tabindex": {
591
- "pass": "O elemento não tem um 'tabindex' maior do que 0",
592
- "fail": "O elemento tem um 'tabindex' maior do que 0"
593
- },
594
- "alt-space-value": {
595
- "pass": "O elemento tem um valor válido para o atributo 'alt'",
596
- "fail": "O elemento tem um atributo 'alt' contendo apenas um caracter de espaço, o que não é ignorado por todos os leitores de tela"
597
- },
598
- "duplicate-img-label": {
599
- "pass": "O elemento não duplica um texto existente no atributo 'alt' do elemento <img>",
600
- "fail": "O elemento contém o elemento <img> com texto alternativo duplicando um texto existente"
601
- },
602
- "explicit-label": {
603
- "pass": "O elemento de formulário tem um <label> explícito",
604
- "fail": "O elemento de formulário não tem um <label> explícito"
605
- },
606
- "help-same-as-label": {
607
- "pass": "O texto de ajuda ('title' ou 'aria-describedby') não duplica o texto do rótulo",
608
- "fail": "O texto de ajuda ('title' ou 'aria-describedby') é o igual ao texto do rótulo"
609
- },
610
- "hidden-explicit-label": {
611
- "pass": "O elemento de formulário tem um <label> explícito visível",
612
- "fail": "O elemento de formulário tem um <label> explícito que está oculto"
613
- },
614
- "implicit-label": {
615
- "pass": "O elemento de formulário tem um <label> implícito (envolvido)",
616
- "fail": "O elemento de formulário não tem <label> implícito (envolvido)"
617
- },
618
- "label-content-name-mismatch": {
619
- "pass": "O elemento contém o texto visível como parte do seu nome acessível",
620
- "fail": "O texto dentro do elemento não está incluído no nome acessível"
621
- },
622
- "multiple-label": {
623
- "pass": "O campo de formulário não tem múltiplos elementos <label>",
624
- "incomplete": "O uso de múltiplos elementos <label> não é amplamente suportado pelas tecnologias assistivas. Certifique-se de que o primeiro <label> contém toda a informação necessária."
625
- },
626
- "title-only": {
627
- "pass": "Elementos de formulário não usam somente o atributo 'title' como seu rótulo",
628
- "fail": "Apenas 'title' usado para gerar o rótulo do elemento de formulário"
629
- },
630
- "landmark-is-unique": {
631
- "pass": "As regiões devem ter um 'role' ou combinação de 'role'/'label'/'title' (ou seja, nome acessível) únicos",
632
- "fail": "A região deve ter um 'aria-label', 'aria-labelledby', ou 'title' único para tornar as regiões distinguíveis"
633
- },
634
- "has-lang": {
635
- "pass": "O elemento <html> tem um atributo 'lang'",
636
- "fail": "O elemento <html> não tem um atributo 'lang'"
637
- },
638
- "valid-lang": {
639
- "pass": "O valor do atributo 'lang' está incluso na lista de idiomas válidos",
640
- "fail": "O valor do atributo 'lang' não está incluso na lista de idiomas válidos"
641
- },
642
- "xml-lang-mismatch": {
643
- "pass": "Os atributos 'lang' e 'xml:lang' têm o mesmo idioma base",
644
- "fail": "Os atributos 'lang' e 'xml:lang' não têm o mesmo idioma base"
645
- },
646
- "dlitem": {
647
- "pass": "O item da lista de descrição tem um elemento pai <dl>",
648
- "fail": "O item da lista de descrição não tem um elemente pai <dl>"
649
- },
650
- "listitem": {
651
- "pass": "O item de lista tem um elemento pai <ul>, <ol> ou role=\"list\"",
652
- "fail": {
653
- "default": "O item de lista não tem um elemento pai <ul> ou <ol>",
654
- "roleNotValid": "O item de lista não tem um elemento pai <ul> ou <ol> sem um 'role', ou um role=\"list\""
655
- }
656
- },
657
- "only-dlitems": {
658
- "pass": "O elemento de lista tem somente filhos diretos que são permitidos dentro de elementos <dt> ou <dd>",
659
- "fail": "O elemento de lista tem filhos diretos que não são permitidos dentro de elementos <dt> ou <dd>"
660
- },
661
- "only-listitems": {
662
- "pass": "O elemento de lista tem somente filhos diretos que são permitidos dentro de elementos <li>",
663
- "fail": {
664
- "default": "O elemento de lista tem filhos diretos que não são permitidos dentro de elementos <li>",
665
- "roleNotValid": "O elemento de lista tem filhos diretos com um 'role' que não é permitido: ${data.roles}"
666
- }
667
- },
668
- "structured-dlitems": {
669
- "pass": "Quando não vazio, o elemento tem ambos elementos <dt> e <dd>",
670
- "fail": "Quando não vazio, o elemento não tem nem ao menos um elemento <dt> seguindo de pelo menos um elemento <dd>"
671
- },
672
- "caption": {
673
- "pass": "O elemento multimídia tem uma trilha de legendas",
674
- "incomplete": "Verifique se legendas estão disponíveis para o elemento"
675
- },
676
- "description": {
677
- "pass": "O elemento multimídia tem uma trilha de audiodescrição",
678
- "incomplete": "Verifique se a audiodescrição está disponível para o elemento"
679
- },
680
- "frame-tested": {
681
- "pass": "O 'iframe' foi testado com o 'axe-core'",
682
- "fail": "O 'iframe' não pôde ser testado com o 'axe-core'",
683
- "incomplete": "O 'iframe' ainda tem que ser testado com o 'axe-core'"
684
- },
685
- "no-autoplay-audio": {
686
- "pass": "Elementos <video> ou <audio> não reproduzem áudio por mais do que a duração permitida ou possuem mecanismos de controle",
687
- "fail": "Elementos <video> ou <audio> reproduzem áudio por uma duração maior que a permitida ou não possuem mecanismos de controle",
688
- "incomplete": "Garanta que elementos <video> ou <audio> não reproduzam áudio por mais do que a duração permitida ou disponibilize mecanismos de controle"
689
- },
690
- "css-orientation-lock": {
691
- "pass": "A tela é operável, e o bloqueio da orientação não existe",
692
- "fail": "Bloqueio de orientação CSS aplicado, o que torna a tela inoperável",
693
- "incomplete": "Bloqueio de orientação CSS não pode ser determinado"
694
- },
695
- "meta-viewport-large": {
696
- "pass": "A tag <meta> não impede o zoom significativo em dispositivos móveis",
697
- "fail": "A tag <meta> limita o zoom em dispositivos móveis"
698
- },
699
- "meta-viewport": {
700
- "pass": "A tag <meta> não desabilita o zoom em dispositivos móveis",
701
- "fail": "{{=it.data}} na tag <meta> desabilita o zoom em dispositivos móveis"
702
- },
703
- "header-present": {
704
- "pass": "A página tem um cabeçalho (header)",
705
- "fail": "A página não tem um cabeçalho (header)"
706
- },
707
- "heading-order": {
708
- "pass": "Hierarquia de títulos válida",
709
- "fail": "Hierarquia de títulos inválida"
710
- },
711
- "identical-links-same-purpose": {
712
- "pass": "Não outros links com o mesmo nome, que direcionem para uma URL diferente",
713
- "incomplete": "Verifique se os links têm o mesmo propósito ou são intencionalmente ambíguos."
714
- },
715
- "internal-link-present": {
716
- "pass": "Link de escape válido encontrado",
717
- "fail": "Nenhum link de escape válido encontrado"
718
- },
719
- "landmark": {
720
- "pass": "A página tem uma região (landmark)",
721
- "fail": "A página não tem nenhuma região (landmark)"
722
- },
723
- "meta-refresh": {
724
- "pass": "A tag <meta> não atualiza a página imediatamente",
725
- "fail": "A tag <meta> força atualizações temporizadas da página"
726
- },
727
- "p-as-heading": {
728
- "pass": "Elementos <p> não são estilizados como títulos",
729
- "fail": "Elementos de título devem ser utilizados no lugar de elementos <p> estilizados"
730
- },
731
- "region": {
732
- "pass": "Todo o conteúdo da página está contido em regiões (landmarks)",
733
- "fail": "Algum conteúdo da página não está contido em regiões (landmarks)"
734
- },
735
- "skip-link": {
736
- "pass": "Destino do link de escape existe",
737
- "incomplete": "Destino do link de escape deve se tornar visível na ativação",
738
- "fail": "Nenhum destino para o link de escape"
739
- },
740
- "unique-frame-title": {
741
- "pass": "O atributo 'title' do elemento é único",
742
- "fail": "O atributo 'title' do elemento não é único"
743
- },
744
- "duplicate-id-active": {
745
- "pass": "O documento não tem elementos ativos que compartilham o mesmo atributo 'id'",
746
- "fail": "O documento tem elementos ativos com o mesmo atributo 'id': {{=it.data}}"
747
- },
748
- "duplicate-id-aria": {
749
- "pass": "O documento não tem elementos referenciados com ARIA ou rótulos que compartilham o mesmo atributo 'id'",
750
- "fail": "O documento tem múltiplos elementos referenciados com ARIA com o mesmo atributo 'id': {{=it.data}}"
751
- },
752
- "duplicate-id": {
753
- "pass": "O documento não tem elementos estáticos que compartilham o mesmo atributo 'id'",
754
- "fail": "O documento tem múltiplos elementos estáticos com o mesmo atributo 'id'"
755
- },
756
- "aria-label": {
757
- "pass": "O atributo 'aria-label' existe e não está vazio",
758
- "fail": "O atributo 'aria-label' não existe ou está vazio"
759
- },
760
- "aria-labelledby": {
761
- "pass": "O atributo 'aria-labelledby' existe e referencia elementos que são visíveis aos leitores de tela",
762
- "fail": "O atributo 'aria-labelledby' não existe, referencia elementos que não existem ou são vazios"
763
- },
764
- "avoid-inline-spacing": {
765
- "pass": "Nenhum estilo 'inline' com '!important' que afete o espaçamento do texto foi especificado",
766
- "fail": {
767
- "singular": "Remova '!important' do estilo 'inline' ${data.values}, uma vez que sobrepor isto não é suportado pela maioria dos navegadores",
768
- "plural": "Remova '!important' dos estilos 'inline' ${data.values}, uma vez que sobrepor isto não é suportado pela maioria dos navegadores"
769
- }
770
- },
771
- "button-has-visible-text": {
772
- "pass": "O elemento tem texto interno que é visível aos leitores de tela",
773
- "fail": "O elemento não tem texto interno que seja visível aos leitores de tela"
774
- },
775
- "doc-has-title": {
776
- "pass": "O documento tem um elemento <title> não vazio",
777
- "fail": "O documento não tem um elemento <title> não vazio"
778
- },
779
- "exists": {
780
- "pass": "O elemento não existe",
781
- "incomplete": "O elemento existe"
782
- },
783
- "has-alt": {
784
- "pass": "O elemento tem um atributo 'alt'",
785
- "fail": "O elemento não tem um atributo 'alt'"
786
- },
787
- "has-visible-text": {
788
- "pass": "O elemento tem texto que é visível aos leitores de tela",
789
- "fail": "O elemento não tem texto que seja visível aos leitores de tela"
790
- },
791
- "is-on-screen": {
792
- "pass": "O elemento não é visível",
793
- "fail": "O elemento é visível"
794
- },
795
- "non-empty-alt": {
796
- "pass": "O elemento tem um atributo 'alt' não vazio",
797
- "fail": "O elemento não tem um atributo 'alt' ou ele está vazio"
798
- },
799
- "non-empty-if-present": {
800
- "pass": {
801
- "default": "O elemento tem um atributo 'value",
802
- "has-label": "O elemento tem um atributo 'value' não vazio"
803
- },
804
- "fail": "O elemento tem um atributo 'value' e ele está vazio"
805
- },
806
- "non-empty-title": {
807
- "pass": "O elemento tem um atributo 'title'",
808
- "fail": "O elemento não tem um atributo 'title' ou ele está vazio"
809
- },
810
- "non-empty-value": {
811
- "pass": "O elemento tem um atributo 'value' não vazio",
812
- "fail": "O elemento não tem um atributo 'value' ou ele está vazio"
813
- },
814
- "role-none": {
815
- "pass": "A semântica padrão do elemento foi sobrescrita com role=\"none\"",
816
- "fail": "A semântica padrão do elemento não foi sobrescrita com role=\"none\""
817
- },
818
- "role-presentation": {
819
- "pass": "A semântica padrão do elemento foi sobrescrita com role=\"presentation\"",
820
- "fail": "A semântica padrão do elemento não foi sobrescrita com role=\"presentation\""
821
- },
822
- "svg-non-empty-title": {
823
- "pass": "O elemento tem um filho <title>",
824
- "fail": "O elemento não tem um filho <title>"
825
- },
826
- "caption-faked": {
827
- "pass": "A primeira linha de uma tabela não é usada como legenda",
828
- "fail": "O primeiro elemento da tabela deve ser um <caption> em vez de uma célula da tabela"
829
- },
830
- "has-caption": {
831
- "pass": "A tabela de layout não usa o elemento <caption>",
832
- "fail": "A tabela de layout usa o elemento <caption>"
833
- },
834
- "has-summary": {
835
- "pass": "A tabela de layout não usa o atributo 'summary'",
836
- "fail": "A tabela de layout usa o atributo 'summary'"
837
- },
838
- "has-th": {
839
- "pass": "A tabela de layout não usa elementos <th>",
840
- "fail": "A tabela de layout usa elementos <th>"
841
- },
842
- "html5-scope": {
843
- "pass": "O atributo 'scope' é utilizado em elementos de cabeçalho de tabela (<th>)",
844
- "fail": "No HTML 5, os atributos 'scope' devem ser utilizados em elementos de cabeçalho de tabela (<th>)"
845
- },
846
- "same-caption-summary": {
847
- "pass": "O conteúdo do atributo 'summary' e <caption> não estão duplicados",
848
- "fail": "O conteúdo do atributo 'summary' e <caption> são idênticos"
849
- },
850
- "scope-value": {
851
- "pass": "O atributo 'scope' é usado corretamente",
852
- "fail": "O valor do atributo 'scope' pode ser apenas 'row' ou 'col'"
853
- },
854
- "td-has-header": {
855
- "pass": "Todos as células de dados não vazias possuem cabeçalhos",
856
- "fail": "Algumas células de dados não vazias não possuem cabeçalho"
857
- },
858
- "td-headers-attr": {
859
- "pass": "O atributo 'headers' é usado exclusivamente para referenciar outras células da tabela",
860
- "fail": "O atributo 'headers' não é usado exclusivamente para referenciar outras células da tabela"
861
- },
862
- "th-has-data-cells": {
863
- "pass": "Todas as células de cabeçalho da tabela se referem a células de dados",
864
- "fail": "Nem todas as células de cabeçalho da tabela se referem a células de dados",
865
- "incomplete": "Células de dados da tabela estão ausentes ou vazias"
866
- },
867
- "hidden-content": {
868
- "pass": "Todo o conteúdo da página foi analisado.",
869
- "fail": "Houve problemas ao analisar o conteúdo desta página.",
870
- "incomplete": "Existe conteúdo oculto na página que não foi analisado. Será preciso provocar a exibição deste conteúdo para poder analisá-lo."
871
- }
872
- },
873
- "failureSummaries": {
874
- "any": {
875
- "failureMessage": "Corrija qualquer um dos itens a seguir:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
876
- },
877
- "none": {
878
- "failureMessage": "Corrija todos os itens a seguir:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
879
- }
880
- },
881
- "incompleteFallbackMessage": "Corrija todos os itens a seguir:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
2
+ "lang": "pt_BR",
3
+ "rules": {
4
+ "accesskeys": {
5
+ "description": "Certifique-se de que cada valor do atributo 'acesskey' é único",
6
+ "help": "O valor do atributo 'accesskey' deve ser único"
7
+ },
8
+ "area-alt": {
9
+ "description": "Certifique-se de que elementos <area> de mapas de imagem tenham um texto alternativo",
10
+ "help": "Elementos <area> ativos devem ter um texto alternativo"
11
+ },
12
+ "aria-allowed-attr": {
13
+ "description": "Certifique-se de que os atributos ARIA são permitidos para a função de um elemento",
14
+ "help": "Os elementos devem usar apenas atributos ARIA permitidos"
15
+ },
16
+ "aria-allowed-role": {
17
+ "description": "Certifique-se de que o atributo 'role' tem um valor apropriado para o elemento",
18
+ "help": "A função ARIA deve ser apropriada para o elemento"
19
+ },
20
+ "aria-command-name": {
21
+ "description": "Certifique-se de que cada botão, link e item de menu ARIA tenha um nome acessível",
22
+ "help": "Comandos ARIA devem ter um nome acessível"
23
+ },
24
+ "aria-dialog-name": {
25
+ "description": "Certifique-se de que cada de diálogo e diálogo de alerta ARIA tenha um nome acessível",
26
+ "help": "Nós de diálogo e diálogo de alerta ARIA devem ter um nome acessível"
27
+ },
28
+ "aria-hidden-body": {
29
+ "description": "Certifique-se de que aria-hidden='true' não está presente no elemento <body>.",
30
+ "help": "aria-hidden='true' não deve estar presente no elemento <body>"
31
+ },
32
+ "aria-hidden-focus": {
33
+ "description": "Certifique-se de que elementos com aria-hidden não contenham elementos focalizáveis",
34
+ "help": "Elementos ocultados através de ARIA não devem conter elementos focalizáveis"
35
+ },
36
+ "aria-input-field-name": {
37
+ "description": "Certifique-se de que cada campo de entrada ARIA tenha um nome acessível",
38
+ "help": "Campos de entrada ARIA tenham um nome acessível"
39
+ },
40
+ "aria-meter-name": {
41
+ "description": "Certifique-se de que cada de medição ARIA tenha um nome acessível",
42
+ "help": "Nós de medição ARIA devem ter um nome acessível"
43
+ },
44
+ "aria-progressbar-name": {
45
+ "description": "Certifique-se de que cada de barra de progresso ARIA tenha um nome acessível",
46
+ "help": "Nós de barra de progresso ARIA devem ter um nome acessível"
47
+ },
48
+ "aria-required-attr": {
49
+ "description": "Certifique-se de que elementos com funções ARIA tenham todos os atributos ARIA necessários",
50
+ "help": "Os atributos ARIA necessários devem ser fornecidos"
51
+ },
52
+ "aria-required-children": {
53
+ "description": "Certifique-se de que elementos com uma função ARIA que requer funções filhas as contenham",
54
+ "help": "Certas funções ARIA devem conter filhos específicos"
55
+ },
56
+ "aria-required-parent": {
57
+ "description": "Certifique-se de que elementos com uma função ARIA que requer funções pais estejam contidas nestas",
58
+ "help": "Certas funções ARIA devem estar contidas em pais específicos"
59
+ },
60
+ "aria-roledescription": {
61
+ "description": "Certifique-se de que 'aria-roledescription' somente é utilizado em elementos com uma função implícita ou explícita",
62
+ "help": "Use 'aria-roledescription' em elementos com função semântica"
63
+ },
64
+ "aria-roles": {
65
+ "description": "Certifique-se de que todos os elementos com um atributo 'role' utilizem um valor válido",
66
+ "help": "Os ARIA 'roles' utilizados devem ter valores válidos"
67
+ },
68
+ "aria-text": {
69
+ "description": "Certifique-se de que \"role=text\" é usado em elementos sem descendentes focalizáveis",
70
+ "help": "\"role=text\" não deve ter descendentes focalizáveis"
71
+ },
72
+ "aria-toggle-field-name": {
73
+ "description": "Certifique-se de que cada botão de alternância ARIA tenha um nome acessível",
74
+ "help": "Botões de alternância ARIA tenham um nome acessível"
75
+ },
76
+ "aria-tooltip-name": {
77
+ "description": "Certifique-se de que cada de dica de tela ARIA tenha um nome acessível",
78
+ "help": "Nós de dica de tela ARIA devem ter um nome acessível"
79
+ },
80
+ "aria-treeitem-name": {
81
+ "description": "Certifique-se de que cada de 'treeitem' ARIA deve ter um nome acessível",
82
+ "help": "Nós de 'treeitem' ARIA devem ter um nome acessível"
83
+ },
84
+ "aria-valid-attr-value": {
85
+ "description": "Certifique-se de que cada atributo ARIA tenha um valor válido",
86
+ "help": "Atributos ARIA devem ter valores válidos"
87
+ },
88
+ "aria-valid-attr": {
89
+ "description": "Certifique-se de que atributos que se iniciem com aria- são atributos ARIA válidos",
90
+ "help": "Atributos ARIA devem ter nomes válidos"
91
+ },
92
+ "audio-caption": {
93
+ "description": "Certifique-se de que elementos <audio> tenham legendas",
94
+ "help": "Elementos <audio> devem ter uma trilha de legenda"
95
+ },
96
+ "autocomplete-valid": {
97
+ "description": "Certifique-se de que o atributo 'autocomplete' esteja correto e adequado para o campo de formulário",
98
+ "help": "Atributo 'autocomplete' deve ser usado corretamente"
99
+ },
100
+ "avoid-inline-spacing": {
101
+ "description": "Certifique-se de que o espaçamento de texto definido via atributos de estilo pode ser ajustado com folhas de estilo personalizadas",
102
+ "help": "O espaçamento de texto 'inline' deve ser ajustável com folhas de estilo personalizadas"
103
+ },
104
+ "blink": {
105
+ "description": "Certifique-se de que elementos <blink> não são utilizados",
106
+ "help": "Elementos <blink> foram descontinuados e não devem ser utilizados"
107
+ },
108
+ "button-name": {
109
+ "description": "Certifique-se de que botões tenham texto discernível",
110
+ "help": "Botões devem ter texto discernível"
111
+ },
112
+ "bypass": {
113
+ "description": "Certifique-se de que cada página tenha ao menos um mecanismo para o usuário ignorar a navegação e ir direto ao conteúdo",
114
+ "help": "A página deve ter meios para ignorar blocos repetidos"
115
+ },
116
+ "color-contrast": {
117
+ "description": "Certifique-se de que o contraste entre as cores de primeiro plano e de fundo atenda aos limites de relação de contraste WCAG 2 AA",
118
+ "help": "Os elementos devem ter contraste de cor suficiente"
119
+ },
120
+ "color-contrast-enhanced": {
121
+ "description": "Certifique-se de que o contraste entre as cores de primeiro plano e de fundo atenda aos limites de relação de contraste WCAG 2 AAA",
122
+ "help": "Os elementos devem ter contraste de cor suficiente"
123
+ },
124
+ "css-orientation-lock": {
125
+ "description": "Certifique-se de que o conteúdo não está bloqueado para nenhuma orientação de tela específica, e que o mesmo seja operável em todas as orientações de tela",
126
+ "help": "CSS Media queries não são usadas para bloquear a orientação de tela"
127
+ },
128
+ "definition-list": {
129
+ "description": "Certifique-se de que elementos <dl> estão estruturados corretamente",
130
+ "help": "Elementos <dl> devem conter diretamente apenas grupos <dt> e <dd> propriamente ordenados, ou elementos <script> ou <template>"
131
+ },
132
+ "dlitem": {
133
+ "description": "Certifique-se de que elementos <dt> e <dd> estão contidos em um elemento <dl>",
134
+ "help": "Elementos <dt> e <dd> devem estar contidos em um elemento <dl>"
135
+ },
136
+ "document-title": {
137
+ "description": "Certifique-se de que cada documento HTML contenha um elemento <title> não vazio",
138
+ "help": "Documentos devem ter um elemento <title> para ajudar na navegação"
139
+ },
140
+ "duplicate-id-active": {
141
+ "description": "Certifique-se de que cada valor do atributo 'id' de elementos ativos seja único",
142
+ "help": "IDs de elementos ativos devem ser únicos"
143
+ },
144
+ "duplicate-id-aria": {
145
+ "description": "Certifique-se de que cada valor do atributo 'id' usado no ARIA e em rótulos seja único",
146
+ "help": "IDs usados no ARIA e em 'labels' devem ser únicos"
147
+ },
148
+ "duplicate-id": {
149
+ "description": "Certifique-se de que cada valor do atributo 'id' seja único",
150
+ "help": "O valor do atributo 'id' deve ser único"
151
+ },
152
+ "empty-heading": {
153
+ "description": "Certifique-se de que os títulos tenham texto discernível",
154
+ "help": "Os títulos não devem ser vazios"
155
+ },
156
+ "empty-table-header": {
157
+ "description": "Certifique-se de que cabeçalhos de tabela tenham texto discernível",
158
+ "help": "O texto do cabeçalho de tabela não deve ser vazio"
159
+ },
160
+ "focus-order-semantics": {
161
+ "description": "Certifique-se de que os elementos na ordem de foco tenham uma função apropriada",
162
+ "help": "Elementos na ordem de foco necessitam de uma função apropriada para conteúdo interativo"
163
+ },
164
+ "form-field-multiple-labels": {
165
+ "description": "Certifique-se de que campos de formulários não tenham múltiplos elementos 'label'",
166
+ "help": "Campos de formulário não devem ter múltiplos elementos 'label'"
167
+ },
168
+ "frame-focusable-content": {
169
+ "description": "Certifique-se de que elementos <frame> e <iframe> com tabindex=-1 não tenham conteúdo focalizável",
170
+ "help": "Quadros com tabindex=-1 não devem ter conteúdo focalizável"
171
+ },
172
+ "frame-tested": {
173
+ "description": "Certifique-se de que elementos <iframe> e <frame> contenham o script axe-core",
174
+ "help": "Os 'frames' devem ser testados com o axe-core"
175
+ },
176
+ "frame-title-unique": {
177
+ "description": "Certifique-se de que os elementos <iframe> e <frame> contenham um atributo 'title' único",
178
+ "help": "Os 'frames' devem ter um atributo 'title' único"
179
+ },
180
+ "frame-title": {
181
+ "description": "Certifique-se de que os elementos <iframe> e <frame> contenham um atributo 'title' não vazio",
182
+ "help": "Os 'frames' devem ter um atributo 'title'"
183
+ },
184
+ "heading-order": {
185
+ "description": "Certifique-se de que a hierarquia dos níveis de títulos seja semanticamente correta",
186
+ "help": "Níveis dos títulos devem aumentar de um em um"
187
+ },
188
+ "hidden-content": {
189
+ "description": "Informar aos usuários sobre conteúdo oculto.",
190
+ "help": "O conteúdo oculto na página não pode ser analisado"
191
+ },
192
+ "html-has-lang": {
193
+ "description": "Certifique-se de que cada documento HTML tenha um atributo 'lang'",
194
+ "help": "O elemento <html> deve ter um atributo 'lang'"
195
+ },
196
+ "html-lang-valid": {
197
+ "description": "Certifique-se de que o atributo 'lang' do elemento <html> tenha um valor válido",
198
+ "help": "O elemento <html> deve ter um valor válido para o atributo 'lang'"
199
+ },
200
+ "html-xml-lang-mismatch": {
201
+ "description": "Certifique-se de que elementos HTML com ambos os atributos 'lang' e 'xml:lang' válidos concordem entre si sobre o idioma base da página",
202
+ "help": "Elementos HTML com 'lang' e 'xml:lang' devem ter o mesmo idioma base"
203
+ },
204
+ "identical-links-same-purpose": {
205
+ "description": "Certifique-se de que links com o mesmo nome acessível servem a um propósito similar",
206
+ "help": "Links com o mesmo nome devem ter um propósito similar"
207
+ },
208
+ "image-alt": {
209
+ "description": "Certifique-se de que elementos <img> tenham texto alternativo ou um 'role' igual a 'none' ou 'presentation'",
210
+ "help": "Imagens devem ter texto alternativo"
211
+ },
212
+ "image-redundant-alt": {
213
+ "description": "Certifique-se de que a alternativa de imagem não seja repetida como texto",
214
+ "help": "O texto alternativo de imagens não deve ser repetido como texto"
215
+ },
216
+ "input-button-name": {
217
+ "description": "Certifique-se de que botões tenham um texto discernível",
218
+ "help": "Botões de controle devem ter um texto discernível"
219
+ },
220
+ "input-image-alt": {
221
+ "description": "Certifique-se de que elementos <input type=\"image\"> tenham um texto alternativo",
222
+ "help": "Botões de imagem devem ter um texto alternativo"
223
+ },
224
+ "label-content-name-mismatch": {
225
+ "description": "Certifique-se de que elementos nomeados por meio de seu conteúdo tenham seu texto visível como parte de seu nome acessível",
226
+ "help": "Elementos devem ter seu texto visível como parte de seu nome acessível"
227
+ },
228
+ "label-title-only": {
229
+ "description": "Certifique-se de que cada elemento de formulário não seja rotulado apenas usando os atributos 'title' ou 'aria-describedby'",
230
+ "help": "Elementos de formulário devem ter um rótulo visível"
231
+ },
232
+ "label": {
233
+ "description": "Certifique-se de que cada elemento de formulário tenha um rótulo",
234
+ "help": "Elementos de formulário devem ter rótulos"
235
+ },
236
+ "landmark-banner-is-top-level": {
237
+ "description": "Certifique-se de que a região 'banner' esteja no nível principal",
238
+ "help": "A região 'banner' não deve estar contida em outra região"
239
+ },
240
+ "landmark-complementary-is-top-level": {
241
+ "description": "Certifique-se de que a região 'complementary' ou 'aside' estejam no nível principal",
242
+ "help": "'Aside' não deve estar contido em outra região"
243
+ },
244
+ "landmark-contentinfo-is-top-level": {
245
+ "description": "Certifique-se de que a região 'contentinfo' esteja no nível principal",
246
+ "help": "A região 'contentinfo' não deve estar contida em outra região"
247
+ },
248
+ "landmark-main-is-top-level": {
249
+ "description": "Certifique-se de que a região 'main' esteja no nível principal",
250
+ "help": "A região 'main' não deve estar contida em outra região"
251
+ },
252
+ "landmark-no-duplicate-banner": {
253
+ "description": "Certifique-se de que o documento tenha no máximo uma região 'banner'",
254
+ "help": "O documento não deve ter mais do que uma região 'banner'"
255
+ },
256
+ "landmark-no-duplicate-contentinfo": {
257
+ "description": "Certifique-se de que o documento tenha no máximo uma região 'contentinfo'",
258
+ "help": "O documento não deve ter mais do que uma região 'contentinfo'"
259
+ },
260
+ "landmark-no-duplicate-main": {
261
+ "description": "Certifique-se de que o documento tenha, no máximo, uma região 'main'",
262
+ "help": "O documento não deve ter mais de uma região 'main'"
263
+ },
264
+ "landmark-one-main": {
265
+ "description": "Certifique-se de que o documento tenha apenas uma região 'main' e que cada 'iframe' na página tenha no náximo uma região 'main'",
266
+ "help": "O documento deve ter uma região 'main'"
267
+ },
268
+ "landmark-unique": {
269
+ "help": "Certifique-se de que as regiões são únicas",
270
+ "description": "As regiões devem ter um 'role' ou combinação de 'role'/'label'/'title' (ou seja, um nome acessível) únicos"
271
+ },
272
+ "link-in-text-block": {
273
+ "description": "Links podem ser distinguidos sem depender da cor",
274
+ "help": "Links devem ser distinguidos do texto ao redor de uma maneira que não dependa da cor"
275
+ },
276
+ "link-name": {
277
+ "description": "Certifique-se de que links tenham um texto discernível",
278
+ "help": "Links devem ter um texto discernível"
279
+ },
280
+ "list": {
281
+ "description": "Certifique-se de que listas sejam estruturadas corretamente",
282
+ "help": "Elementos <ul> e <ol> devem conter diretamente apenas elementos <li>, <script> ou <template>"
283
+ },
284
+ "listitem": {
285
+ "description": "Certifique-se de que elementos <li> são usados semanticamente",
286
+ "help": "Elementos <li> devem estar contidos em um <ul> ou <ol>"
287
+ },
288
+ "marquee": {
289
+ "description": "Certifique-se de que elementos <marquee> não são utilizados",
290
+ "help": "Elementos <marquee> foram descontinuados e não devem ser utilizados"
291
+ },
292
+ "meta-refresh": {
293
+ "description": "Certifique-se de que <meta http-equiv=\"refresh\"> não é utilizado",
294
+ "help": "Atualização temporizada não deve existir"
295
+ },
296
+ "meta-viewport-large": {
297
+ "description": "Certifique-se de que <meta name=\"viewport\"> permite ampliar de maneira significativa",
298
+ "help": "Os usuários devem poder dar zoom e ampliar o texto em até 500%"
299
+ },
300
+ "meta-viewport": {
301
+ "description": "Certifique-se de que <meta name=\"viewport\"> não desabilite a ampliação de texto e o zoom",
302
+ "help": "O zoom e a ampliação de texto não devem ser desabilitados"
303
+ },
304
+ "nested-interactive": {
305
+ "description": "Controles interativos aninhados não são anunciados por leitores de tela",
306
+ "help": "Certifique-se de que controles interativos não estejam aninhados"
307
+ },
308
+ "no-autoplay-audio": {
309
+ "description": "Certifique-se de que elementos <video> ou <audio> não reproduzam áudio automaticamente por mais de 3 segundos sem um mecanismo de controle para parar ou silenciar o áudio",
310
+ "help": "Elementos <video> ou <audio> não reproduzam áudio automaticamente"
311
+ },
312
+ "object-alt": {
313
+ "description": "Certifique-se de que elementos <object> tenham um texto alternativo",
314
+ "help": "Elementos <object> devem ter um texto alternativo"
315
+ },
316
+ "p-as-heading": {
317
+ "description": "Certifique-se de que elementos <p> não sejam utilizados para estilizar títulos",
318
+ "help": "Negrito, itálico e 'font-size' não sejam utilizados para estilizar elementos <p> como um título"
319
+ },
320
+ "page-has-heading-one": {
321
+ "description": "Certifique-se de que a página, ou pelo menos um dos seus 'frames', contenha um título de primeiro nível",
322
+ "help": "A página deve conter um título de primeiro nível"
323
+ },
324
+ "presentation-role-conflict": {
325
+ "description": "Sinaliza elementos cuja função é 'none' ou 'presentation', e que causam o acionamento da resolução de conflito de funções.",
326
+ "help": "Elementos com função 'none' ou 'presentation' devem ser sinalizados"
327
+ },
328
+ "region": {
329
+ "description": "Certifique-se de todo o conteúdo da página esteja contido em regiões (landmarks)",
330
+ "help": "Todo o conteúdo da página deve estar contido em regiões (landmarks)"
331
+ },
332
+ "role-img-alt": {
333
+ "description": "Certifique-se de que elementos com [role='img'] tenham texto alternativo",
334
+ "help": "Elementos com [role='img'] tenham um texto alternativo"
335
+ },
336
+ "scope-attr-valid": {
337
+ "description": "Certifique-se de que o atributo 'scope' é utilizado corretamente em tabelas",
338
+ "help": "O atributo 'scope' deve ser utilizado corretamente"
339
+ },
340
+ "scrollable-region-focusable": {
341
+ "description": "Elementos que tenham conteúdo rolável devem ser acessíveis via teclado",
342
+ "help": "Certificar-se de que regiões roláveis tenham acesso via teclado"
343
+ },
344
+ "select-name": {
345
+ "description": "Certifique-se que o elemento 'select' tenha um nome acessível",
346
+ "help": "O elemento 'select' deve ter um nome acessível"
347
+ },
348
+ "server-side-image-map": {
349
+ "description": "Certifique-se de que mapas de imagem do lado do servidor não são utilizados",
350
+ "help": "Mapas de imagem do lado do servidor não devem ser utilizados"
351
+ },
352
+ "skip-link": {
353
+ "description": "Certifique-se de que todos os links de escape tenham um destino focalizável",
354
+ "help": "O destino de um link de escape deve existir e ser focalizável"
355
+ },
356
+ "svg-img-alt": {
357
+ "description": "Certifique-se de que elementos svg com um 'role' de 'img', 'graphics-document' ou 'graphics-symbol' tenham um texto acessível",
358
+ "help": "Elementos svg com um 'role' de 'img' tenham um texto alternativo"
359
+ },
360
+ "tabindex": {
361
+ "description": "Certifique-se de que os valores do atributo 'tabindex' não são maiores do que 0",
362
+ "help": "Elementos não devem ter um 'tabindex' maior do que zero"
363
+ },
364
+ "table-duplicate-name": {
365
+ "description": "Certifique-se de que tabelas não tenham 'summary' e <caption> iguais",
366
+ "help": "O elemento <caption> não deve conter o mesmo texto que o atributo 'summary'"
367
+ },
368
+ "table-fake-caption": {
369
+ "description": "Certifique-se de que tabelas com uma legenda usem o elemento <caption>.",
370
+ "help": "Células de dados ou cabeçalhos não devem ser usadas para exibir uma legenda para uma tabela de dados."
371
+ },
372
+ "td-has-header": {
373
+ "description": "Certifique-se de que cada célula de dados não vazia em uma tabela grande tenha um ou mais cabeçalhos",
374
+ "help": "Todos os elementos 'td' não vazios em uma tabela maior que 3 por 3 devem ter um cabeçalho associado"
375
+ },
376
+ "td-headers-attr": {
377
+ "description": "Certifique-se de que cada célula em uma tabela usando o atributo 'headers' se refira a outra célula nesta tabela",
378
+ "help": "Todas as células em uma tabela que utilizem o atributo 'headers' devem se referir apenas a outras células desta mesma tabela"
379
+ },
380
+ "th-has-data-cells": {
381
+ "description": "Certifique-se de cada cabeçalho em uma tabela de dados se refira a células de dados",
382
+ "help": "Todos os elementos 'th' e elementos com role=columnheader/rowheader devem ter células de dados que eles descrevem"
383
+ },
384
+ "valid-lang": {
385
+ "description": "Certifique-se de que os atributos 'lang' tenham valores válidos",
386
+ "help": "O atributo 'lang' deve ter um valor válido"
387
+ },
388
+ "video-caption": {
389
+ "description": "Certifique-se de que elementos <video> tenham legendas",
390
+ "help": "Elementos <video> devem ter legendas"
391
+ }
392
+ },
393
+ "checks": {
394
+ "abstractrole": {
395
+ "pass": "As funções abstratas não são utilizadas",
396
+ "fail": {
397
+ "singular": "A função abstrata não pode ser diretamente utilizada: ${data.values}",
398
+ "plural": "As funções abstratas não podem ser diretamente utilizadas: ${data.values}"
399
+ }
400
+ },
401
+ "aria-allowed-attr": {
402
+ "pass": "Atributos ARIA são usados corretamente para a função definida",
403
+ "fail": {
404
+ "singular": "O atributo ARIA não é permitido: ${data.values}",
405
+ "plural": "Os atributos ARIA não são permitidos: ${data.values}"
406
+ }
407
+ },
408
+ "aria-allowed-role": {
409
+ "pass": "O ARIA 'role' é permitido para o elemento dado",
410
+ "fail": {
411
+ "singular": "O ARIA 'role' ${data.values} não é permitido para o elemento dado",
412
+ "plural": "Os ARIA 'roles' ${data.values} não são permitidos para o elemento dado"
413
+ },
414
+ "incomplete": {
415
+ "singular": "O ARIA 'role' ${data.values} deve ser removido quando o elemento é tornado visível, uma vez que não é permitido para o elemento",
416
+ "plural": "Os ARIA 'roles' ${data.values} devem ser removidos quando o elemento é tornado visível, uma vez que não são permitidos para o elemento"
417
+ }
418
+ },
419
+ "aria-errormessage": {
420
+ "pass": "Usa uma técnica de 'aria-errormessage' suportada",
421
+ "fail": {
422
+ "singular": "O valor de 'aria-errormessage' `${data.values}` deve usar uma técnica para anunciar a mensagem (por exemplo, 'aria-live', 'aria-describedby', role=alert, etc.)",
423
+ "plural": "Os valores de 'aria-errormessage' `${data.values}` devem usar uma técnica para anunciar a mensagem (por exemplo, 'aria-live', 'aria-describedby', role=alert, etc.)"
424
+ },
425
+ "incomplete": {
426
+ "singular": "certifique-se de que o valor de 'aria-errormessage' `${data.values}` referencia um elemento existente",
427
+ "plural": "certifque-se de que os valores de 'aria-errormessage' `${data.values}` referenciem elementos existentes"
428
+ }
429
+ },
430
+ "aria-hidden-body": {
431
+ "pass": "Nenhum atributo 'aria-hidden' está presente no elemento <body>",
432
+ "fail": "'aria-hidden=true' não deve estar presente no elemento <body>"
433
+ },
434
+ "aria-prohibited-attr": {
435
+ "pass": "O atributo ARIA é permitido",
436
+ "fail": "O atributo ARIA não pode ser utilizado: ${data.values}",
437
+ "incomplete": "O atributo ARIA não é bem suportado no elemento e o conteúdo de texto será usado em seu lugar: ${data.values}"
438
+ },
439
+ "aria-required-attr": {
440
+ "pass": "Todos os atributos ARIA necessários estão presentes",
441
+ "fail": {
442
+ "singular": "Atributo ARIA necessário ausente: ${data.values}",
443
+ "plural": "Atributos ARIA necessários ausentes: ${data.values}"
444
+ }
445
+ },
446
+ "aria-required-children": {
447
+ "pass": "Os ARIA filhos necessários estão presentes",
448
+ "fail": {
449
+ "singular": "Função ARIA filha necessária ausente: ${data.values}",
450
+ "plural": "Funções ARIA filhas necessárias ausentes: ${data.values}"
451
+ },
452
+ "incomplete": {
453
+ "singular": "Esperando função ARIA filha a ser adicionada: ${data.values}",
454
+ "plural": "Esperando funções ARIA filhas a serem adicionadas: ${data.values}"
455
+ }
456
+ },
457
+ "aria-required-parent": {
458
+ "pass": "A função ARIA pai necessária está presente",
459
+ "fail": {
460
+ "singular": "Função ARIA pai necessária ausente: ${data.values}",
461
+ "plural": "Funções ARIA pais necessárias ausentes: ${data.values}"
462
+ }
463
+ },
464
+ "aria-roledescription": {
465
+ "pass": "'aria-roledescription' usado em função semântica suportada",
466
+ "incomplete": "Garanta que o 'aria-roledescription' é anunciado pelos leitores de tela suportados",
467
+ "fail": " ao elemento uma função que suporte 'aria-roledescription'"
468
+ },
469
+ "aria-unsupported-attr": {
470
+ "pass": "O atributo ARIA é suportado",
471
+ "fail": "O atributo ARIA não é amplamente suportado em leitores de tela e tecnologias assistivas: ${data.values}"
472
+ },
473
+ "aria-valid-attr-value": {
474
+ "pass": "Os valores dos atributos ARIA são válidos",
475
+ "fail": {
476
+ "singular": "Valor de atributo ARIA inválido: ${data.values}",
477
+ "plural": "Valores de atributos ARIA inválidos: ${data.values}"
478
+ },
479
+ "incomplete": {
480
+ "noId": "O ID do atributo ARIA do elemento não existe na página: ${data.needsReview}",
481
+ "ariaCurrent": "O valor do atributo ARIA é inválido e será tratado como \"aria-current=true\": ${data.needsReview}"
482
+ }
483
+ },
484
+ "aria-valid-attr": {
485
+ "pass": {
486
+ "singular": "Os nomes dos atributos ARIA são válidos",
487
+ "plural": "O nome do atributo ARIA é valido"
488
+ },
489
+ "fail": {
490
+ "singular": "Nome de atributo ARIA inválido: ${data.values}",
491
+ "plural": "Nomes de atributos ARIA inválidos: ${data.values}"
492
+ }
493
+ },
494
+ "fallbackrole": {
495
+ "pass": "Apenas um valor de 'role' deve ser utilizado",
496
+ "fail": "Use apenas um valor de 'role', uma vez que funções 'fallback' não são suportadas em navegadores mais antigos"
497
+ },
498
+ "has-global-aria-attribute": {
499
+ "pass": {
500
+ "singular": "O elemento tem um atributo ARIA global: ${data.values}",
501
+ "plural": "O elemento tem atributos ARIA globais: ${data.values}"
502
+ },
503
+ "fail": "O elemento não tem atributo ARIA global"
504
+ },
505
+ "has-widget-role": {
506
+ "pass": "Elemento tem um 'role' de 'widget'.",
507
+ "fail": "Elemento não tem um 'role' de 'widget'."
508
+ },
509
+ "invalidrole": {
510
+ "pass": "O ARIA 'role' é válido",
511
+ "fail": {
512
+ "singular": "O 'role' deve ser um dos ARIA 'roles' válidos: ${data.values}",
513
+ "plural": "Os 'roles' devem ser um dos ARIA 'roles' válidos: ${data.values}"
514
+ }
515
+ },
516
+ "is-element-focusable": {
517
+ "pass": "O elemento é focalizável.",
518
+ "fail": "O elemento não é focalizável."
519
+ },
520
+ "no-implicit-explicit-label": {
521
+ "pass": "Não há nenhuma divergência entre <label> e o nome acessível",
522
+ "incomplete": "Verifique se o <label> não precisa fazer parte do nome do campo ARIA ${data}"
523
+ },
524
+ "unsupportedrole": {
525
+ "pass": "O ARIA 'role' é suportado",
526
+ "fail": "O 'role' usado não é amplamente suportado em leitores de tela e tecnologias assistivas: ${data.values}"
527
+ },
528
+ "valid-scrollable-semantics": {
529
+ "pass": "O elemento possui semântica válida para um elemento na ordem de foco.",
530
+ "fail": "O elemento possui semântica inválida para um elemento na ordem de foco."
531
+ },
532
+ "color-contrast": {
533
+ "pass": "O elemento tem contraste suficiente no valor de ${data.contrastRatio}",
534
+ "fail": "O elemento tem contraste insuficiente no valor de ${data.contrastRatio} (cor do primeiro plano: ${data.fgColor}, cor de fundo: ${data.bgColor}, tamanho da fonte: ${data.fontSize}, normal/negrito: ${data.fontWeight}). Contraste esperado no valor de ${data.expectedContrastRatio}",
535
+ "incomplete": {
536
+ "default": "Impossível determinar o contraste",
537
+ "bgImage": "A cor de fundo do elemento não pôde ser determinada devido a uma imagem de fundo",
538
+ "bgGradient": "A cor de fundo do elemento não pôde ser determinada devido a um gradiente de fundo",
539
+ "imgNode": "A cor de fundo do elemento não pôde ser determinada porque o elemento contém um nó de imagem",
540
+ "bgOverlap": "A cor de fundo do elemento não pôde ser determinada porque está sobreposta por outro elemento",
541
+ "fgAlpha": "A cor do primeiro plano do elemento não pôde ser determinada devido à transparência alfa",
542
+ "elmPartiallyObscured": "A cor de fundo do elemento não pôde ser determinada porque está parcialmente obscurecida por outro elemento",
543
+ "elmPartiallyObscuring": "A cor de fundo do elemento não pôde ser determinada porque está parcialmente sobreposta a outros elementos",
544
+ "outsideViewport": "A cor de fundo do elemento não pôde ser determinada porque está fora da 'viewport'",
545
+ "equalRatio": "O elemento tem um contraste de 1:1 com plano de fundo",
546
+ "shortTextContent": "O conteúdo do elemento é muito curto para determinar se é conteúdo de texto real",
547
+ "nonBmp": "O conteúdo do elemento contém apenas caracteres não textuais",
548
+ "pseudoContent": "A cor de fundo do elemento não pode ser determinada devido a um pseudo-elemento"
549
+ }
550
+ },
551
+ "color-contrast-enhanced": {
552
+ "pass": "O elemento tem contraste suficiente no valor de ${data.contrastRatio}",
553
+ "fail": "O elemento tem contraste insuficiente no valor de ${data.contrastRatio} (cor do primeiro plano: ${data.fgColor}, cor de fundo: ${data.bgColor}, tamanho da fonte: ${data.fontSize}, normal/negrito: ${data.fontWeight}). Contraste esperado no valor de ${data.expectedContrastRatio}",
554
+ "incomplete": {
555
+ "default": "Impossível determinar o contraste",
556
+ "bgImage": "A cor de fundo do elemento não pôde ser determinada devido a uma imagem de fundo",
557
+ "bgGradient": "A cor de fundo do elemento não pôde ser determinada devido a um gradiente de fundo",
558
+ "imgNode": "A cor de fundo do elemento não pôde ser determinada porque o elemento contém um nó de imagem",
559
+ "bgOverlap": "A cor de fundo do elemento não pôde ser determinada porque está sobreposta por outro elemento",
560
+ "fgAlpha": "A cor do primeiro plano do elemento não pôde ser determinada devido à transparência alfa",
561
+ "elmPartiallyObscured": "A cor de fundo do elemento não pôde ser determinada porque está parcialmente obscurecida por outro elemento",
562
+ "elmPartiallyObscuring": "A cor de fundo do elemento não pôde ser determinada porque está parcialmente sobreposta a outros elementos",
563
+ "outsideViewport": "A cor de fundo do elemento não pôde ser determinada porque está fora da 'viewport'",
564
+ "equalRatio": "O elemento tem um contraste de 1:1 com plano de fundo",
565
+ "shortTextContent": "O conteúdo do elemento é muito curto para determinar se é conteúdo de texto real",
566
+ "nonBmp": "O conteúdo do elemento contém apenas caracteres não textuais",
567
+ "pseudoContent": "A cor de fundo do elemento não pode ser determinada devido a um pseudo-elemento"
568
+ }
569
+ },
570
+ "link-in-text-block": {
571
+ "pass": "Links pode ser distinguidos do texto ao redor de outra maneira além da cor",
572
+ "fail": "Links precisam ser distinguidos do texto ao redor de outra maneira além da cor",
573
+ "incomplete": {
574
+ "default": "Impossível determinar o contraste",
575
+ "bgContrast": "O contraste do elemento não pôde ser determinado. Verifique se há um estilo distinto para 'hover'/'focus'.",
576
+ "bgImage": "O contraste do elemento não pôde ser determinado devido a uma imagem de fundo",
577
+ "bgGradient": "O contraste do elemento não pôde ser determinado devido a um gradiente de fundo",
578
+ "imgNode": "O contraste do elemento não pôde ser determinado porque o elemento contém um nó de imagem",
579
+ "bgOverlap": "O contraste do elemento não pôde ser determinado devido a uma sobreposição do elemento"
580
+ }
581
+ },
582
+ "autocomplete-appropriate": {
583
+ "pass": "o valor 'autocomplete' está em um elemento apropriado",
584
+ "fail": "o valor 'autocomplete' está em um elemento inapropriado para este tipo de entrada"
585
+ },
586
+ "autocomplete-valid": {
587
+ "pass": "o atributo 'autocomplete' está corretamente formatado",
588
+ "fail": "o atributo 'autocomplete' está incorretamente formatado"
589
+ },
590
+ "accesskeys": {
591
+ "pass": "O valor do atributo 'accesskey' é único",
592
+ "fail": "O documento tem múltiplos elementos com a mesma 'accesskey'"
593
+ },
594
+ "focusable-content": {
595
+ "pass": "O elemento contém elementos focalizáveis",
596
+ "fail": "O elemento deveria ter conteúdo focalizável"
597
+ },
598
+ "focusable-disabled": {
599
+ "pass": "Nenhum elemento focalizável contido no elemento",
600
+ "fail": "Conteúdo focalizável deve ser desabilitado ou removido do DOM"
601
+ },
602
+ "focusable-element": {
603
+ "pass": "O elemento é focalizável",
604
+ "fail": "O elemento deveria ser focalizável"
605
+ },
606
+ "focusable-modal-open": {
607
+ "pass": "Nenhum elemento focalizável enquanto um modal está aberto",
608
+ "incomplete": "Garanta que os elementos focalizáveis não estejam na ordem de tabulação no estado atual"
609
+ },
610
+ "focusable-no-name": {
611
+ "pass": "O elemento não está na ordem de tabulação ou tem texto acessível",
612
+ "fail": "O elemento está na ordem de tabulação e não tem nome acessível",
613
+ "incomplete": "Não foi possível determinar se o elemento tem um nome acessível"
614
+ },
615
+ "focusable-not-tabbable": {
616
+ "pass": "Nenhum elemento focalizável contido no elemento",
617
+ "fail": "Conteúdo focalizável deve ter tabindex='-1' ou ser removido do DOM"
618
+ },
619
+ "frame-focusable-content": {
620
+ "pass": "O elemento não tem descendentes focalizáveis",
621
+ "fail": "O elemento tem descendentes focalizáveis",
622
+ "incomplete": "Não foi possível determinar se o elemento tem descendentes"
623
+ },
624
+ "landmark-is-top-level": {
625
+ "pass": "A região ${data.role} está no nível principal.",
626
+ "fail": "A região ${data.role} está contida em outra região."
627
+ },
628
+ "no-focusable-content": {
629
+ "pass": "O elemento não tem descendentes focalizáveis",
630
+ "fail": "O elemento tem descendentes focalizáveis",
631
+ "incomplete": "Não foi possível determinar se o elemento tem descendentes"
632
+ },
633
+ "page-has-heading-one": {
634
+ "pass": "A página tem pelo menos um título de primeiro nível",
635
+ "fail": "A página deve ter pelo menos um título de primeiro nível"
636
+ },
637
+ "page-has-main": {
638
+ "pass": "O documento tem pelo menos uma região 'main'",
639
+ "fail": "O documento não tem uma região 'main'"
640
+ },
641
+ "page-no-duplicate-banner": {
642
+ "pass": "O documento não tem mais de uma região 'banner'",
643
+ "fail": "O documento tem mais de uma região 'banner'"
644
+ },
645
+ "page-no-duplicate-contentinfo": {
646
+ "pass": "O documento não tem mais de uma região 'contentinfo'",
647
+ "fail": "O documento tem mais de uma região 'contenteinfo'"
648
+ },
649
+ "page-no-duplicate-main": {
650
+ "pass": "O documento não tem mais de uma região 'main'",
651
+ "fail": "O documento tem mais de uma região 'main'"
652
+ },
653
+ "tabindex": {
654
+ "pass": "O elemento não tem um 'tabindex' maior do que 0",
655
+ "fail": "O elemento tem um 'tabindex' maior do que 0"
656
+ },
657
+ "alt-space-value": {
658
+ "pass": "O elemento tem um valor válido para o atributo 'alt'",
659
+ "fail": "O elemento tem um atributo 'alt' contendo apenas um caracter de espaço, o que não é ignorado por todos os leitores de tela"
660
+ },
661
+ "duplicate-img-label": {
662
+ "pass": "O elemento não duplica um texto existente no atributo 'alt' do elemento <img>",
663
+ "fail": "O elemento contém o elemento <img> com texto alternativo duplicando um texto existente"
664
+ },
665
+ "explicit-label": {
666
+ "pass": "O elemento de formulário tem um <label> explícito",
667
+ "fail": "O elemento de formulário não tem um <label> explícito",
668
+ "incomplete": "Não foi possível determinar se o elemento de formulário tem um <label> explícito"
669
+ },
670
+ "help-same-as-label": {
671
+ "pass": "O texto de ajuda ('title' ou 'aria-describedby') não duplica o texto do rótulo",
672
+ "fail": "O texto de ajuda ('title' ou 'aria-describedby') é o igual ao texto do rótulo"
673
+ },
674
+ "hidden-explicit-label": {
675
+ "pass": "O elemento de formulário tem um <label> explícito visível",
676
+ "fail": "O elemento de formulário tem um <label> explícito que está oculto",
677
+ "incomplete": "Não foi possível determinar se o elemento de formulário tem um <label> explícito que está oculto"
678
+ },
679
+ "implicit-label": {
680
+ "pass": "O elemento de formulário tem um <label> implícito (envolvido)",
681
+ "fail": "O elemento de formulário não tem <label> implícito (envolvido)",
682
+ "incomplete": "Não foi possível determinar se o elemento de formulário tem um <label> implícito (envolvido)"
683
+ },
684
+ "label-content-name-mismatch": {
685
+ "pass": "O elemento contém o texto visível como parte do seu nome acessível",
686
+ "fail": "O texto dentro do elemento não está incluído no nome acessível"
687
+ },
688
+ "multiple-label": {
689
+ "pass": "O campo de formulário não tem múltiplos elementos <label>",
690
+ "incomplete": "O uso de múltiplos elementos <label> não é amplamente suportado pelas tecnologias assistivas. Certifique-se de que o primeiro <label> contém toda a informação necessária."
691
+ },
692
+ "title-only": {
693
+ "pass": "Elementos de formulário não usam somente o atributo 'title' como seu rótulo",
694
+ "fail": "Apenas 'title' usado para gerar o rótulo do elemento de formulário"
695
+ },
696
+ "landmark-is-unique": {
697
+ "pass": "As regiões devem ter um 'role' ou combinação de 'role'/'label'/'title' (ou seja, nome acessível) únicos",
698
+ "fail": "A região deve ter um 'aria-label', 'aria-labelledby', ou 'title' único para tornar as regiões distinguíveis"
699
+ },
700
+ "has-lang": {
701
+ "pass": "O elemento <html> tem um atributo 'lang'",
702
+ "fail": {
703
+ "noXHTML": "O atributo 'xml:lang' não é válido em páginas HTML, use o atributo 'lang'.",
704
+ "noLang": "O elemento <html> não possui um atributo 'lang'"
705
+ }
706
+ },
707
+ "valid-lang": {
708
+ "pass": "O valor do atributo 'lang' está incluso na lista de idiomas válidos",
709
+ "fail": "O valor do atributo 'lang' não está incluso na lista de idiomas válidos"
710
+ },
711
+ "xml-lang-mismatch": {
712
+ "pass": "Os atributos 'lang' e 'xml:lang' têm o mesmo idioma base",
713
+ "fail": "Os atributos 'lang' e 'xml:lang' não têm o mesmo idioma base"
714
+ },
715
+ "dlitem": {
716
+ "pass": "O item da lista de descrição tem um elemento pai <dl>",
717
+ "fail": "O item da lista de descrição não tem um elemente pai <dl>"
718
+ },
719
+ "listitem": {
720
+ "pass": "O item de lista tem um elemento pai <ul>, <ol> ou role=\"list\"",
721
+ "fail": {
722
+ "default": "O item de lista não tem um elemento pai <ul> ou <ol>",
723
+ "roleNotValid": "O item de lista não tem um elemento pai <ul> ou <ol> sem um 'role', ou um role=\"list\""
724
+ }
725
+ },
726
+ "only-dlitems": {
727
+ "pass": "O elemento de lista tem somente filhos diretos que são permitidos dentro de elementos <dt> ou <dd>",
728
+ "fail": "O elemento de lista tem filhos diretos que não são permitidos dentro de elementos <dt> ou <dd>"
729
+ },
730
+ "only-listitems": {
731
+ "pass": "O elemento de lista tem somente filhos diretos que são permitidos dentro de elementos <li>",
732
+ "fail": {
733
+ "default": "O elemento de lista tem filhos diretos que não são permitidos dentro de elementos <li>",
734
+ "roleNotValid": "O elemento de lista tem filhos diretos com um 'role' que não é permitido: ${data.roles}"
735
+ }
736
+ },
737
+ "structured-dlitems": {
738
+ "pass": "Quando não vazio, o elemento tem ambos elementos <dt> e <dd>",
739
+ "fail": "Quando não vazio, o elemento não tem nem ao menos um elemento <dt> seguindo de pelo menos um elemento <dd>"
740
+ },
741
+ "caption": {
742
+ "pass": "O elemento multimídia tem uma trilha de legendas",
743
+ "incomplete": "Verifique se legendas estão disponíveis para o elemento"
744
+ },
745
+ "frame-tested": {
746
+ "pass": "O 'iframe' foi testado com o 'axe-core'",
747
+ "fail": "O 'iframe' não pôde ser testado com o 'axe-core'",
748
+ "incomplete": "O 'iframe' ainda tem que ser testado com o 'axe-core'"
749
+ },
750
+ "no-autoplay-audio": {
751
+ "pass": "Elementos <video> ou <audio> não reproduzem áudio por mais do que a duração permitida ou possuem mecanismos de controle",
752
+ "fail": "Elementos <video> ou <audio> reproduzem áudio por uma duração maior que a permitida ou não possuem mecanismos de controle",
753
+ "incomplete": "Garanta que elementos <video> ou <audio> não reproduzam áudio por mais do que a duração permitida ou disponibilize mecanismos de controle"
754
+ },
755
+ "css-orientation-lock": {
756
+ "pass": "A tela é operável, e o bloqueio da orientação não existe",
757
+ "fail": "Bloqueio de orientação CSS aplicado, o que torna a tela inoperável",
758
+ "incomplete": "Bloqueio de orientação CSS não pode ser determinado"
759
+ },
760
+ "meta-viewport-large": {
761
+ "pass": "A tag <meta> não impede o zoom significativo em dispositivos móveis",
762
+ "fail": "A tag <meta> limita o zoom em dispositivos móveis"
763
+ },
764
+ "meta-viewport": {
765
+ "pass": "A tag <meta> não desabilita o zoom em dispositivos móveis",
766
+ "fail": "${data} na tag <meta> desabilita o zoom em dispositivos móveis"
767
+ },
768
+ "header-present": {
769
+ "pass": "A página tem um cabeçalho (header)",
770
+ "fail": "A página não tem um cabeçalho (header)"
771
+ },
772
+ "heading-order": {
773
+ "pass": "Hierarquia de títulos válida",
774
+ "fail": "Hierarquia de títulos inválida"
775
+ },
776
+ "identical-links-same-purpose": {
777
+ "pass": "Não outros links com o mesmo nome, que direcionem para uma URL diferente",
778
+ "incomplete": "Verifique se os links têm o mesmo propósito ou são intencionalmente ambíguos."
779
+ },
780
+ "internal-link-present": {
781
+ "pass": "Link de escape válido encontrado",
782
+ "fail": "Nenhum link de escape válido encontrado"
783
+ },
784
+ "landmark": {
785
+ "pass": "A página tem uma região (landmark)",
786
+ "fail": "A página não tem nenhuma região (landmark)"
787
+ },
788
+ "meta-refresh": {
789
+ "pass": "A tag <meta> não atualiza a página imediatamente",
790
+ "fail": "A tag <meta> força atualizações temporizadas da página"
791
+ },
792
+ "p-as-heading": {
793
+ "pass": "Elementos <p> não são estilizados como títulos",
794
+ "fail": "Elementos de título devem ser utilizados no lugar de elementos <p> estilizados"
795
+ },
796
+ "region": {
797
+ "pass": "Todo o conteúdo da página está contido em regiões (landmarks)",
798
+ "fail": "Algum conteúdo da página não está contido em regiões (landmarks)"
799
+ },
800
+ "skip-link": {
801
+ "pass": "Destino do link de escape existe",
802
+ "incomplete": "Destino do link de escape deve se tornar visível na ativação",
803
+ "fail": "Nenhum destino para o link de escape"
804
+ },
805
+ "unique-frame-title": {
806
+ "pass": "O atributo 'title' do elemento é único",
807
+ "fail": "O atributo 'title' do elemento não é único"
808
+ },
809
+ "duplicate-id-active": {
810
+ "pass": "O documento não tem elementos ativos que compartilham o mesmo atributo 'id'",
811
+ "fail": "O documento tem elementos ativos com o mesmo atributo 'id': ${data}"
812
+ },
813
+ "duplicate-id-aria": {
814
+ "pass": "O documento não tem elementos referenciados com ARIA ou rótulos que compartilham o mesmo atributo 'id'",
815
+ "fail": "O documento tem múltiplos elementos referenciados com ARIA com o mesmo atributo 'id': ${data}"
816
+ },
817
+ "duplicate-id": {
818
+ "pass": "O documento não tem elementos estáticos que compartilham o mesmo atributo 'id'",
819
+ "fail": "O documento tem múltiplos elementos estáticos com o mesmo atributo 'id'"
820
+ },
821
+ "aria-label": {
822
+ "pass": "O atributo 'aria-label' existe e não está vazio",
823
+ "fail": "O atributo 'aria-label' não existe ou está vazio"
824
+ },
825
+ "aria-labelledby": {
826
+ "pass": "O atributo 'aria-labelledby' existe e referencia elementos que são visíveis aos leitores de tela",
827
+ "fail": "O atributo 'aria-labelledby' não existe, referencia elementos que não existem ou são vazios",
828
+ "incomplete": "certifique-se de que 'aria-labelledby' referencie um elemento existente"
829
+ },
830
+ "avoid-inline-spacing": {
831
+ "pass": "Nenhum estilo 'inline' com '!important' que afete o espaçamento do texto foi especificado",
832
+ "fail": {
833
+ "singular": "Remova '!important' do estilo 'inline' ${data.values}, uma vez que sobrepor isto não é suportado pela maioria dos navegadores",
834
+ "plural": "Remova '!important' dos estilos 'inline' ${data.values}, uma vez que sobrepor isto não é suportado pela maioria dos navegadores"
835
+ }
836
+ },
837
+ "button-has-visible-text": {
838
+ "pass": "O elemento tem texto interno que é visível aos leitores de tela",
839
+ "fail": "O elemento não tem texto interno que seja visível aos leitores de tela",
840
+ "incomplete": "Não foi possível determinar se o elemento tem filhos"
841
+ },
842
+ "doc-has-title": {
843
+ "pass": "O documento tem um elemento <title> não vazio",
844
+ "fail": "O documento não tem um elemento <title> não vazio"
845
+ },
846
+ "exists": {
847
+ "pass": "O elemento não existe",
848
+ "incomplete": "O elemento existe"
849
+ },
850
+ "has-alt": {
851
+ "pass": "O elemento tem um atributo 'alt'",
852
+ "fail": "O elemento não tem um atributo 'alt'"
853
+ },
854
+ "has-visible-text": {
855
+ "pass": "O elemento tem texto que é visível aos leitores de tela",
856
+ "fail": "O elemento não tem texto que seja visível aos leitores de tela",
857
+ "incomplete": "Não foi possível determinar se o elemento tem filhos"
858
+ },
859
+ "is-on-screen": {
860
+ "pass": "O elemento não é visível",
861
+ "fail": "O elemento é visível"
862
+ },
863
+ "non-empty-alt": {
864
+ "pass": "O elemento tem um atributo 'alt' não vazio",
865
+ "fail": {
866
+ "noAttr": "O elemento não tem um atributo 'alt'",
867
+ "emptyAttr": "O elemento tem um atributo 'alt' vazio"
868
+ }
869
+ },
870
+ "non-empty-if-present": {
871
+ "pass": {
872
+ "default": "O elemento tem um atributo 'value",
873
+ "has-label": "O elemento tem um atributo 'value' não vazio"
874
+ },
875
+ "fail": "O elemento tem um atributo 'value' e ele está vazio"
876
+ },
877
+ "non-empty-placeholder": {
878
+ "pass": "O elemento tem um atributo 'placeholder'",
879
+ "fail": {
880
+ "noAttr": "O elemento não tem um atributo 'placeholder'",
881
+ "emptyAttr": "O elemento tem um atributo 'placeholder' vazio"
882
+ }
883
+ },
884
+ "non-empty-title": {
885
+ "pass": "O elemento tem um atributo 'title'",
886
+ "fail": {
887
+ "noAttr": "O elemento não tem um atributo 'title'",
888
+ "emptyAttr": "O elemento tem um atributo 'title' vazio"
889
+ }
890
+ },
891
+ "non-empty-value": {
892
+ "pass": "O elemento tem um atributo 'value' não vazio",
893
+ "fail": {
894
+ "noAttr": "O elemento não tem um atributo 'value'",
895
+ "emptyAttr": "O elemento tem um atributo 'value' vazio"
896
+ }
897
+ },
898
+ "presentational-role": {
899
+ "pass": "A semântica padrão do elemento foi sobrescrita com role=\"${data.role}\"",
900
+ "fail": {
901
+ "default": "A semântica padrão do elemento não foi sobrescrita com role=\"none\" or role=\"presentation\"",
902
+ "globalAria": "A função do elemento não é de apresentação pois ele tem um atributo ARIA global",
903
+ "focusable": "A função do elemento não é de apresentação pois ele é focalizável",
904
+ "both": "A função do elemento não é de apresentação pois ele tem um atributo ARIA global e é focalizável"
905
+ }
906
+ },
907
+ "role-none": {
908
+ "pass": "A semântica padrão do elemento foi sobrescrita com role=\"none\"",
909
+ "fail": "A semântica padrão do elemento não foi sobrescrita com role=\"none\""
910
+ },
911
+ "role-presentation": {
912
+ "pass": "A semântica padrão do elemento foi sobrescrita com role=\"presentation\"",
913
+ "fail": "A semântica padrão do elemento não foi sobrescrita com role=\"presentation\""
914
+ },
915
+ "svg-non-empty-title": {
916
+ "pass": "O elemento tem um filho <title>",
917
+ "fail": {
918
+ "noTitle": "O elemento não tem um filho que seja 'title'",
919
+ "emptyTitle": "O 'title' filho do elemento está vazio"
920
+ },
921
+ "incomplete": "Não foi possível determinar se o elemento tem um filho que seja um 'title'"
922
+ },
923
+ "caption-faked": {
924
+ "pass": "A primeira linha de uma tabela não é usada como legenda",
925
+ "fail": "O primeiro elemento da tabela deve ser um <caption> em vez de uma célula da tabela"
926
+ },
927
+ "html5-scope": {
928
+ "pass": "O atributo 'scope' só é utilizado em elementos de cabeçalho de tabela (<th>)",
929
+ "fail": "No HTML 5, os atributos 'scope' só devem ser utilizados em elementos de cabeçalho de tabela (<th>)"
930
+ },
931
+ "same-caption-summary": {
932
+ "pass": "O conteúdo do atributo 'summary' e <caption> não estão duplicados",
933
+ "fail": "O conteúdo do atributo 'summary' e <caption> são idênticos"
934
+ },
935
+ "scope-value": {
936
+ "pass": "O atributo 'scope' é usado corretamente",
937
+ "fail": "O valor do atributo 'scope' pode ser apenas 'row' ou 'col'"
938
+ },
939
+ "td-has-header": {
940
+ "pass": "Todos as células de dados não vazias possuem cabeçalhos",
941
+ "fail": "Algumas células de dados não vazias não possuem cabeçalho"
942
+ },
943
+ "td-headers-attr": {
944
+ "pass": "O atributo 'headers' é usado exclusivamente para referenciar outras células da tabela",
945
+ "incomplete": "O atributo 'headers' está vazio",
946
+ "fail": "O atributo 'headers' não é usado exclusivamente para referenciar outras células da tabela"
947
+ },
948
+ "th-has-data-cells": {
949
+ "pass": "Todas as células de cabeçalho da tabela se referem a células de dados",
950
+ "fail": "Nem todas as células de cabeçalho da tabela se referem a células de dados",
951
+ "incomplete": "Células de dados da tabela estão ausentes ou vazias"
952
+ },
953
+ "hidden-content": {
954
+ "pass": "Todo o conteúdo da página foi analisado.",
955
+ "fail": "Houve problemas ao analisar o conteúdo desta página.",
956
+ "incomplete": "Existe conteúdo oculto na página que não foi analisado. Será preciso provocar a exibição deste conteúdo para poder analisá-lo."
957
+ }
958
+ },
959
+ "failureSummaries": {
960
+ "any": {
961
+ "failureMessage": "Corrija qualquer um dos itens a seguir:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
962
+ },
963
+ "none": {
964
+ "failureMessage": "Corrija todos os itens a seguir:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
965
+ }
966
+ },
967
+ "incompleteFallbackMessage": "Corrija todos os itens a seguir:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
882
968
  }