Sobre este problema HTML
O parser HTML lê tags de elementos procurando nomes de atributos, um sinal =, e depois um valor entre aspas. Quando o parser encontra um carácter " numa posição onde espera que um nome de atributo comece, significa que algo correu mal com a sintaxe. O validador marca isto como um erro de parse porque o navegador tem de adivinhar o que você pretendia, o que pode levar a atributos serem silenciosamente descartados, valores serem mal atribuídos, ou comportamento de renderização inesperado.
Este erro ocorre mais comumente devido a uma destas causas:
-
Sinal
=em falta entre um nome de atributo e o seu valor (ex:class"main"em vez declass="main"). -
Aspa de fecho extra que cria uma
"perdida após um atributo válido (ex:class="main""com uma aspa duplicada). -
Aspa perdida de erros de cópia-colagem ou gralhas que deixam caracteres
"órfãos a flutuar na tag. -
=acidentalmente apagado durante a edição, quebrando um atributo que seria válido.
Além de ser HTML inválido, este problema pode causar problemas funcionais reais. Um sinal = em falta pode fazer com que o navegador interprete o valor do atributo como um atributo separado (desconhecido), perdendo efetivamente o valor pretendido. Uma aspa extra pode fazer com que o parser leia mal os atributos subsequentes, potencialmente quebrando manipuladores de eventos, ligações ou estilização. Estes problemas também podem prejudicar a acessibilidade, pois as tecnologias assistivas dependem de atributos corretamente analisados para transmitir significado.
Exemplos
Sinal de igual em falta
O = entre o nome do atributo e o valor está ausente, por isso o parser vê "container" onde espera um novo nome de atributo.
<!-- ❌ Mau: = em falta antes do valor -->
<div class"container">Content</div>
<!-- ✅ Corrigido: = adicionado entre nome e valor -->
<div class="container">Content</div>
Aspa de fecho extra
Uma " duplicada no final de um valor de atributo deixa uma aspa perdida que o parser não espera.
<!-- ❌ Mau: " extra após o valor do atributo -->
<a href="https://example.com"">Visit</a>
<!-- ✅ Corrigido: aspa de fecho única -->
<a href="https://example.com">Visit</a>
Múltiplos atributos com uma aspa perdida
Quando múltiplos atributos estão presentes, uma aspa perdida também pode corromper a análise dos atributos subsequentes.
<!-- ❌ Mau: " extra após o valor do id vaza para o próximo atributo -->
<input id="email"" type="text" name="email">
<!-- ✅ Corrigido: aspas limpas em todos os atributos -->
<input id="email" type="text" name="email">
Sinal de igual em falta num atributo posterior
O erro nem sempre ocorre no primeiro atributo — pode aparecer em qualquer atributo na tag.
<!-- ❌ Mau: = em falta no atributo style -->
<p class="intro" style"color: red;">Hello</p>
<!-- ✅ Corrigido: = adicionado antes do valor de style -->
<p class="intro" style="color: red;">Hello</p>
Como corrigir
- Localize a linha reportada pelo validador e examine os atributos do elemento.
-
Verifique se cada atributo segue o padrão
name="value"sem sinais=em falta. -
Conte as suas aspas — cada
"de abertura deve ter exatamente uma"de fecho correspondente para cada valor de atributo. -
Cuidado com aspas inteligentes — aspas curvas (
"") copiadas de processadores de texto não são delimitadores de atributos HTML válidos. Substitua-as por aspas direitas ("). - Use um editor de código com destaque de sintaxe — aspas não correspondentes ou extra são geralmente fáceis de detetar quando o seu editor colore os valores dos atributos com cores.
Encontre problemas como este automaticamente
O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.