Escribir potencias con MathML

En artículos anteriores hemos visto qué se puede hacer con MathML.

En este artículo aprenderemos a escribir potencias con MathML para poderlas mostrar en un contenido web.

En una expresión de operación de potencia debemos indicar la base y el exponente. La base es el número que se va a multiplicar por si mismo y el exponente indica el número de veces que se va a realizar la multiplicación.

En MathML para expresar la operación de 4 elevado a 2 se escribe así:

<math >
<msup>
<mn>4</mn>
<mn>2</mn>
</msup>
</math>

Y en el navegador aparece de la siguiente forma:

4 2

Para escribir la potencia utilizamos la etiqueta <msup> de MathML. Dentro de esta etiqueta la base se indica con <mi> y el exponente con <mn>.

Teorema de Pitágoras

Con lo que sabemos actualmente de MathML podemos escribir el teorema de Pitágoras en MathML de la siguiente forma:

<math>
<msup>
<mi>c1</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<mi>c2</mi>
<mn>2</mn>
</msup>
<mo>=</mo>
<msup>
<mi>h</mi>
<mn>2</mn>
</msup>
</math>

Y en el navegador se leería de la siguiente forma:

c1 2 + c2 2 = h 2

Siempre informados gracias a RSS

RSS, que significa Really Simple Syndication (o Sindicación Realmente Simple en español), es un formato que permite distribuir actualizaciones de contenido en la web de forma automática. A través de un archivo XML, los creadores de contenido pueden compartir las últimas noticias, entradas de blog, podcasts o cualquier tipo de actualización con sus usuarios sin que estos tengan que visitar constantemente el sitio web.
El concepto detrás de RSS consiste en lo siguiente: los usuarios en lugar de tener que navegar por diferentes páginas para ver si hay algo nuevo, pueden suscribirse a un “feed” RSS que les entregará las actualizaciones directamente. Este feed se lee a través de aplicaciones conocidas como lectores de RSS o agregadores de noticias.

¿Cómo funciona RSS?

La base de RSS es un archivo XML que contiene la información del contenido a sindicar. Este archivo incluye datos como el título, la descripción, la fecha de publicación y el enlace al contenido. Este archivo RSS está alojado en el servidor del sitio web y se actualiza automáticamente cada vez que hay nuevo contenido. Los usuarios que se han suscrito a este feed pueden recibir las actualizaciones directamente en su lector de RSS.
Aunque muchas personas piensan que RSS ha caído en desuso debido al auge de las redes sociales, la realidad es que sigue siendo una herramienta poderosa para quienes buscan un flujo de información más controlado y libre de distracciones. De hecho, en la era de la sobrecarga de información, RSS se está redescubriendo como una forma efectiva de consumir contenido sin caer en la “infoxicación” (intoxicación por exceso de información).
Además, en el ámbito del desarrollo web, RSS sigue siendo una herramienta útil para automatizar flujos de trabajo, monitorizar sitios para cambios de contenido o incluso para alimentar aplicaciones y widgets personalizados.

Hoy en día, existen varios lectores de RSS disponibles, tanto gratuitos como de pago. Algunos de los más populares son:

• Feedly: Uno de los lectores más conocidos, ofrece una interfaz amigable y la posibilidad de organizar las suscripciones en carpetas temáticas. También incluye funcionalidades de búsqueda y sincronización con otros dispositivos.
• Inoreader: Similar a Feedly, pero con algunas características adicionales para los usuarios avanzados, como la automatización de flujos de trabajo.
• NewsBlur: Otro lector popular que permite clasificar las fuentes por popularidad y tendencias, lo que puede ser útil para aquellos que quieren descubrir nuevo contenido.
• Tiny Tiny RSS: Una solución autohospedada para aquellos que prefieren mantener el control absoluto sobre su lector de RSS.
Incluso hay lectores RSS para línea de comandos o para televisores inteligentes.

El RSS de Programar a ciegas

Este blog tiene su enlace de sindicación RSS para que todas las personas puedan mantenerse informadas de los nuevos artículos y noticias publicados en este sitio web. Su dirección para acceder al RSS es https://programaraciegas.net/feed

