Cómo notificar de forma apropiada un error en una aplicación o servicio

A la hora de mejorar y mantener un producto software los desarrolladores utilizan el feedback proporcionado por los usuarios a través de lo que se conoce como bug report o feedback report. Un bug report es un mensaje de un usuario al desarrollador indicando que hay un problema en una aplicación.

Este mensaje se puede enviar a través de correo electrónico, mediante una plataforma web de gestión de errores, a través de chat o a través del canal que el desarrollador haya proporcionado para la comunicación con los usuarios.

Un bug report efectivo

En muchas ocasiones los reportes de error enviados por los usuarios son totalmente inútiles y poco efectivos ya que se limitan a mensajes del tipo la app no funciona. Es evidente que si se envía un reporte de error es porque el usuario ha encontrado que algo no funciona pero los desarrolladores, por ahora, no podemos leer el pensamiento de los usuarios por lo que es necesario dar más detalles sobre qué no funciona para encontrar respuesta a la pregunta de por qué no funciona y cómo hace el usuario para que no funcione ya que los desarrolladores antes de publicar sus aplicaciones realizan multitud de pruebas de uso y puede que conocer cómo utilizan su aplicación otras personas les permita mejorar el uso de la misma.

Además, decir que la app no funciona es algo muy general. Una app pequeña tiene entre 4 y 15 pantallas por lo que es de agradecer un poco más de información.

Qué incluir en un reporte de error

A la hora de enviar un reporte de error es muy recomendable incluir los siguientes apartados:

Descripción breve del problema

En un par de párrafos describir qué error sucede. Se recomienda incluir el nombre de la aplicación, en qué pantalla sucede y cómo llegó a esa pantalla.

Paso a paso

Incluir una lista de pasos desde que se abre la aplicación hasta que se obtiene el error o el comportamiento no esperado.

También se debe incluir un paso indicando que se activa el lector de pantallas, el magnificador o cualquier otro producto de apoyo que se esté utilizando ya que a veces los errores sólo suceden con un producto de apoyo.

Además, si el producto de apoyo o la aplicación tiene alguna personalización o ajuste especial que provoque el problema también es necesario indicarlo.

Resultados esperados y resultados obtenidos

Este apartado sirve para indicar qué esperaba el usuario que sucediese y qué es lo que sucede realmente. A veces el problema no es de software sino de lenguaje empleado. El usuario entendió que debería pasar una cosa pero el desarrollador no se explicó bien en el manual o las instrucciones en la aplicación. Este tipo de informes de error permiten solucionar este tipo de problemas de malentendidos o para comprender qué experiencia de uso tienen los usuarios ante ciertas situaciones provocadas por sus aplicaciones.

Los resultados esperados y resultados obtenidos suelen ser un par de párrafos describiendo ambos elementos.

Observaciones

Este apartado suele ser un texto beve donde el usuario puede aportar más información sobre, por ejemplo, si está utilizando el dispositivo con una configuración determinada (por ejemplo un iPhone configurado en Español de USA con modo oscuro y con auriculares), el modelo de su dispositivo o si tenía algún dispositivo más conectado.

Adjuntos al reporte

Adjunto al reporte de errores es recomendable incluir un adjunto con un informe de comportamiento o fichero de log que permita al desarrollador ver el comportamiento interno de la aplicación cuando sucedía el problema.

Si el apartado de paso a paso es muy detallado no es necesario incluir ningún adjunto a menos que el problema lo tenga un usuario en concreto y pueda ser por una configuración muy concreta o un fallo colateral en ese dispositivo concreto. Estos ficheros de log permiten encontrar esa información tan concreta que no es evidente ni para el usuario ni para el desarrollador. 

En la mayoría de ocasiones se piden estos ficheros en una segunda comunicación sólo si el desarrollador no ha podido reproducir el problema reportado por el usuario y tras seguir el paso a paso indicado.

Siempre con educación

