← Toda a documentação

Verificador de acessibilidade

O verificador lê o conteúdo do editor e aponta o que dificultaria o uso com um leitor de tela ou por pessoas com baixa visão. Ele já vem embutido e está incluído na licença; não é um complemento pago. A partir da versão 2.6.12 do editor, ele aplica 18 regras, e a maioria oferece uma correção com um clique, que ajusta a marcação enquanto o autor fornece o texto.

Ele verifica o conteúdo, não o editor: para saber como o próprio editor se comporta para quem usa teclado e leitor de tela, veja Accessibility (WCAG 2.2 AA).

Como usar

O botão da barra de ferramentas abre um painel com a lista do que foi encontrado; ao selecionar um problema, ele é destacado no documento. Erros são coisas que deixam o conteúdo inutilizável para alguém; avisos são coisas que dificultam o uso.

// The checker is a plugin; it loads with all_plugins.js.
var editor = new RichTextEditor("#div_editor");

editor.accessibilityChecker.open();      // show the panel
editor.accessibilityChecker.toggle();    // show or hide it
editor.accessibilityChecker.close();

// Run it yourself - for example before saving - and read the result.
var result = editor.accessibilityChecker.run();
result.issues.forEach(function (issue) {
  console.log(issue.code, issue.severity, issue.message, issue.path);
});

// Block a save while errors remain, and let warnings through.
function hasBlockingIssues() {
  return editor.accessibilityChecker.run().issues.some(function (i) {
    return i.severity === "error";
  });
}

Cada problema traz um code das tabelas abaixo, uma severity igual a error ou warning, uma message escrita para o autor e um path que identifica o elemento.

RegraNívelO que detectaCorreção com um clique
image-missing-altErroUma imagem sem texto alternativo. O leitor de tela anuncia apenas “imagem”.Digite a descrição; ela é gravada em alt.
image-alt-filenameErroTexto alternativo que é um nome de arquivo (IMG_4021.jpg), o que não descreve nada.Digite uma descrição de verdade.
image-alt-too-longAvisoTexto alternativo com mais de 150 caracteres: cansativo de ouvir.Digite uma descrição mais curta.
link-emptyErroUm link sem texto, anunciado apenas como “link”.Adicione o texto do link, ou um aria-label quando o link for um ícone.
link-ambiguous-textAviso“Clique aqui”, “leia mais”: inúteis na lista de links de um leitor de tela.— (reescreva o texto você mesmo)
link-adjacent-duplicateAvisoUm link de imagem ao lado de um link de texto para o mesmo destino: anunciado duas vezes.Mescla os dois em um único link.
contrast-insufficientErroTexto abaixo do contraste WCAG AA: 4.5:1 para texto comum, 3:1 para texto grande.— (escolha outra cor)
duplicate-idErroDois elementos com o mesmo id, de modo que qualquer rótulo que aponte para ele é resolvido para o primeiro.— (altere um dos ids)
language-of-partsAvisoUm trecho de texto em outro sistema de escrita sem o atributo lang, que acaba lido com a voz errada.Marca o trecho com o idioma que você escolher.

Títulos e estrutura

RegraNívelO que detectaCorreção com um clique
heading-emptyAvisoUm título sem texto, que ainda aparece na estrutura do documento.Digite o texto do título.
heading-level-skipAvisoUm salto de H1 para H3: a estrutura perde um nível.Converte para o nível seguinte.
paragraph-as-headingAvisoTexto grande em negrito sozinho em uma linha: parece um título, mas não dá para navegar até ele.Converte em um título de verdade.
fake-listAvisoLinhas digitadas como “1.” ou “-”: não são anunciadas como lista, e a contagem de itens se perde.Converte em uma lista de verdade.
blockquote-as-indentAvisoUm blockquote usado para recuo, anunciado como citação.— (use o botão de recuo)

Tabelas

RegraNívelO que detectaCorreção com um clique
table-missing-headerAvisoUma tabela de dados sem células de cabeçalho, de modo que nenhuma coluna ou linha tem nome.Promove a primeira linha a cabeçalho, ou marca a tabela como apenas de layout.
table-header-emptyErroUma célula de cabeçalho sem texto: a coluna que ela rotula é anunciada sem nome.Digite o rótulo, ou rebaixe a célula a uma célula comum.
table-missing-captionAvisoUma tabela de dados sem legenda, de modo que quem ouve entra nela sem saber o que contém.Digite a legenda.
layout-table-semanticsErroUma tabela de layout que ainda tem células de cabeçalho ou legenda, anunciando relações que não existem.Remove a marcação de tabela de dados.

Corrigir um problema

Uma correção altera a marcação; ela nunca inventa texto. Quando uma regra precisa de texto, passe-o como parâmetro e o verificador o grava no lugar certo e depois roda de novo, para que a lista continue correta.

// Repair issue 0. The options an issue needs depend on its rule:
// the author supplies words, the editor does the markup.
var issues = editor.accessibilityChecker.getIssues();

editor.accessibilityChecker.repair(0, { altText: "Crew fitting the new roof" });   // image-missing-alt, image-alt-filename, image-alt-too-long
editor.accessibilityChecker.repair(0, { headingText: "Opening hours" });            // heading-empty
editor.accessibilityChecker.repair(0, { targetLevel: 2 });                          // heading-level-skip, paragraph-as-heading
editor.accessibilityChecker.repair(0, { captionText: "Sales by month" });           // table-missing-caption
editor.accessibilityChecker.repair(0, { markLayout: true });                        // table-missing-header, as a layout table
editor.accessibilityChecker.repair(0, {});                                          // fake-list, link-adjacent-duplicate: nothing to supply

Três regras não têm correção automática, e isso é proposital: texto de link ambíguo, contraste insuficiente e id duplicado exigem uma decisão humana sobre o texto, a cor ou qual elemento fica com o id.

O que ele não faz

  • Ele lê o conteúdo do editor, não a sua página publicada: estilos aplicados pelo seu site podem alterar o contraste depois de salvar.
  • Ele não consegue avaliar se o texto alternativo é preciso, apenas se ele existe, se não é um nome de arquivo e se não é longo demais.
  • Uma frase em outro idioma escrita no mesmo sistema de escrita (francês dentro de um texto em inglês) não é detectável; a regra de idioma se baseia no sistema de escrita.
  • Ele não substitui os testes com um leitor de tela real antes de um lançamento.