Escribir fracciones con MathML

Una fracción es una forma de representar una parte de un entero o una división entre dos números enteros. La escritura de fracciones resulta una de las mayores barreras de accesibilidad debido a que las fracciones ocupan una disposición en vertical en la que el numerador, el denominador y la barra de fracción se distribuyen en 3 líneas de lectura. Con MathML se nos ofrece una forma de codificar una fracción y que resulte accesible a la hora de leer matemáticas con fracciones utilizando productos de apoyo.

Para representar fracciones en MathML, se utiliza la etiqueta <mfrac>, que crea una fracción con un numerador y un denominador.

La estructura de una fracción en MathML es la siguiente:

<math>
<mfrac>
<mi>a</mi> <!-- Numerador -->
<mi>b</mi> <!-- Denominador -->
</mfrac>
</math>

Por ejemplo para escribir una fracción cuyo numerador sea el número 12 y el denominador el número 3 se utilizaría el siguiente código MathML:

<math>
<mfrac>
<mi>12</mi>
<mi>3</mi>
</mfrac>
</math>

Y se leería de la siguiente forma:

12 3

Dependiendo de la configuración del producto de apoyo el usuario podrá leer la fracción de la forma más óptima a sus necesidades de accesibilidad.

Crear aventuras conversacionales con Inform7

Las aventuras conversacionales, también conocidas como juegos de texto interactivo, son un género de videojuegos que se originó en los primeros días de la informática. En estos juegos, los jugadores interactúan con un mundo virtual utilizando comandos escritos en lenguaje natural, lo que les permite explorar entornos, resolver acertijos y avanzar en la narrativa. Uno de los motores más populares para crear este tipo de experiencias es Inform, y en su versión más reciente, Inform7, se ha consolidado como una herramienta poderosa y accesible para desarrolladores, escritores y entusiastas del diseño de juegos narrativos.

Historia de Inform

El origen de Inform se remonta a principios de los años 90, cuando Graham Nelson creó el primer compilador de Inform como una herramienta para escribir juegos compatibles con el formato Z-machine, el mismo que fue usado para juegos clásicos de la compañía Infocom, como Zork. Este formato fue un estándar para las aventuras conversacionales, permitiendo que los juegos se ejecutaran en una amplia variedad de plataformas.

En 2006, Nelson lanzó Inform7, una nueva versión del motor, diseñada desde cero para hacer la creación de aventuras conversacionales más intuitiva y accesible. Mientras que las versiones anteriores requerían un conocimiento profundo de programación, Inform7 utiliza un lenguaje de diseño de juegos casi natural, lo que permite que los creadores describan mundos y reglas en inglés, similar a la forma en que escribirían una novela.

Características principales de Inform7

Inform7 se distingue por su enfoque basado en el lenguaje natural, lo que facilita la creación de mundos interactivos con reglas definidas sin necesidad de una programación complicada. Algunas de las características más destacadas de la herramienta son:

• Lenguaje natural: Los juegos se escriben en una sintaxis que se asemeja mucho al inglés común. Esto permite que los desarrolladores, incluso aquellos sin experiencia en programación, puedan diseñar escenarios, personajes y eventos de una manera intuitiva. Por ejemplo, una instrucción como «The kitchen is a room. The player is in the kitchen.» es perfectamente válida y crea un espaio jugable en el que el jugador puede interactuar.
• Un potente sistema de reglas: A pesar de su apariencia sencilla, Inform7 esconde un potente sistema de reglas y lógica que permite la creación de interacciones complejas. Se pueden definir comportamientos para objetos y personajes, establecer condiciones y consecuencias, y gestionar interacciones dinámicas entre elementos del juego.

• Soporte multiplataforma: Los juegos creados con Inform7 se exportan en formatos como Glulx o Z-machine, lo que permite que se ejecuten en una variedad de intérpretes y plataformas, desde ordenadores de escritorio hasta dispositivos móviles.

• Facilidad para la narrativa: Con un fuerte enfoque en la narrativa, Inform7 es ideal para escritores que desean explorar la creación de historias interactivas, permitiéndoles centrarse en la trama y los personajes en lugar de en los detalles técnicos de la programación.

