ObadiObservatório Brasileiro de Acessibilidade Digital

Iniciativa privada e independente, sem vínculo com o poder público

Metodologia

Metodologia, versão 0.3 (rascunho)

Tudo aqui é auditável por terceiros: qualquer pessoa com as mesmas ferramentas deve conseguir reproduzir o índice de qualquer entidade.

Este é o texto integral da metodologia, na íntegra e sem resumo, publicado antes de existir o primeiro número. É um rascunho: está sujeito à revisão do conselho externo e à calibração das faixas contra dados reais, e nenhuma publicação usou ainda esta versão. Ele está aqui agora justamente para poder ser criticado a tempo de mudar.

1. O que é medido

Se uma pessoa com deficiência consegue usar o site de uma entidade para fazer o que qualquer cidadão faz nele: se informar, pedir um serviço, cobrar, reclamar.

Referências normativas, nesta ordem: ABNT NBR 17225:2025 (requisitos obrigatórios, que equivalem a WCAG A e AA), que é o vocabulário principal do boletim; WCAG 2.2 (W3C), níveis A e AA, como referência técnica; os quatro itens de acessibilidade do Programa Nacional de Transparência Pública (PNTP, Atricon e Tribunais de Contas). O eMAG 3.1 não é referência de índice porque está congelado desde 2014; é citado quando a entidade é federal.

Base de amostragem: WCAG-EM (Website Accessibility Conformance Evaluation Methodology, W3C) e a lógica da Decisão de Execução (UE) 2018/1524.

2. Unidade de análise

A entidade, identificada por CNPJ e, quando municipal, pelo código IBGE. Nesta versão: a prefeitura (poder executivo municipal) de cada um dos 295 municípios de Santa Catarina e dos 645 de São Paulo.

O site avaliado é o site institucional principal da entidade. A lista vem do Wikidata (propriedade P856), com verificação de resposta e curadoria manual dos casos marcados para revisão em data/municipios_sc_sp.csv. Subdomínios de transparência e e-SIC contam como parte da mesma entidade. Regras de mudança de domínio, sites concorrentes e entidade sem site estão no PRD, seção 9.1, e são aplicadas com registro datado.

Agregações publicadas: por estado, por faixa de população (até 20 mil, 20 a 100 mil, 100 a 500 mil, acima de 500 mil) e por fornecedor de portal quando identificável.

3. A amostra de páginas

Conjunto obrigatório mais amostra aleatória, com mínimo de 10 e máximo de 25 páginas por entidade, descobertas automaticamente a partir da home com regra fixa.

Conjunto obrigatório (cada tipo, uma página; quando não encontrado, registrado como "não encontrada"):

TipoComo é encontrada
HomeURL cadastrada
BuscaPágina ou campo de busca do site
ContatoTexto ou URL com "contato", "fale conosco", "telefones"
e-SIC ou ouvidoriaTexto ou URL com "e-sic", "esic", "ouvidoria", "acesso à informação"
Portal da transparênciaTexto ou URL com "transparência" ou "transparencia"
Página de acessibilidade ou declaraçãoTexto ou URL com "acessibilidade"; a ausência conta nos itens do PNTP
Mapa do site, se existirTexto ou URL com "mapa do site"
Um serviço completoTexto ou URL com "iptu", "nota fiscal", "nfs-e", "nfse", "segunda via"; avaliada a página inicial do serviço

Amostra aleatória: 10% das páginas descobertas até profundidade 2, sorteadas com semente = código IBGE + ano + mês, para ser reproduzível, até completar o mínimo de 10 e sem ultrapassar 25.

Fora da amostra, por concentrarem dados pessoais: diário oficial, folha de pagamento, portal de servidores.

Termos: "amostra" é o conjunto de páginas avaliadas; "limite de descoberta" é o número máximo de links examinados para montá-la (200 por entidade, mesmo domínio registrável ou subdomínios da entidade, profundidade até 2).

