Cómo escribir matrices con MathML

Una matriz es una tabla de números organizada en filas y columnas. Las matrices se utilizan ampliamente en muchas ramas de las matemáticas y ciencias aplicadas. Se utilizan para resolver sistemas de ecuaciones lineales, representar transformaciones geométricas, modelar datos en inteligencia artificial o describir redes eléctricas o circuitos.

Para las personas ciegas, escribir y leer matrices puede plantear diversas barreras de accesibilidad como la incapacidad de memorizar toda la información contenida en la matriz, incompatibilidad del producto de apoyo con el formato utilizado para mostrar la matriz, limitaciones de los sistemas de formateado de texto y marcado semántico, etc. En el caso de otros perfiles de discapacidad el producto de apoyo puede encontrar problemas para navegar por los datos de la matriz o no existir una semántica suficiente para identificar filas, columnas o celdas concretas por lo que una persona que utilice un sistema de control por voz o un barredor no podrá interactuar de forma apropiada con la matriz.

Utilizando MathML podemos solucionar muchos de estos problemas ya que aporta semántica y compatibilidad con los diversos productos de apoyo. Con MathML, no solo podemos mostrar una matriz, sino también describirla de forma que cualquier persona, con o sin discapacidad, pueda acceder a su contenido.

Cómo escribir una matriz con MathML

En MathML tenemos el elemento mtable para representar matrices. Además podemos encerrarla entre corchetes utilizando el elemento mfenced como se requiere en algunos ejercicios matemáticos o de física.

El siguiente ejemplo muestra una matriz de 2×2 celdas con los valores 1, 2, 3 y 4:

<math>
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd><mn>1</mn></mtd>
<mtd><mn>2</mn></mtd>
</mtr>
<mtr>
<mtd><mn>3</mn></mtd>
<mtd><mn>4</mn></mtd>
</mtr>
</mtable>
</mfenced>
</math>

Con el elemento mtr marcamos una fila de la matriz y con mtd marcamos una celda concreta.

En el navegador la matriz se mostraría de la siguiente forma:

1 2 3 4

También podemos escribir la matriz con variables para la resolución de problemas de álgebra:

<math>
<mtable>
<mtr>
<mtd><mi>a</mi></mtd>
<mtd><mi>b</mi></mtd>
</mtr>
<mtr>
<mtd><mi>c</mi></mtd>
<mtd><mi>d</mi></mtd>
</mtr>
</mtable>
</math>

En el navegador se mostraría de la siguiente forma:

a b c d

Celebración del GAAD 2025

El próximo jueves 15 de mayo de 2025 se celebrará el GAAD o Día Mundial de Concienciación sobre la Accesibilidad.

Durante este día muchos profesionales de la accesibilidad participamos divulgando y compartiendo conocimientos y experiencias para promover la accesibilidad y la equidad social para garantizar el acceso a todas las personas.

Qué es la Internet Society

Durante mi estancia en Puerto rico participando en el II congreso de accesibilidad de la UPR tuve la oportunidad de conocer y relacionarme con miembros del capítulo de Puerto Rico de la Internet Society. Eso me permitió conocer mejor esta asociación con unos fines muy interesantes.

¿Qué es la Internet society?

La Internet Society (ISOC) es una organización global sin ánimo de lucro que desempeña un papel fundamental en la promoción de una Internet abierta, segura y accesible para todos. Fundada en 1992 por pioneros de la red como Vinton Cerf y Robert Kahn, su misión es garantizar que Internet siga siendo una herramienta de empoderamiento y desarrollo a nivel mundial. En un mundo donde Internet forma parte de casi todos los aspectos de nuestra vida, desde la educación hasta el trabajo, desde la comunicación hasta el entretenimiento, garantizar su libre acceso y buen funcionamiento es más importante que nunca.

Hoy en día, ISOC cuenta con una red global de miembros individuales, organizaciones afiliadas y capítulos locales repartidos por todo el mundo.

¿Qué hacen?

ISOC trabaja en múltiples frentes para fortalecer la infraestructura y las políticas de Internet. Sus principales áreas de acción incluyen temas relacionados con la conectividad global, seguridad y confianza en Internet, desarrollo de políticas de protección de Internet, educación y capacitación y también temas de accesibilidad en Internet.