Es algo que puede parecer evidente cuando nos comunicamos con otra persona pero es algo que muchas veces se olvida. Si un usuario espera que otra persona atienda a su mensaje con buena disposición es necesario un trato cordial y sin caer en insultos o palabras despectivas hacia la persona que desarrolla el software, su inteligencia o su progenie.

En varias ocasiones he desechado o ignorado reportes de error por estar mal estructurados, no aportar información suficiente o utilizar un lenguaje inapropiado. Y como yo conozco a muchos desarrolladores que hacen lo mismo ya que se considera que ese tipo de feddback no es beneficioso para el software.

Buscando el entendimiento

A veces también hay un problema de comunicación entre el usuario y el desarrollador por el lenguaje empleado. Puede que el usuario no sepa hablar francés y el desarrollador no sepa hablar japonés. En estos casos siempre es recomendable utilizar un idioma neutral, siendo el más común en el desarrollo de software utilizar inglés, y utilizando una herramienta de traducción incluir dentro del texto un aviso indicando que la persona habla en un idioma concreto y que este texto ha sido traducido al inglés gracias a una herramienta de traducción. Esto permite a ambas partes estar atentos a posibles malentendidos a causa de un error en la traducción.

Encuesta sobre tecnologías y herramientas sobre orientación y guiado para personas ciegas

Se ha publicado una encuesta dirigida a personas ciegas y con baja visión para recoger información sobre necesidades, opiniones y experiencias para el correcto desarrollo de una herramienta tecnológica que ayude a las personas ciegas en el guiado y orientación en su entorno.

El propio cuestionario se presenta con el siguiente texto:

El presente cuestionario pretende conocer las preferencias de los usuarios hacia un posible dispositivo de orientación y guiado que pudiera complementar a los auxiliares de movilidad que utilizan las personas ciegas o con baja visión.
Consta de 18 preguntas, en la mayoría se debe elegir una sola respuesta, en otras se puede escoger mas de una respuesta y en otras un cuadro de edición nos permitirá exponer nuestra opinión. Gracias por colaborar.

Es interesante disponer de esta encuesta para poder recoger la opinión y la experiencia de personas ciegas hispanohablantes ya que aunque esta no es la primera encuesta de este tipo que aparece por la red si es la primera que no está en inglés.

Si eres una persona ciega o con baja visión puedes participar en la encuesta de orientación y guiado para personas ciegas.

Agregar descripciones alternativas en las imágenes compartidas por Slack

El compartir una imagen con un diagrama, una captura de pantalla o algo que nos llame la atención es algo muy común en Internet. Pero esta práctica puede crear problemas de accesibilidad importantes ya que si la imagen no resulta accesible las personas que no puedan acceder a la información visual quedarán fuera del mensaje.

Este problema es aún más grabe cuando el hecho de una imagen sin accesibilidad aparece en una herramienta de comunicación en el trabajo como es el cliente de mensajería instantánea Slack.

Para hacer que una imagen sea accesible es necesario que dicha imagen posea una descripción alternativa en texto.

Para escribir una buena descripción alternativa para una imagen hay muchas reglas, trucos y consejos. En la revista ASEPAU escribí un artículo para escribir buenas descripciones alternativas para imágenes.

Agregar una descripción alternativa paso a paso

En la propia documentación de Slack para accesibilidad de las imágenes se proporciona información para poder escribir una descripción alternativa en una imagen adjuntada a un mensaje de Slack.

  1. Para adjuntar la imagen simplemente debemos pegarla dentro del campo de texto donde escribimos un nuevo mensaje.
  2. Una vez añadida la imagen aparecerá una representación de la imagen dentro del campo de mensaje. Deberemos hacer click en la representación de la imagen y luego en la opción Editar detalles del archivo
  3. Encontraremos en el popup que aparece un campo para describir la imagen
  4. Por último pulsamos el botón de Guardar cambios y procedemos a enviar nuestro mensaje

