Código de programación más accesible con SIMAE

En el mundo de las tecnologías de apoyo para personas con discapacidad visual, pocas iniciativas resultan tan innovadoras y útiles como SIMAE, el Sistema de Marcado Estructural de Código Fuente para Programadores con Discapacidad Visual. Desarrollado en la UTN Facultad Regional Santa Fe, este proyecto de I+D está pensado para brindar contexto y estructura al código, aumentando la accesibilidad para quienes dependen de lectores de pantalla.

SIMAE nace en 2016, cuando un alumno ciego ingresó en Ingeniería en Sistemas. La necesidad de facilitar su experiencia de aprendizaje motivó a docentes e investigadores a diseñar una herramienta que transformara la forma de programar en algo más accesible.

Su función principal es insertar información contextual en el código fuente, para ello incorpora información extra en la semántica del código. Por ejemplo, se agregan marcadores para señalar el comienzo y fin de bloques buscando ayudar a ubicarse al programador dentro del código; una extensión para VSCode que permite detectar las marcas semánticas en los hints del código y utilizar atajos de teclado especiales para moverse por la estructura del código.

Soporta múltiples lenguajes (C++, Java, Python y también C#) y funciona en español e inglés.

Este proyecto demuestra que las tiflotecnologías pueden elevar significativamente la experiencia de programación para personas con discapacidad visual. Al convertir el código en algo estructurado y navegable —no solo visible—, la herramienta abre caminos hacia una programación más autónoma, inclusiva y eficiente. Su enfoque dual (standalone y extensión) ofrece flexibilidad según el entorno de trabajo del usuario.

Cómo etiquetar imágenes y componentes visuales en Android con Content Description

En el desarrollo de aplicaciones para Android, la accesibilidad es un aspecto que no puede dejarse de lado. Uno de los errores más comunes en las interfaces de aplicaciones móviles es utilizar iconos o imágenes sin acompañarlos de una descripción accesible. Para los usuarios que dependen de TalkBack u otros lectores de pantalla, estos elementos pueden convertirse en barreras de accesibilidad muy severas si no cuentan con la información adecuada para identificar la funcionalidad de dichos botones o elementos visuales.

La propiedad contentDescription permite añadir una etiqueta textual a cualquier componente visual, de forma que TalkBack la anuncie en lugar de limitarse a leer un nombre técnico como “ic_send” o a ignorar la imagen por completo.

Ejemplo básico en XML

Un caso clásico es un botón con un icono de avión de papel que representa la acción de enviar un mensaje. Visualmente resulta evidente, pero sin descripción accesible no es comprensible para quien no puede ver la pantalla:

<ImageButton
android:id="@+id/sendButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_send"
android:contentDescription="Enviar mensaje"
/>

En este ejemplo, TalkBack leerá “Enviar mensaje” al situarse sobre el botón, en lugar de un nombre de archivo técnico.

Ejemplo con Jetpack Compose

En Compose, la accesibilidad se maneja mediante modificadores de semántica. El equivalente a contentDescription sería:

IconButton(
onClick = { /* Acción para enviar */ },
modifier = Modifier.semantics { contentDescription = "Enviar mensaje" }
) {
Icon(
imageVector = Icons.Default.Send,
contentDescription = null // Evitamos redundancia
)
}

En este ejemplo el botón anuncia la etiqueta “Enviar mensaje” al interactuar con TalkBack. El icono interno no necesita contentDescription porque ya se ha definido en el contenedor.

Buenas prácticas

La propiedad contentDescription es sencilla de usar, pero conviene aplicarla con criterio:

  1. Priorizar la función: un icono de engranaje para un botón para ir a los ajustes de la app no debería describirse como “rueda dentada”, sino como “Ajustes”, que es la acción real.
  2. Ser breve y claro: descripciones cortas facilitan la navegación. Un botón que abre un chat debe decir “Abrir chat”, no “Icono de burbuja de diálogo para iniciar conversación”.
  3. Evitar redundancias: si un TextView ya tiene texto visible, no es necesario repetirlo en contentDescription. TalkBack lo leerá automáticamente.
  4. Ocultar lo decorativo: para imágenes que solo son decorativas, se debe establecer android:contentDescription=»@null» en XML o contentDescription = null en Compose. De esta forma TalkBack las ignora.

Etiquetar adecuadamente los componentes visuales no solo es una buena práctica de desarrollo, sino un compromiso con la inclusión digital. Al igual que ocurre con cualquier aspecto del diseño, dedicar unos segundos a escribir una descripción accesible marca la diferencia entre una app usable y otra que excluye a parte de sus usuarios. La propiedad contentDescription es una de las herramientas más simples y a la vez más poderosas que Android pone en manos de los desarrolladores para mejorar la accesibilidad. Añadir una descripción clara y precisa a imágenes e iconos garantiza que los usuarios con lectores de pantalla comprendan e interactúen con la interfaz en igualdad de condiciones.

Cómo etiquetar imágenes y componentes visuales en iOS y MacOS con SwiftUI

El desarrollo de interfaces con SwiftUI ofrece muchas ventajas en simplicidad y expresividad, pero también implica una responsabilidad clara: garantizar que todos los componentes sean accesibles. En este sentido, el modificador accessibilityLabel juega un papel fundamental, ya que permite proporcionar descripciones comprensibles para los usuarios que navegan mediante VoiceOver u otros productos de apoyo.

En una aplicación móvil, es habitual encontrar botones representados solo con iconos, imágenes decorativas o gráficos complejos que transmiten información de manera visual. Si estos elementos no cuentan con una etiqueta accesible, el lector de pantalla se limitará a leer su nombre interno —por ejemplo, “paperplane.fill”— o incluso no los anunciará, lo que genera una experiencia frustrante y excluyente.

El modificador accessibilityLabel resuelve este problema al ofrecer un texto alternativo que describe la función o el significado del elemento. La idea es que, al interactuar con el componente, VoiceOver verbalice la etiqueta definida en lugar del nombre interno o el contenido gráfico.

Ejemplo básico

Un caso típico es un botón con un icono de avión de papel para enviar un mensaje. Visualmente resulta evidente, pero sin una etiqueta accesible el usuario ciego no comprendería su propósito:

Button(action: {
// Acción para enviar
}) {
Image(systemName: "paperplane.fill")
.font(.largeTitle)
}
.accessibilityLabel("Enviar mensaje")

Al añadir .accessibilityLabel(«Enviar mensaje»), VoiceOver anuncia esa frase, y la acción del botón se vuelve comprensible y usable para todas las personas.

Además, no sólo se benefician los usuarios ciegos, también el sistema de Voice control para iOS y MacOS utilizará ese texto para localizar el botón y poderlo pulsar de forma más cómoda para el usuario.

Más allá de los iconos

El uso de accessibilityLabel no se limita a los botones. También puede aplicarse a imágenes que transmiten información importante. Una fotografía, un logotipo o un gráfico que refuerce la identidad de una app debería llevar una etiqueta adecuada.

Image("company_logo")
.resizable()
.frame(width: 120, height: 120)
.accessibilityLabel("Logotipo de la empresa Ejemplo")

En este caso, el lector de pantalla transmitirá la descripción de la imagen en lugar de identificar un elemento inaccesible o verbalizar el nombre del fichero del logotipo de la empresa.

Buenas prácticas

La potencia de accessibilityLabel reside en su sencillez, pero eso no significa que se deba aplicarlo sin reflexión. Es importante tener en cuenta algunas recomendaciones:

  1. Claridad antes que detalle: las etiquetas deben ser breves y concretas. No conviene describir minuciosamente una imagen si con dos palabras es suficiente para transmitir la idea.
  2. Función antes que forma: en un botón, es más importante describir la acción que detallar el icono. Por ejemplo, “Abrir ajustes” comunica más que “Engranaje”.
  3. Evitar redundancias: si un elemento ya tiene un texto visible, añadir un accessibilityLabel idéntico puede resultar repetitivo. En esos casos, lo mejor es dejar que VoiceOver lea directamente el texto.
  4. No etiquetar lo decorativo: si una imagen es meramente estética y no aporta información, lo correcto es marcarla como ignorada con .accessibilityHidden(true).

Etiquetar imágenes y componentes visuales no es un añadido opcional, sino un paso esencial para construir apps accesibles, usables y respetuosas con la diversidad de las personas que las utilizan. El modificador accessibilityLabel es un elemento sencillo y que ayuda a solucionar barreras severas de accesibilidad con un mínimo esfuerzo. Con unas pocas líneas de código, es posible transformar una interfaz visual en una experiencia inclusiva, asegurando que todos los usuarios, independientemente de cómo interactúen con su dispositivo, comprendan y disfruten la aplicación.

Cómo organizar tareas con la app Recordatorios

La organización personal es uno de los pilares fundamentales para mantener la productividad y reducir el estrés en la vida diaria. Contar con un sistema que permita registrar, revisar y ejecutar las tareas pendientes aporta claridad mental y evita la sobrecarga de tener que recordar constantemente todo lo que hay que hacer. Entre las distintas metodologías existentes, una de las más conocidas es Getting Things Done (GTD), que propone un flujo de trabajo sencillo: capturar las tareas en un lugar de confianza, clarificarlas y organizarlas en función de su contexto, revisarlas con frecuencia y ejecutarlas en el momento oportuno.

Dentro del ecosistema de Apple, la aplicación Recordatorios se ha convertido en una herramienta que encaja perfectamente con este enfoque. No se trata de un gestor de proyectos complejo ni de una aplicación pensada únicamente para usuarios avanzados, sino de una app ligera y accesible que facilita registrar y organizar todo tipo de compromisos, desde lo más cotidiano hasta lo más profesional.

Interfaz de usuario

 

La interfaz de Recordatorios resulta clara y directa. En una zona de la app se muestran las distintas listas y agrupaciones para nuestras tareas. Podemos crear nuestras propias listas y utilizar listas inteligentes como Hoy, Programados, etc… Y en otra zona de la ventana se muestran las distintas tareas y recordatorios para la lista seleccionada.
Para mejorar la accesibilidad de la aplicación es recomendable que se seleccione la vista como lista ya que aumenta su legibilidad y su compatibilidad con las herramientas de accesibilidad en MacOS. 

Para navegar entre las distintas zonas se puede utilizar el teclado y con VoiceOver se puede utilizar el atajo de teclado VO+J para saltar rápidamente entre secciones.
Al configurar nuestra cuenta de iCloud se crea por defecto la lista Recordatorios. Con una lista disponible ya se puede crear una tarea de inmediato y asignarle un título, una fecha de vencimiento, una hora concreta o una ubicación desde la que recibir una notificación. También es posible añadir notas y adjuntar enlaces, lo que transforma un simple recordatorio en un elemento mucho más rico y contextualizado. De esta forma, el usuario no solo recuerda qué tiene que hacer, sino también con qué información cuenta para llevarlo a cabo.

Una vez creada la tarea la veremos en la tabla de tareas de esa lista. Es recomendable que los usuarios de VoiceOver naveguen por esa tabla usando VO+flechas de cursor y cuando quieran interactuar con una tarea usen el menú contextual pulsando VO+Mayúsculas+M. Además, para asegurarnos de modificar la tarea es recomendable interactuar con la celda de la tarea para poder navegar entre la casilla de verificación, el campo de nombre de tarea y el resto de controles para los detalles de la tarea.

Recordatorios y GTD

Un aspecto interesante de Recordatorios es la capacidad de organizar los recordatorios en listas temáticas. Esto permite a cada persona replicar dentro de la app la estructura que propone GTD, separando las tareas en función del contexto, como por ejemplo trabajo, estudios, familia o asuntos personales. La función de etiquetas refuerza todavía más esa organización, ya que ayuda a agrupar tareas que comparten una característica común, independientemente de la lista en la que se encuentren.

La experiencia mejora notablemente gracias a la sincronización automática entre dispositivos. Una tarea creada en el iPhone aparece de inmediato en el Mac y en el Apple Watch, lo que evita duplicidades y asegura que la información siempre esté disponible en el dispositivo que se tenga más a mano. Esta continuidad es esencial para no interrumpir el flujo de trabajo, ya que permite, por ejemplo, anotar una idea rápida en el reloj y revisarla más tarde con mayor detalle en el Macbook o el iPhone.

El valor real de Recordatorios no radica únicamente en su diseño limpio o en las funciones que incorpora, sino en la tranquilidad que aporta al usuario al tener la certeza de que ninguna tarea importante se perderá en la memoria. La posibilidad de registrar de manera inmediata cualquier tarea pendiente, revisarlo en el momento adecuado y contar con la información siempre sincronizada ofrece un soporte sólido para quienes desean implementar un sistema como GTD o simplemente tener más orden en su día a día.
En definitiva, Recordatorios se presenta como una herramienta discreta pero poderosa, que convierte la organización personal en un hábito más sencillo y accesible para cualquier usuario dentro del ecosistema de Apple.

Cómo utilizar la app Notas en macOS

La aplicación Notas de macOS, en sus últimas versiones, se ha convertido en una herramienta muy versátil para estudiantes, profesionales y cualquier persona que necesite organizar ideas, proyectos o documentos de forma ordenada y productiva.

Organizar las notas

Una buena organización es clave para que Notas se convierta en un cuaderno de ingeniero o gestor documental. Para ello lo primero es organizar las notas en carpetas. Tanto las cuentas de iCloud como Gmail o Microsoft Exchange permiten crear notas organizadas por carpetas.

En el menú Archivo de la barra de menú hay opciones para crear notas y carpetas. Además, podemos abrir el menú contextual de una carpeta en la lista de carpetas y realizar operaciones como renombrar o eliminar la carpeta, cambiar el sistema de ordenación o crear carpetas inteligentes.

Para una mejor accesibilidad y visibilidad es recomendable utilizar la opción Como lista del menú visualización. Esto facilita la navegación para los usuarios de VoiceOver y Zoom. Podemos activar esta opción pulsando Comando+1.

Junto a la lista de carpetas está la lista de notas. Podemos saltar entre ellas pulsando VO+J con VoiceOver.

Para tener una mejor visibilidad de las notas a la hora de navegar por esta lista es muy recomendable que todas las notas tengan un título en la primera línea del cuerpo de la nota. Es recomendable que el título refleje el concepto que describe e incluya, por ejemplo, la categoría de conocimientos a la que pertenece. Por ejemplo: una nota sobre la accesibilidad de los estilos CSS y el color podría tener un estilo como Web – Accesibilidad – CSS – Estilos para el color.

También podemos incluir etiquetas utilizando el carácter almohadilla (#). Todo esto beneficiará las operaciones de búsqueda de información dentro de la app de Notas.

Diferencias entre cuentas de correo electrónico

Es necesario indicar que sólo las cuentas de iCloud permitirán utilizar todos los estilos y funcionalidades para las notas. Si utilizamos una cuenta de Gmail o Exchange puede que no podamos formatear el texto o no podamos pegar ficheros o imágenes.

 Formatear texto en Notas

El formateo de texto permite dar estructura y claridad a las notas, facilitando la lectura y organización de la información. Además, esta información semántica en las notas permite que cuando copiemos a otro formato, como Pages o TextEdit, el aspecto visual y el marcado semántico permanecerá en la copia.

Para aplicar un formato a un bloque de texto primero debemos seleccionar el texto a formatear y luego podemos utilizar un atajo de teclado o abrir el menú Formato de la barra de menú.

Se pueden aplicar formatos simples como negrita (Comando+B), cursiva (Comando+I) o subrayado (Comando+U).

Visualmente se verán los cambios y los usuarios de VoiceOver tendrán información de los cambios de estilo cuando se muevan por el cuerpo de la nota utilizando las flechas de cursor.

Se pueden crear listas con viñetas, numeraciones o guiones. Pero uno de los aspectos más interesantes son los encabezados (Comando+Mayúscula+H) ya que cuando estamos sobre un encabezado podemos contraer el texto para visibilizar mejor la estructura. Los usuarios de VoiceOver pueden acceder a esta función pulsando VO+Comando+espacio y buscando la opción de Contraer o Expandir.

Además, en una nota, podemos pegar imágenes, ficheros de audio, documentos en formato PDF, Word o Pages, etc.

Buscar información

Si tenemos nuestras notas bien ordenadas y clasificadas la opción de búsqueda se vuelve muy poderosa ya que permite localizar contenido dentro de notas, títulos, adjuntos y etiquetas.

Realizar una búsqueda es sencillo: es necesario colocar el cursor en el campo de búsqueda en la lista de notas o pulsar Comando+Opción+F e introducir el texto a buscar. En la lista de notas se filtrarán las notas que contengan las palabras o etiquetas buscadas.

Un cuaderno de conocimientos sencillo y accesible

La app Notas va mucho más allá de una simple libreta digital. Sus funciones avanzadas la convierten en un excelente aliado tanto en el ámbito profesional como académico. Hay apps más especializadas como Obsidian o Notion, pero el nivel de accesibilidad de estas alternativas, en muchas ocasiones, no es suficiente para disfrutar de una experiencia productiva.

La asociación CINTAC

La Asociación CINTAC (Centro de Innovación de Tecnologías Accesibles) es una entidad sin ánimo de lucro de ámbito nacional fundada en 2020 que tiene el propósito de impulsar la tecnología social y promover tecnologías accesibles e inclusivas.

Misión

Su objetivo principal es generar un beneficio social y económico sostenible facilitando el acceso a productos, servicios y entornos tecnológicos a todas las personas.

Visión

Esta asociación aspira a ser un referente nacional en la creación y adaptación de tecnologías inclusivas para personas con discapacidad o limitaciones funcionales.

Ámbitos de actuación

CINTAC trabaja en diversos frentes para alcanzar sus metas:

A través de contenidos, eventos y colaboraciones, promueve la importancia de la accesibilidad tecnológica.

También organiza jornadas, congresos y talleres sobre accesibilidad TIC, usabilidad e innovación social.

Estudia e impulsa la implementación de herramientas accesibles, generando conocimiento aplicado.

Ha establecido alianzas con entidades y grupos empresariales para mejorar la accesibilidad en todos los ámbitos de la empresa.

Miembros de la asociación

CINTAC es claramente multisectorial y multidisciplinar, integrada por ingenieros, programadores, diseñadores y expertos en comunicación, ciberseguridad, Big Data y accesibilidad.

Cuenta también con asociados corporativos y corporativo plus, lo que permite a empresas y profesionales unirse bajo diferentes categorías.

La asociación ofrece una plataforma para apoyar a la sociedad mediante proyectos adecuados a personas con discapacidad, integrar la accesibilidad como valor diferencial competitivo, estar al día en normativas, buenas prácticas y tecnología accesible. Esta plataforma está enfocada en profesionales o empresas del sector TI, RRHH o diseño de servicios

Para usuarios u organizaciones interesadas en accesibilidad, CINTAC es un centro de referencia, recursos y comunidad comprometida.

Cómo asociarse

La asociación ofrece distintas categorías de membresía, adaptadas tanto a profesionales individuales como a empresas.

Ser socio brinda acceso a formación especializada, eventos, grupos de trabajo y una red de contactos en el área de la accesibilidad tecnológica.

Puedes asociarte a CINTAC a través de su portal web.