Todas las entradas de: Tyflos

Acerca de Tyflos

Desarrollador y consultor en accesibilidad, usabilidad y nuevas tecnologías. Creador de Tyflos Accessible Software y Programar a ciegas

Cómo compartir scripts de AppleScript con ficheros de sonido, texto y demás usando paquetes de scripts

Ya hemos visto cómo crear scripts y aplicaciones a partir de nuestros scripts para realizar y automatizar tareas y, por ahora, podemos compartirlos con otros usuarios sin demasiados problemas ya que siempre hemos accedido a elementos del sistema. Pero imaginemos que queremos crear un script con sus propios sonidos, ficheros de texto o ficheros de recursos y que siga ejecutándose sin problemas en nuestro Mac y el de nuestros amigos. En este artículo veremos cómo hacerlo.

Usar un paquete de scripts en lugar de un script de AppleScript

El editor de AppleScript nos permite guardar nuestro script de diversas formas, por ejemplo como script, como aplicación, como texto o como un paquete de scripts.

Un paquete de scripts es el formato idóneo para compartir nuestros scripts con amigos ya que es un formato que consiste en un conjunto de ficheros cuyo fichero principal es un archivo de script que se ejecutará al abrirlo con Finder.

En este paquete de scripts podemos incluir casi cualquier tipo de archivo que necesitemos para que nuestro script funcione perfectamente.

Creando un paquete de scripts

Para crear un paquete de scripts simplemente debemos crear un nuevo script de AppleScript desde la herramienta editor de AppleScripts y a la hora de guardarlo especificar que lo guardaremos con el formato paquete de scripts

En el editor de AppleScript se mostrará el código fuente de nuestro script como si se tratase de un script normal en lugar de un paquete de scripts.

La única diferencia es que la opción mostrar contenido del paquete del menú Visualización del editor de scripts estará disponible.

Al activar la opción mostrar contenido del paquete se nos mostrará información de nuestro paquete y una tabla con los ficheros que se incluyen dentro del paquete.

Por defecto en todos los paquetes se incluye el fichero description.rtfd y la carpeta Scripts y debemos evitar modificar estos dos elementos para mantener la estabilidad de nuestro paquete.

Añadiendo ficheros a nuestro paquete

Para agregar nuevos ficheros dentro de nuestro paquete sólo debemos arrastrar los nuevos ficheros hasta soltarlos dentro de la tabla con los ficheros de nuestro paquete. Por desgracia esta operación de arrastrar y soltar no es sencilla para los usuarios de producto de apoyo pero no es demasiado problema gracias a MacOS y su filosofía de multitud de alternativas y a la potencia de Finder.

Añadiendo ficheros a nuestro paquete a través de Finder

Podemos agregar los nuevos ficheros simplemente abriendo el contenido de nuestro paquete en Finder y tratándolo como una carpeta más en la que podemos pegar y duplicar ficheros así como cambiar sus nombres o crear carpetas.

Para hacer esto simplemente nos debemos colocar en el primer elemento de la tabla, que suele ser el fichero description.rtfd y utilizando el menú contextual activar la opción Mostrar en el Finder

Para activar el menú contextual debemos hacer una pulsación con el botón derecho del ratón o, si usamos VoiceOver, pulsar la combinación de teclas Mayúsculas + Control + Option + M

Al activar la opción Mostrar en el Finder se abrirá una carpeta en el Finder en la que podremos pegar o renombrar los archivos para nuestro paquete. Cualquier cambio que hagamos se verá reflejado en el editor de scripts

Accediendo a nuestros recursos desde nuestros scripts

Para acceder a uno de nuestros ficheros almacenados en el paquete debemos hacer referencia a él usando una referencia relativa a su ruta y a la del paquete almacenándo la ruta en una variable. Por ejemplo, imaginemos que hemos incluido el sonido prueba.caf en nuestro paquete y queremos almacenar su ruta en la variable misonido. El código sería:


set miSonido to POSIX path of (path to resource "prueba.caf")

Y para reproducir el sonido debemos crear el comando de terminal que solemos utilizar para reproducir sonidos con AppleScript incluyendo la ruta a nuestro fichero de audio. El script completo quedaría así:


on run
set miSonido to POSIX path of (path to resource "prueba.caf")
do shell script "afplay " & quoted form of miSonido
end run

Si el fichero a ejecutar no está en nuestro paquete aparecerá el mensaje de error Recurso no encontrado.

Ejecutar comandos de terminal desde AppleScript con permisos de administrador

En artículos anteriores hemos visto cómo ejecutar comandos del terminal desde un script de AppleScript gracias al comando do shell script. Pero puede que necesitemos ejecutar un comando de terminal con permisos de administrador.

