| 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-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 nó 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 nó 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 nó 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 nó 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 nó 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": {
|
|---|
| 448 | "default": "Os ARIA filhos necessários estão presentes"
|
|---|
| 449 | },
|
|---|
| 450 | "fail": {
|
|---|
| 451 | "singular": "Função ARIA filha necessária ausente: ${data.values}",
|
|---|
| 452 | "plural": "Funções ARIA filhas necessárias ausentes: ${data.values}"
|
|---|
| 453 | },
|
|---|
| 454 | "incomplete": {
|
|---|
| 455 | "singular": "Esperando função ARIA filha a ser adicionada: ${data.values}",
|
|---|
| 456 | "plural": "Esperando funções ARIA filhas a serem adicionadas: ${data.values}"
|
|---|
| 457 | }
|
|---|
| 458 | },
|
|---|
| 459 | "aria-required-parent": {
|
|---|
| 460 | "pass": "A função ARIA pai necessária está presente",
|
|---|
| 461 | "fail": {
|
|---|
| 462 | "singular": "Função ARIA pai necessária ausente: ${data.values}",
|
|---|
| 463 | "plural": "Funções ARIA pais necessárias ausentes: ${data.values}"
|
|---|
| 464 | }
|
|---|
| 465 | },
|
|---|
| 466 | "aria-roledescription": {
|
|---|
| 467 | "pass": "'aria-roledescription' usado em função semântica suportada",
|
|---|
| 468 | "incomplete": "Garanta que o 'aria-roledescription' é anunciado pelos leitores de tela suportados",
|
|---|
| 469 | "fail": "Dê ao elemento uma função que suporte 'aria-roledescription'"
|
|---|
| 470 | },
|
|---|
| 471 | "aria-unsupported-attr": {
|
|---|
| 472 | "pass": "O atributo ARIA é suportado",
|
|---|
| 473 | "fail": "O atributo ARIA não é amplamente suportado em leitores de tela e tecnologias assistivas: ${data.values}"
|
|---|
| 474 | },
|
|---|
| 475 | "aria-valid-attr-value": {
|
|---|
| 476 | "pass": "Os valores dos atributos ARIA são válidos",
|
|---|
| 477 | "fail": {
|
|---|
| 478 | "singular": "Valor de atributo ARIA inválido: ${data.values}",
|
|---|
| 479 | "plural": "Valores de atributos ARIA inválidos: ${data.values}"
|
|---|
| 480 | },
|
|---|
| 481 | "incomplete": {
|
|---|
| 482 | "noId": "O ID do atributo ARIA do elemento não existe na página: ${data.needsReview}",
|
|---|
| 483 | "ariaCurrent": "O valor do atributo ARIA é inválido e será tratado como \"aria-current=true\": ${data.needsReview}"
|
|---|
| 484 | }
|
|---|
| 485 | },
|
|---|
| 486 | "aria-valid-attr": {
|
|---|
| 487 | "pass": {
|
|---|
| 488 | "singular": "Os nomes dos atributos ARIA são válidos",
|
|---|
| 489 | "plural": "O nome do atributo ARIA é valido"
|
|---|
| 490 | },
|
|---|
| 491 | "fail": {
|
|---|
| 492 | "singular": "Nome de atributo ARIA inválido: ${data.values}",
|
|---|
| 493 | "plural": "Nomes de atributos ARIA inválidos: ${data.values}"
|
|---|
| 494 | }
|
|---|
| 495 | },
|
|---|
| 496 | "fallbackrole": {
|
|---|
| 497 | "pass": "Apenas um valor de 'role' deve ser utilizado",
|
|---|
| 498 | "fail": "Use apenas um valor de 'role', uma vez que funções 'fallback' não são suportadas em navegadores mais antigos"
|
|---|
| 499 | },
|
|---|
| 500 | "has-global-aria-attribute": {
|
|---|
| 501 | "pass": {
|
|---|
| 502 | "singular": "O elemento tem um atributo ARIA global: ${data.values}",
|
|---|
| 503 | "plural": "O elemento tem atributos ARIA globais: ${data.values}"
|
|---|
| 504 | },
|
|---|
| 505 | "fail": "O elemento não tem atributo ARIA global"
|
|---|
| 506 | },
|
|---|
| 507 | "has-widget-role": {
|
|---|
| 508 | "pass": "Elemento tem um 'role' de 'widget'.",
|
|---|
| 509 | "fail": "Elemento não tem um 'role' de 'widget'."
|
|---|
| 510 | },
|
|---|
| 511 | "invalidrole": {
|
|---|
| 512 | "pass": "O ARIA 'role' é válido",
|
|---|
| 513 | "fail": {
|
|---|
| 514 | "singular": "O 'role' deve ser um dos ARIA 'roles' válidos: ${data.values}",
|
|---|
| 515 | "plural": "Os 'roles' devem ser um dos ARIA 'roles' válidos: ${data.values}"
|
|---|
| 516 | }
|
|---|
| 517 | },
|
|---|
| 518 | "is-element-focusable": {
|
|---|
| 519 | "pass": "O elemento é focalizável.",
|
|---|
| 520 | "fail": "O elemento não é focalizável."
|
|---|
| 521 | },
|
|---|
| 522 | "no-implicit-explicit-label": {
|
|---|
| 523 | "pass": "Não há nenhuma divergência entre <label> e o nome acessível",
|
|---|
| 524 | "incomplete": "Verifique se o <label> não precisa fazer parte do nome do campo ARIA ${data}"
|
|---|
| 525 | },
|
|---|
| 526 | "unsupportedrole": {
|
|---|
| 527 | "pass": "O ARIA 'role' é suportado",
|
|---|
| 528 | "fail": "O 'role' usado não é amplamente suportado em leitores de tela e tecnologias assistivas: ${data.values}"
|
|---|
| 529 | },
|
|---|
| 530 | "valid-scrollable-semantics": {
|
|---|
| 531 | "pass": "O elemento possui semântica válida para um elemento na ordem de foco.",
|
|---|
| 532 | "fail": "O elemento possui semântica inválida para um elemento na ordem de foco."
|
|---|
| 533 | },
|
|---|
| 534 | "color-contrast": {
|
|---|
| 535 | "pass": "O elemento tem contraste suficiente no valor de ${data.contrastRatio}",
|
|---|
| 536 | "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}",
|
|---|
| 537 | "incomplete": {
|
|---|
| 538 | "default": "Impossível determinar o contraste",
|
|---|
| 539 | "bgImage": "A cor de fundo do elemento não pôde ser determinada devido a uma imagem de fundo",
|
|---|
| 540 | "bgGradient": "A cor de fundo do elemento não pôde ser determinada devido a um gradiente de fundo",
|
|---|
| 541 | "imgNode": "A cor de fundo do elemento não pôde ser determinada porque o elemento contém um nó de imagem",
|
|---|
| 542 | "bgOverlap": "A cor de fundo do elemento não pôde ser determinada porque está sobreposta por outro elemento",
|
|---|
| 543 | "fgAlpha": "A cor do primeiro plano do elemento não pôde ser determinada devido à transparência alfa",
|
|---|
| 544 | "elmPartiallyObscured": "A cor de fundo do elemento não pôde ser determinada porque está parcialmente obscurecida por outro elemento",
|
|---|
| 545 | "elmPartiallyObscuring": "A cor de fundo do elemento não pôde ser determinada porque está parcialmente sobreposta a outros elementos",
|
|---|
| 546 | "outsideViewport": "A cor de fundo do elemento não pôde ser determinada porque está fora da 'viewport'",
|
|---|
| 547 | "equalRatio": "O elemento tem um contraste de 1:1 com plano de fundo",
|
|---|
| 548 | "shortTextContent": "O conteúdo do elemento é muito curto para determinar se é conteúdo de texto real",
|
|---|
| 549 | "nonBmp": "O conteúdo do elemento contém apenas caracteres não textuais",
|
|---|
| 550 | "pseudoContent": "A cor de fundo do elemento não pode ser determinada devido a um pseudo-elemento"
|
|---|
| 551 | }
|
|---|
| 552 | },
|
|---|
| 553 | "color-contrast-enhanced": {
|
|---|
| 554 | "pass": "O elemento tem contraste suficiente no valor de ${data.contrastRatio}",
|
|---|
| 555 | "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}",
|
|---|
| 556 | "incomplete": {
|
|---|
| 557 | "default": "Impossível determinar o contraste",
|
|---|
| 558 | "bgImage": "A cor de fundo do elemento não pôde ser determinada devido a uma imagem de fundo",
|
|---|
| 559 | "bgGradient": "A cor de fundo do elemento não pôde ser determinada devido a um gradiente de fundo",
|
|---|
| 560 | "imgNode": "A cor de fundo do elemento não pôde ser determinada porque o elemento contém um nó de imagem",
|
|---|
| 561 | "bgOverlap": "A cor de fundo do elemento não pôde ser determinada porque está sobreposta por outro elemento",
|
|---|
| 562 | "fgAlpha": "A cor do primeiro plano do elemento não pôde ser determinada devido à transparência alfa",
|
|---|
| 563 | "elmPartiallyObscured": "A cor de fundo do elemento não pôde ser determinada porque está parcialmente obscurecida por outro elemento",
|
|---|
| 564 | "elmPartiallyObscuring": "A cor de fundo do elemento não pôde ser determinada porque está parcialmente sobreposta a outros elementos",
|
|---|
| 565 | "outsideViewport": "A cor de fundo do elemento não pôde ser determinada porque está fora da 'viewport'",
|
|---|
| 566 | "equalRatio": "O elemento tem um contraste de 1:1 com plano de fundo",
|
|---|
| 567 | "shortTextContent": "O conteúdo do elemento é muito curto para determinar se é conteúdo de texto real",
|
|---|
| 568 | "nonBmp": "O conteúdo do elemento contém apenas caracteres não textuais",
|
|---|
| 569 | "pseudoContent": "A cor de fundo do elemento não pode ser determinada devido a um pseudo-elemento"
|
|---|
| 570 | }
|
|---|
| 571 | },
|
|---|
| 572 | "link-in-text-block": {
|
|---|
| 573 | "pass": "Links pode ser distinguidos do texto ao redor de outra maneira além da cor",
|
|---|
| 574 | "fail": "Links precisam ser distinguidos do texto ao redor de outra maneira além da cor",
|
|---|
| 575 | "incomplete": {
|
|---|
| 576 | "default": "Impossível determinar o contraste",
|
|---|
| 577 | "bgContrast": "O contraste do elemento não pôde ser determinado. Verifique se há um estilo distinto para 'hover'/'focus'.",
|
|---|
| 578 | "bgImage": "O contraste do elemento não pôde ser determinado devido a uma imagem de fundo",
|
|---|
| 579 | "bgGradient": "O contraste do elemento não pôde ser determinado devido a um gradiente de fundo",
|
|---|
| 580 | "imgNode": "O contraste do elemento não pôde ser determinado porque o elemento contém um nó de imagem",
|
|---|
| 581 | "bgOverlap": "O contraste do elemento não pôde ser determinado devido a uma sobreposição do elemento"
|
|---|
| 582 | }
|
|---|
| 583 | },
|
|---|
| 584 | "autocomplete-appropriate": {
|
|---|
| 585 | "pass": "o valor 'autocomplete' está em um elemento apropriado",
|
|---|
| 586 | "fail": "o valor 'autocomplete' está em um elemento inapropriado para este tipo de entrada"
|
|---|
| 587 | },
|
|---|
| 588 | "autocomplete-valid": {
|
|---|
| 589 | "pass": "o atributo 'autocomplete' está corretamente formatado",
|
|---|
| 590 | "fail": "o atributo 'autocomplete' está incorretamente formatado"
|
|---|
| 591 | },
|
|---|
| 592 | "accesskeys": {
|
|---|
| 593 | "pass": "O valor do atributo 'accesskey' é único",
|
|---|
| 594 | "fail": "O documento tem múltiplos elementos com a mesma 'accesskey'"
|
|---|
| 595 | },
|
|---|
| 596 | "focusable-content": {
|
|---|
| 597 | "pass": "O elemento contém elementos focalizáveis",
|
|---|
| 598 | "fail": "O elemento deveria ter conteúdo focalizável"
|
|---|
| 599 | },
|
|---|
| 600 | "focusable-disabled": {
|
|---|
| 601 | "pass": "Nenhum elemento focalizável contido no elemento",
|
|---|
| 602 | "fail": "Conteúdo focalizável deve ser desabilitado ou removido do DOM"
|
|---|
| 603 | },
|
|---|
| 604 | "focusable-element": {
|
|---|
| 605 | "pass": "O elemento é focalizável",
|
|---|
| 606 | "fail": "O elemento deveria ser focalizável"
|
|---|
| 607 | },
|
|---|
| 608 | "focusable-modal-open": {
|
|---|
| 609 | "pass": "Nenhum elemento focalizável enquanto um modal está aberto",
|
|---|
| 610 | "incomplete": "Garanta que os elementos focalizáveis não estejam na ordem de tabulação no estado atual"
|
|---|
| 611 | },
|
|---|
| 612 | "focusable-no-name": {
|
|---|
| 613 | "pass": "O elemento não está na ordem de tabulação ou tem texto acessível",
|
|---|
| 614 | "fail": "O elemento está na ordem de tabulação e não tem nome acessível",
|
|---|
| 615 | "incomplete": "Não foi possível determinar se o elemento tem um nome acessível"
|
|---|
| 616 | },
|
|---|
| 617 | "focusable-not-tabbable": {
|
|---|
| 618 | "pass": "Nenhum elemento focalizável contido no elemento",
|
|---|
| 619 | "fail": "Conteúdo focalizável deve ter tabindex='-1' ou ser removido do DOM"
|
|---|
| 620 | },
|
|---|
| 621 | "frame-focusable-content": {
|
|---|
| 622 | "pass": "O elemento não tem descendentes focalizáveis",
|
|---|
| 623 | "fail": "O elemento tem descendentes focalizáveis",
|
|---|
| 624 | "incomplete": "Não foi possível determinar se o elemento tem descendentes"
|
|---|
| 625 | },
|
|---|
| 626 | "landmark-is-top-level": {
|
|---|
| 627 | "pass": "A região ${data.role} está no nível principal.",
|
|---|
| 628 | "fail": "A região ${data.role} está contida em outra região."
|
|---|
| 629 | },
|
|---|
| 630 | "no-focusable-content": {
|
|---|
| 631 | "pass": "O elemento não tem descendentes focalizáveis",
|
|---|
| 632 | "fail": "O elemento tem descendentes focalizáveis",
|
|---|
| 633 | "incomplete": "Não foi possível determinar se o elemento tem descendentes"
|
|---|
| 634 | },
|
|---|
| 635 | "page-has-heading-one": {
|
|---|
| 636 | "pass": "A página tem pelo menos um título de primeiro nível",
|
|---|
| 637 | "fail": "A página deve ter pelo menos um título de primeiro nível"
|
|---|
| 638 | },
|
|---|
| 639 | "page-has-main": {
|
|---|
| 640 | "pass": "O documento tem pelo menos uma região 'main'",
|
|---|
| 641 | "fail": "O documento não tem uma região 'main'"
|
|---|
| 642 | },
|
|---|
| 643 | "page-no-duplicate-banner": {
|
|---|
| 644 | "pass": "O documento não tem mais de uma região 'banner'",
|
|---|
| 645 | "fail": "O documento tem mais de uma região 'banner'"
|
|---|
| 646 | },
|
|---|
| 647 | "page-no-duplicate-contentinfo": {
|
|---|
| 648 | "pass": "O documento não tem mais de uma região 'contentinfo'",
|
|---|
| 649 | "fail": "O documento tem mais de uma região 'contenteinfo'"
|
|---|
| 650 | },
|
|---|
| 651 | "page-no-duplicate-main": {
|
|---|
| 652 | "pass": "O documento não tem mais de uma região 'main'",
|
|---|
| 653 | "fail": "O documento tem mais de uma região 'main'"
|
|---|
| 654 | },
|
|---|
| 655 | "tabindex": {
|
|---|
| 656 | "pass": "O elemento não tem um 'tabindex' maior do que 0",
|
|---|
| 657 | "fail": "O elemento tem um 'tabindex' maior do que 0"
|
|---|
| 658 | },
|
|---|
| 659 | "alt-space-value": {
|
|---|
| 660 | "pass": "O elemento tem um valor válido para o atributo 'alt'",
|
|---|
| 661 | "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"
|
|---|
| 662 | },
|
|---|
| 663 | "duplicate-img-label": {
|
|---|
| 664 | "pass": "O elemento não duplica um texto existente no atributo 'alt' do elemento <img>",
|
|---|
| 665 | "fail": "O elemento contém o elemento <img> com texto alternativo duplicando um texto existente"
|
|---|
| 666 | },
|
|---|
| 667 | "explicit-label": {
|
|---|
| 668 | "pass": "O elemento de formulário tem um <label> explícito",
|
|---|
| 669 | "fail": "O elemento de formulário não tem um <label> explícito",
|
|---|
| 670 | "incomplete": "Não foi possível determinar se o elemento de formulário tem um <label> explícito"
|
|---|
| 671 | },
|
|---|
| 672 | "help-same-as-label": {
|
|---|
| 673 | "pass": "O texto de ajuda ('title' ou 'aria-describedby') não duplica o texto do rótulo",
|
|---|
| 674 | "fail": "O texto de ajuda ('title' ou 'aria-describedby') é o igual ao texto do rótulo"
|
|---|
| 675 | },
|
|---|
| 676 | "hidden-explicit-label": {
|
|---|
| 677 | "pass": "O elemento de formulário tem um <label> explícito visível",
|
|---|
| 678 | "fail": "O elemento de formulário tem um <label> explícito que está oculto",
|
|---|
| 679 | "incomplete": "Não foi possível determinar se o elemento de formulário tem um <label> explícito que está oculto"
|
|---|
| 680 | },
|
|---|
| 681 | "implicit-label": {
|
|---|
| 682 | "pass": "O elemento de formulário tem um <label> implícito (envolvido)",
|
|---|
| 683 | "fail": "O elemento de formulário não tem <label> implícito (envolvido)",
|
|---|
| 684 | "incomplete": "Não foi possível determinar se o elemento de formulário tem um <label> implícito (envolvido)"
|
|---|
| 685 | },
|
|---|
| 686 | "label-content-name-mismatch": {
|
|---|
| 687 | "pass": "O elemento contém o texto visível como parte do seu nome acessível",
|
|---|
| 688 | "fail": "O texto dentro do elemento não está incluído no nome acessível"
|
|---|
| 689 | },
|
|---|
| 690 | "multiple-label": {
|
|---|
| 691 | "pass": "O campo de formulário não tem múltiplos elementos <label>",
|
|---|
| 692 | "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."
|
|---|
| 693 | },
|
|---|
| 694 | "title-only": {
|
|---|
| 695 | "pass": "Elementos de formulário não usam somente o atributo 'title' como seu rótulo",
|
|---|
| 696 | "fail": "Apenas 'title' usado para gerar o rótulo do elemento de formulário"
|
|---|
| 697 | },
|
|---|
| 698 | "landmark-is-unique": {
|
|---|
| 699 | "pass": "As regiões devem ter um 'role' ou combinação de 'role'/'label'/'title' (ou seja, nome acessível) únicos",
|
|---|
| 700 | "fail": "A região deve ter um 'aria-label', 'aria-labelledby', ou 'title' único para tornar as regiões distinguíveis"
|
|---|
| 701 | },
|
|---|
| 702 | "has-lang": {
|
|---|
| 703 | "pass": "O elemento <html> tem um atributo 'lang'",
|
|---|
| 704 | "fail": {
|
|---|
| 705 | "noXHTML": "O atributo 'xml:lang' não é válido em páginas HTML, use o atributo 'lang'.",
|
|---|
| 706 | "noLang": "O elemento <html> não possui um atributo 'lang'"
|
|---|
| 707 | }
|
|---|
| 708 | },
|
|---|
| 709 | "valid-lang": {
|
|---|
| 710 | "pass": "O valor do atributo 'lang' está incluso na lista de idiomas válidos",
|
|---|
| 711 | "fail": "O valor do atributo 'lang' não está incluso na lista de idiomas válidos"
|
|---|
| 712 | },
|
|---|
| 713 | "xml-lang-mismatch": {
|
|---|
| 714 | "pass": "Os atributos 'lang' e 'xml:lang' têm o mesmo idioma base",
|
|---|
| 715 | "fail": "Os atributos 'lang' e 'xml:lang' não têm o mesmo idioma base"
|
|---|
| 716 | },
|
|---|
| 717 | "dlitem": {
|
|---|
| 718 | "pass": "O item da lista de descrição tem um elemento pai <dl>",
|
|---|
| 719 | "fail": "O item da lista de descrição não tem um elemente pai <dl>"
|
|---|
| 720 | },
|
|---|
| 721 | "listitem": {
|
|---|
| 722 | "pass": "O item de lista tem um elemento pai <ul>, <ol> ou role=\"list\"",
|
|---|
| 723 | "fail": {
|
|---|
| 724 | "default": "O item de lista não tem um elemento pai <ul> ou <ol>",
|
|---|
| 725 | "roleNotValid": "O item de lista não tem um elemento pai <ul> ou <ol> sem um 'role', ou um role=\"list\""
|
|---|
| 726 | }
|
|---|
| 727 | },
|
|---|
| 728 | "only-dlitems": {
|
|---|
| 729 | "pass": "O elemento de lista tem somente filhos diretos que são permitidos dentro de elementos <dt> ou <dd>",
|
|---|
| 730 | "fail": "O elemento de lista tem filhos diretos que não são permitidos dentro de elementos <dt> ou <dd>"
|
|---|
| 731 | },
|
|---|
| 732 | "only-listitems": {
|
|---|
| 733 | "pass": "O elemento de lista tem somente filhos diretos que são permitidos dentro de elementos <li>",
|
|---|
| 734 | "fail": {
|
|---|
| 735 | "default": "O elemento de lista tem filhos diretos que não são permitidos dentro de elementos <li>",
|
|---|
| 736 | "roleNotValid": "O elemento de lista tem filhos diretos com um 'role' que não é permitido: ${data.roles}"
|
|---|
| 737 | }
|
|---|
| 738 | },
|
|---|
| 739 | "structured-dlitems": {
|
|---|
| 740 | "pass": "Quando não vazio, o elemento tem ambos elementos <dt> e <dd>",
|
|---|
| 741 | "fail": "Quando não vazio, o elemento não tem nem ao menos um elemento <dt> seguindo de pelo menos um elemento <dd>"
|
|---|
| 742 | },
|
|---|
| 743 | "caption": {
|
|---|
| 744 | "pass": "O elemento multimídia tem uma trilha de legendas",
|
|---|
| 745 | "incomplete": "Verifique se legendas estão disponíveis para o elemento"
|
|---|
| 746 | },
|
|---|
| 747 | "frame-tested": {
|
|---|
| 748 | "pass": "O 'iframe' foi testado com o 'axe-core'",
|
|---|
| 749 | "fail": "O 'iframe' não pôde ser testado com o 'axe-core'",
|
|---|
| 750 | "incomplete": "O 'iframe' ainda tem que ser testado com o 'axe-core'"
|
|---|
| 751 | },
|
|---|
| 752 | "no-autoplay-audio": {
|
|---|
| 753 | "pass": "Elementos <video> ou <audio> não reproduzem áudio por mais do que a duração permitida ou possuem mecanismos de controle",
|
|---|
| 754 | "fail": "Elementos <video> ou <audio> reproduzem áudio por uma duração maior que a permitida ou não possuem mecanismos de controle",
|
|---|
| 755 | "incomplete": "Garanta que elementos <video> ou <audio> não reproduzam áudio por mais do que a duração permitida ou disponibilize mecanismos de controle"
|
|---|
| 756 | },
|
|---|
| 757 | "css-orientation-lock": {
|
|---|
| 758 | "pass": "A tela é operável, e o bloqueio da orientação não existe",
|
|---|
| 759 | "fail": "Bloqueio de orientação CSS aplicado, o que torna a tela inoperável",
|
|---|
| 760 | "incomplete": "Bloqueio de orientação CSS não pode ser determinado"
|
|---|
| 761 | },
|
|---|
| 762 | "meta-viewport-large": {
|
|---|
| 763 | "pass": "A tag <meta> não impede o zoom significativo em dispositivos móveis",
|
|---|
| 764 | "fail": "A tag <meta> limita o zoom em dispositivos móveis"
|
|---|
| 765 | },
|
|---|
| 766 | "meta-viewport": {
|
|---|
| 767 | "pass": "A tag <meta> não desabilita o zoom em dispositivos móveis",
|
|---|
| 768 | "fail": "${data} na tag <meta> desabilita o zoom em dispositivos móveis"
|
|---|
| 769 | },
|
|---|
| 770 | "header-present": {
|
|---|
| 771 | "pass": "A página tem um cabeçalho (header)",
|
|---|
| 772 | "fail": "A página não tem um cabeçalho (header)"
|
|---|
| 773 | },
|
|---|
| 774 | "heading-order": {
|
|---|
| 775 | "pass": "Hierarquia de títulos válida",
|
|---|
| 776 | "fail": "Hierarquia de títulos inválida"
|
|---|
| 777 | },
|
|---|
| 778 | "identical-links-same-purpose": {
|
|---|
| 779 | "pass": "Não há outros links com o mesmo nome, que direcionem para uma URL diferente",
|
|---|
| 780 | "incomplete": "Verifique se os links têm o mesmo propósito ou são intencionalmente ambíguos."
|
|---|
| 781 | },
|
|---|
| 782 | "internal-link-present": {
|
|---|
| 783 | "pass": "Link de escape válido encontrado",
|
|---|
| 784 | "fail": "Nenhum link de escape válido encontrado"
|
|---|
| 785 | },
|
|---|
| 786 | "landmark": {
|
|---|
| 787 | "pass": "A página tem uma região (landmark)",
|
|---|
| 788 | "fail": "A página não tem nenhuma região (landmark)"
|
|---|
| 789 | },
|
|---|
| 790 | "meta-refresh": {
|
|---|
| 791 | "pass": "A tag <meta> não atualiza a página imediatamente",
|
|---|
| 792 | "fail": "A tag <meta> força atualizações temporizadas da página"
|
|---|
| 793 | },
|
|---|
| 794 | "p-as-heading": {
|
|---|
| 795 | "pass": "Elementos <p> não são estilizados como títulos",
|
|---|
| 796 | "fail": "Elementos de título devem ser utilizados no lugar de elementos <p> estilizados"
|
|---|
| 797 | },
|
|---|
| 798 | "region": {
|
|---|
| 799 | "pass": "Todo o conteúdo da página está contido em regiões (landmarks)",
|
|---|
| 800 | "fail": "Algum conteúdo da página não está contido em regiões (landmarks)"
|
|---|
| 801 | },
|
|---|
| 802 | "skip-link": {
|
|---|
| 803 | "pass": "Destino do link de escape existe",
|
|---|
| 804 | "incomplete": "Destino do link de escape deve se tornar visível na ativação",
|
|---|
| 805 | "fail": "Nenhum destino para o link de escape"
|
|---|
| 806 | },
|
|---|
| 807 | "unique-frame-title": {
|
|---|
| 808 | "pass": "O atributo 'title' do elemento é único",
|
|---|
| 809 | "fail": "O atributo 'title' do elemento não é único"
|
|---|
| 810 | },
|
|---|
| 811 | "duplicate-id-active": {
|
|---|
| 812 | "pass": "O documento não tem elementos ativos que compartilham o mesmo atributo 'id'",
|
|---|
| 813 | "fail": "O documento tem elementos ativos com o mesmo atributo 'id': ${data}"
|
|---|
| 814 | },
|
|---|
| 815 | "duplicate-id-aria": {
|
|---|
| 816 | "pass": "O documento não tem elementos referenciados com ARIA ou rótulos que compartilham o mesmo atributo 'id'",
|
|---|
| 817 | "fail": "O documento tem múltiplos elementos referenciados com ARIA com o mesmo atributo 'id': ${data}"
|
|---|
| 818 | },
|
|---|
| 819 | "duplicate-id": {
|
|---|
| 820 | "pass": "O documento não tem elementos estáticos que compartilham o mesmo atributo 'id'",
|
|---|
| 821 | "fail": "O documento tem múltiplos elementos estáticos com o mesmo atributo 'id'"
|
|---|
| 822 | },
|
|---|
| 823 | "aria-label": {
|
|---|
| 824 | "pass": "O atributo 'aria-label' existe e não está vazio",
|
|---|
| 825 | "fail": "O atributo 'aria-label' não existe ou está vazio"
|
|---|
| 826 | },
|
|---|
| 827 | "aria-labelledby": {
|
|---|
| 828 | "pass": "O atributo 'aria-labelledby' existe e referencia elementos que são visíveis aos leitores de tela",
|
|---|
| 829 | "fail": "O atributo 'aria-labelledby' não existe, referencia elementos que não existem ou são vazios",
|
|---|
| 830 | "incomplete": "certifique-se de que 'aria-labelledby' referencie um elemento existente"
|
|---|
| 831 | },
|
|---|
| 832 | "avoid-inline-spacing": {
|
|---|
| 833 | "pass": "Nenhum estilo 'inline' com '!important' que afete o espaçamento do texto foi especificado",
|
|---|
| 834 | "fail": {
|
|---|
| 835 | "singular": "Remova '!important' do estilo 'inline' ${data.values}, uma vez que sobrepor isto não é suportado pela maioria dos navegadores",
|
|---|
| 836 | "plural": "Remova '!important' dos estilos 'inline' ${data.values}, uma vez que sobrepor isto não é suportado pela maioria dos navegadores"
|
|---|
| 837 | }
|
|---|
| 838 | },
|
|---|
| 839 | "button-has-visible-text": {
|
|---|
| 840 | "pass": "O elemento tem texto interno que é visível aos leitores de tela",
|
|---|
| 841 | "fail": "O elemento não tem texto interno que seja visível aos leitores de tela",
|
|---|
| 842 | "incomplete": "Não foi possível determinar se o elemento tem filhos"
|
|---|
| 843 | },
|
|---|
| 844 | "doc-has-title": {
|
|---|
| 845 | "pass": "O documento tem um elemento <title> não vazio",
|
|---|
| 846 | "fail": "O documento não tem um elemento <title> não vazio"
|
|---|
| 847 | },
|
|---|
| 848 | "exists": {
|
|---|
| 849 | "pass": "O elemento não existe",
|
|---|
| 850 | "incomplete": "O elemento existe"
|
|---|
| 851 | },
|
|---|
| 852 | "has-alt": {
|
|---|
| 853 | "pass": "O elemento tem um atributo 'alt'",
|
|---|
| 854 | "fail": "O elemento não tem um atributo 'alt'"
|
|---|
| 855 | },
|
|---|
| 856 | "has-visible-text": {
|
|---|
| 857 | "pass": "O elemento tem texto que é visível aos leitores de tela",
|
|---|
| 858 | "fail": "O elemento não tem texto que seja visível aos leitores de tela",
|
|---|
| 859 | "incomplete": "Não foi possível determinar se o elemento tem filhos"
|
|---|
| 860 | },
|
|---|
| 861 | "is-on-screen": {
|
|---|
| 862 | "pass": "O elemento não é visível",
|
|---|
| 863 | "fail": "O elemento é visível"
|
|---|
| 864 | },
|
|---|
| 865 | "non-empty-alt": {
|
|---|
| 866 | "pass": "O elemento tem um atributo 'alt' não vazio",
|
|---|
| 867 | "fail": {
|
|---|
| 868 | "noAttr": "O elemento não tem um atributo 'alt'",
|
|---|
| 869 | "emptyAttr": "O elemento tem um atributo 'alt' vazio"
|
|---|
| 870 | }
|
|---|
| 871 | },
|
|---|
| 872 | "non-empty-if-present": {
|
|---|
| 873 | "pass": {
|
|---|
| 874 | "default": "O elemento tem um atributo 'value",
|
|---|
| 875 | "has-label": "O elemento tem um atributo 'value' não vazio"
|
|---|
| 876 | },
|
|---|
| 877 | "fail": "O elemento tem um atributo 'value' e ele está vazio"
|
|---|
| 878 | },
|
|---|
| 879 | "non-empty-placeholder": {
|
|---|
| 880 | "pass": "O elemento tem um atributo 'placeholder'",
|
|---|
| 881 | "fail": {
|
|---|
| 882 | "noAttr": "O elemento não tem um atributo 'placeholder'",
|
|---|
| 883 | "emptyAttr": "O elemento tem um atributo 'placeholder' vazio"
|
|---|
| 884 | }
|
|---|
| 885 | },
|
|---|
| 886 | "non-empty-title": {
|
|---|
| 887 | "pass": "O elemento tem um atributo 'title'",
|
|---|
| 888 | "fail": {
|
|---|
| 889 | "noAttr": "O elemento não tem um atributo 'title'",
|
|---|
| 890 | "emptyAttr": "O elemento tem um atributo 'title' vazio"
|
|---|
| 891 | }
|
|---|
| 892 | },
|
|---|
| 893 | "non-empty-value": {
|
|---|
| 894 | "pass": "O elemento tem um atributo 'value' não vazio",
|
|---|
| 895 | "fail": {
|
|---|
| 896 | "noAttr": "O elemento não tem um atributo 'value'",
|
|---|
| 897 | "emptyAttr": "O elemento tem um atributo 'value' vazio"
|
|---|
| 898 | }
|
|---|
| 899 | },
|
|---|
| 900 | "presentational-role": {
|
|---|
| 901 | "pass": "A semântica padrão do elemento foi sobrescrita com role=\"${data.role}\"",
|
|---|
| 902 | "fail": {
|
|---|
| 903 | "default": "A semântica padrão do elemento não foi sobrescrita com role=\"none\" or role=\"presentation\"",
|
|---|
| 904 | "globalAria": "A função do elemento não é de apresentação pois ele tem um atributo ARIA global",
|
|---|
| 905 | "focusable": "A função do elemento não é de apresentação pois ele é focalizável",
|
|---|
| 906 | "both": "A função do elemento não é de apresentação pois ele tem um atributo ARIA global e é focalizável"
|
|---|
| 907 | }
|
|---|
| 908 | },
|
|---|
| 909 | "role-none": {
|
|---|
| 910 | "pass": "A semântica padrão do elemento foi sobrescrita com role=\"none\"",
|
|---|
| 911 | "fail": "A semântica padrão do elemento não foi sobrescrita com role=\"none\""
|
|---|
| 912 | },
|
|---|
| 913 | "role-presentation": {
|
|---|
| 914 | "pass": "A semântica padrão do elemento foi sobrescrita com role=\"presentation\"",
|
|---|
| 915 | "fail": "A semântica padrão do elemento não foi sobrescrita com role=\"presentation\""
|
|---|
| 916 | },
|
|---|
| 917 | "svg-non-empty-title": {
|
|---|
| 918 | "pass": "O elemento tem um filho <title>",
|
|---|
| 919 | "fail": {
|
|---|
| 920 | "noTitle": "O elemento não tem um filho que seja 'title'",
|
|---|
| 921 | "emptyTitle": "O 'title' filho do elemento está vazio"
|
|---|
| 922 | },
|
|---|
| 923 | "incomplete": "Não foi possível determinar se o elemento tem um filho que seja um 'title'"
|
|---|
| 924 | },
|
|---|
| 925 | "caption-faked": {
|
|---|
| 926 | "pass": "A primeira linha de uma tabela não é usada como legenda",
|
|---|
| 927 | "fail": "O primeiro elemento da tabela deve ser um <caption> em vez de uma célula da tabela"
|
|---|
| 928 | },
|
|---|
| 929 | "html5-scope": {
|
|---|
| 930 | "pass": "O atributo 'scope' só é utilizado em elementos de cabeçalho de tabela (<th>)",
|
|---|
| 931 | "fail": "No HTML 5, os atributos 'scope' só devem ser utilizados em elementos de cabeçalho de tabela (<th>)"
|
|---|
| 932 | },
|
|---|
| 933 | "same-caption-summary": {
|
|---|
| 934 | "pass": "O conteúdo do atributo 'summary' e <caption> não estão duplicados",
|
|---|
| 935 | "fail": "O conteúdo do atributo 'summary' e <caption> são idênticos"
|
|---|
| 936 | },
|
|---|
| 937 | "scope-value": {
|
|---|
| 938 | "pass": "O atributo 'scope' é usado corretamente",
|
|---|
| 939 | "fail": "O valor do atributo 'scope' pode ser apenas 'row' ou 'col'"
|
|---|
| 940 | },
|
|---|
| 941 | "td-has-header": {
|
|---|
| 942 | "pass": "Todos as células de dados não vazias possuem cabeçalhos",
|
|---|
| 943 | "fail": "Algumas células de dados não vazias não possuem cabeçalho"
|
|---|
| 944 | },
|
|---|
| 945 | "td-headers-attr": {
|
|---|
| 946 | "pass": "O atributo 'headers' é usado exclusivamente para referenciar outras células da tabela",
|
|---|
| 947 | "incomplete": "O atributo 'headers' está vazio",
|
|---|
| 948 | "fail": "O atributo 'headers' não é usado exclusivamente para referenciar outras células da tabela"
|
|---|
| 949 | },
|
|---|
| 950 | "th-has-data-cells": {
|
|---|
| 951 | "pass": "Todas as células de cabeçalho da tabela se referem a células de dados",
|
|---|
| 952 | "fail": "Nem todas as células de cabeçalho da tabela se referem a células de dados",
|
|---|
| 953 | "incomplete": "Células de dados da tabela estão ausentes ou vazias"
|
|---|
| 954 | },
|
|---|
| 955 | "hidden-content": {
|
|---|
| 956 | "pass": "Todo o conteúdo da página foi analisado.",
|
|---|
| 957 | "fail": "Houve problemas ao analisar o conteúdo desta página.",
|
|---|
| 958 | "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."
|
|---|
| 959 | }
|
|---|
| 960 | },
|
|---|
| 961 | "failureSummaries": {
|
|---|
| 962 | "any": {
|
|---|
| 963 | "failureMessage": "Corrija qualquer um dos itens a seguir:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
|
|---|
| 964 | },
|
|---|
| 965 | "none": {
|
|---|
| 966 | "failureMessage": "Corrija todos os itens a seguir:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
|
|---|
| 967 | }
|
|---|
| 968 | },
|
|---|
| 969 | "incompleteFallbackMessage": "Corrija todos os itens a seguir:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
|
|---|
| 970 | }
|
|---|