Guías: los 55 fallos de accesibilidad que buscamos, y cómo se arreglan
Cada barrera explicada en castellano normal: a quién deja fuera, cuánto cuesta y cómo se corrige, con el código antes y después.
Botón de imagen sin texto alternativo
Crítico · WCAG 1.1.1Hay un <input type="image"> sin alt.
Botones sin nombre
Crítico · WCAG 4.1.2Hay botones sin texto visible ni nombre accesible.
Campos de formulario sin etiqueta
Crítico · WCAG 1.3.1Hay campos de formulario sin nombre accesible: ni <label>, ni aria-label, ni aria-labelledby.
Enlaces sin nombre
Crítico · WCAG 2.4.4Hay enlaces sin texto visible ni nombre accesible.
Imágenes sin texto alternativo
Crítico · WCAG 1.1.1Hay imágenes sin atributo alt.
Contenido con sonido que se reproduce solo
Grave · WCAG 1.4.2Hay un <{tag}> con autoplay sin silenciar.
Contenido en movimiento imposible de parar
Grave · WCAG 2.2.2La página usa <marquee> o <blink>.
Contenido oculto a lectores de pantalla pero accesible por teclado
Grave · WCAG 4.1.2Hay un elemento con aria-hidden="true" que contiene elementos que reciben el foco.
Contraste de color insuficiente
Grave · WCAG 1.4.3Hay texto de {fontSize} con un contraste de {ratio} sobre su fondo, cuando la norma pide {required}.
El indicador de foco está desactivado
Grave · WCAG 2.4.7El CSS elimina el contorno del foco ({selector}) sin poner nada visible en su lugar.
El placeholder hace de etiqueta
Grave · WCAG 3.3.2Hay campos cuyo único nombre accesible viene del atributo placeholder.
Elemento clicable inalcanzable por teclado
Grave · WCAG 2.1.1Hay un <{tag}> con manejador de clic pero sin rol ni posición en el orden de tabulación.
Elemento con rol interactivo pero sin nombre
Grave · WCAG 4.1.2Hay un elemento con role="{role}" y sin nombre accesible.
Elemento marcado como decorativo pero que sí es interactivo
Grave · WCAG 4.1.2Hay un elemento con role="presentation" o role="none" que recibe el foco o tiene nombre.
Enlaces sin destino, activados por JavaScript
Grave · WCAG 2.1.1Hay elementos <a> sin atributo href que sí responden al clic.
Falta el idioma del documento
Grave · WCAG 3.1.1El elemento <html> no declara un idioma válido.
No hemos encontrado ningún enlace a una declaración de accesibilidad en la página.
La página impide ampliar con el zoom
Grave · WCAG 1.4.4La etiqueta viewport bloquea el zoom ({value}).
La página no tiene encabezados
Grave · WCAG 1.3.1Hay bastante contenido pero ningún encabezado.
Marco incrustado sin título
Grave · WCAG 4.1.2Hay un <iframe> sin atributo title.
Redirección automática con temporizador
Grave · WCAG 2.2.1La página se redirige sola pasado un tiempo ({content}).
Referencia ARIA a un identificador que no existe
Grave · WCAG 4.1.2El atributo {attr} apunta a los identificadores {ids}, que no están en la página.
Tabla de datos sin celdas de encabezado
Grave · WCAG 1.3.1Hay una tabla con datos pero sin ninguna celda <th>.
Texto alternativo sin información
Grave · WCAG 1.1.1Hay imágenes cuyo alt es un nombre de archivo, un código o una palabra genérica como «imagen» o «foto».
Título de página ausente o vacío
Grave · WCAG 2.4.2La página no tiene <title>, o es demasiado corto para identificarla.
Vídeo sin subtítulos
Grave · WCAG 1.2.2Hay un <video> sin pista de subtítulos.
Zona de mapa de imagen sin nombre
Grave · WCAG 1.1.1Hay un <area> dentro de un mapa de imagen sin texto alternativo.
Atributo ARIA inexistente
Moderado · WCAG 4.1.2Hay un elemento con el atributo {attr}, que no forma parte de la especificación.
Audio sin transcripción localizada
Moderado · WCAG 1.2.1Hay un <audio> en la página. No podemos comprobar automáticamente si existe transcripción.
Campo obligatorio solo indicado visualmente
Moderado · WCAG 3.3.2La etiqueta del campo indica que es obligatorio (con un asterisco o con la palabra), pero el campo no lo declara con required ni aria-required.
Campos de datos personales sin autocomplete
Moderado · WCAG 1.3.5Hay campos que piden datos personales habituales (correo, teléfono, dirección) sin atributo autocomplete.
Contenido incrustado sin nombre ni alternativa
Moderado · WCAG 1.1.1Hay un <object> o <embed> sin nombre accesible y sin contenido alternativo dentro.
El atributo title hace de etiqueta
Moderado · WCAG 4.1.2Hay controles cuyo único nombre viene del atributo title.
Encabezados vacíos
Moderado · WCAG 1.3.1Hay encabezados sin texto.
Enlaces con texto genérico
Moderado · WCAG 2.4.4Hay enlaces cuyo texto es «leer más», «clic aquí», «ver más» o equivalente.
Falta el encabezado principal, o hay más de uno
Moderado · WCAG 1.3.1La página no tiene h1, o tiene varios.
Falta el enlace para saltar al contenido
Moderado · WCAG 2.4.1La página tiene un menú extenso pero ningún enlace que permita saltárselo.
Falta la región de contenido principal
Moderado · WCAG 1.3.1La página no tiene <main>, o tiene más de uno.
Grupo de opciones sin título de grupo
Moderado · WCAG 1.3.1Hay grupos de casillas o botones de radio relacionados sin <fieldset> y <legend>.
La página carga un widget de accesibilidad de {vendor}.
Icono SVG con significado pero sin nombre
Moderado · WCAG 1.1.1Hay un SVG marcado como imagen (role="img") o con intención de tener nombre, pero sin nombre accesible.
Encontramos la declaración de accesibilidad, pero no un canal claro para que alguien avise de un problema.
Niveles de encabezado saltados
Moderado · WCAG 1.3.1La página pasa de un nivel de encabezado a otro saltándose los intermedios (de h{from} a h{to}).
Rol ARIA inexistente
Moderado · WCAG 4.1.2Hay un elemento con role="{role}", que no es un rol válido.
tabindex con valor positivo
Moderado · WCAG 2.4.3Hay elementos con tabindex="{value}".
Atajos de teclado duplicados
Leve · WCAG 2.1.1La tecla de acceso «{key}» está asignada a {count} elementos.
Elementos de lista fuera de una lista
Leve · WCAG 1.3.1Hay <li> cuyo padre no es <ul> ni <ol>.
Enlaces que abren ventana nueva sin avisar
Leve · WCAG 3.2.5Hay enlaces con target="_blank" que no avisan de que abrirán una pestaña nueva.
Enlaces que muestran la URL completa
Leve · WCAG 2.4.4Hay enlaces cuyo texto visible es una URL larga.
Faltan regiones de referencia
Leve · WCAG 1.3.1La página no marca alguna de sus regiones principales: {missing}.
Identificadores duplicados
Leve · WCAG 4.1.1El identificador «{id}» aparece {count} veces.
Tabla sin título
Leve · WCAG 1.3.1Hay una tabla de datos sin <caption> ni nombre accesible.
Hay imágenes cuyo alt repite un texto que ya está al lado, o empieza por «imagen de».
Texto en otro idioma sin marcar
Leve · WCAG 3.1.2Hay enlaces que apuntan a otro idioma (hreflang="{hreflang}") sin declarar el idioma de su propio texto.
Texto extremadamente pequeño
Leve · WCAG 1.4.4Hay texto por debajo de 10 px ({fontSize}).