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.

¿Qué Son las Aventuras Conversacionales?

Las aventuras conversacionales son un género de videojuegos donde el principal medio de interacción es el texto. En lugar de usar un control para mover personajes o seleccionar acciones a través de menús gráficos, el jugador se sumerge en una historia y toma decisiones escribiendo comandos o eligiendo opciones textuales. Este tipo de juegos se asemeja a una novela interactiva en la que el jugador tiene control sobre el curso de los acontecimientos.

Imagina que te encuentras en una habitación oscura. El juego podría describir la escena de la siguiente manera:

“Estás en una habitación oscura. A tu alrededor, apenas distingues sombras de lo que parecen ser muebles antiguos. Hay una puerta al este y una lámpara en la mesa. ¿Qué haces?”

Aquí, el jugador podría escribir algo como:

“Enciendo la lámpara”
“Salgo por la puerta este”
“Inspecciono los muebles”

Cada una de estas decisiones llevará la historia en una dirección diferente, abriendo nuevas posibilidades y desafíos.

Accesibilidad para todos

Uno de los mayores atractivos de las aventuras conversacionales es su accesibilidad. A diferencia de otros videojuegos que requieren hardware avanzado o habilidades técnicas específicas, estos juegos solo requieren un dispositivo con capacidad para leer y escribir texto. Esto los convierte en una opción inclusiva para personas con diferentes niveles de habilidad tecnológica e incluso para quienes tienen discapacidades visuales, ya que muchos de estos juegos pueden ser jugados con lectores de pantalla.

Además, debido a su bajo requerimiento de recursos, se pueden jugar en prácticamente cualquier dispositivo, desde dispositivos antiguos hasta smartphones actuales. Esto democratiza el acceso al entretenimiento interactivo, brindando una experiencia inmersiva a personas que, de otro modo, podrían verse excluidas de la mayoría de los videojuegos.

Fomentando la Imaginación y la Creatividad

Una de las características más valiosas de las aventuras conversacionales es su capacidad para estimular la imaginación. Al no depender de gráficos elaborados, el jugador debe imaginar los escenarios, personajes y situaciones descritas. Esta actividad mental, similar a la que se experimenta al leer un libro, fortalece la capacidad de visualizar y crear imágenes mentales.
La creatividad también juega un papel crucial. Las aventuras conversacionales suelen presentar desafíos y rompecabezas que requieren soluciones originales. A menudo, no basta con seguir una línea recta; los jugadores deben pensar en ideas imaginativas, explorar diferentes opciones y experimentar con diversas decisiones para avanzar en la historia. Este proceso no solo estimula el pensamiento crítico, sino que también fomenta la capacidad de encontrar múltiples soluciones a un mismo problema.

Simplicidad y Profundidad

A primera vista, estos juegos pueden parecer simples, pero esa simplicidad es engañosa. Detrás de cada aventura conversacional se esconde un mundo profundo y complejo. Las historias pueden abarcar desde misterios detectivescos hasta épicas de fantasía o relatos de ciencia ficción. A pesar de su enfoque minimalista, muchos de estos juegos presentan tramas envolventes con personajes bien desarrollados y giros narrativos sorprendentes.

La naturaleza textual de estos juegos también los hace accesibles para creadores independientes, quienes pueden enfocarse más en la narrativa y el diseño de la experiencia que en los aspectos técnicos de desarrollo gráfico. Esto ha llevado a una gran variedad de títulos, muchos de los cuales son gratuitos o de bajo costo, lo que aumenta aún más su accesibilidad.

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.

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.