Disponible la librería SpeechManager para MacOS, iOS, TvOS y WatchOS

La librería SpeechManager proporciona diversas funciones para poder controlar los sistemas de síntesis de voz que ofrece Apple en sus diversas plataformas.

Con SpeechManager podremos utilizar tanto la síntesis de voz del sistema como la de la propia API de accesibilidad.

Este framework se distribuye como un paquete compatible con Swift Package Manager por lo que la integración en proyectos con XCode está garantizada.

La librería se ha publicado bajo la licencia MIT por lo que es totalmente libre y únicamente se requiere respetar la autoría de la misma.

Puedes encontrar esta librería en la página del repositorio de SpeechManager en el Github de Tyflos accessible software.

Obtener la dirección IP de tu Mac con AppleScript

En AppleScript hay varias formas de obtener información sobre el estado de la máquina que está ejecutando un script. 

Una de esas formas es mediante system info.

Con get system info obtenemos un diccionario con información sobre qué versión de MacOS, nombre de usuario, nombre completo, dirección IPv4, memoria RAM instalada y más datos interesantes.

Ejemplo básico

Con esta información es muy sencillo crear un script de AppleScript que obtenga la información de la dirección Ip de nuestra máquina y mostrarla en un cuadro de diálogo.

El código sería algo como:

set ipText to IPv4 address of (get system info)
display alert "IP: " & ipText

Disponible la librería OCRHelper para MacOS, iOS, TvOS y WatchOS

Disponible librería para reconocer el texto de imágenes en proyectos MacOS, iOS, TvOS y WatchOS con Swift utilizando Swift Package Manager.

La librería llamada OCRHelper simplifica los procesos de detección de texto en una imagen tanto en formato CGImage, NSImage como UIImage por lo que se pueden crear aplicaciones con reconocimiento de texto en cualquier plataforma de Apple.

La librería se ha publicado bajo la licencia MIT por lo que es totalmente libre y unicamente se requiere respetar la autoría de la misma.

Puedes encontrar esta librería en la página del repositorio de OCRHelper en el Github de Tyflos accessible software.

Desactivar el completado automático en Visual Studio Code

Aunque Visual Studio code, o más conocido como VSCode, ofrece multitud de herramientas automáticas para mejorar la experiencia mientras escribimos código algunas de estas herramientas pueden provocar conflictos con algunos productos de apoyo.

Es el caso de la herramienta de completado automático de código.

Esta herramienta muestra una ventana emergente que provoca conflictos con el foco de lectura de los lectores de pantalla provocando que se interrumpa la experiencia de introducción de código por parte del usuario.

Por suerte para los usuarios de lectores de pantalla esta herramienta se puede desactivar su aparición automática y los usuarios de lectores de pantalla pueden acceder al panel de sugerencias de completado de código de forma manual.

Editando la configuración de VSCode en JSON

Los ficheros de preferencias y configuración de VSCode están en formato JSON por lo que es sencillo su modificación.

Para acceder a nuestro fichero de configuración de VSCode sólo debemos seguir estos pasos:

  • Abrir VSCode
  • Pulsar la tecla F1 para acceder al asistente de ejecución de comandos de VSCode
  • En el cuadro de búsqueda escribir «preferencias json»  y elegir la opción Preferencias: Abrir configuración de usuario (JSON)Preferences: Open User Settings (JSON)

En VSCode aparecerá un fichero de texto con nuestras preferencias en formato JSON. Deberá ser algo parecido a esto:

{
  "editor.accessibilitySupport": "on",
  "workbench.startupEditor": "newUntitledFile",
  "workbench.activityBar.visible": false,
  "workbench.statusBar.visible": false,
  "editor.minimap.enabled": false,
  "workbench.editor.untitled.hint": "hidden",
  "breadcrumbs.enabled": false
}

Debemos incluir las opciones relacionadas con el completado automático de código.

La opción de editor.quickSuggestions controla si se debe abrir las sugerencias de completado mientras se escribe. Su formato es:

"editor.quickSuggestions": { "other": false, "comments": false, "strings": false },

La opción de editor.acceptSuggestionOnEnter controla si se deben aceptar las sugerencias automáticas pulsando la tecla enter. Es recomendable desactivar esta opción para que no haya forma de aceptar una sugerencia de forma involuntaria.

Su formato es:

"editor.acceptSuggestionOnEnter": "off",

La opción editor.quickSuggestionsDelay controla el tiempo de pausa que habrá para que aparezca una sugerencia en el código. Se recomienda un tiempo superior a 5 segundos si no queremos que haya posibilidad de cualquier sugerencia de forma automática. Su formato es:

"editor.quickSuggestionsDelay": 10,

La opción editor.wordBasedSuggestions activa un sistema de sugerencias por palabras. Es recomendable desactivar esta opción. 

Su formato es:

"editor.wordBasedSuggestions": false

Finalmente el código de nuestro JSON deberá quedar de la siguiente forma:

{
  "editor.accessibilitySupport": "on",
  "editor.quickSuggestions": {
    "other": false,
    "comments": false,
    "strings": false
  },
  "editor.acceptSuggestionOnEnter": "on",
  "editor.quickSuggestionsDelay": 10,
  "editor.wordBasedSuggestions": true,
  "workbench.startupEditor": "NewUntitledFile",
  "workbench.activityBar.visible": false,
  "workbench.statusBar.visible": false,
  "editor.minimap.enabled": false,
  "workbench.editor.untitled.hint": "hidden",
  "breadcrumbs.enabled": false
}

De esta forma la única posibilidad de utilizar la función de completado de código será pulsando el atajo de teclado Control+espacio para que aparezca la ventana con las sugerencias.

