Escribir matemáticas en la Web de forma accesible con MathML

En muchos contenidos de la Web nos encontramos formulas matemáticas que bien están dibujadas en una imagen o bien se escriben maquetando y estructurando los distintos elementos de una fórmula matemática atendiendo a su posición en el papel y no a su significado matemático. Todo esto provoca multitud de problemas de accesibilidad que dificultan la lectura de contenidos matemáticos en la Web. Para solucionar este problema el W3C definió MathML.
MathML, abreviatura de Mathematical Markup Language, es un lenguaje de marcado basado en XML diseñado específicamente para representar expresiones matemáticas y notaciones en documentos web. MathML fue desarrollado por el W3C (World Wide Web Consortium) y es una parte integral del conjunto de estándares web para facilitar la inclusión de contenido matemático en las páginas web de manera semántica y accesible.

Se pueden encontrar multitud de beneficios al usar MathML en la Web:

  • Consistencia: Proporciona una forma estandarizada de presentar matemáticas en la web, asegurando que las fórmulas se vean de la misma manera en diferentes navegadores y dispositivos.
  • Escalabilidad visual: Las expresiones matemáticas en MathML se escalan correctamente cuando se ajusta el tamaño de texto en el navegador, manteniendo su legibilidad.
  • Accesibilidad: proporciona compatibilidad con los productos de apoyo como lectores de pantalla provocando que las fórmulas matemáticas apliquen reglas de lectura específicas facilitando a las personas ciegas una lectura más comprensible de fórmulas y textos matemáticos.
  • Interacción Mejorada: Permite la creación de contenido interactivo donde las fórmulas pueden ser manipuladas o calculadas dinámicamente, lo que es particularmente útil en plataformas educativas.
  • Compatibilidad con Herramientas de Edición: Muchas herramientas de edición y procesamiento de documentos científicos soportan MathML, lo que facilita la importación y exportación de contenido matemático entre diferentes plataformas.

Implementación y Compatibilidad
La implementación de MathML puede variar entre diferentes navegadores web. Mientras que navegadores como Firefox y Safari ofrecen soporte nativo para MathML, otros como algunas versiones de Chrome, Brave u Opera pueden requerir complementos o bibliotecas adicionales como MathJax para un soporte completo. MathJax es una popular biblioteca JavaScript que ayuda a renderizar MathML (y otras notaciones matemáticas como LaTeX) de manera consistente en todos los navegadores.
Lo habitual es que si el navegador soporta HTML5 en todas sus versiones el contenido en formato MathML se pueda visualizar correctamente aunque haya algunos problemas de estilo CSS.

Ejemplo básico

A continuación veremos un ejemplo básico sobre cómo se ve el código de MathML y cómo lo lee el navegador web. Vamos a realizar una operación matemática básica: calcularemos la suma de 3 y 6 que debe dar un resultado de 9.

El resultado en MathML es:

3+6=9

Y su código en MathML es el siguiente:

<math display="block">
  <mrow>
    <mn>3</mn>
    <mo>+</mo>
    <mn>6</mn>
    <mo>=</mo>
    <mn>9</mn>
  </mrow>
</math>

La gramática de MathML es muy parecida a la que se utiliza en HTML5 por lo que no supone un aprendizaje pesado y los beneficios merecen mucho la pena. En futuros artículos aprenderemos a utilizar MathML con más profundidad.

¿Cómo notificar errores y enviar sugerencias a OpenAI sobre ChatGPT y el resto de sus servicios?

La empresa OpenAI es la creadora de diversos servicios de Inteligencia artificial generativa. El más conocido es Chat GPT.

Muchos de sus productos son librerías para ser utilizadas a través de otras aplicaciones. Esto se conoce como API. Pero también OpenAI proporciona productos que muestran una interfaz de usuario como es el caso de Dall-e o Chat GPT. En estos productos se pueden encontrar problemas de accesibilidad u otro tipo de problemas.

Para obtener ayuda de los diversos productos de OpenAI está el centro de ayuda. Desde esta página del centro de ayuda se puede acceder al servicio de soporte de OpenAI. Este servicio consiste en un chat con un agente del servicio de soporte de OpenAI. Por ahora, estas personas sólo hablan inglés por lo que toda la comunicación debe ser realizada en este idioma.

Desde el chat de soporte podemos notificar errores de accesibilidad y compartir sugerencias para mejorar los distintos productos y servicios que ofrece OpenAI.

El botón para acceder al chat se encuentra al final de la página web del centro de ayuda. Cuando se pulsa el chat nos aparecerá un marco con toda la interfaz del servicio de atención al cliente. Deberemos buscar el botón para enviar una pregunta al servicio técnico de OpenAI.

