Acerca de este problema HTML
La especificación HTML restringe lo que puede aparecer dentro de un comentario. Específicamente, un comentario no debe contener la cadena -- (dos guiones consecutivos) excepto como parte de los delimitadores de apertura y cierre. Esta regla proviene de SGML y XML 1.0, donde -- se trata como un delimitador de comentario, y tener apariciones adicionales dentro del cuerpo del comentario crea ambigüedad sobre dónde empieza y termina el comentario.
Aunque la mayoría de navegadores modernos son permisivos y manejarán comentarios con guiones dobles sin problemas, el marcado es técnicamente inválido. Esto importa por varias razones:
- Compatibilidad con XML: Si tu HTML se sirve como XHTML o es procesado por analizadores XML, los guiones dobles dentro de los comentarios causarán errores de análisis y potencialmente romperán todo el documento.
-
Cumplimiento de estándares: El estándar HTML living establece explícitamente que los comentarios no deben contener
--, por lo que los validadores marcan esto como un error. - Análisis predecible: Diferentes analizadores pueden interpretar comentarios mal formados de manera diferente, llevando a comportamientos inconsistentes entre herramientas, rastreadores y tecnologías de asistencia.
Para solucionar el problema, busca dentro del texto de tu comentario y reemplaza cualquier aparición de -- con otra cosa, como un guión simple, un signo igual, o un separador diferente.
Ejemplos
Incorrecto: guiones dobles dentro del cuerpo del comentario
<!-- This is a separator ---------- end of section -->
La cadena de guiones dentro del comentario contiene múltiples pares consecutivos --, haciendo el comentario inválido.
<!-- Do not use -- as a separator -->
Aquí, -- aparece literalmente en el texto del comentario, lo que viola la regla.
<!-- TODO -- fix this later -- maybe next sprint -->
Múltiples secuencias -- aparecen como separadores de texto casual, cada una desencadenando el error de validación.
Correcto: evitando guiones dobles
Reemplaza los guiones dobles con un carácter o patrón diferente:
<!-- This is a separator ========== end of section -->
<!-- Do not use dashes as a separator -->
<!-- TODO: fix this later, maybe next sprint -->
Correcto: sintaxis estándar de comentarios
Los comentarios simples que no contienen -- en su cuerpo son perfectamente válidos:
<!-- This is a valid comment -->
<!--
Multi-line comments are fine too,
as long as they don't contain double hyphens.
-->
Problema común: bordes decorativos de comentarios
Los desarrolladores a veces usan guiones para crear separadores visuales en su código fuente:
<!-- -------------------------------- -->
<!-- Navigation Section -->
<!-- -------------------------------- -->
Reemplázalos con un carácter diferente:
<!-- ================================ -->
<!-- Navigation Section -->
<!-- ================================ -->
O simplemente elimina las líneas decorativas:
<!-- Navigation Section -->
Encuentra problemas como este automáticamente
Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.