Enlaces de marcador de posición
Silktide encuentra enlaces que apuntan a #, una URL que significa «la parte superior de esta página». Suelen ser marcadores de posición —enlaces añadidos antes de que existiera su destino y que nunca se actualizaron— o enlaces reutilizados para ejecutar scripts.
<!-- Marcador de posición dejado atrás: no lleva a ningún sitio útil -->
<a href="#">Leer más</a>
<!-- Enlace usado para ejecutar un script -->
<a href="#" onclick="openMenu()">Menú</a>
Por qué es importante
Quien hace clic en un enlace # espera ir a algún sitio; en cambio, la página simplemente se desplaza a la parte superior, lo que se percibe como un fallo. Cuando este patrón se usa para activar , también engaña a la : un lo anuncia como un enlace, prometiendo navegación, cuando en realidad se comporta como un botón; y si los scripts no se cargan, no hace nada en absoluto.
Estos enlaces suelen ser restos: una plantilla que incluía navegación de marcador de posición, o un enlace de «próximamente» que nadie volvió a revisar.
Cómo solucionarlo
- Si el enlace debía ir a algún sitio, apunta su
hrefal destino real. - Si activa un script, sustitúyelo por un
<button>, que es lo que la espera para las acciones:
<!-- Antes: un enlace que finge ser un botón -->
<a href="#" onclick="openMenu()">Menú</a>
<!-- Después: un botón real, con el estilo que quieras -->
<button onclick="openMenu()">Menú</button>
- Si el enlace no cumple ninguna función, elimínalo o sustitúyelo por texto sin formato.
- Si un enlace
#está realmente previsto —por ejemplo, insertado por un framework que lo mejora de forma fiable— el hallazgo para que no vuelva a mostrarse.
Cómo lo comprueba Silktide
- Encontrar todos los enlaces convencionales en cada página.
- Notificar cada uno cuyo
hrefsea exactamente#.
Los enlaces a posiciones con nombre en la página, como #news, son legítimos y no se notifican.
Solución de problemas
El enlace funciona porque JavaScript lo gestiona
Funciona para quienes usan el ratón mientras los scripts se cargan correctamente, pero sigue anunciándose como un enlace a la tecnología de asistencia y sigue desplazándose a la parte superior cuando el script falla. Un <button> se comporta correctamente en todos esos casos; si cambiar el marcado no es viable, aprueba el hallazgo.
El # proviene de un framework o de un componente del CMS
Los componentes de menús y pestañas en algunos frameworks y temas de emiten href="#" de forma predeterminada. Consulta la documentación del componente para ver cómo renderizar un botón o un destino real en su lugar.