Addaw, ir a inicio Donar

¿Como hacer un CAPTCHA accesible?

Escrito por David Prieto González Abril 05, 2024

Las tecnologías CAPTCHA son algo común en internet. Según datos de Built With, más del 20% de los sitios web más importantes utilizan alguna forma de CAPTCHA, siendo la tecnología reCAPTCHA de Google la preferida por la mayoría.

Desafortunadamente, algunos sitios usan tecnologías CAPTCHA obsoletas que generan problemas de accesibilidad. Para entender por qué —y para evitar una mala implementación de CAPTCHA— es útil considerar los problemas que las pruebas de desafío-respuesta intentan solucionar.

CAPTCHA es un acrónimo de Completely Automated Public Turing test to tell Computers and Humans Apart (Wikipedia describe el acrónimo como “forzado”, y tendemos a estar de acuerdo). Inventado por primera vez en 1997, CAPTCHA requiere que el usuario interprete una serie de letras y números en una imagen distorsionada. El propósito es prevenir que los programas de computadora interactúen con un sitio. Esto puede ser beneficioso en muchas circunstancias; por ejemplo, en un sitio web de comercio electrónico, los CAPTCHA podrían prevenir fraudes o detener a revendedores que realizan pedidos automáticos.

Por supuesto, los CAPTCHAs son controvertidos entre los usuarios reales de internet. Algunos puntos importantes a tener en cuenta:

Aún así, muchos sitios (particularmente de comercio electrónico) se aferran a herramientas CAPTCHA obsoletas. Muchos de estos sitios priorizan la accesibilidad de otras maneras —pero un único problema importante puede tener un efecto dramático en los usuarios reales. Una mala implementación de CAPTCHA ciertamente califica.

¿Se permiten los CAPTCHAs según las WCAG?

 

Los tests de Turing visuales como CAPTCHA están permitidos bajo las Pautas de Accesibilidad para el Contenido Web (WCAG) con algunas advertencias significativas. Primero, los sitios que usan CAPTCHAs deben ofrecer alternativas “utilizando modos de salida para diferentes tipos de percepción sensorial' para acomodar diferentes discapacidades. WCAG también requiere alternativas de texto que identifiquen y describan el propósito del contenido no textual (como el texto que describe el desafío CAPTCHA).

Crucialmente, la exención para CAPTCHAs solo se aplica al contenido CAPTCHA generado —las imágenes o números que se espera que los usuarios interpreten. Todo el otro contenido debe tener alternativas de texto. Muchos webmasters ignoran esta distinción y asumen que páginas enteras están exentas.

En otras palabras, las pautas permiten CAPTCHAs, pero los sitios web deben usarlos cuidadosamente y evitar excluir a usuarios humanos con discapacidades. Donde sea posible, los webmasters deberían evitar usar pruebas CAPTCHA basadas en imágenes, las cuales pueden crear más problemas de los que resuelven.

Afortunadamente, la tecnología ha progresado significativamente durante las últimas tres décadas. Muchas pruebas modernas resuelven la mayoría de los problemas principales de los CAPTCHA antiguos, aunque los webmasters aún deben usarlas con cuidado.

Alternativas accesibles a CAPTCHA

 


Como hemos discutido, CAPTCHA puede ser frustrante incluso cuando los usuarios tienen acceso a modos de salida alternativos. Por ejemplo, el CAPTCHA auditivo necesita ser complejo para prevenir el spam. Un CAPTCHA auditivo puede contener distorsiones, tonos vocales extraños y otros artefactos que pueden ser angustiantes para los usuarios —y molestos, ya que los mismos artefactos que previenen el tráfico de bots también pueden impedir que los usuarios humanos accedan al sitio.

El reCAPTCHA v2 de Google intenta solucionar estos problemas presentando a los usuarios una simple casilla de verificación 'No soy un robot'. El usuario marca la casilla para acceder al sitio. Los campos de reCAPTCHA pueden ser interpretados por los principales lectores de pantalla (tecnologías asistivas que convierten el contenido visual en salida de audio o braille). La casilla también es accesible mediante teclado, lo cual es útil para personas con ciertas discapacidades de movilidad y cognitivas.

Para confirmar la humanidad del usuario, Google utiliza un algoritmo para determinar si los movimientos son naturales. El algoritmo también intenta analizar la dirección IP del usuario, la cantidad de solicitudes enviadas en un cierto marco de tiempo y otra información. Si el algoritmo no está satisfecho, el usuario todavía puede ver una caja CAPTCHA tradicional, pero esto es extremadamente improbable para usuarios de lectores de pantalla.

Alternativamente, los diseñadores web pueden emplear la insignia invisible de reCAPTCHA v2, que invoca la verificación de reCAPTCHA cuando un usuario hace clic en un botón existente en el sitio.

El reCAPTCHA v3 de Google funciona de manera similar al verificar interacciones legítimas con una API pura de Javascript —el usuario nunca nota el campo de reCAPTCHA.

