ID duplicados
Silktide encuentra páginas en las que el mismo valor de id se usa en más de un
elemento. Los ID deben ser únicos dentro de una página, porque cualquier cosa que hace referencia a un
ID —etiquetas de formulario, relaciones ARIA, enlaces dentro de la página— solo puede encontrar uno de los
duplicados.
<!-- Ambos inputs comparten id="name": ¿qué campo describe cada etiqueta? -->
<label for="name">Tu nombre</label>
<input id="name">
<label for="name">Nombre de la empresa</label>
<input id="name">
Por qué es importante
dependen de referencias por ID para conectar elementos relacionados.
Cuando los ID están duplicados, un
puede leer la etiqueta incorrecta de un campo de formulario, o no leer ninguna; en el ejemplo
anterior, ambos campos pueden anunciarse como "Tu nombre", por lo que el usuario escribe su nombre
en el cuadro de empresa. La misma falla afecta a
con atributos como aria-labelledby y aria-describedby, y a los enlaces dentro de la página
que saltan a un #id.
Cómo solucionarlo
- Renombra los duplicados para que cada
idde la página sea único y actualiza todo lo que los referenciaba (atributosfor, atributos ARIA, enlaces). - Si los duplicados provienen de un componente repetido —una plantilla repetida varias veces por página—, corrige la plantilla para generar ID únicos, o usa clases en lugar de ID para aplicar estilos cuando no necesiten ser referenciados.
- Si un duplicado señalado es realmente inocuo en tu contexto, puedes ignorar el hallazgo.
Cómo lo prueba Silktide
- Encuentra cada elemento de la página con un atributo
id. Se omiten los elementos dentro de gráficos SVG, ya que sus ID existen en un contexto aparte. - Agrupa los elementos por su valor de
id. - Cuando más de un elemento comparte el mismo
id, se marca cada uno de ellos.