¿Por qué lo hacen?

La visión de ISOC es una Internet para todos: abierta, globalmente conectada, segura y confiable. Creen que una Internet accesible y segura es esencial para el desarrollo social, económico y cultural de las comunidades en todo el mundo.

¿Cómo se organizan?

La Internet Society se estructura de forma global, pero su fuerza está en la participación local. Está compuesta por:

Capítulos (Chapters)

Los capítulos son grupos de miembros organizados por región o país que promueven los principios de ISOC a nivel local. Existen más de 110 capítulos activos en todo el mundo. Cada capítulo es autónomo, pero está vinculado a la misión de ISOC. Pueden organizar eventos, debates, talleres, y colaborar con autoridades locales para influir en decisiones tecnológicas y regulatorias.

Unirte a un capítulo local te permite involucrarte más directamente, conocer a otras personas con intereses comunes y participar en iniciativas que afectan a tu comunidad.

Miembros individuales

Cualquier persona del mundo puede convertirse en miembro de ISOC de forma gratuita. Solo necesitas registrarte en su web. Como miembro, puedes votar en elecciones internas, participar en discusiones y colaborar en proyectos.

Miembros organizacionales

ISOC también ofrece membresías para empresas, universidades, ONGs y otras entidades interesadas en apoyar el desarrollo sostenible de Internet.

Junta Directiva

La gobernanza de ISOC está en manos de una Junta de Directores elegida por los miembros y organizaciones afiliadas. Esta junta supervisa las actividades de la organización, aprueba presupuestos y define estrategias.

¿Cómo puedo ser miembro?

Cualquier persona interesada puede unirse a ISOC de forma gratuita como miembro individual. El proceso de inscripción es sencillo y se realiza a través de su sitio web oficial. Además, existen membresías para organizaciones, destinadas a empresas, instituciones académicas y entidades gubernamentales que deseen apoyar la misión de ISOC. En el caso de empresas y organizaciones tiene un coste anual variable según el tipo y tamaño de la organización, con diferentes niveles de beneficios.

¿Qué obligaciones tienen sus miembros?

Los miembros individuales deben adherirse a un código de conducta que promueve la honestidad, integridad y respeto en todas las interacciones relacionadas con ISOC. Esto incluye participar de manera constructiva en las actividades y discusiones de la comunidad, así como respetar las normas y políticas establecidas por la organización.

La participación en los eventos y actividades es opcional aunque si se pertenece a un capítulo es necesario que el nuevo miembro mantenga una participación activa en las actividades organizadas por el capítulo.

¿Qué beneficios obtienen sus miembros?

Además de trabajar por una Internet abierta y segura para todas las personas los miembros de ISOC pueden acceder a recursos educativos y formativos sobre tecnología, derechos digitales y políticas de Internet, pueden participar en en proyectos globales y locales con impacto real, formar parte de una red internacional de activistas, tecnólogos, desarrolladores, académicos y defensores de los derechos digitales, participar en las decisiones de la asociación y, además, asistir a eventos, conferencias y programas de becas.

La importancia del tamaño de los elementos táctiles en la accesibilidad

Al diseñar interfaces de usuario digitales, la accesibilidad no es  opcional si queremos que todas las personas puedan acceder al contenido y la funcionalidad que ofrecemos. Uno de los aspectos más ignorados por diseñadores pero críticos del diseño accesible es el tamaño de los elementos interactivos, como botones y enlaces. Para las personas con destrezas limitadas o discapacidades motoras, los objetivos táctiles pequeños pueden suponer barreras significativas para la interacción.

Las personas con dificultades motoras pueden experimentar temblores, control muscular reducido o necesitar dispositivos de asistencia para interactuar con pantallas táctiles. Cuando los botones son demasiado pequeños o están demasiado juntos, tocar el objetivo deseado se vuelve frustrante o incluso imposible. Esto no solo afecta a personas con perfiles de discapacidad, muchos usuarios experimentan limitaciones temporales, como un dedo vendado o estar sujetando otro objeto.

