O que o 2.4.2 exige

As páginas web têm títulos que descrevem o tópico ou a finalidade.

Critério de sucesso 2.4.2 Página com Título (Nível A), citado da tradução autorizada para o português do Brasil das Diretrizes de Acessibilidade para Conteúdo Web (WCAG) 2.2, publicada em 27 de março de 2025 pelo Ceweb.br. Copyright © 2020-2023 World Wide Web Consortium. Usado sob a Licença de Documentos do W3C. A WCAG 2.1 não tem tradução autorizada, e este critério tem o mesmo texto na 2.1 e na 2.2. Em caso de divergência, vale o original em inglês.
Texto original, em inglês (WCAG 2.1)

Web pages have titles that describe topic or purpose.

Web Content Accessibility Guidelines (WCAG) 2.1, Recomendação do W3C de 6 de maio de 2025. Copyright © 2020-2025 World Wide Web Consortium.

O título diz onde a pessoa está sem que ela precise ler a página: numa fileira de abas, no histórico e nos favoritos, numa lista de resultados de busca e quando o leitor de tela abre a página. Ele descreve o assunto ou a finalidade; o nome de um documento ou de uma aplicação basta quando é isso que a página é.

Cada página precisa do seu. Quando uma aplicação de página única troca de tela, o Understanding 2.4.2 (em inglês) diz que o título deve mudar junto.

Um título que não identifica o conteúdo da página é a falha F25 da WCAG. Título ausente também é falha, e essa uma regra consegue achar.

Regras ACT do 2.4.2

Falhas comuns

Abaixo de cada exemplo: o que o axe-core e o Rampa relataram sobre a marcação de antes da correção, numa execução com o Gemma 4 12B em 8 de outubro de 2026.

Um título que sobrou do template

Templates iniciais vêm com título próprio. Toda tela do app fica com o mesmo nome de aba, e ele não diz nada sobre nenhuma delas.

Antes, reprova no 2.4.2

<title>Vite + React + TS</title>
…
<h1>Seus pedidos</h1>
<p>Pedidos feitos nos últimos 12 meses.</p>

Depois, aprova

<title>Seus pedidos | Torrefação Aurora</title>
axe-core

Aprova: a document-title encontra um título não vazio.

Rampa
✗ html
  O título da página "Vite + React + TS" fala de outro assunto que não o da página.
  Evidência: "Vite + React + TS"
  Patch:
    - <title>Vite + React + TS</title>
    + <title>Seus pedidos - Histórico de Pedidos</title>
  confiança alta · 1/1 rodadas · evidência verificada · id 95c905ad780c

Um título copiado de outra página

A receita nasceu de uma cópia do guia de espresso e ficou com o título dele. A aba, o favorito e o resultado de busca dizem “Guia do espresso” em cima de uma receita de cold brew.

Antes, reprova no 2.4.2

<title>Guia do espresso | Torrefação Aurora</title>
…
<h1>Cold brew em casa</h1>

Depois, aprova

<title>Cold brew em casa | Torrefação Aurora</title>
axe-core

Aprova: a document-title encontra um título não vazio.

Rampa
✗ html
  O título da página "Guia do espresso | Torrefação Aurora" fala de outro assunto que não o da página.
  Evidência: "Guia do espresso | Torrefação Aurora"
  Patch:
    - <title>Guia do espresso | Torrefação Aurora</title>
    + <title>Guia de Cold Brew | Torrefação Aurora</title>
  confiança alta · 1/1 rodadas · evidência verificada · id 7711150bcc2e

Um nome de arquivo como título

Alguns editores e exportações põem o nome do arquivo no título quando ninguém escreve um. “contato.html” não diz nada de útil para uma pessoa.

Antes, reprova no 2.4.2

<title>contato.html</title>
…
<h1>Fale conosco</h1>

Depois, aprova

<title>Fale conosco | Torrefação Aurora</title>
axe-core

Aprova: a document-title encontra um título não vazio.

Rampa
✗ html
  O título da página "contato.html" é um nome de arquivo ou endereço, não um assunto.
  Evidência: "contato.html"
  Patch:
    - <title>contato.html</title>
    + <title>Fale Conosco - Contato</title>
  confiança alta · 1/1 rodadas · evidência verificada · id 758d3d2abe07

Aqui a sugestão deixou de fora o nome do site. Um título sugerido é para uma pessoa ajustar ao padrão do próprio site.

O que o axe-core verifica

O axe-core 4.14.0 mapeia uma regra para o 2.4.2: a document-title, que reprova página sem <title> ou com título vazio. O Rampa relata essa falha como está, e aí não sobra nada para o modelo julgar.

Regras do axe-core 4.14.0 para o 2.4.2
RegraO que verificaMapeada paraNuma execução do Rampa
document-title, página da regra na Deque University, em inglêsDocumentos devem ter um elemento <title> para ajudar na navegação2.4.2roda

A regra não lê o título. “Untitled document”, “Vite + React + TS” e o título de outra página passam.

Cada regra leva à página dela na Deque University, a empresa que mantém o axe-core (em inglês).

O que o Rampa julga, e como