Incluso podemos añadir la descripción a la imagen de un mensaje ya enviado. Simplemente debemos pulsar el icono con tres puntos suspensivos (…) y seleccionar la opción de Editar detalles del archivo.

Utilizando un lector de pantallas

Las instrucciones anteriores se realizan utilizando un ratón u otro dispositivo apuntador pero para usuarios de lector de pantallas también es posible utilizar estas opciones.

  1. Copiamos nuestra imagen en el explorador de archivos y la pegamos en el cuadro de edición de un nuevo mensaje
  2. Una vez añadida la imagen podemos pulsar una vez la tecla tabular para saltar al siguiente control o explorar con las funciones de nuestro lector de pantallas hasta encontrar un botón llamado Ver vista previa de la imagen
  3. Pulsando en ese botón se desplegará un menú que podemos recorrer pulsando la tecla tab hasta llegar a la opción de Editar detalles del archivo
  4. Pulsando en ese botón de editar detalles del archivo llegaremos al cuadro para incluir la descripción para nuestra imagen

Esta operación ha sido probada con VoiceOver para MacOS, NVDA, JAWS y Narrador para Windows 11 y en todos los casos ha sido posible realizar la operación utilizando el salto por tabulación y las adaptaciones a la navegación de la interfaz proporcionadas por el equipo de accesibilidad de Slack

Actualizado el script de VoiceOverTranslator

El script de AppleScript de VoiceOverTranslator ha sido actualizado incluyendo un script extra que nos permite traducir el contenido que tengamos almacenado en el portapapeles.

Ahora podemos selecciona un bloque de texto completo y utilizando las funciones de la API de GoogleTrans obtener una traducción a nuestro idioma preferido.

Puedes obtener estos dos scripts en el repositorio de Tyflos Accessible Software para VoiceOverTranslator.

Cómo utilizar Talkback en el emulador de Android

En un artículo anterior hemos visto cómo utilizar el emulador de Android para poder simular el comportamiento de un dispositivo Android dentro de nuestro ordenador.

Uno de los problemas del emulador de Android es que por defecto no vienen instalados todas las aplicaciones y servicios que se incluyen en un teléfono Android. Entre estos servicios están los servicios de accesibilidad como TalkBack. Pero esto no es problema ya que podemos instalar TalkBack en nuestro emulador de Android para poder probar la accesibilidad del proyecto que estemos realizando o para poder disfrutar de algunas experiencias de Android a través de su emulador.

Instalación del APK

Lo primero que debemos hacer es descargar el APK de TalkBack. Este fichero se puede descargar de la Google PlayStore y su nombre completo es com.google.android.marvin.talkback.apk.

El APK es un fichero comprimido que contiene todos los recursos que requiere una aplicación Android para ser ejecutada en un dispositivo Android.

Una vez descargado el fichero APK debemos arrancar el emulador para que ADB pueda detectarlo ya que realizaremos la instalación a través de ADB.

Podemos mostrar qué dispositivos están conectados a nuestro ordenador con el siguiente comando:

adb devices

Cuando el emulador esté disponible y ADB lo detecte podemos proceder a la instalación del APK con el siguiente comando:

adb install com.google.android.marvin.talkback.apk

Si ADB indica que no se ha encontrado el fichero es porque debemos indicar la ruta concreta o ejecutar el comando ADB en la misma carpeta donde guardamos la descarga del APK. Por ejemplo una versión con ruta completa de este comando sería:

adb install /Users/MiUsuario/Downloads/com.google.android.marvin.talkback.apk

Solucionando problemas con servicios y permisos

En Android es necesario que aplicaciones y servicios tengan permiso del usuario para realizar ciertas tareas. Un lector de pantallas, al igual que otros servicios de accesibilidad, requieren de permisos de alto nivel para poder funcionar. Por defecto al instalar un APK no se otorgan estos permisos por lo que debemos aprobar este nivel de acceso para TalkBack.

Podemos realizar esta operación con el siguiente comando de ADB:

