WP WordPress Iniciante

EAA Accessibility Auto-Fixer: guia completo

Instalar, auditar e colocar o seu site WordPress/WooCommerce em conformidade com o European Accessibility Act: scanner WCAG 2.2 AA, correções automáticas, textos alternativos por IA e declaração legal.

Atualizado Versão do módulo 1.0.0

Apresentação

O EAA Accessibility Auto-Fixer coloca o seu site WordPress e WooCommerce em conformidade com o European Accessibility Act (diretiva UE 2019/882, aplicável desde 28 de junho de 2025). O plugin combina quatro blocos: um scanner WCAG 2.2 nível AA, um corretor automático no front-end, um gerador de textos alternativos por IA (Anthropic Claude) e um gerador de declaração legal de acessibilidade.

Quem está abrangido? Os operadores de comércio eletrónico da UE com mais de 10 trabalhadores OU mais de 2 milhões de euros de volume de negócios anual. As microempresas estão isentas quanto aos serviços, mas têm de tornar acessíveis os produtos que comercializem.

Instalação

  1. Descarregue o ZIP a partir da sua conta DataFirefly.
  2. No WordPress, vá a Plugins → Adicionar → Carregar plugin, selecione o ZIP e clique em Instalar agora.
  3. Clique em Ativar. O plugin cria automaticamente 4 tabelas (wp_eaa_audits, wp_eaa_issues, wp_eaa_fixes, wp_eaa_alt_cache), agenda uma auditoria semanal e gera uma página «Declaração de acessibilidade» com o shortcode [eaa_accessibility_declaration].

Requisitos: WordPress 6.2+, WooCommerce 8.0+ (facultativo, o plugin também funciona só com WordPress), PHP 8.1+.

Primeira auditoria

  1. Vá a EAA Accessibility → Auditoria.
  2. O URL da página inicial vem pré-preenchido; pode substituí-lo por qualquer URL do site.
  3. Clique em Lançar a auditoria. O scanner analisa a página e apresenta a pontuação em 100, a lista de anomalias (gravidade, regra, critério WCAG, excerto de HTML, sugestão) e um botão Corrigir para as anomalias corrigíveis automaticamente.

Compreender a pontuação

A pontuação começa em 100 e cada anomalia retira pontos conforme a gravidade: crítica 15 pontos, séria 8, moderada 3, menor 1. Uma pontuação de 90 ou mais aparece a verde, de 70 a 89 a laranja, e abaixo disso a vermelho. A declaração legal retoma essa pontuação: 90 ou mais dá «Totalmente conforme», 50 a 89 «Parcialmente conforme», e menos de 50 «Não conforme».

As 15 regras verificadas

  • html-lang: atributo lang no elemento raiz (WCAG 3.1.1)
  • page-title: presença e conteúdo da etiqueta title (2.4.2)
  • headings: presença de um h1 único e hierarquia sem saltos (1.3.1)
  • image-alt: atributo alt em todas as imagens (1.1.1)
  • link-name: texto acessível em cada ligação (2.4.4)
  • button-name: nome acessível em cada botão (4.1.2)
  • label: etiqueta em cada campo de formulário (1.3.1, 4.1.2)
  • skip-link: ligação de salto no início da página (2.4.1)
  • landmarks: marco main presente (1.3.1)
  • duplicate-id: sem identificadores duplicados (4.1.1)
  • aria-roles: funções ARIA válidas (4.1.2)
  • target-size: alvos táteis de 24×24 px no mínimo (2.5.8, novidade da WCAG 2.2)
  • color-contrast: contraste entre texto e fundo de 4,5:1 no mínimo (1.4.3)
  • tabindex: sem tabindex positivo (2.4.3)
  • autoplay: sem reprodução automática não controlável (1.4.2)

Correções automáticas

Em EAA Accessibility → Definições → Correções ativas, ative as correções que o plugin aplica em tempo real através do output buffer, sem alterar o seu tema:

  • Atributo lang: acrescenta o idioma do site no elemento raiz, se estiver em falta.
  • Ligação de salto: insere «Ir para o conteúdo» no topo da página, visível ao receber o foco por teclado.
  • Texto alternativo em falta: marca as imagens decorativas (classes decoration, icon…) com um alt vazio; as imagens de conteúdo passam pela IA, se estiver ativa.
  • Etiquetas de formulário: acrescenta um aria-label deduzido do placeholder ou do name nos campos sem label.
  • Funções ARIA e ícones: aria-label nos botões com ícone, role=”presentation” nos SVG decorativos.
  • Indicador de foco: injeta um estilo :focus-visible bem contrastado.
  • Contrastes: corrige as cores inline abaixo de 4,5:1, escurecendo ou clareando automaticamente.
  • Tamanho dos alvos: garante 24×24 px em botões e ligações através de CSS.