Investigación sobre la promesa y los peligros de las accessibility overlays para usuarios ciegos y con baja visión

Recientemente en el contexto de un congreso en octubre de 2024 se ha publicado un paper de investigación titulado The Promise and Pitfalls of Web Accessibility Overlays for Blind and Low Vision Users.

El documento comienza con este texto:

La accesibilidad web es esencial para garantizar que todas las personas, independientemente de sus capacidades físicas o cognitivas, puedan acceder y utilizar Internet de manera efectiva. Este principio es fundamental a medida que las plataformas digitales se convierten cada vez más en canales principales para la educación, la comunicación, el comercio y el entretenimiento. Nuestro estudio evalúa críticamente la efectividad de las accessibility overlays, que son herramientas de terceros que pretenden mejorar la usabilidad del sitio web para personas con discapacidad.

El estudio se ha centrado principalmente en personas con baja visión y personas ciegas.

Los autores del estudio, Tlamelo Makati, Garreth W. Tigwell y Kristen Shinohara, son reputados investigadores en accesibilidad web.

Los estudios realizados para la publicación de esta investigación revelan que estas superposiciones suelen ser ineficaces y, a menudo, empeoran la experiencia de accesibilidad.
Los usuarios informan de conflictos con sus productos de apoyo, especialmente con los lectores de pantalla, lo que aumenta la frustración a la hora de navegar un sitio web que utilice una de estas accessibility overlay para solucionar las barreras de accesibilidad presentes en el sitio web.
El estudio sugiere que las soluciones basadas en accessibility overlays no sustituyen el diseño web accesible desde la base del proyecto web.

Puedes leer el documento de investigación en Inglés en formato PDF.

Escritura básica de MathML en un contenido web

En un artículo anterior se describió El lenguaje de marcado MathML (Mathematical Markup Language)

 y sus posibles usos para representar expresiones matemáticas complejas de manera que sean comprensibles para los navegadores y accesibles para usuarios con discapacidades visuales mediante lectores de pantalla.

Con la integración de MathML en HTML5, es más sencillo incluir fórmulas matemáticas en páginas web sin necesidad de imágenes o scripts externos.

En este artículo, exploraremos las etiquetas principales de MathML: <math>, <mrow>, <mn>, <mo>, y <mi>, y veremos ejemplos de cómo se utilizan para estructurar contenido matemático.

Etiqueta math

La etiqueta <math> es el contenedor raíz para cualquier expresión MathML. Todo el contenido matemático debe estar encapsulado dentro de esta etiqueta para que los navegadores lo reconozcan como tal.

Ejemplo:

<math>
<!-- Contenido MathML aquí -->
</math>

Etiqueta mn

La etiqueta <mn> se usa para representar números. Cada número en una expresión debe estar envuelto en una etiqueta <mn>.

Ejemplo:

<math>
<mn>3</mn>
<mo>+</mo>
<mn>4</mn>
<mo>=</mo>
<mn>7</mn>
</math>

Este código se mostraría de la siguiente forma:

3 + 4 = 7

Etiqueta mo

La etiqueta <mo> se utiliza para operadores. Esto incluye símbolos como el signo más, menos, multiplicación, división, paréntesis, y otros operadores matemáticos.

Ejemplo:

<math>
<mn>50</mn>
<mo>-</mo>
<mn>8</mn>
<mo>=</mo>
<mn>42</mn>
</math>

Este ejemplo se visualiza de la siguiente forma:

508=42

Etiqueta mrow

La etiqueta <mrow> se utiliza para agrupar elementos de manera secuencial. Es similar a un “contenedor” que asegura que el contenido se trate como una sola unidad lógica. Esto es especialmente útil cuando se necesita aplicar operadores a un grupo de elementos. Por ejemplo si se desean escribir varias líneas con operaciones matemáticas:

<math>
<mrow>
<mi>x</mi>
<mo>+</mo>
<mi>y</mi>
</mrow>

<mrow><mi>p</mi>
<mo>+</mo>
<mi>q</mi>
</mrow>
</math>

Este código se mostraría de la siguiente forma:

x+y p+q

En futuros artículos veremos construcciones más complejas utilizando MathML.

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.