Warning Enlace de anclaje en la misma página sin id correspondiente

Por qué un enlace href="#seccion" necesita un id correspondiente en la página, y qué pasa en el navegador cuando falta.

El validador marca un <a href="#fragmento"> cuyo fragmento no coincide con el id de ningún elemento de la página (o, en markup más antiguo, con un <a name="fragmento"> correspondiente).

Ejemplo

<!-- Incorrecto: ningún elemento tiene id="precios" -->
<a href="#precios">Ir a precios</a>

<!-- Correcto -->
<a href="#precios">Ir a precios</a>
...
<section id="precios">...</section>

Por qué importa

Un enlace de anclaje en la misma página solo funciona porque el navegador busca un elemento cuyo id coincida con el fragmento después del # y lo desplaza a la vista. Si nada coincide, la mayoría de los navegadores en silencio no hacen nada útil — algunos desplazan hasta el inicio absoluto de la página, lo cual parece un enlace roto de "ir arriba" en vez de un error. Esta es una víctima común de las refactorizaciones: se renombra un encabezado o se elimina un id, y todos los enlaces internos que apuntaban a él dejan de funcionar en silencio sin ningún error visible en ninguna parte.

Frequently asked questions

¿Esta revisión verifica enlaces entre páginas como /pagina#seccion?

No — solo revisa enlaces que son solo fragmento (href que empieza con #) contra los ids de la misma página que se está validando. Un enlace al anclaje de otra página no se puede verificar sin obtener también esa página.

¿Qué pasa con href="#" sin nombre de fragmento?

Eso es una revisión distinta y separada (placeholder-href) — un fragmento vacío es un patrón intencional común para controles manejados por JavaScript, no una referencia rota.