adb shell settings put secure enabled_accessibility_services com.google.android.marvin.talkback/.TalkBackService

Arrancando el servicio de accesibilidad

Ahora que tenemos TalkBack instalado en el dispositivo virtual de Android y tiene permisos para ejecutarse debemos activar TalkBack en nuestro dispositivo emulado. Para ello deberíamos ir a los ajustes de Android, accesibilidad y activar TalkBack pero realizar esta operación no es posible si eres un usuario con discapacidad ya que el emulador no ofrece todavía una experiencia accesible.

Por suerte para los usuarios con discapacidad desde ADB también podemos activar y arrancar aplicaciones y servicios en nuestro dispositivo Android. Con el siguiente comando activaremos el servicio de accesibilidad de TalkBack:

adb shell am startservice com.google.android.marvin.talkback/.TalkBackService

Una vez ejecutado el siguiente comando TalkBack debería comenzar a hablar en el emulador. Verifica que el volumen del emulador es suficiente para escuchar la síntesis de voz de TalkBack.

Utilizar TalkBack en el emulador

Para controlar TalkBack en el emulador deberemos utilizar los atajos de teclado de TalkBack como vimos en el artículo sobre cómo utilizar TalkBack con el teclado.

Utilizar Talkback con teclado

En Android existen varias herramientas de asistencia tanto oficiales como de terceros. Una de estas herramientas oficiales es Talkback, el lector de pantallas para Android. Este lector de pantallas viene instalado por defecto en muchas versiones de Android y se puede encontrar en la Playstore de Google.

Talkback, además de mediante gestos en una pantalla táctil, se puede controlar mediante un teclado físico conectado al dispositivo Android. Para ello lo primero que debemos hacer es conectar un teclado inalámbrico al dispositivo.

Hot-key para Talkback

Los lectores de pantalla que son compatibles con el uso mediante teclado suelen utilizar una tecla o conjunto de teclas para sus atajos de teclado. Por ejemplo en VoiceOver son las teclas Control+Opción, NVDA y Jaws utilizan la tecla Insert y Narrador utiliza la combinación Control+Windows. Estas teclas o combinaciones de teclas se conocen como la hot-key del lector de pantallas.

En el caso de Talkback es la tecla Alt. Esto significa que la mayoría de atajos y combinaciones de teclas para manejar Talkback desde un teclado utilizarán la tecla Alt. Esto implica que el teclado que vayamos a utilizar en nuestro dispositivo Android debe incluir, al menos, la tecla Alt.

En las versiones más modernas de Talkback podemos cambiar la hot-key de Talkback por otra tecla que nos resulte más idónea. Para hacer esto dentro de los ajustes de Talkback hay que entrar en configuración avanzada, buscar la sección Combinaciones de teclas. Allí se ha de activar la opción seleccionar tecla modificadora.

Mapas de teclas para Talkback

Talkback ofrece en sus ajustes de configuración la posibilidad de utilizar dos conjuntos de atajo de teclado distintos. Son el mapa de teclas predeterminado y el mapa de teclas clásico. Para este artículo utilizaremos el predeterminado que es el que viene seleccionado por defecto. Además el mapa de teclas clásico no incluye todas las funciones de control de Talkback desde teclado. Por ejemplo, sólo el mapa predeterminado incluye atajos de teclado para navegar de forma más eficiente en contenidos web utilizando Talkback.

Navegación por la pantalla

A la hora de mover el foco de Talkback por la pantalla del escritorio o por una aplicación nativa debemos utilizar las siguientes combinaciones de teclas:

  • Ir al siguiente elemento: Alt+flecha derecha
  • Ir al elemento anterior: Alt+flecha izquierda
  • Ir al elemento superior: Alt+flecha arriba
  • Ir al elemento inferior: Alt+flecha abajo
  • Ir al primer elemento: Alt+Control+flecha izquierda
  • Ir al último elemento: Alt+Control+flecha derecha
  • Ir a la siguiente ventana: Alt+Control+flecha abajo
  • Ir a la ventana anterior: Alt+Control+flecha arriba
  • Hacer click sobre el elemento focalizado: Alt+enter
  • Hacer un click largo o mantenido sobre el elemento focalizado: Alt+Mayúsculas+enter