Evitar la apertura automática de menús en MacOS Sonoma con VoiceOver

Desde MacOS Sonoma 14.1 se incluyó un cambio en el comportamiento en la navegación de VoiceOver por las opciones de la barra del menú del sistema. En versiones anteriores el usuario de VoiceOver pulsaba VO+M para acceder a la barra de menú y pulsando la primera inicial del menú que el usuario quería abrir VoiceOver lo focalizaba y lo abría sin problemas.

Con el cambio a Sonoma se priorizó el comportamiento con puntero de ratón provocando que cuando un menú se focaliza este se despliega automáticamente. Esto provocó que la velocidad de navegación entre menús para usuarios experimentados de VoiceOver bajase provocando una merma en la productividad del usuario.

Entendiendo el problema

Este problema se produce porque por defecto el cursor del puntero del ratón sigue al foco de VoiceOver. En versiones anteriores el menú no se desplegaba porque detectaba antes el foco de VoiceOver y la presencia del puntero del ratón no provocaba la apertura del menú.

Con los cambios en Sonoma el puntero del ratón tiene más prioridad en los elementos visuales de la interfaz y los menús se comportan de la misma forma ante la presencia del puntero del ratón sin tener en cuenta si VoiceOver o Zoom se están ejecutando en ese momento.

Una posible solución

Podemos configurar VoiceOver para que el puntero del ratón no siga al foco de VoiceOver. De esta forma evitaremos que los menús se desplieguen al explorarlos con el foco de VoiceOver.

Para cambiar esta configuración debemos abrir la ventana de configuración de VoiceOver pulsando VO+F8, a continuación ir a la categoría Navegación y en ella modificar la opción de Puntero del ratón para que tenga el valor Ignora el cursor de VoiceOver.

Con este cambio en la configuración de VoiceOver podremos volver al comportamiento anterior.

Si necesitamos que el puntero del ratón salte a la posición del foco de VoiceOver sólo debemos pulsar VO+Comando+F5 y si queremos que el foco de VoiceOver salte a la posición del ratón debemos pulsar VO+Mayúsculas+F5.

¿Cómo enviar informes de error y sugerencias de Ray-ban Meta para mejorar su uso?

Las gafas inteligentes Meta Ray-ban se han convertido en un dispositivo de asistencia para personas ciegas. Aunque el dispositivo no se ha diseñado como producto de asistencia para personas con discapacidad resulta de utilidad el poder utilizar los micrófonos y la cámara junto con la inteligencia artificial que proporciona Meta a este dispositivo para que una persona ciega pueda resolver situaciones o dudas visuales consultando qué hay delante de la persona que está utilizando estas gafas inteligentes.

Aunque este tipo de utilidad utilizando Inteligencia Artificial ya está disponible utilizando un teléfono Android o un iPhone la posibilidad de tener las dos manos libres y utilizar comandos de voz de forma rápida hacen que el uso de unas gafas inteligentes con cámara sean un buen candidato de producto de apoyo para personas ciegas.

Fronteras lingüísticas y comerciales

Aunque estas gafas están a la venta en varios países e incluso se pueden adquirir a través de la tienda on-line de Ray-ban el acceso a los servicios de Inteligencia artificial de Meta no está en todos los países. A fecha de Junio de 2024 el servicio de Meta-AI sólo está disponible para Estados Unidos de America y Canadá.

Además, aunque podemos solicitar mediante comandos de voz que nos hable la respuesta a la consulta que le hagamos en el idioma de nuestra preferencia si hay que indicar que todas las preguntas y las funciones de dictado de mensajes o consulta de contactos se realizan con soporte en inglés y parcialmente en francés o italiano. 

Conexión a Internet a través de nuestro teléfono

Las Meta Ray-ban necesitan de conexión a Internet tanto para compartir los videos y fotografías así como para acceder a la inteligencia artificial de Meta. Para ello es necesario instalar la app Meta view en el teléfono.

Enviando informes de error y sugerencias

Una vez nos hayamos registrado en la aplicación Meta View podemos utilizar el servicio de ayuda incorporado en esta aplicación para acceder al formulario de ayuda.

Para ello, una vez abierta la aplicación Meta view debemos ir a la sección de Configuración, cuyo botón está situado en la parte inferior derecha de la pantalla.

Tras acceder a la sección de configuración deberemos deslizar la pantalla hacia abajo (con tres dedos de abajo a arriba si utilizamos VoiceOver) para que se listen todas las opciones disponibles en la sección de configuración.