Soporte para aventuras en español

Aunque Inform7 está diseñado principalmente para trabajar con el idioma inglés, existen extensiones para incluir soporte para la creación de aventuras conversacionales en español y otros idiomas. Esto ha sido posible gracias a la comunidad de desarrolladores y traductores que han trabajado en extensiones y adaptaciones que permiten que el motor entienda y genere texto en español.

La comunidad que se ha formado alrededor de Inform ha contribuido a expandir el uso de la plataforma en múltiples lenguas, enriqueciendo el panorama de aventuras conversacionales a nivel global.

¿Cómo jugar a una aventura creada con Inform7?

Para poder jugar a una aventura conversacional creada con Inform7 necesitamos un intérprete compatible con Inform como pueden ser Glulx o Frotz.

Estos intérpretes suelen utilizar la consola del sistema o la Terminal para mostrar el texto de las aventuras aunque hay versiones de GGlulx y Frotz para Windows, iPhone, Android o página Web.

Instalación del entorno de desarrollo

Actualmente Inform7 se distribuye como un IDE o entorno de desarrollo. Esta aplicación permite la creación y depuración de una aventura conversacional incluyendo la posibilidad de utilizar extensiones creadas por otros creadores o crear nuestras propias extensiones. Gracias a las extensiones Inform7 puede crecer para mostrar gráficos, reproducir sonidos o incluir otros idiomas como el español.

Puedes obtener la última versión de Inform7 desde la página del proyecto Inform7. La versión actual es la 10.1.2. Se distribuyen versiones de Inform7 para Mac, Inform7 para Windows e Inform7 para distintas versiones de Linux.

El IDE viene por defecto con soporte para idioma inglés. es necesario obtener las extensiones de Inform7 para español. En el momento de escribir este artículo la versión actual es la extensión para español R10.1.

Dentro del fichero comprimido en zip para las extensiones en español se incluye un fichero readme con instrucciones para instalar las extensiones de forma local.

Un simple ejemplo

Veamos un simple ejemplo de aventura en Inform7 utilizando las extensiones en español.

Abre el IDE de Inform7 y crea un proyecto de nueva aventura llamado Un simple ejemplo.

Cuando creas el proyecto en la ruta donde se guarda el proyecto encontrarás una carpeta llamada Un simple ejemplo.materials y el fichero Un simple ejemplo.inform.

Dentro de la carpeta Un simple ejemplo.materials debes copiar las carpetas Extensions e Inter que estaban dentro del zip de las extensiones de Inform para español. Con esto ya tenemos nuestro proyecto preparado para codificar la aventura.

En la zona de código del proyecto encontramos este código inicial:

"Un simple ejemplo" by Jonathan Chacón Barbero

Example Location is a room.

Borra ese código y escribe el siguiente en su lugar:

"Un simple ejemplo" by Jonathan Chacón Barbero (in spanish)

La sala is a room.
The description is "Estás en una sala donde no hay nada pero existe el potencial para que exista todo. Tu imaginación es el poder creador de la realidad que te rodea.".

Analizando el código

Analizando el código de este primer ejemplo encontramos lo siguiente:

• La primera línea es donde se declara el título y autor de la aventura. Además indicamos que utilizaremos la extensión para español de Inform7.

• Creamos el elemento La sala indicando que es una habitación.

• Indicamos que su descripción es un texto que describirá la sala cuando nuestro personaje esté en ella.

Si pulsamos el botón de Go para probar nuestra aventura nuestro personaje jugador aparecerá en la habitación y podremos realizar acciones como saltar, cantar o más cosas que se nos ocurran. Pero nuestra sala está vacía. Añadir un objeto a nuestra sala es tan sencillo como escribir el siguiente texto en el código de nuestra aventura:
El grano de arena is in la sala.
The description is «Un grano de arena que puede ser el comienzo de todo.».

Con esto hemos añadido un grano de arena a nuestra sala. Volvemos a usar la opción Go y podremos probar la aventura. Podemos coger el grano y aparecerá en nuestro inventario y podemos soltarlo para que aparezca de nuevo en la sala.

Compartiendo nuestra creación