Cada correção é registada na tabela wp_eaa_fixes com o valor antes e depois, o que é útil em caso de fiscalização. Consulte o total por tipo no Painel.

Se uma correção entrar em conflito com o seu tema (por exemplo, uma ligação de salto já existente), desative a correção em causa: o plugin deteta os elementos existentes, mas alguns temas muito personalizados podem exigir um ajuste.

Geração de textos alternativos por IA

Configuração

  1. Crie uma chave de API em console.anthropic.com.
  2. Em EAA Accessibility → Definições → Geração por IA, assinale Ativar a IA, cole a chave e clique em Testar a ligação.
  3. Escolha o modelo: Claude Haiku 4.5 (predefinido, cerca de 0,0001 € por imagem, recomendado), Sonnet 4.6 (qualidade superior) ou Opus 4.7 (qualidade máxima).

Geração em massa

A partir do Painel, o botão de geração em massa trata a biblioteca de multimédia em lotes de 5 imagens. Cada descrição é gerada no idioma do anexo (FR/EN/ES/DE/IT), guardada em wp_eaa_alt_cache e escrita no campo alt do WordPress. A cache evita qualquer nova geração: uma imagem já descrita num idioma nunca é reenviada à API.

As imagens com mais de 4 MB são automaticamente redimensionadas para um máximo de 1024 px antes do envio à API, sem qualquer impacto nos seus ficheiros originais.

Widget para visitantes

Ative-o em Definições → Widget para visitantes. Aparece um botão flutuante ♿ em baixo à direita do site, que abre um painel com 8 preferências: tamanho do texto (5 patamares, de 100% a 200%), contraste elevado, tipo de letra adaptado à dislexia, espaçamento melhorado, animações reduzidas, sublinhado das ligações, cursor ampliado e um botão de reposição. As escolhas são guardadas em localStorage (sem cookies e sem qualquer dado enviado ao servidor) e repostas em cada visita. O painel é totalmente navegável por teclado e fecha-se com a tecla Esc.

A página criada na ativação apresenta, através do shortcode [eaa_accessibility_declaration]: o estado de conformidade calculado sobre a última auditoria, a pontuação, a data, os conteúdos não acessíveis, a metodologia e os seus contactos. Preencha estas informações em Definições → Informações para a declaração legal: designação social, e-mail de contacto de acessibilidade, telefone e morada.

Complemento manual recomendado. Acrescente os seus identificadores legais (número de identificação da empresa, registo comercial ou equivalente) e mande validar a declaração por um especialista em acessibilidade: o plugin cobre 30 a 40% dos critérios automatizáveis, e uma revisão humana continua a ser necessária para a conformidade total.

Acrescente depois uma ligação para esta página no seu rodapé, que é uma exigência do EAA.

Auditorias agendadas

Em Definições → Auditoria agendada, escolha a frequência: diária, semanal (predefinida) ou mensal. O cron do WordPress analisa então a página inicial automaticamente e alimenta o histórico. Consulte todas as auditorias passadas em EAA Accessibility → Histórico, com pontuação, duração e repartição das anomalias por gravidade.

Desinstalação

Por predefinição, a desinstalação conserva as tabelas e o histórico (rastreabilidade legal). Para eliminar tudo, ative a opção de eliminação dos dados nas definições antes de desinstalar: as 4 tabelas, as opções e a página de declaração são então removidas.

Resolução de problemas

O scanner devolve um erro de ligação

O scanner usa o wp_remote_get para obter a página. Verifique que o seu servidor consegue chamar-se a si próprio (loopback): alguns alojamentos bloqueiam os pedidos de saída para o próprio domínio do site. Teste em Ferramentas → Saúde do site.

O teste da chave de API falha

Verifique que a chave começa por sk-ant-, que a sua conta Anthropic tem crédito, e que o servidor autoriza ligações de saída para api.anthropic.com em HTTPS.

As correções não se aplicam

O corretor está inativo nos feeds RSS, nos pedidos REST e AJAX, na administração e no cron. Se um plugin de cache servir uma versão estática, limpe a cache depois da ativação. Verifique também que Ativar o corretor de front-end está mesmo assinalado.

O widget não aparece

Verifique que o Widget para visitantes está ativo nas definições e que o seu tema chama mesmo o wp_footer(), porque é nesse hook que o widget se injeta.

Esta página foi útil?

Ainda com dúvidas? Contacte o suporte