Desde AppleScript podemos usar el comando do shell script indicando que se requiere la contrase&ntidle;a de administrador para ejecutar el programa. Esto lo podemos hacer incluyendo en la llamada do shell script los atributos with administrator privileges para indicar que el comando a ejecutar requiere la contraseña de administrador.

Su sintaxis es la siguiente:


do shell script "sudo comando a ejecutar" with administrator privileges

Hacer el mantenimiento de nuestro Mac gracias a AppleScript

Como ejemplo para este artículo vamos a crear un simple script que ejecute los scripts de mantenimiento diario, semanal y mensual para nuestro Mac.

El comando de terminal a ejecutar es:


periodic daily weekly monthly

Este comando se debe ejecutar con permisos de administrador por lo que es un candidato idóneo para nuestro ejemplo.

Nuestro script quedaría así:


on run
try
do shell script "sudo periodic daily weekly monthly" with administrator privileges
do shell script "afplay /System/Library/Sounds/Glass.aiff"
display alert "Proceso de mantenimiento realizado."
on error
do shell script "afplay /System/Library/Sounds/Basso.aiff"
display alert "Error al intentar inicializar el mantenimiento de este Mac."
end try
end run

Participación en @WPRadioES podcast para hablar de accesibilidad y WordPress 5

Hoy he participado en el podcast WP Radio, un podcast especializado en el mundo y la comunidad WordPress y dirigido por Joan Boluda y Joan Artés.

El motivo de mi participación era esclarecer y opinar sobre Gutenberg, el nuevo editor visual de contenidos para WordPress, sus problemas de accesibilidad para crear contenidos y la accesibilidad de los contenidos creados así como problemas de usabilidad y las tecnologías utilizadas en este nuevo editor para la versión 5 de WordPress.

Recoger información desde el teclado desde un script en Swift en MacOS

Ya hemos visto en un artículo anterior cómo ejecutar un script en Swift. Pero no podemos alcanzar la máxima potencia de un script lanzado desde la terminal si no podemos pasarle parámetros.

Desde Swift podemos crear aplicaciones de línea de comandos usando xCode pero también podemos crear un simple script en Swift que recoja los parámetros que el usuario le vaya pasando mientras se ejecuta el script. Para ello podemos ir solicitando al usuario que introduzca texto a través de la terminal de MacOS.

En este artículo veremos un simple script que nos preguntará nuestro nombre para poder mostrar un saludo personalizado.

Creando el fichero de nuestro script

Desde la terminal crearemos el fichero saludame.swift.


echo "" >> saludame.swift

Editando el código de nuestro script

Primero debemos abrir nuestro fichero con un editor de código. Para ello desde la terminal usaremos el comando open.


open saludame.swift

El código para obtener la información introducida por el teclado se consigue con la función readLine(). El código completo de nuestro script sería el siguiente:


print("Introduce tu nombre:")
let nombre = readLine()
print("Hola \(nombre!)")

Ejecutando nuestro script

Desde la terminal debemos ejecutar el comando swift indicando el nombre de nuestro fichero de código.


swift saludame.swift

Al ejecutar el comando en la terminal nos pedirá nuestro nombre y tras introducirlo y pulsar la tecla Enter nos mostrará un mensaje de saludo con nuestro nombre.

Ejecutar scripts de Swift desde la terminal de MacOS

El lenguaje de programación Swift, creado por Apple, cada vez tiene más presencia en todas partes. Ahora incluso podemos ejecutar ficheros de código Swift desde la consola del sistema MacOS.

En este artículo realizaremos un pequeño ejemplo de script en Swift y lo ejecutaremos desde la consola. El script mostrará un texto de saludo en la consola.

Creando el fichero para nuestro script

En nuestra carpeta de trabajo crearemos un fichero llamado saludo.swift. Esto lo podemos hacer desde la propia terminal de MacOS.

En la terminal escribe el comando siguiente:


echo "" >> saludo.swift

Editando nuestro script

Para abrir el fichero en xCode y editar su código podemos usar xCode o la aplicación que el sistema operativo vea más apropiada. Para ello desde el terminal usaremos el comando open. Escribiremos en la terminal el siguiente comando:


open saludo.swift

Una vez abierto el entorno de xCode deberemos escribir el código para mostrar un texto de saludo por pantalla. El código sería el siguiente:


print("Hola mundo!")

Ejecutando el script en Swift

Una vez guardado el fichero con nuestro código podemos ejecutar el fichero Swift con el comando swift. En la terminal de MacOS debemos ejecutar el siguiente comando:


swift saludo.swift

Escucha asistida en iOS12 para personas con hipoacusia

Entre las mejoras y novedades sobre accesibilidad de iOS12 encontramos una nueva característica muy enfocada a personas con hipoacusia que sean usuarios de los auriculares de Apple Airpods. Esta nueva característica conocida como escucha asistida consiste en crear un audífono utilizando los micrófonos integrados en el auricular Airpod para generar una experiencia de escucha amplificada.

