Sobre este problema HTML
A especificação HTML restringe o que pode aparecer dentro de um comentário. Especificamente, um comentário não deve conter a string -- (dois hífenes consecutivos) exceto como parte dos delimitadores de abertura e fecho. Esta regra tem origem no SGML e XML 1.0, onde -- é tratado como um delimitador de comentário, e ter ocorrências extra dentro do corpo do comentário cria ambiguidade sobre onde o comentário começa e termina.
Embora a maioria dos navegadores modernos seja tolerante e lide com comentários com hífenes duplos sem problemas, a marcação é tecnicamente inválida. Isto é importante por várias razões:
- Compatibilidade XML: Se o seu HTML for servido como XHTML ou processado por parsers XML, hífenes duplos dentro de comentários causarão erros de parsing e potencialmente quebrarão todo o documento.
-
Conformidade com padrões: O padrão HTML living standard afirma explicitamente que comentários não devem conter
--, pelo que os validadores sinalizam isto como um erro. - Parsing previsível: Diferentes parsers podem interpretar comentários malformados de forma diferente, levando a comportamento inconsistente entre ferramentas, crawlers e tecnologias assistivas.
Para corrigir o problema, procure dentro do texto do seu comentário e substitua qualquer ocorrência de -- por algo diferente, como um hífen único, um sinal de igual, ou um separador diferente.
Exemplos
Incorreto: hífenes duplos dentro do corpo do comentário
<!-- This is a separator ---------- end of section -->
A sequência de hífenes dentro do comentário contém múltiplos pares consecutivos de --, tornando o comentário inválido.
<!-- Do not use -- as a separator -->
Aqui, -- aparece literalmente no texto do comentário, o que viola a regra.
<!-- TODO -- fix this later -- maybe next sprint -->
Múltiplas sequências de -- aparecem como separadores de texto casuais, cada uma desencadeando o erro de validação.
Correto: evitar hífenes duplos
Substitua hífenes duplos por um carácter ou padrão diferente:
<!-- This is a separator ========== end of section -->
<!-- Do not use dashes as a separator -->
<!-- TODO: fix this later, maybe next sprint -->
Correto: sintaxe de comentário padrão
Comentários simples que não contêm -- no seu corpo são perfeitamente válidos:
<!-- This is a valid comment -->
<!--
Multi-line comments are fine too,
as long as they don't contain double hyphens.
-->
Armadilha comum: bordas decorativas de comentários
Os programadores às vezes usam hífenes para criar separadores visuais no seu código fonte:
<!-- -------------------------------- -->
<!-- Navigation Section -->
<!-- -------------------------------- -->
Substitua estes por um carácter diferente:
<!-- ================================ -->
<!-- Navigation Section -->
<!-- ================================ -->
Ou simplesmente remova as linhas decorativas:
<!-- Navigation Section -->
Encontre problemas como este automaticamente
O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.