Skip to main content
Validación HTML

Valor incorrecto X para el atributo “href” en el elemento “a”: Carácter ilegal en el fragmento: “>” no está permitido.

Acerca de este problema HTML

Un identificador de fragmento de URL es la parte de una URL que sigue al símbolo #, típicamente usado para enlazar a una sección específica dentro de una página. La especificación de URL (RFC 3986 y el WHATWG URL Standard) define un conjunto estricto de caracteres que están permitidos en fragmentos. El carácter > (signo mayor que) está entre aquellos que no están permitidos aparecer literalmente. Cuando el W3C HTML Validator encuentra > dentro de un valor href — ya sea en el fragmento o en cualquier otra parte de la URL — genera este error.

En la mayoría de casos, el carácter > aparece en una URL por accidente — por ejemplo, desde un error de copiar-pegar, un error tipográfico donde el > de cierre de la etiqueta accidentalmente termina dentro del valor del atributo, o una expresión de plantilla mal formada. Menos comúnmente, un desarrollador puede realmente necesitar el carácter > como parte del contenido de la URL.

Por qué esto es importante

  • Enlaces rotos: Los navegadores pueden interpretar el > como el final de la etiqueta HTML o manejar la URL de forma impredecible, llevando a navegación rota.
  • Cumplimiento de estándares: URLs inválidas violan tanto la especificación HTML como los estándares de sintaxis de URL, causando fallas de validación.
  • Accesibilidad: Los lectores de pantalla y otras tecnologías de asistencia dependen de un marcado bien formado. Un href mal formado puede confundir estas herramientas y prevenir que los usuarios lleguen al destino deseado.
  • Interoperabilidad: Aunque algunos navegadores pueden corregir silenciosamente o ignorar el carácter inválido, otros pueden no hacerlo. URLs válidas garantizan comportamiento consistente en todas partes.

Cómo solucionarlo

  1. Si el > es un error tipográfico o de copiar-pegar, simplemente eliminarlo del valor href. Este es el escenario más común.
  2. Si el > es intencionalmente parte del fragmento o URL, reemplazarlo con su equivalente codificado: %3E.
  3. Revisar tus plantillas o salida de CMS — este error frecuentemente se origina desde motores de plantillas o sistemas de gestión de contenido que inyectan valores mal formados en atributos href.

Ejemplos

> accidental en la ruta de la URL

Un error común es incluir accidentalmente el > de cierre de la etiqueta dentro del valor del atributo:

<!-- ❌ Inválido: ">" no está permitido en la URL -->

<a href="/page.php>">Leer más</a>

Elimina el > extraviado:

<!-- ✅ Válido: URL limpia sin carácter ilegal -->

<a href="/page.php">Leer más</a>

> ilegal en un identificador de fragmento

El > también puede aparecer dentro de la porción del fragmento de la URL:

<!-- ❌ Inválido: ">" en el fragmento -->

<a href="/docs#section->overview">Ir a la descripción general</a>

Si el > es no intencional, eliminarlo:

<!-- ✅ Válido: fragmento sin carácter ilegal -->

<a href="/docs#section-overview">Ir a la descripción general</a>

Si el > es genuinamente necesario en el fragmento, codificarlo:

<!-- ✅ Válido: ">" codificado como %3E -->

<a href="/docs#section-%3Eoverview">Ir a la descripción general</a>

Cadena de consulta o ruta que contiene >

La misma regla aplica fuera de los fragmentos. Si > aparece en cualquier lugar de la URL, codificarlo:

<!-- ❌ Inválido: ">" en parámetro de consulta -->

<a href="/search?filter=price>100">Artículos caros</a>
<!-- ✅ Válido: ">" codificado como %3E -->

<a href="/search?filter=price%3E100">Artículos caros</a>

Errores de salida de plantilla

Si estás usando una plantilla del lado del servidor o un framework de JavaScript, asegúrate de que los valores dinámicos insertados en href estén apropiadamente codificados para URL. Por ejemplo, en una plantilla que genera enlaces:

<!-- ❌ Inválido: valor dinámico sin codificar -->

<a href="/results#filter=>50">Ver resultados</a>
<!-- ✅ Válido: valor apropiadamente codificado -->

<a href="/results#filter=%3E50">Ver resultados</a>

La mayoría de lenguajes del lado del servidor proporcionan funciones integradas de codificación de URL (ej., encodeURIComponent() en JavaScript, urlencode() en PHP, urllib.parse.quote() en Python) que manejarán esto automáticamente. Siempre usa estas funciones cuando insertes contenido dinámico en URLs.

Encuentra problemas como este automáticamente

Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.

Ayúdanos a mejorar nuestras guías

¿Te ha sido útil esta guía?

¿Listo para validar tus sitios?
Inicia tu prueba gratuita hoy.