Trabajar de forma más accesible con VisualStudio Code usando lector de pantallas

El editor de código VisualStudio code o más conocido como VSCode incluye en sus últimas versiones la opción de activación del soporte de accesibilidad para usuarios de lectores de pantalla.

VSCode accesible en todas las plataformas

Aunque VSCode parece que proporciona accesibilidad en todas las plataformas no lo hace con la misma calidad o estabilidad.

Accesibilidad en Windows

Según la documentación oficial el soporte de accesibilidad para lectores de pantalla incluye a JAWS y NVDA aunque para este último se recomienda el uso de NVDA en modo foco en lugar del modo navegación.

Además también para NVDA existe una extensión de NVDA para VSCode para mejorar su comportamiento con este lector de pantallas.

En cualquier caso y con cualquier lector de pantallas se recomienda la navegación por salto por tabulación y el uso de las teclas para navegar entre paneles, pestañas y ventanas hijas.

Accesibilidad en MacOS

Al abrirse VSCode se detecta la presencia de VoiceOver y se abre un diálogo para activar la compatibilidad con lectores de pantalla.

La interfaz, aunque generada con tecnología web, resulta bastante accesible con el modo de navegación por grupos de las opciones de Internet de VoiceOver.

Quizás lo más problemático sean los mensajes emergentes para completar el código de forma automática o revisar el resultado en un simulador. Por suerte para los usuarios de VoiceOver todas estas opciones se pueden configurar.

En MacOS existe una opción para ver el estado de accesibilidad de VSCode. Pulsando el atajo de teclado Opcion+F1 accederemos a esta información.

Accesibilidad en Linux

Aunque el soporte para el lector de pantallas Orca está incluido para VSCode hay que mencionar que la estabilidad del lector de pantalla es aún menor cuando abrimos varias pestañas en VSCode.

El area de edición de código si resulta legible con Orca pero otros paneles como los mensajes de depuración o los paneles para acceder a ciertos elementos de configuración o de instalación de extensiones resultan totalmente inaccesibles para este lector de pantallas.

Accesibilidad en ChromeOS

Aunque VSCode dice soportar todas las plataformas el uso de esta aplicación utilizando ChromeVox, el lector de pantallas de ChromeOS, resulta totalmente improductivo ya que la experiencia es la de utilizar una página web con multitud de áreas dinámicas que carecen de encabezados o marcas semánticas.

Además el uso del teclado es conflictivo entre Chromevox y los propios atajos de VSCode.

Navegación en el completado de código

Para la función de completado de código automático aparece un mensaje emergente con una lista de opciones. Podemos navegar en esta lista de opciones utilizando los atajos de teclado Control+Flecha arriba y Control+Flecha abajo para seleccionar una de las posibles opciones.

En el caso de MacOS con VoiceOver es suficiente utilizar las flechas de arriba o abajo para moverse por la lista.

En cualquier caso es recomendable desactivar el completado automático de código y usarlo de forma manual con el atajo de teclado Control+Espacio.

Documentación oficial

El equipo de VSCode ha publicado información útil sobre las características de accesibilidad de este editor para diversos perfiles de accesibilidad. Puedes leer toda esta información en la página en inglés de accesibilidad de VSCode.

Dibujar diagramas con PlantUML

El proyecto de software libre PlantUML busca proporcionar un mecanismo para dibujar diagramas mediante un código sencillo en texto.

PlantUML utiliza la plataforma Java para su herramienta de generación de diagramas. Esto a diferencia de Mermaid facilita que la herramienta  pueda ejecutarse localmente aunque también se dispone de un servicio de PlantUML onLine.

Instalación de PlantUML

La instalación de PlantUML en sistemas MacOS y Linux es muy sencilla ya que se encuentra disponible en varios repositorios.

Por ejemplo instalar PlantUML en MacOS es muy sencillo si ya se posee la herramienta HomeBrew. Sería tan sencillo como ejecutar el siguiente comando en la Terminal de Mac:

brew install plantuml
Una vez instalada simplemente en la Terminal ejecutaríamos el comando plantuml pasando como parámetro el fichero de texto con la información de nuestro diagrama.

Ejemplo de diagrama de estado

Como vimos en el artículo sobre dibujar diagramas con Mermaid tenemos un diagrama de estado que representa los posibles estados de un ser vivo.

En PlantUML el código sería algo como:

@startuml
[*] --> Nacer
Nacer -> Crecer
Crecer -> Reproducirse
Reproducirse -> Envejecer
Envejecer -> Morir
Morir --> [*]
@enduml

El diagrama generado tiene el siguiente aspecto:

Diagrama de estados generado con PlantUML

Además PlantUML permite exportar a un formato ASCII en texto que puede resultar interesante para leer con líneas braille.

El anterior diagrama tiene el siguiente aspecto en ASCII:

,------.                                                  
|*start|
|------|
`------'
|
|
,-----. ,------. ,------------. ,---------. ,-----.
|Nacer| |Crecer| |Reproducirse| |Envejecer| |Morir|
|-----|---|------|---|------------|---|---------|--|-----|
`-----' `------' `------------' `---------' `-----'
|
,----.
|*end|
|----|
`----'

Conclusiones

En conclusión podemos indicar que PlantUML proporciona una herramienta local sencilla y rápida para generar cierto tipo de diagramas. Proporciona algunos mecanismos de personalización que la hacen interesante para usuarios ciegos que dispongan de línea braille aunque su sintaxis quizás pueda ser más engorrosa que Mermaid para algunos tipos de diagramas de ingeniería.