4. Como cada página é avaliada

  • Navegador Chromium sem interface, viewport 1366 por 768, idioma pt-BR, User-Agent ObadiBot/<versão> (+https://www.obadi.com.br/robo), IP fixo brasileiro publicado.
  • robots.txt respeitado integralmente, inclusive na home.
  • Carregamento até rede ociosa, com limite de 30 segundos. Nada é fechado nem clicado antes da avaliação nesta versão: se o site abre com um modal, o modal faz parte da experiência e é avaliado como está. Limite conhecido: barreiras de fluxo (menu, modal, validação de formulário) não são vistas nesta versão; a versão seguinte adiciona roteiro de interação sem envio de dados.
  • Motor: axe-core, versão fixada por coleta, somente regras com as tags wcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa. Regras de melhores práticas são coletadas mas não entram no índice.
  • Cada violação é registrada com regra, item da NBR 17225, critério WCAG, impacto declarado pelo motor (crítico, sério, moderado, menor), seletor e trecho truncado do HTML.
  • Três tentativas em dias diferentes antes de declarar fora do ar.
  • Verificação cega: periodicamente, uma segunda visita a poucas páginas, de outro IP e outro User-Agent, apenas para comparar a estrutura do DOM com a coleta identificada. Nunca calcula índice. Divergência relevante vira status público.

5. O que se publica por entidade

Três informações separadas, que nunca se somam:

5.1 Itens de transparência do PNTP

Quatro itens, cada um "presente", "ausente" ou "não conclusivo". "Não conclusivo" nunca conta contra a entidade.

ItemHeurística
Símbolo de acessibilidade em destaqueImagem, SVG ou link na primeira tela da home cujo texto alternativo, rótulo, src, href ou classe contenha "acessibilidade", "acessível", "acesso universal" ou "accessibility". Se a primeira tela tem controle de contraste ou de redimensionar texto e nenhum marcador nomeado, o item é "não conclusivo", não "ausente"
Caminho de navegação ou mapa do siteElemento nav com rótulo de breadcrumb, ou link "mapa do site". Texto "mapa do site" em elemento clicável que não é link (por exemplo, p com clique) é "não conclusivo"
Alto contrasteControle cujo texto ou rótulo contém "contraste"
Redimensionar textoControle cujo texto ou rótulo contém "A+", "A-", "tamanho da fonte", ou "aumentar" acompanhado de "fonte", "texto" ou "letra" ("aumentar" sozinho casaria com manchete de notícia)

"Controle" é qualquer elemento acionável, inclusive span com clique, cujo texto tenha até 80 caracteres (acima disso é contêiner, não controle); "rótulo" inclui aria-label, title, alt, value e data-original-title (dica de ferramenta do Bootstrap, usada por plataformas de portal municipal). "Primeira tela" é o que o coletor mede como visível na janela padrão sem rolar, e os rótulos medidos são gravados junto da coleta.

*Versão 0.3 (07/09/2026): as regras acima foram ajustadas depois da conferência manual de Florianópolis, Itapema e Palhoça contra a coleta real. Antes, controles em span e rótulos em data-original-title não eram lidos (falso negativo em série na plataforma que serve boa parte das prefeituras de SC), e "sem marcador nomeado" era publicado como "ausente" onde a heurística apenas não sabia ler.*

A numeração dos itens na cartilha PNTP do ciclo vigente é conferida e citada no boletim.

5.2 Índice de conformidade automatizada detectável, de 0 a 8

Por página: começa em 10 e desconta, por tipo de violação (não por instância), 2,0 para impacto crítico, 1,0 para sério, 0,5 para moderado e 0,25 para menor, com piso em 0. O índice da entidade é a média das páginas da amostra, limitado a 8. O valor 8 recebe o rótulo "nenhuma barreira detectada automaticamente, o que não significa que o site seja usável". O teto existe porque a automação detecta uma fração das barreiras; um site pode não ter nenhuma violação detectável e ser inutilizável por uma pessoa cega.

Além do índice, o boletim mostra o percentual de regras de nível A e de nível AA sem violação em nenhuma página, e a lista de "o que impede o uso" (seção 7).

Faixas. A comparação principal é por cinco faixas de índice, com intervalos fixados após a calibração da seção 9. Posição ordinal existe apenas dentro da faixa e apenas no CSV. Variação abaixo de 0,5 ponto, ou não sustentada por duas publicações, é "estável".

5.3 Avaliação humana

Indicador próprio, trimestral, por pessoas com deficiência remuneradas, com roteiro fixo de cinco tarefas (encontrar o valor do IPTU, abrir o formulário do e-SIC, ler a notícia mais recente, achar um telefone, enviar um formulário de contato), pontuadas como concluída, concluída com dificuldade ou não concluída, e anotadas contra o checklist da NBR 17225. Escala própria; abre série nova quando entra.

Enquanto não realizada para uma entidade, o boletim diz "avaliação humana ainda não realizada". Nunca é estimada.

6. Status

Toda entidade tem um status, exibido antes de qualquer número, e permanece na tabela em qualquer status:

  • Avaliada. Amostra completa coletada e avaliada.
  • Avaliada parcialmente. Menos que o mínimo de páginas; índice publicado com aviso.
  • Coleta não autorizada pelo próprio site. robots.txt bloqueia o robô. Sem índice. Data de início e contador de dias.
  • Bloqueou o robô. HTTP 403, 429 ou desafio de verificação humana. Sem índice. Data e contador. Também recebe este status o site cujo servidor responde ao handshake mas não entrega o robots.txt (5xx ou tempo esgotado) nas três tentativas: sem o arquivo o robô não entra, e o boletim diz exatamente isso (decisão D31). A verificação de que o host responde é um handshake, sem requisição HTTP, para não ler nada antes do robots.txt como manda a RFC 9309.
  • Fora do ar. O site não entrega a página inicial, em três tentativas em dias diferentes. Vale para os quatro casos: o nome não resolve; o TCP ou o TLS não completam; não vem resposta HTTP nenhuma; ou a home responde 5xx. robots.txt ilegível com host vivo não entra aqui, porque nesse caso a página inicial não chegou a ser pedida — o robô parou antes, no arquivo que diz o que ele pode pedir (decisão D31).
  • Sem site conhecido. Site oficial não localizado; convite público para informar.
  • Conteúdo diferente para o robô. Divergência relevante na verificação cega.
  • Em revisão. Contestação aberta; a publicação anterior fica visível com o aviso.

Status nunca vira índice zero. Um site bloqueado é um site que não pôde ser medido.

7. Como o boletim traduz as violações

Cada regra do motor tem um texto em português comum: o que acontece com quem usa o site, por que isso importa, como corrigir, com link para o guia gratuito, e o item da NBR 17225 antes do critério WCAG. Exemplo:

O formulário de IPTU não diz o que é cada campo (NBR 17225, item de rótulos; WCAG 1.3.1 e 4.1.2). Quem usa leitor de tela ouve "campo de texto" três vezes e não sabe onde digitar o número da inscrição. Correção: associar um rótulo (label) a cada campo. Guia: [link].

O boletim mostra as três violações que mais impedem o uso, escolhidas por impacto e por número de páginas afetadas. O restante fica em lista completa, por página. Nenhum adjetivo. Frases de resumo vêm de gabarito público gerado a partir dos números.

8. Cadência, publicação e versionamento

  • Coleta mensal interna, nos primeiros sete dias do mês.
  • Status publicado mensalmente. Índice, faixas e itens do PNTP publicados por trimestre. Primeira publicação de índice: quarto trimestre de 2026.
  • O índice do trimestre é calculado sobre a última coleta concluída dentro dele, não sobre a média das três. O índice é uma fotografia do site como está, não uma média do que foi; uma correção feita no meio do trimestre aparece na publicação seguinte, e o ruído de amostragem é tratado pela regra do "estável" e pelas retentativas, não pela média.
  • A publicação mensal só sai quando a coleta do mês terminou para todas as entidades, inclusive as três tentativas em dias diferentes de quem falhou. Nenhuma publicação sai com entidade sem status.
  • Cada publicação é um instantâneo imutável, com versão da metodologia e do motor, e um manifesto de integridade: SHA-256 de cada arquivo, encadeado com o hash da publicação anterior.
  • A série histórica nunca é recalculada. Mudança de metodologia gera série paralela rotulada; a original não é tocada; ambas visíveis. Reavaliação sob demanda não altera publicação passada; entra como registro datado e reflete na seguinte.
  • Dados abertos em CSV e JSON por publicação, em CC BY 4.0, com dicionário de dados: entidade, identificadores, status, faixa, índice, itens do PNTP, violações por regra e por página (seletor e trecho truncado), páginas amostradas, marcações de conflito.

9. Calibração antes da versão 1.0

Antes do primeiro número: rodar as mesmas páginas de 50 entidades no AccessMonitor (Portugal, código aberto) e no AMAWeb, comparar com a fórmula da seção 5.2, publicar a correlação e fixar os intervalos das faixas. Se a ordenação divergir muito das ferramentas oficiais, ajustar pesos antes de publicar e registrar em 01-decisoes.md.

10. Contestação e correção

Toda página de entidade tem "contestar esta avaliação". A contestação é publicada na íntegra, ao lado do boletim, em até 7 dias corridos, sem juízo de mérito, após moderação prévia com critérios publicados. A análise técnica e eventual reavaliação saem em até 15 dias úteis. Registro público do que foi recusado na moderação e por quê. Erro do Obadi é corrigido com errata pública, datada.

11. O que esta metodologia não vê

  • Testes automatizados encontram uma fração dos problemas. Nenhum dos critérios de nível AA do WCAG é plenamente verificável por máquina. O teto 8 e a avaliação humana existem por isso.
  • Barreiras de fluxo (menus, modais, validação) não são vistas nesta versão.
  • Só desktop nesta versão. Mobile na seguinte.
  • PDFs, aplicativos e conteúdo atrás de login estão fora.
  • Sites com JavaScript pesado podem renderizar de forma incompleta em 30 segundos; o boletim registra quando a página não terminou de carregar.
  • As heurísticas dos itens do PNTP podem errar; por isso "não conclusivo" não penaliza.

12. Compatibilidade

As regras automatizadas são as regras ACT do W3C implementadas pelo axe-core, o mesmo conjunto usado por AMAWeb, AccessMonitor, Lighthouse e Accessibility Insights. A escala base 0 a 10 é a mesma do AMAWeb e do AccessMonitor; o Obadi aplica o teto 8 por decisão própria e declarada. Uma entidade que use o AMAWeb hoje deve encontrar no Obadi os mesmos problemas, com a diferença de que o Obadi publica a série histórica, a comparação entre entidades e a tradução para português comum.

13. Privacidade e arquivo

O robô só acessa páginas públicas, não autentica, não preenche nem envia formulários. O HTML final de cada página é arquivado em armazenamento privado, criptografado, com retenção de 24 meses, para reprodutibilidade e auditoria; pode conter dados pessoais publicados pelo próprio ente e por isso nunca é publicado nem indexado. Público, apenas hash, seletor e trecho truncado. Base legal: legítimo interesse, com avaliação de impacto escrita. Encarregado e aviso de privacidade na página de governança.