Explorando texto

También existen combinaciones para poder leer con más detalle el texto que encontremos por la pantalla.

  • Ir a la palabra siguiente: Alt+Control+Mayúsculas+flecha derecha
  • Ir a la palabra anterior: Alt+Control+Mayúsculas+flecha izquierda
  • Ir al carácter siguiente: Alt+Mayúsculas+flecha derecha
  • Ir al carácter anterior: Alt+Mayúsculas+flecha izquierda

Teclas globales

En Android en la parte inferior de la pantalla existen 3 teclas de acción global. Desde el teclado también tenemos acceso a esta funcionalidad.

  • Atrás: Alt+tecla de borrar o retroceder
  • Inicio: Alt+Control+h
  • Aplicaciones recientes: Alt+Control+r
  • Ir a las notificaciones: Alt+Control+n
  • Reproducir/pausar contenido multimedia: Alt+Mayúsculas+espacio

Control de lectura o rotor

En Talkback no existe el rotor de VoiceOver pero si algo muy parecido llamado control de lectura. Podemos utilizar el control de lectura de Talkback mediante los siguientes atajos de teclado:

  • Activar el siguiente control de lectura: Alt+Control+Mayúsculas+flecha abajo
  • Activar el anterior control de lectura: Alt+Control+Mayúsculas+flecha arriba
  • Ajustar el control de lectura al valor anterior: Alt+Mayúsculas+flecha arriba
  • Ajustar el control de lectura al valor siguiente: Alt+Mayúsculas+flecha abajo

Acciones de Talkback

También podemos activar ciertas acciones específicas de Talkback mediante el teclado:

  • Mostrar menú de Talkback: Alt+espacio
  • Mostrar acciones de Talkback: Alt+Control+espacio
  • Buscar un elemento en la pantalla: Alt+Control+/
  • Mostrar idiomas instalados: Alt+Control+l

Lectura de la pantalla

Con Talkback podemos automatizar el proceso de lectura de toda la pantalla. Para ello, además de los gestos específicos, tenemos las siguientes combinaciones de teclas:

  • Leer desde el principio de la pantalla: Alt+Control+enter
  • Leer desde el elemento focalizado: Alt+Control+Mayúsculas+enter

Navegación en Chrome

Con el mapa predeterminado se incluyen algunas combinaciones de teclas para Talkback para agilizar la lectura de una página web:

  • Ir al botón siguiente: Alt+b
  • Ir al botón anterior: Alt+Mayúsculas+b
  • Ir al botón de verificación siguiente: Alt+x
  • Ir al botón de verificación anterior: Alt+Mayúsculas+x
  • Ir al cuadro combinado siguiente: Alt+z
  • Ir al cuadro combinado anterior: Alt+Mayúsculas+z
  • Ir al cuadro de texto siguiente: Alt+e
  • Ir al cuadro de texto anterior: Alt+Mayúsculas+e
  • Ir al gráfico siguiente: Alt+g
  • Ir al gráfico anterior: Alt+Mayúsculas+g
  • Ir al encabezado siguiente: Alt+h
  • Ir al encabezado anterior: Alt+Mayúsculas+h
  • Ir al encabezado de nivel 1 a 6 siguiente: Alt+1 al 6
  • Ir al encabezado de nivel 1 a 6 anterior: Alt+Mayúsculas+1 al 6
  • Ir al enlace siguiente: Alt+l
  • Ir al enlace anterior: Alt+Mayúsculas+l
  • Ir a la lista siguiente: Alt+o
  • Ir a la lista anterior: Alt+Mayúsculas+o
  • Ir a la tabla siguiente: Alt+t
  • Ir a la tabla anterior: Alt+Mayúsculas+t