Una vez terminada nuestra aventura podemos crear el fichero para que sea compartido con otras personas para que puedan jugar a la aventura de texto que hemos creado. Para ello debemos buscar en el menú Release la opción Release … que creará el fichero Un simple ejemplo.gblorb dentro de la carpeta Un simple ejemplo.materials/Release. Ese fichero gblorb es el que debemos compartir para que otras personas puedan jugar a nuestra aventura. El fichero se crea utilizando el formato Interactive fiction file format que es compatible con intérpretes como Glulxe o Frotz.

Ahora sólo queda ampliar la sala para crear un mundo más extenso donde nuestra imaginación y nuestra paciencia para aprender Inform7 serán el límite de nuestra aventura.

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

Escribir raices cuadradas con MathML

En MathML se pueden escribir casi todo tipo de operaciones matemáticas. Desde operaciones más básicas hasta operaciones con matrices, ecuaciones y matemática analítica.

En este artículo veremos la escritura de raíces con MathML.

Raíces cuadradas

Para escribir una raíz cuadrada, se utiliza el elemento <msqrt>. Este elemento envuelve el contenido cuya raíz cuadrada deseas expresar. Por ejemplo, el siguiente código en MathML representa la operación raíz cuadrada de 9:

<math>
<msqrt>
<mn>9</mn>
</msqrt>
</math>

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

9

Raíces con otro índice

pero si queremos escribir una raíz con un índice distinto debemos utilizar la etiqueta <mroot>. Esta etiqueta tiene dos elementos: el radicando y el índice. Por ejemplo la raíz cúbica de 27 se escribiría en MathML de la siguiente forma:

<math>
<mroot>
<mn>27</mn>
<mn>3</mn>
</mroot>
</math>

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

27 3

Los Beneficios y Desafíos de la Accesibilidad en Herramientas Low-Code y No-Code para la Creación de Software

En los últimos años, el auge de las herramientas low-code y no-code ha revolucionado la manera de desarrollar software. Estas plataformas han permitido el acceso al desarrollo de software, permitiendo que personas sin conocimientos avanzados de programación puedan crear sus propias aplicaciones, automatizaciones y sitios web. Sin embargo, para personas con discapacidad, estas herramientas presentan barreras significativas de accesibilidad.

¿Qué son las Herramientas Low-Code y No-Code?

Las herramientas low-code y no-code son paquetes de aplicaciones que permiten crear aplicaciones mediante interfaces gráficas y flujos visuales, reduciendo o eliminando la necesidad de escribir código manualmente. Estas plataformas están diseñadas para ser intuitivas, ofreciendo funciones como arrastrar y soltar (drag-and-drop), plantillas preconstruidas y bloques modulares para construir aplicaciones rápidamente.
Herramientas de lowCode como OutSystems, o Mendix presentan interfaces visualmente sencillas pero que contienen multitud de barreras de accesibilidad que impiden que un producto de apoyo como un lector de pantallas pueda transmitir la información a la persona ciega o interactuar con los elementos de la herramienta para colocar los componentes que darán forma al nuevo software.
Pero, además, herramientas noCode como Webflow o Bubble, enfocadas en la creación de aplicaciones y sitios web, además de resultar inaccesibles para personas que utilicen productos de apoyo, crean contenidos web que presentan barreras de accesibilidad perpetuando así el problema de una Web no accesible.

Beneficios de las Herramientas Low-Code y No-Code

Uno de los mayores beneficios es la posibilidad de que personas sin experiencia técnica puedan materializar sus ideas tecnológicas. Ya no es necesario depender exclusivamente de desarrolladores o equipos técnicos para crear prototipos o soluciones funcionales.
Además, la velocidad con la que se puede pasar de la idea a un producto mínimo viable (MVP) es uno de los mayores atractivos de estas plataformas. Las empresas pueden lanzar productos en menos tiempo, respondiendo más rápido a las necesidades del mercado.

Un gran poder conlleva una gran responsabilidad

