Skip to main content
Validação HTML

A referência de carácter não foi terminada com ponto e vírgula.

Sobre este problema HTML

As referências de carácter são como o HTML representa caracteres especiais que de outra forma seriam interpretados como marcação ou que não são facilmente digitados num teclado. Elas existem em três formas:

  • Referências nomeadas como &, <, ©
  • Referências numéricas decimais como <, ©
  • Referências numéricas hexadecimais como <, ©

As três formas partilham a mesma estrutura: começam com & e devem terminar com ;. Quando você omite o ponto e vírgula final, o analisador de HTML entra em modo de recuperação de erro. Dependendo do contexto, pode ainda resolver a referência (os navegadores são lenientes), mas este comportamento não é garantido e varia entre situações. Por exemplo, &copy sem ponto e vírgula pode ainda ser renderizado como ©, mas &notit pode ser mal interpretado como a referência &not; (¬) seguida de it, produzindo uma saída inesperada como “¬it” em vez do texto literal “&notit”.

Porque isto importa

  • Renderização imprevisível: Sem o ponto e vírgula, os navegadores usam recuperação de erro heurística que pode produzir resultados diferentes dependendo do texto circundante. O que parece correto hoje pode quebrar com caracteres adjacentes diferentes.
  • Conformidade com padrões: A especificação HTML do WHATWG requer o terminador ponto e vírgula. Omiti-lo é um erro de análise.
  • Manutenibilidade: Outros programadores (ou você no futuro) podem não perceber que o ampersand era pretendido como uma referência de carácter, tornando o código mais difícil de ler e manter.
  • Integridade de dados: Em URLs dentro de atributos href, um ponto e vírgula em falta numa referência de carácter pode corromper parâmetros de consulta e produzir links quebrados.

Como corrigir

  1. Adicione o ponto e vírgula em falta ao final de cada referência de carácter.
  2. Se pretendia um ampersand literal, use &amp; em vez de um & simples. Isto é especialmente comum em URLs com strings de consulta.
  3. Procure no seu documento por padrões como &something sem um ; final para encontrar todas as instâncias.

Exemplos

❌ Ponto e vírgula em falta em referências nomeadas

<p>5 &lt 10 and 10 &gt 5</p>
<p>&copy 2024 All rights reserved</p>

✅ Referências nomeadas adequadamente terminadas

<p>5 &lt; 10 and 10 &gt; 5</p>
<p>&copy; 2024 All rights reserved</p>

❌ Ponto e vírgula em falta em referências numéricas

<p>The letter A: &#65</p>
<p>Hex example: A</p>

✅ Referências numéricas adequadamente terminadas

<p>The letter A: &#65;</p>
<p>Hex example: A</p>

❌ Ampersand simples numa URL (erro comum)

<a href="https://example.com/search?name=alice&age=30">Search</a>

Aqui o validador vê &age e tenta interpretá-lo como uma referência de carácter sem ponto e vírgula.

✅ Ampersand escapado numa URL

<a href="https://example.com/search?name=alice&amp;age=30">Search</a>

❌ Referência ambígua causando saída incorreta

<p>The entity &notit; doesn't exist, but &not without a semicolon resolves to ¬</p>

✅ Use &amp; quando quer um ampersand literal

<p>The text &amp;notit is displayed literally when properly escaped.</p>

Uma regra prática rápida: cada & no seu HTML deve ser o início de uma referência de carácter completa, terminada com ponto e vírgula, ou deve ele próprio ser escrito como &amp;.

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.