Vicent Sanchis

Accesibilidad, Ciencias de la Visión y WordPress

Accesibilidad web y los CAPTCHA

¿Qué es un CAPTCHA?

CAPTCHA, esas letras deformes, y a veces ilegibles, que debemos de rellenar correctamente para poder seguir con el formulario o con el proceso que estés completando. Técnicamente son las siglas de Completely Automated Public Turing test to tell Computers and Humans Apart (prueba de Turing completamente automática y pública para diferenciar ordenadores de humanos).

¿Y para qué quieren saber que somos personas? Pues sencillo, para evitar los bots de spam y otros tipos de software malintencionado. Un programa puede rellenar campos de formulario muchísimo más rápido que cualquier persona y eso se puede traducir en miles de comentarios spam en tu blog. Una de las soluciones más extendidas es el uso de una prueba de Turing simplificada. En principio los bots son incapaces de pasar el CAPTCHA y así nos libramos de ellos. Pero no nos equivoquemos, los CAPTCHA son molestos y a veces difíciles de resolver porque empujan al límite las capacidades humanas.

En general se asume que se trata de tareas sencillas de realizar, como lo debería ser navegar por la web. Pero sabemos que navegar por la web no es algo sencillo para mucha gente. Protegernos contra el spam o usuarios malintencionados es necesario, pero a cambio estamos negando el acceso al servicio a usuarios legítimos que no van a poder resolver correctamente el CAPTCHA por diferentes motivos: ya sea su forma de interactuar con el ordenador, las características de su hardware/software, el entorno en el que se encuentren, etc. Es decir, los CAPTCHAS generan problemas de accesibilidad muy graves ya que impiden a los usuarios legítimos completar procesos que se consideran críticos como suelen ser completar formularios y los propios CAPTCHA por su naturaleza son excepciones recogidas en las WCAG.

Pero antes de demonizar los CAPTCHA, prohibirlos y llenar internet de comentarios de spam indaguemos un poco entre los tipos de CAPTCHA y los problemas de accesibilidad que generan.

Tipos de CAPTCHA

Interactivos

Los CAPTCHA interactivos son aquellos que esperan una respuesta por parte del usuario y según esa respuesta se decide si quien envía el formulario es humano o es bot.

De caracteres

El más tradicional es el basado en caracteres o palabras en el que se nos muestra una imagen con una serie de caracteres más o menos distorsionados que debemos de repetir en el campo del CAPTCHA. Es importante acotar el sistema de escritura de los caracteres y el idioma de las palabras para que no suceda lo que vemos en la figura 1 que el CAPTCHA muestra una palabra escrita en griego que obviamente la mayoría de usuarios no serán capaces de escribir correctamente.

CAPTCHA. Aparecen dos palabras, una en griego y la otra es "Donanne". Las instrucciones del CAPTCHA están en inglés.
Figura 1: Es conveniente que el CAPTCHA esté en el idioma de la página o que al menos use el mismo sistema de escritura.

Inicialmente fue una idea muy efectiva y eficiente. Los bots no sabían cómo resolverlo, incluso aplicando algoritmos de OCR, pero poco a poco se fueron mejorando estos algoritmos y la eficiencia de este tipo de CAPTCHA disminuyó estrepitosamente. Solución: distorsionar aún más los caracteres, aplicar algunos de los principios de la Gestalt sobre la percepción, etc. El resultado fue simplemente un CAPTCHA cada vez más difícil de resolver correctamente para la mayoría de los usuarios. Las personas ciegas no tienen ninguna forma de resolverlos pero es que además las personas con problemas de visión cada vez lo tienen más difícil, al igual que personas con problemas cognitivos como las agnosias visuales o con problemas de aprendizaje. Incluso puede que haya CAPTCHAS de este tipo que no tengan en cuenta las normas sobre contraste de color.

Una evolución de estos CAPTCHA son los que muestran las letras como objetos 3D en los que se define aleatoriamente la orientación de cada carácter. Nuevamente, cuando aparecieron tuvieron una gran efectividad contra los bots que ha ido disminuyendo lentamente. Este tipo de CAPTCHA puede ser especialmente difícil de resolver para las personas con agnosia que afecte a la percepción de las formas y/o a la orientación espacial de los objetos.