La posibilidad de crear rápidamente y sin demasiados conocimientos nuevas experiencias y contenidos digitales es algo muy atractivo para muchas personas que bien no pueden o no quieren invertir mucho tiempo y esfuerzo en aprender aspectos del desarrollo de software. El problema es que este tipo de herramientas no permiten modificar la forma en que se generan esos contenidos y experiencias y en muchos casos lo hacen incluyendo barreras de accesibilidad. No está claro quién es la persona responsable de solucionar este problema: la persona que utiliza la herramienta pero no puede o no quiere aprender a desarrollar software o la empresa que ha creado la herramienta pero que no quiere complicar la experiencia de creación incluyendo aspectos de accesibilidad para así resultar una herramienta más atractiva a personas que no se quieren complicar con aspectos técnicos del desarrollo de software.

Iniciativas para Mejorar la Accesibilidad

Afortunadamente, algunas plataformas están comenzando a abordar estos desafíos. Por ejemplo, Webflow ha incorporado herramientas que permiten a los diseñadores agregar etiquetas y descripciones accesibles a los elementos. Bubble ofrece cierta flexibilidad para personalizar cómo se presentan los componentes en una aplicación para que sean más accesibles. Sin embargo, aún queda un largo camino por recorrer para garantizar que estas herramientas sean completamente inclusivas para todos los usuarios en esos contenidos web generados sin ninguna línea de código por parte de la persona que los crea.
Además, estas soluciones y parches siempre están enfocadas en el software generado y no en el uso de la propia herramienta por lo que los creadores de estas herramientas sólo piensan en personas con discapacidad como posibles clientes y no como posibles trabajadores o creadores.
Los hechos mencionados en el artículo publicado en el 2010 con el título La accesibilidad en crisis para los desarrolladores ciegos parece que siguen presentes en la sociedad actual.

Operaciones aritméticas básicas en MathML

En artículos anteriores hemos visto qué es MathML y cómo se escribe una operación matemática con MathML para la Web. Con esa información podemos crear contenidos de aritmética básica de forma accesible y legible para todas las personas.

Aritmética básica con MathML

La aritmética puede definirse como la ciencia de los números y las operaciones básicas que podemos realizar con ellos. Estas operaciones permiten realizar cálculos para resolver problemas relacionados con la cantidad, el tamaño, la distancia, entre otros. En términos simples, la aritmética es el lenguaje universal que usamos para entender y manejar números en nuestra vida diaria.

La aritmética se fundamenta en cuatro operaciones básicas: suma, resta, multiplicación y división. Cada una de estas operaciones tiene su propia función y se aplica en diferentes contextos, pero todas están interrelacionadas entre sí.

A la hora de utilizar la etiqueta <mo> de MathML es sencillo incluir algunas de estas operaciones básicas de la aritmética como la suma y la resta ya que sus símbolos matemáticos están dentro del conjunto de caracteres comunes de escritura de textos. Pero otras operaciones aritméticas como la multiplicación y la división utilizan símbolos que no son de uso común a la hora de escribir textos. Por esta razón es necesario utilizar caracteres HTML especiales para reflejar estas operaciones.

Por ejemplo, para representar la operación de multiplicación se utiliza el símbolo × que en HTML se representa como &times; y el símbolo para la división es ÷ y en HTML se representa como &divide;.

Veamos a continuación los distintos símbolos para las operaciones aritméticas básicas escritos dentro de un bloque MathML:

<math>

<mrow><mn>1</mn> <mo>+</mo> <mn>1</mn> <mo>=</mo> <mn>2</mn></mrow>

<mrow><mn>1</mn> <mo>-</mo> <mn>1</mn> <mo>=</mo> <mn>0</mn></mrow>

<mrow><mn>2</mn> <mo>&times;</mo> <mn>3</mn> <mo>=</mo> <mn>6</mn></mrow>

<mrow><mn>6</mn> <mo>&divide;</mo> <mn>3</mn> <mo>=</mo> <mn>2</mn></mrow>

</math> 

En el navegador este código MathML se visualizaría de esta manera:

 
1 + 1 = 2 1 1 = 0 2 × 3 = 6 6 ÷ 3 = 2

Con esto ya podemos representar la aritmética básica en un contenido Web de forma accesible. En futuros artículos veremos operaciones más complejas gracias a MathML.