Skip to main content
Validación HTML

Valor incorrecto “” para el atributo “name” en el elemento “a”: Un ID no puede ser una cadena vacía.

Acerca de este problema HTML

El atributo name en elementos <a> se usaba históricamente para crear anclas nombradas — objetivos de fragmento que podían ser enlazados con href="#nombreAncla". En HTML moderno (el estándar vivo de WHATWG), el atributo name en <a> se considera obsoleto para este propósito. El atributo id es ahora la forma estándar de crear objetivos de fragmento, y puede colocarse en cualquier elemento, no solo en etiquetas <a>.

Independientemente de si usas name o id, el valor debe ser una cadena no vacía. El validador de W3C aplica esta regla porque un identificador vacío no sirve ningún propósito funcional — no puede ser referenciado por un enlace de fragmento, no puede ser objetivo de JavaScript, y crea marcado inválido. Los navegadores pueden ignorarlo silenciosamente, pero contamina el DOM y señala un probable error en el código.

Los atributos name vacíos aparecen a menudo en contenido migrado de plataformas CMS más antiguas o editores WYSIWYG que insertaban anclas de marcador de posición como <a name=""></a>. También pueden resultar de sistemas de plantillas donde una variable destinada a poblar el atributo se resolvió como una cadena vacía.

Por qué es importante

  • Cumplimiento de estándares: Tanto el estándar vivo HTML de WHATWG como la especificación HTML de W3C requieren que los atributos tipo identificador (id, name) no deben ser cadenas vacías.
  • Accesibilidad: Los lectores de pantalla y tecnologías de asistencia pueden intentar procesar anclas nombradas. Los identificadores vacíos crean ruido sin proporcionar ningún valor de navegación.
  • Funcionalidad: Un name o id vacío no puede ser usado como objetivo de fragmento, por lo que el elemento es efectivamente inútil como destino de enlace.

Cómo solucionarlo

  1. Eliminar el elemento completamente si el ancla vacía no sirve ningún propósito — esta es la solución más común.
  2. Reemplazar name con id y proporcionar un valor significativo y no vacío si necesitas un objetivo de fragmento.
  3. Mover el id a un elemento semántico cercano en lugar de usar una etiqueta <a> vacía independiente. Por ejemplo, coloca el id directamente en un encabezado, sección o párrafo.
  4. Asegurar la unicidad — cada valor de id en un documento debe ser único.

Ejemplos

❌ El atributo name vacío desencadena el error

<a name=""></a>
<h2>Introduction</h2>
<p>Welcome to the guide.</p>

name vacío generado por una plantilla

<a name=""></a>
<p>This anchor was meant to be a target but the value is missing.</p>
<a href="#">Jump to section</a>

✅ Eliminar el ancla vacía si es innecesaria

<h2>Introduction</h2>
<p>Welcome to the guide.</p>

✅ Usar id en el elemento objetivo directamente

<h2 id="introduction">Introduction</h2>
<p>Welcome to the guide.</p>

<!-- Link to the section from elsewhere -->

<a href="#introduction">Go to Introduction</a>

✅ Usar id en un ancla independiente si es necesario

Si necesitas un punto de ancla preciso que no corresponda a un elemento existente, usa una etiqueta <a> con un id válido y no vacío:

<a id="section-start"></a>
<p>This paragraph follows the anchor point.</p>

<a href="#section-start">Jump to section start</a>

✅ Migrar name heredado a id

Si tu código existente usa el atributo obsoleto name con un valor válido, actualízalo para usar id en su lugar:

<!-- Before (obsolete but was valid in HTML4) -->

<a name="contact"></a>

<!-- After (modern HTML) -->

<a id="contact"></a>

<!-- Even better: put the id on a semantic element -->

<h2 id="contact">Contact Us</h2>

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.