Dentro de estas opciones encontraremos la opción Ayuda y asistencia, y dentro de este menú de ayuda podemos acceder al formulario mediante la opción Informar de un problema.

Al entrar en esta opción nos ofrece distintas categorías para notificar un error o enviar una sugerencia. Por ejemplo, para solicitar que mejoren la accesibilidad de la aplicación Meta view habría que elegir la categoría Meta view. Para notificar un problema de comportamiento de las gafas habría que seleccionar la categoría Hardware de las gafas y para enviar sugerencias para que incluyan el español o que ofrezcan Meta-AI en Europa o America Latina habría que elegir la categoría Otras.

Dependiendo de la categoría seleccionada se nos ofrecerán distintas opciones. Por ejemplo, si queremos solicitar que las Ray-ban Meta soporten los comandos en español habría que elegir la categoría Otras y seleccionar la opción Solicitud de función.

Los usuarios podemos mejorar un producto

Aunque Meta tiene su hoja de ruta para mejorar este producto y los servicios que lo acompañan los usuarios del producto podemos enviar informes de error y sugerencias para que, por ejemplo, el producto vaya mejorando a nuestra satisfacción. Por ejemplo, solicitando que se incluya el español entre las opciones para hablar y escuchar a las gafas, que mejoren la accesibilidad de la aplicación o que se pueda personalizar el botón de tomar fotografía para otra opción más útil para una persona ciega o con otro perfil. Siempre es recomendable hacer el informe de error de forma apropiada y explicar lo mejor posible la sugerencia y quienes se benefician con esa nueva característica.

Meta y Ray-ban han creado un producto útil para muchas personas pero los usuarios podemos hacer que el producto sea aún más útil.

Uso de hints en las interfaces de usuario

Al diseñar una interfaz de usuario la mahyor parte del peso de comunicación entre la interfaz y el usuario es a través del canal visual. Mediante un vistazo a una pantalla se puede intuir cómo utilizar ciertos elementos de la interfaz. Pero como no todas las personas tienen la misma capacidad de intuición ni la misma posibilidad de echar un vistazo a la pantalla debemos hacer uso de los distintos elementos de accesibilidad para hacer que la misma interfaz de usuario sea comprensible y usable para todas las personas.
A veces el uso de un control sólo se puede entender de forma visual como puede ser un interruptor deslizante para seleccionar un elemento más a la izquierda o más a la derecha, un botón de 3 estados o un cuadro de edición auto completable que permite realizar ciertas operaciones mientras se edita ese campo. En todos esos casos las personas con discapacidad visual pueden encontrar problemas a la hora de entender cómo utilizar dicho control. Para ayudar a este perfil de usuario la capa de accesibilidad permite incluir al control un texto de ayuda para entender cómo utilizar el control. Es lo que se conoce como hint o pista.

¿Qué son los Hints de Accesibilidad?

Los hints de accesibilidad son textos adicionales que proporcionan información contextual sobre un control de interfaz. Para los usuarios de lectores de pantalla. Estos hints pueden ser la diferencia entre una experiencia fluida y una frustrante. Por ejemplo, en una aplicación de banca móvil, un botón que simplemente dice «Enviar» podría no ser suficiente. Un hint podría agregar: «Enviar transferencia bancaria», proporcionando un contexto claro y específico.
Otro ejemplo podría ser un botón de tres estados cuyo hint podría indicar «pulse este botón para cambiar entre aceptado, pendiente y rechazado para actualizar el estado del pedido».

Implementación de Hints en Diferentes Plataformas

iOS

En iOS, los hints de accesibilidad se implementan utilizando el atributo accessibilityHint. Este atributo permite a los desarrolladores definir una cadena de texto que será leída por VoiceOver, el lector de pantallas de Apple, al final de toda la información del control.

Por ejemplo, un botón que tiene un icono de lápiz para editar puede no ser claro para todos los usuarios, pero al añadir un AccessibilitHint con el valor «Pulsa dos veces para modificar el valor de este campo»”, se proporciona la información necesaria para el usuario.

Android

En Android, los hints de accesibilidad se consiguen con el atributo android:hint en el fichero XML de la actividad. Este hint proporciona una descripción de lo que un control hace o lo que se espera que el usuario haga con él. Por ejemplo, un campo de entrada de texto puede tener un hint como “Introduce tu nombre completo”, lo cual es leído por TalkBack (el lector de pantalla de Android) para guiar al usuario.

HTML

En HTML, los hints se implementan con los atributos aria-description y aria-describedby.