O que vai para o modelo

A página, uma vez: quando o título não está vazio e a document-title não o reprovou.

O que o modelo vê

  • O título, como o navegador o lê.
  • O endereço da página: host e caminho, ou o nome do arquivo.
  • Até oito cabeçalhos visíveis.
  • Os primeiros 700 caracteres do texto da página.
  • O idioma da página, para a sugestão.

O que ele precisa responder

Um veredito, o título copiado como evidência, o problema (genérico, nome de arquivo ou endereço, ou outro assunto que não o da página), um título sugerido com menos de 70 caracteres no idioma da página e um grau de confiança.

O que derruba uma alegação

  • A evidência não é o título atual: as mesmas palavras, no máximo um pouco aparadas.
  • Uma aprovação aponta problema, ou uma reprovação não aponta nenhum.
  • Uma reprovação vem sem título sugerido, com sugestão acima de 140 caracteres ou igual ao título atual.

O patch

O título sugerido substitui o texto do <title>.

Em todo critério

  • O conteúdo da página chega ao modelo marcado como dado, e o prompt manda ignorar qualquer instrução que esteja nele.
  • As respostas ficam em cache por um hash do prompt, da imagem, do modelo e das configurações, então a mesma entrada nunca chama um modelo duas vezes.
  • Com --runs 3, o Rampa pergunta três vezes e fica com a maioria; quando as rodadas discordam, a confiança cai. Achados abaixo de --min-confidence (média por padrão) ficam ocultos, e o --verbose lista todos.
  • Alegações derrubadas pela verificação são contadas em todo relatório, nunca mostradas como achados.

Como o Rampa foi medido nele

Casos de teste ACT do W3C para o 2.4.2: precisão, recall e F1, com o Gemma 4 12B numa GPU local
ConjuntoTestaCasosaxe-core, precisão / recallRampa, precisão / recall / F1
2.4.2, página tem título (ACT 2779a5)sintaxe121,00 / 1,000,50 / 1,00 / 0,67
2.4.2, título descreve a página (ACT c4a8a4)significado6não definida, nada apontado / 0,001,00 / 1,00 / 1,00

Pares corrompidos: o Rampa separou 3 de 3 (título da página), o axe-core 0. Um par é uma página de teste que passa e uma cópia quebrada de propósito; quem dá o mesmo veredito às duas não está julgando.

Rodada em 9 de outubro de 2026: axe-core 4.14.0, Gemma 4 12B numa GPU local, raciocínio desligado, uma rodada, casos de teste ACT a9a1483e. Amostras pequenas e uma rodada só: leia os números como um pipeline que funciona, não como resultado.

Leia com estas ressalvas

  • Os prompts e o contexto de 2.4.2, 2.4.4 e 2.4.6 foram ajustados depois de ler os erros desta rodada, sem copiar as páginas de teste para os prompts. Precisam de páginas novas antes que os números signifiquem mais do que “o pipeline funciona”.
  • A precisão baixa no 2779a5 é da contagem, não do julgamento. Essa regra só verifica se o título existe, e as páginas que passam nela se chamam “Title of the page.” e “This page has a title”; o Rampa diz que esses títulos não descrevem nada, o que é certo para o 2.4.2.

Método e análise de erros no README (em inglês)

Limitações

  • Julga o título que a página tem ao carregar. Numa aplicação de página única, rode no endereço de cada tela.
  • Lê até oito cabeçalhos e os primeiros 700 caracteres do texto, então um título que combina com conteúdo mais abaixo é julgado sem ele.
  • Julga uma página por vez e não compara títulos entre as páginas de um site.
  • Só páginas web: um snapshot de app não tem título de página para julgar.

Perguntas sobre o 2.4.2

Só o nome do site passa no 2.4.2?

Na página inicial, pode passar. Em qualquer outra, um título só com o nome do site não diferencia aquela página das demais. Um padrão comum é o assunto da página primeiro e depois o site: “Fale conosco | Torrefação Aurora”.

O axe-core verifica se o título é descritivo?

Não. A regra document-title verifica se existe um título não vazio, e o Lighthouse relata a mesma verificação como “Document has a <title> element”. O WAVE acrescenta uma verificação de palavras que aponta título começando com “untitled”. Nenhum deles compara o título com a página.

E aplicações de página única?

O título deve mudar junto com a tela, como diz o Understanding 2.4.2. O Rampa verifica o título que a página tem ao carregar, então rode no endereço de cada tela.

Verifique suas páginas

O Rampa ainda não está no npm. Clone e rode a partir do código, com Node.js 22.12 ou mais novo e Chrome ou Edge. O --criteria 2.4.2 julga só este critério; sem ele, rodam os oito que rodam por padrão.

Com o Ollama rodando, o Rampa escolhe um modelo local sozinho; o node dist/cli.mjs doctor diz o que falta.

git clone https://github.com/guilhermebsantiago/rampa-cli.git
cd rampa-cli
pnpm install && pnpm build
node dist/cli.mjs check https://example.com --criteria 2.4.2

Conferido com o rampa-cli (commit 0459809) e as fontes do W3C em 9 de outubro de 2026.