Otras alternativas de CAPTCHA usan otros parámetros para evaluar a los usuarios sin presentarles entradas de formulario molestas. hCaptcha, la alternativa más popular a reCAPTCHA, utiliza modelos de aprendizaje automático para detectar usuarios humanos. Las personas con discapacidades deben inscribirse en la página de inscripción de accesibilidad de hCaptcha. Reciben una cookie encriptada que debe ser renovada cada 24 horas.

Esa cookie puede ser utilizada varias veces al día, y el proceso de inscripción es sencillo. Sin embargo, el Acceso de Accesibilidad de hCaptcha requiere una dirección de correo electrónico, y algunos usuarios pueden preferir no proporcionar esta información.

Hacer el CAPTCHA accesible para todos


Independientemente de la tecnología CAPTCHA que implementes en tu sitio, recuerda: ninguna herramienta es automáticamente accesible, y por naturaleza, los CAPTCHAs están diseñados para crear problemas de accesibilidad. Incluso con tecnologías más nuevas, los CAPTCHAs pueden ser riesgosos.

Para mantener tu sitio accesible —y evitar excluir a millones de usuarios potenciales— necesitarás examinar de cerca cómo implementas tus características de seguridad. Aquí hay algunas consideraciones a tener en cuenta.

Evita requerir usar el CAPTCHA sin una buena razón.


Primero, determina si un CAPTCHA es realmente necesario. Esto puede parecer un paso obvio, pero muchos sitios usan pruebas de Turing sin una buena razón.

Si estás operando un gran sitio de comercio electrónico, tienes una razón legítima para intentar limitar el tráfico de spam, y reCAPTCHA o hCaptcha podrían ser la única solución. Si estás manteniendo un pequeño sitio web de empresa, sin embargo, quizás no necesites CAPTCHA para prevenir que los bots inunden tus servidores — podrías usar filtros y herramientas de mitigación de bots para lograr el mismo efecto. Antes de usar cualquier forma de CAPTCHA, busca alternativas amigables con el usuario.

Reconoce el espectro completo de discapacidades.


Los CAPTCHAs clásicos usan pruebas basadas en imágenes, lo que presenta un claro desafío para las personas que tienen problemas de visión. Si estás leyendo este artículo, probablemente has considerado cómo los medios visuales afectan a estos usuarios (y no estás solo — como señalamos en esta pieza, la idea de que accesibilidad significa 'diseñar para personas ciegas' es uno de los mitos más comunes sobre la accesibilidad de sitios web).

Una mentalidad verdaderamente accesible no se detiene ahí. Recuerda, ciertos tipos de pruebas también pueden presentar problemas para personas que usan teclados para operar sus navegadores web. Una persona con un trastorno de ansiedad puede sentirse abrumada por una entrada CAPTCHA incorrecta, y una persona con problemas de memoria a corto plazo puede no ser capaz de seguir un CAPTCHA complejo con múltiples pasos.

Para atender las necesidades de todos tus usuarios, piensa en cómo opera tu prueba. Considera si algún aspecto de la prueba crearía una carga innecesaria, luego intenta abordar esas preocupaciones antes de que afecten a usuarios reales.

Evita los CAPTCHAs con límite de tiempo.


Ten en cuenta los límites de tiempo. Los límites de tiempo pueden ser frustrantes para todos los usuarios, y algunas personas pueden no ser capaces de completar CAPTCHAs en un marco de tiempo corto. Asegúrate de que los campos CAPTCHA estén ubicados al final de los formularios.

Por supuesto, la forma más simple de prevenir este problema es usar una tecnología CAPTCHA que no tenga un límite de tiempo corto, o usar una prueba que no requiera la interacción directa del usuario.

No descuides otros problemas de accesibilidad.


Recuerda, tu responsabilidad no termina después de haber elegido una tecnología CAPTCHA relativamente accesible. Por ejemplo, muchos sitios web usan CAPTCHAs para prevenir envíos de formularios spam. Si el formulario tiene un límite de tiempo, agregar el CAPTCHA podría causar que algunos usuarios excedan ese límite de tiempo — el Criterio de Éxito 2.2.1 de WCAG 2.1 recomienda permitir a los usuarios desactivar, ajustar o extender los límites de tiempo con acciones simples, lo cual resolvería el problema.

De manera similar, tus formularios deberían evitar usar avance automático, lo cual crea serios obstáculos para algunas personas con discapacidades. Todos los elementos de entrada deben ser clara y explícitamente etiquetados (cubrimos algunas de las características de los formularios accesibles en el artículo vinculado aquí).

En última instancia, las tecnologías tipo CAPTCHA pueden ser útiles, siempre y cuando las utilices cuidadosamente y priorices la accesibilidad en todo tu sitio. Sin embargo, las tecnologías CAPTCHA cambian frecuentemente, y antes de implementar cualquier nuevo control de seguridad, necesitarás planificar cuidadosamente.

¿Te gusta lo que ves? Compártelo con un amigo.


David Prieto González

Ingeniero informático especializado en dirección de proyectos y accesibilidad Web. Hay quien dice que el camino del desarrollo es muy duro, pues tienes que estar continuamente renovándote y actualizándote. Sin embargo, si realmente te gusta lo que haces, este camino será agradable... y a mí me encanta.