Sobre este problema HTML
Quando o analisador HTML encontra os atributos de uma tag, espera uma estrutura específica: um nome de atributo, seguido de um sinal de igual, seguido de um valor entre aspas. Se um carácter de aspas aparecer onde o analisador espera um nome de atributo, significa que algo correu mal na sintaxe anteriormente na tag. O validador sinaliza isto como Quote """ in attribute name e sugere que provavelmente faltam aspas correspondentes algures antes.
Esta questão importa porque os navegadores tentarão recuperar do HTML malformado de formas imprevisíveis. Um navegador pode ignorar completamente o atributo, enquanto outro pode fundi-lo com texto adjacente. Isto pode levar a estilos quebrados, funcionalidade em falta, ou elementos que se comportam de forma diferente entre navegadores. Para acessibilidade, atributos malformados podem impedir que as tecnologias assistivas interpretem corretamente a semântica e papéis dos elementos.
Existem várias causas comuns para este erro:
- Sinal de igual em falta entre um nome de atributo e o seu valor, fazendo com que o analisador trate as aspas de abertura como parte do nome do atributo.
- Aspas de fecho extra que terminam prematuramente um valor de atributo, deixando aspas subsequentes órfãs.
- Aspas não escapadas dentro de valores de atributos, que quebram a estrutura de aspas de toda a tag.
-
Erros de copiar-colar que introduzem aspas curvas/inteligentes (
"") ou caracteres de aspas extra. - Aspas de fecho em falta num atributo anterior, fazendo com que o analisador consuma atributos subsequentes como parte desse valor.
Exemplos
Sinal de igual em falta
A causa mais comum. Sem o =, o analisador vê class como um atributo e depois encontra " onde espera outro nome de atributo.
❌ Incorreto:
<p class"news">Este parágrafo tem marcação quebrada.</p>
✅ Corrigido:
<p class="news">Este parágrafo tem marcação correta.</p>
Aspas de fecho em falta num atributo anterior
Quando uma aspa fica por fechar, tudo depois dela—incluindo outros atributos—é consumido como parte do valor, até que o analisador eventualmente encontre outra aspa numa posição inesperada.
❌ Incorreto:
<a href="/about class="link">Sobre nós</a>
Aqui, o valor href nunca é fechado. O analisador lê /about class= como o valor href, depois encontra "link" num contexto inesperado.
✅ Corrigido:
<a href="/about" class="link">Sobre nós</a>
Carácter de aspas extra
Uma aspa extra solta quebra o emparelhamento das aspas subsequentes.
❌ Incorreto:
<div id=""main" class="container">Conteúdo</div>
✅ Corrigido:
<div id="main" class="container">Conteúdo</div>
Aspas não escapadas dentro de um valor de atributo
Se o valor do atributo contém ele próprio aspas duplas, deve ser escapado como " ou o atributo deve usar aspas simples em vez disso.
❌ Incorreto:
<input type="text" value="Ela disse "olá"">
✅ Corrigido (usando "):
<input type="text" value="Ela disse "olá"">
✅ Também corrigido (usando aspas simples para o atributo):
<input type="text" value='Ela disse "olá"'>
Aspas inteligentes/curvas de copiar-colar
Processadores de texto e editores de texto rico muitas vezes convertem aspas direitas para aspas curvas, que não são válidas para delimitadores de atributos HTML.
❌ Incorreto:
<p class="highlight">Texto estilizado</p>
✅ Corrigido:
<p class="highlight">Texto estilizado</p>
Como debugar esta questão
Quando vê este erro, o validador geralmente aponta para um número de linha específico, mas a causa raiz pode estar nessa linha ou anteriormente na mesma tag. Siga estes passos:
- Vá à linha indicada pelo validador e examine toda a tag.
-
Verifique cada atributo nesse elemento para sintaxe
nome="valor"adequada. - Conte as aspas — cada valor de atributo deve ter exatamente uma aspa de abertura e uma de fecho.
-
Procure sinais
=em falta entre nomes de atributos e os seus valores. -
Procure aspas curvas (
",",',') e substitua-as por aspas direitas ("ou'). - Se a linha parecer correta, verifique as linhas precedentes — uma aspa não fechada num elemento anterior pode propagar erros para marcação posterior.
Encontre problemas como este automaticamente
O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.