El atributo aria-description proporciona una descripción directa del elemento, mientras que aria-describedby hace referencia a otro elemento en la página que contiene una descripción más detallada. Por ejemplo, un botón de búsqueda podría tener un aria-description=»Use este botón para buscar en todo el sitio web», y aria-describedby podría apuntar a un párrafo cercano al campo de búsqueda que explique cómo funciona la búsqueda en el sitio web.

Importancia de los Hints en la Accesibilidad

Estos atributos impactan en la accesibilidad de la interfaz de la siguiente forma:

  1. Claridad y Contexto: Los hints proporcionan información adicional que ayuda a los usuarios a entender la función de un control. Esto es especialmente importante para controles que solo tienen iconos o textos ambiguos.
  2. Mejora de la Usabilidad: Al proporcionar instrucciones claras sobre cómo utilizar un control, se mejora la usabilidad de la aplicación o sitio web, haciendo que la experiencia sea más intuitiva y menos frustrante para los usuarios con discapacidades visuales.
  3. Inclusión: Al implementar hints de accesibilidad, los desarrolladores están tomando pasos activos hacia la inclusión digital, asegurándose de que sus productos sean utilizables por el mayor número posible de personas.

Problemas Comunes con los Hints

A pesar de su importancia, los hints de accesibilidad no están exentos de problemas. Algunos de los desafíos más comunes incluyen:

  1. Hints Redundantes: A veces, los desarrolladores añaden hints que repiten información que ya está clara en el contexto visual, lo que puede resultar en una sobrecarga de información para el usuario de un lector de pantalla. Por ejemplo, un botón con un texto visible “Buscar” no necesita un hint adicional que diga “Botón de búsqueda”.
  2. Falta de Actualización: Los hints pueden volverse obsoletos si no se actualizan junto con cambios en la interfaz. Esto puede llevar a confusión si un hint describe una funcionalidad que ya no existe o que ha cambiado.
  3. Hints Incompletos: No proporcionar suficiente información es otro problema. Un hint demasiado breve puede no dar el contexto necesario. Por ejemplo, un hint que solo dice “Enviar” sin más detalles podría no ser útil en una aplicación con múltiples funcionalidades de envío.
  4. Uso Incorrecto de los Atributos: En HTML, confundir aria-description con aria-describedby puede llevar a que los usuarios de lectores de pantalla no reciban la información adecuada. Es crucial usar cada atributo de forma correcta para asegurarse de que la información se transmite adecuadamente.
  5. Problemas de personalización del lector de pantallas: algunos usuarios ciegos deshabilitan la lectura de estos elementos para dar mayor agilidad a su experiencia de uso. Esto implica que en el hint sólo se debe incluir la información relacionada con el control para evitar que el usuario pierda información vital de otra parte de la interfaz.

Buenas Prácticas para el Uso de Hints

Para maximizar la efectividad de los hints de accesibilidad, es importante seguir algunas buenas prácticas:

  1. Ser Claro y Conciso: Proporcionar descripciones claras y directas que sean fáciles de entender. Evitar la jerga técnica y centrarse en el propósito del control.
  2. Actualizar Regularmente: Asegurarse de que los hints se actualizan junto con cualquier cambio en la interfaz de usuario para evitar descripciones obsoletas.
  3. Consistencia: Mantener una terminología y un estilo consistentes en todos los hints para evitar confusión.
  4. Seguir los estilos definidos en la guía de interfaces del fabricante: Apple y Google tienen recomendaciones sobre el estilo de lenguaje a emplear en los hints.

Activar las actualizaciones beta en MacOS

La compañía Apple todos los veranos comienza su proceso de betatesting para sus distintos sistemas operativos. De esta forma puede recibir sujerencias y notificaciones de mejora antes que los nuevos sistemas operativos salgan al mercado

Dentro de este proceso de beta testing hay una línea para desarrolladores registrados en su plataforma para Apple developers y otra línea para todos los usuarios llamada Public betas.

El uso de versiones beta es un comportamiento arriesgado ya que no son versiones estables ni terminadas de un sistema operativo. Tanto Apple como otros fabricantes recomiendan siempre hacer copia de seguridad del dispositivo y no utilizar dispositivos para el trabajo o para entornos seguros.

Forzar el acceso a las actualizaciones beta en MacOS

En el caso de las actualizaciones Beta para MacOS la opción tanto para las betas públicas como para desarrolladores está disponible dentro de Ajustes/General/Actualizaciones. Hay un apartado especifico para activar las actualizaciones beta.

A veces si nuestro usuario de MacOS ha pasado por varias versiones beta y ha sufrido varias activaciones y desactivaciones de esta característica es necesario forzar la activación de las actualizaciones beta en MacOS ya que el proceso debe ser sincronizado mediante iCloud y el proceso falla en algunas ocasiones.