Como alternativa para estas personas se desarrolló el CAPTCHA equivalente en formato audio. Aunque equivalente no es por una sencilla razón: la imagen es un medio atemporal mientras que el audio no. Escuchar un audio distorsionado (para que los programas de conversión de voz a texto no puedan funcionar correctamente), identificar los caracteres que nos dictan, retener en memoria esa información y volcarla en el campo adecuado es bastante más complejo a nivel cognitivo que buscar información en una imagen. De hecho por esa razón es divertido buscar a Wally y es muy estresante los ejercicios de listening de los exámenes de certificación de nivel de inglés.

Puzzles lógicos

Los algoritmos en general no suelen pasar algunas pruebas lógicas sencillas, a no ser que se diseñen específicamente para ello. Hay diferentes tipos de CAPTCHAS lógicos como son los de cálculo matemático, puzzles de palabras, tareas espaciales, etc.  Los puzzles lógicos también generan barreras de accesibilidad más allá de las propias de la modalidad sensorial en la que se presenta el CAPTCHA. Por ejemplo, las personas con discalculia  van a tener problemas para resolver CAPTCHAS matemáticos. De hecho, a día de hoy yo uso un CAPTCHA matemático en los comentarios que integra no sé qué plugin y voy a tener que buscar una alternativa más a11y-friendly.

En la web de Hacienda hay, o había, un CAPTCHA de puzzle de palabras. Aparecen cuatro palabras y hay que indicar cuál de las cuatro es diferente del resto. Por ejemplo: PERRO, PELÍCANO, PATATA, PATO. La palabra que desentona es patata porque las otras tres son animales. A priori no parece complejo, pero puede ser una tarea imposible de resolver para personas con diversidad a nivel cognitivo, personas mayores, personas con problemas en el procesamiento del lenguaje, personas que no dominen el castellano, etc. El idioma también es una barrera ya que la mayoría de CAPTCHAS se han desarrollado en inglés.

Identificación de objetos

Estos CAPTCHAS suelen pedir que identifiquemos objetos en un conjunto de imágenes. Seguro que alguna vez has encontrado alguno de estos en los que se te pide marcar las imágenes en las que aparecen semáforos, o identificar características especiales como el CAPTCHA que se muestra en la figura 2. Nuevamente las personas con problemas cognitivos y perceptuales van a tener serias dificultades para resolverlos, pero además también las personas con problemas de motricidad van a tener probablemente problemas debido a la forma en la que se diseña la interacción de estos CAPTCHAS. También es frecuente que este tipo de CAPTCHAS más interactivos se tengan que resolver en un tiempo determinado aumentando el nivel de dificultad y estrés. Por cierto, la WCAG tiene indicaciones claras respecto a tareas con un tiempo limitado.

CAPTCHA, puzzle lógico en un formulario de registro. Aparecen 4 caras de personas, ya sean fotografías o pinturas. La tarea consisten en identificar las caras que llevan gafas. Todo el texto está en inglés.
Figura 2: para resolver este CAPTCHA es necesario que el usuario pueda identificar las caras y además identificar las que llevan gafas. Tarea imposible para ciertas agnosias visuales.

Datos biométricos

Los métodos biométricos no son realmente CAPTCHAS pero son efectivos para identificar a personas concretas y de forma indirecta diferenciarlas de bots. Dependen directamente del hardware que utiliza el usuario. A favor tienen que son métodos seguros, eficaces y que no imponen una carga cognitiva elevada. Su desventaja más evidente es que son métodos de identificación de sujetos y por tanto los usuarios recelosos de su anonimidad pueden rechazar su uso.

Otro problema es que no todo el mundo puede identificarse por los métodos biométricos más comunes y extendidos, incluso tampoco podrían hacerlo con métodos más sofisticados aunque quisieran. Por ejemplo, hay personas que no tienen dedos y no pueden usar un lector de huella digital, incluso hay personas que no tienen huellas digitales. O personas que debido a su limitada movilidad o por alteraciones en la fuerza de los músculos requieran ayuda de una tercera persona para usar los sistemas biométricos. Por tanto, no es un método óptimo.