Para activar esta característica debemos ir a los Ajustes de nuestro iPhone y en la sección de centro de control debemos utilizar la opción de personalizar controles e insertar el elemento Audición.

Ahora en la parte baja del centro de control aparecerá el botón audición representado por un oído humano. Al activarlo con los Airpods puestos comenzará la función de escucha asistida.

Aunque la experiencia puede ser bastante satisfactoria con personas con hipoacusia real es cierto que a veces el audio amplificado se reproduce con un retraso de hasta un par de segundos provocando que podamos confundirnos con nuestro entorno.

Disponible el libro formación básica en NVDA

La comunidad de NVDA en Espñol ha publicado la traducción al español del libro Formación básica de NVDA con el cual mediante ejemplos y explicaciones sencillas y a través de 16 secciones se aprende a utilizar en profundidad este lector de pantallas de código abierto para Windows.

El libro se distribuye en varios formatos electrónicos como Doc, KFX, ePub y HTML y está a la venta en la tienda de la comunidad NVDA en español y su precio de 17,99 euros se destinarán al mantenimiento de NVDA y su comunidad.

Con la compra del libro se tiene acceso a todas las futuras actualizaciones que se publiquen y la comunidad quiere seguir traduciendo y publicando más documentos y libros sobre este lector de pantallas.

Abrir una dirección web con Safari desde AppleScript

Ya hemos visto cómo comunicarnos con aplicaciones usando AppleScripts y diccionarios. En este artículo veremos cómo activar la ventana del navegador web Safari y abrir una dirección web.

El código sería el siguiente:


tell application "Safari"
activate
set URL of document 1 to "http://www.tyflosaccessiblesoftware.com"
end tell

Habría que sustituir el texto http://www.tyflosaccessiblesoftware.com por la dirección web que queramos o convertir este script en una función para nuestra librería. Por ejemplo:


on openWeb(direccionWeb)
tell application "Safari"
activate
set URL of document 1 to direccionWeb
end tell
end openWeb

Novedades en accesibilidad en la actualización de octubre de Windows 10

Microsoft acaba de publicar su actualización de octubre para su producto insignea, su sistema operativo Windows 10.

En esta actualización para Windows 10 se han incluido muchas mejoras en accesibilidad tanto para Narrador, el lector de pantallas creado por Microsoft, mejoras para la lectura y comprensión del texto en pantalla y otras mejoras de accesibilidad.

Ahora el texto en pantalla puede personalizarse para que sea presentado de forma más accesible a cada usuario pudiendo personalizar tanto el escalado, el tamaño del texto como la distribución del texto en pantalla para mejorar la lectura con magnificador de pantalla o con algunas discapacidades cognitivas.

Narrador incorpora nuevos atajos de teclado para que resulte más cómodo e intuitivo de usar, tanto que algunos de estos atajos de teclado son semejantes a los que ya se usan en otros lectores de pantalla.

La eficiencia y el comportamiento de Narrador ahora se parece al de otros lectores de pantalla leyendo automáticamente la información de cuadros de diálogo o alertas así como permitir el uso de funciones de búsqueda de un texto en la ventana activa o el listado de los botones, enlaces u otros elementos interactivos en la pantalla actual para localizar más rápidamente un control en concreto.

También se ha incorporado un tutorial al iniciar Narrador para que el usuario se familiarice con él lo antes posible y además tras el tutorial pueda obtener más información.

Microsoft acepta todo el feedback posible para hacer sus productos más accesibles. Puedes enviar tu feedback a Microsoft para que mejoren aún más sus productos.

Operaciones básicas con Aplicaciones MacOS y diccionarios de AppleScript

Ya hemos visto que muchas de las aplicaciones para MacOS incluyen diccionarios para AppleScript para realizar operaciones específicas con cada aplicación pero existen comandos y propiedades comunes para todas las aplicaciones.

En este artículo veremos algunas funciones comunes para todas las aplicaciones de MacOS que incluyan diccionario.

Pero antes de empezar debemos aprender a comunicarnos con las aplicaciones. Esta operación de comunicarnos con una aplicación se realiza mediante el bloque tell. Su sintaxis es sencilla.


tell "Nombre de aplicación entre comillas"
-- lista de operaciones
end tell

Cuando decimos comunicarnos con una aplicación nos referimos tanto a enviar órdenes a la aplicación como a consultar propiedades y variables que posee la aplicación o utilizar objetos y elementos de operación que la aplicación ofrece para ser utilizados con AppleScript.

Abrir la ventana de la aplicación

El comando activate abre la aplicación con la que nos estemos comunicando y si ya estaba abierta pasa su ventana a primer plano.


tell application "TextEdit"
activate
end tell

Cerrar una aplicación

Con el comando quit podemos cerrar la aplicación que queramos.


tell application "Mail"
quit
end tell