Para garantizar una experiencia confortable para todas las personas las pautas de accesibilidad a los contenidos Web (WCAG) recomiendan que todos los elementos interactivos tengan al menos 44 píxeles en su lado más corto. Este tamaño asegura que los usuarios puedan tocar los botones cómodamente sin necesidad de una precisión extrema. No se trata solo del elemento en sí, el espacio entre los elementos también es igualmente importante. Proporcionar suficiente margen o relleno entre botones ayuda a evitar toques accidentales, lo que puede llevar a errores y frustración del usuario.

Este principio se alinea directamente con el criterio de éxito 2.5.8: Tamaño mínimo del objetivo, el cual establece que los objetivos interactivos deben tener al menos 24 × 24 píxeles CSS, aunque 44 × 44 sigue siendo lo más recomendado por muchas plataformas como Apple y Android para mejorar la usabilidad en dispositivos móviles.

Cómo indicar el tamaño mínimo de un elemento

En HTML y frameworks como Angular o ReactJS, se pueden usar estilos en línea o módulos CSS para aplicar tamaños mínimos y espaciado.
En SwiftUI, se puede aplicar el tamaño mínimo de marco y añadir padding para garantizar el cumplimiento de accesibilidad usando el modificador:
.frame(minWidth: , minHeight:)

En Android, se pueden usar estos modificadores en el archivo XML de la Activity o el componente a renderizar: android:minWidth=»44dp» android:minHeight=»44dp»

Participación en el Segundo Congreso de Accesibilidad de la UPR

Este próximo miércoles 10 de abril tendré el placer de participar en el Segundo Congreso de Accesibilidad organizado por la Universidad de Puerto Rico. Un evento que pone el foco en la importancia de la accesibilidad digital, la inclusión y la igualdad de oportunidades para todas las personas.

Durante el congreso compartiré mi experiencia trabajando en tecnologías accesibles, así como ideas prácticas para construir un mundo digital más inclusivo. Será una excelente oportunidad para aprender, debatir y conectar con profesionales, docentes, estudiantes y activistas comprometidos con la accesibilidad.

El evento se realizará en la Universidad de Puerto Rico – Recinto de Río Piedras. El calendario del evento y más información sobre los participantes están disponibles en la página del evento.

Si te interesa el diseño universal, la tecnología al servicio de la inclusión, o simplemente quieres contribuir a un entorno más accesible puedes participar de forma remota. Para ello puedes registrarte en el formulario para la asistencia en remoto al evento.

Escribiendo Derivadas e Integrales con MathML

MathML (Mathematical Markup Language) es un lenguaje basado en XML diseñado para describir contenido matemático de forma estructurada y accesible en la web y, en muchos casos, es una de las pocas formas de poder escribir matemáticas para personas con discapacidad visual y que puedan compartirlas con personas sin discapacidad y todos puedan leer lo mismo. Cuando tenemos que escribir matemáticas simples como operaciones aritméticas es suficiente con un documento de texto plano pero cuando tenemos que utilizar operaciones de cálculo diferencial o integral entonces necesitamos utilizar un lenguaje que nos permita estructurar el contenido que estamos escribiendo siguiendo las normas de escritura definidas por las operaciones de cálculo. Las derivadas e integrales pueden representarse fácilmente con las etiquetas adecuadas, permitiendo mostrar contenido matemático accesible en la web.

¿Qué son las derivadas?

Las derivadas son un concepto fundamental del cálculo diferencial. Representan la tasa de cambio de una función respecto a una variable.

En MathML podemos representar una derivada con el siguiente código:

<math>
<mfrac>
<mi>d</mi>
<mrow>
<mi>d</mi><mi>x</mi>
</mrow>
</mfrac>
<mi>f</mi>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
</math>

En el navegador se visualizaría de la siguiente forma:

 
d dx f ( x )

¿Qué son las integrales?

Las integrales son el concepto central del cálculo integral. Se utilizan para calcular áreas bajo curvas, volúmenes y resolver ecuaciones diferenciales.

En MathML podemos escribir una integral siguiendo este código:

<math>
<mo>&#x222B;</mo>
<mi>f</mi>
<mo>(</mo>
<mi>x</mi>
<mo>)</mo>
<mo>d</mo><mi>x</mi>
</math>

En el navegador veríamos lo siguiente:

f ( x ) dx