Métodos no interactivos

Existen métodos alternativos a los CAPTCHA interactivos que no requieren de acciones voluntarias por parte del usuario. Estos métodos no suelen generar barreras de accesibilidad si están bien implementados. Hay varios, pero quiero destacar los honeypots o trampas.

Una trampa es un campo de un formulario que no se muestra al usuario pero que está en el código de la página. El campo puede ser desde un simple campo de texto hasta un CAPTCHA sofisticado para que los bots se entretengan. El resultado es que cuando se envía el formulario los humanos no rellenan el campo trampa pero los bots sí. Esta aproximación si está bien implementada es totalmente transparente al usuario y por tanto sería accesible proporcionando una seguridad adecuada y una usabilidad óptima.

reCAPTCHA

Este método lo desarrolla Google y propone una nueva forma de analizar si el usuario es un bot o un humano a través del análisis de datos recogidos en el navegador como es el movimiento del ratón o las pulsaciones de teclado, configuración del navegador, cookies de Google, etc.  De esta forma reCAPTCHA se reduce a un “simple” checkbox en el que afirmar que el usuario no es un robot. No obstante, este CAPTCHA va acompañado de una política de privacidad por motivos evidentes.

Se considera el CAPTCHA más accesible aunque presenta ciertos problemas si se navega en modo incógnito, si se usa solo el teclado para desplazarse por la web, etc. En estos casos reCAPTCHA no puede determinar que el usuario sea humano y se manda un segundo CAPTCHA más tradicional con sus problemas de accesibilidad. En este caso Google sugiere aplicar otras estrategias como son la autenticación de dos factores, enviar el post/comentario a los moderadores, comparar los resultados con los de usuarios confirmados como humanos, etc.

¿Qué dice la WCAG sobre los CAPTCHA?

En el criterio 1.1.1 sobre contenido no textual (nivel A) dice (aplicando el filtro de mi traducción):

“Todo el contenido no textual que se presenta al usuario tiene una alternativa textual que sirve para el propósito equivalente, excepto en las situaciones que se enumeran a continuación:

CAPTCHA

Si el propósito del contenido no textual es confirmar que el contenido es accedido por una persona y no por un ordenador, se proporcionan alternativas de texto que identifiquen y describan el propósito del contenido no textual, y se ofrecen formas alternativas de CAPTCHA que utilizan modos de presentación para diferentes tipos de percepción sensorial para adaptarse a diferentes discapacidades.”

Aunque se debería proporcionar la misma información en formato texto por el propio objetivo del CAPTCHA esto es totalmente imposible, si la solución de la prueba es accesible para las ayudas técnicas también lo sería para los bots perdiendo totalmente su eficiencia. Por tanto, se exige que se indique en el texto alternativo que se trata de un test para evitar bots y que se proporcione otro tipo de CAPTCHA, si por ejemplo el CAPTCHA es visual se debería proporcionar un CAPTCHA auditivo.

Obviamente esto no es una verdadera solución, como ya hemos visto los CAPTCHAS auditivos no son equivalentes a los visuales por la carga cognitiva que imponen. También hay que recordar que existen personas que tienen discapacidades visuales y auditivas simultáneamente.

Accesibilidad de los tipos de CAPTCHA

La W3C tiene una página en la que se analiza la accesibilidad de los CAPTCHA. En esta nota se deja claro que el documento es un work-in-progress que solo se actualizará a medida que se produzcan innovaciones técnicas en los CAPTCHA. La última actualización es de 2019.

Que los CAPTCHA sean inaccesibles significa que se está impidiendo la participación de las personas con diversidad funcional al mismo nivel que el resto y por tanto, discriminando.

En función de la forma de implementar el CAPTCHA algunas de las diversidades discriminadas son:

  • Visuales: no sólo la ceguera, también los múltiples problemas derivados de la baja visión, también las personas con percepción anómala de los colores.
  • Auditivas: sordera, hipoacusia, tinitus, etc.
  • Cognitivas: el abanico es enorme, problemas de aprendizaje, problemas de lenguaje, agnosias, afasias, trastorno de ansiedad, etc.
  • Motrices: la interactividad debe de implementarse de forma que sea compatible con la forma de navegar y las velocidades de las personas con falta o limitación de la movilidad.
  • Limitaciones técnicas: personas que navegan con hardware viejo o defectuoso, con conexiones limitadas, etc.
  • Personas que no dominen el lenguaje en el que se ha desarrollado el CAPTCHA.

A medida que la tecnología avanza los CAPTCHAS van perdiendo efectividad y es necesario buscar nuevas alternativas. La estrategia de dificultar la resolución de la prueba solo es un parche temporal que excluye a colectivos cuyo nivel de funcionalidad queda por debajo del necesario para resolver exitosamente el test de Turing simplificado.

Recomendaciones

No se pude prohibir el uso de los CAPTCHAS, hay más beneficios que inconvenientes. Pero antes de añadirlo a nuestras webs hay que valorar una serie de puntos.

¿Es necesario añadirlo?

Por ejemplo, no añadir CAPTCHA a los formularios cuando el usuario está logueado en la web. Si es posible añadir un sistema de doble autenticación la seguridad será mayor.

Efectividad del CAPTCHA en cuestión

Los CAPTCHA interactivos tradicionales han perdido mucha efectividad y existen opciones alternativas más efectivas y accesibles. Una vez seleccionada una opción deberemos estar pendientes de noticias respecto a nuevas versiones que puedan mejorar su efectividad.

Limitar el número de veces que el usuario se tenga que enfrentar al CAPTCHA

Si se puede enfrentar una vez mejor que dos. Especialmente si son CAPTCHAS interactivos.

Ofrecer alternativas cuando el CAPTCHA sea interactivo

Si se opta por CAPTCHAS interactivos es obligatorio ofrecer una alternativa a nivel sensorial. Lo recomendable es ofrecer varias alternativas a nivel sensorial, cognitivo y de interacción para que el usuario escoja aquella más adecuada para su nivel de funcionalidad.

Preferencia por CAPTCHAS no interactivos

A mayor interactividad menor accesibilidad. Los CAPTCHAS no interactivos no generan problemas de accesibilidad si funcionan en condiciones óptimas.

Vigilar la intromisión en la privacidad de los usuarios

Algunos CAPTCHAS no interactivos deben analizar y recolectar datos del usuario que permiten su identificación más allá de la distinción entre humano y bot. La protección de la privacidad es sumamente importante de forma que podemos encontrar usuarios que rechacen usar estas opciones.

Proporcionar otras opciones de seguridad

Moderar manualmente los comentarios, ofrecer un servicio de atención que bajo solicitud envie al usuario el formulario sin CAPTCHA, etc. Ser creativos en las medidas que se toman siempre que sean prácticas en la realidad del sitio web en cuestión.

Escuchar el feedback de los usuarios

Esta es la recomendación más importante y efectiva respecto a la accesibilidad. Es importante proporcionar vías de contacto exclusivas para cuestiones de accesibilidad como ya estamos haciendo con las cuestiones de protección de datos y privacidad.


Comentarios

4 respuestas a «Accesibilidad web y los CAPTCHA»

  1. Genial este artículo, una buenísima referencia del “State of the Art”, me lo apunto como manual de referencia! Gracias!

    1. Avatar de Vicent Sanchis
      Vicent Sanchis

      ¡Gracias Raul! En realidad estaba preparando otro artículo y ya sabes, empiezas a leer, a seguir enlaces y acabas escribiendo sobre otra cosa jeje.

  2. Genial artículo.

    Otra cosa que se puede hacer es crear un campo oculto y ponerle una condición para que si alguien lo rellena, no se envíe el formulario. La mayoría de bots verán ese campo en el html y lo rellenarán con contenido random, aunque sí que hay bots que lo detectan y no lo rellenan o prueban a rellenarlo.

    1. Avatar de admin

      Muchas gracias Lolo!

      Sí, los campos trampa son una buena alternativa. Evidentemente a medida que se popularice su uso los bots aprenderán a saltárselo. Lo razonable es probar este sistema y moderar los formularios que llegan de usuarios no conocidos. Si el % de bots es bajo perfecto, si va subiendo entonces habrá que buscar una alternativa.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *