Últimas noticias

Ayer se actualizaron tres complementos del sitio web oficial para añadir compatibilidad con WX Python 4. Son Golden Cursor (a la 3.1), Systray List (2.4) y Unicode Braille Input (3.9). Se puede actualizar a estas nuevas versiones sin miedo ya utilicemos el canal estable o el de alguna de las versiones de desarrollo, pues la compatibilidad con WX versión 3 se ha mantenido. Es importante actualizar a estas nuevas versiones ya que, probablemente, NVDA 2018.3 incorpore WX 4, con lo que versiones anteriores de estos complementos podrían no funcionar correctamente con la próxima actualización del lector.
Por otro lado, el autor de Clipspeak ha declarado la versión 1.0 de su complemento como estable, lo que significa que tiene un menor grado de errores y ha sido probada sin fallos significativos durante un tiempo. También ha aprovechado para corregir un error en su nombre de la documentación.
Si te has quedado con dudas, recuerda que estamos activos a través de una gran variedad de canales para que puedas planteárnoslas. En la parte inferior de esta página tienes nuestros perfiles en redes sociales y algunos enlaces a lugares de discusión relevantes en la comunidad, y en el menú principal el enlace a nuestro formulario de contacto por correo electrónico.
Si te gusta nuestro trabajo, plantéate hacer una donación.
Feliz domingo.

A la hora de programar un complemento que tiene algún tipo de interfaz gráfica, o hacer modificaciones a la propia interfaz de NVDA, todos los desarrolladores ciegos nos hacemos la misma pregunta tarde o temprano: ¿cómo se ve en pantalla esto que estoy programando? Podemos probar distintas combinaciones de constantes, posiciones y tamaños para los controles, pero al no poder verlos, probablemente el resultado no sea el que esperamos. En la entrada de hoy vamos a hablar del módulo guiHelper, disponible desde la versión 2016.4 de NVDA. La misión de este módulo es abstraernos un poco de los detalles más visuales del diseño de nuestra interfaz, de tal forma que sólo debamos preocuparnos de añadir controles y funcionalidad. El módulo no hace magia, pero nuestras interfaces quedarán probablemente un poquito mejor que antes. Si quieres conocer este módulo un poco más, sigue leyendo. ¡Allá vamos!
Nota: en este artículo se asume que el lector tiene conocimientos sobre la programación de complementos con interfaz gráfica.

Importar el módulo

El módulo guiHelper se encuentra en el paquete gui. Si nuestro complemento tiene interfaz gráfica, en algún momento seguramente habremos importado los módulos gui y wx, por lo que sólo haría falta escribir esto:
from gui import guiHelper
Una vez hecho esto, ya podremos acceder a sus constantes, funciones y clases.

Constantes de guiHelper

Estas constantes vienen incluidas directamente en el módulo.

  • BORDER_FOR_DIALOGS: es el borde que se encuentra alrededor de cada control dentro de un diálogo.
  • SPACE_BETWEEN_VERTICAL_DIALOG_ITEMS: cuando los elementos de un diálogo se disponen de manera vertical, esta constante se puede emplear para indicar cuánto espacio hay entre cada elemento.
  • SPACE_BETWEEN_BUTTONS_HORIZONTAL: especifica el espacio que hay entre botones dispuestos de manera horizontal.
  • SPACE_BETWEEN_BUTTONS_VERTICAL: igual que en el caso anterior, pero se aplica cuando los botones están dispuestos verticalmente unos sobre otros.
  • SPACE_BETWEEN_ASSOCIATED_CONTROL_HORIZONTAL: es el espacio que separa a dos controles relacionados dispuestos en horizontal.
  • SPACE_BETWEEN_ASSOCIATED_CONTROL_VERTICAL: lo mismo que en el caso anterior, pero en disposiciones verticales.

Funciones de guiHelper

A día de hoy, guiHelper sólo dispone de una función a nivel de módulo: associateElements. Esta función introduce dos controles en un objeto Sizer de wx, situándolos en horizontal o vertical y separándolos adecuadamente según su tipo. Su cabecera es la siguiente:
def associateElements( firstElement, secondElement)
Los controles deben pasarse en el orden en que queremos que se asocien. Las posibles asociaciones son:

  • wx.StaticText y wx.Choice, wx.TextCtrl o wx.Button: asocia una etiqueta con un cuadro combinado, un cuadro de edición o un botón, en disposición horizontal.
  • wx.StaticText y wx.ListCtrl o wx.ListBox o wx.TreeCtrl: asocia una etiqueta con una presentación en lista, un cuadro de lista o una vista en árbol, en disposición vertical.
  • wx.Button y wx.CheckBox: asocia un botón y una casilla de verificación, disposición horizontal.
  • wx.TextCtrl y wx.Button: asocia un cuadro de texto y un botón en posición horizontal.

En todos los casos, los controles deben ser objetos ya instanciados. La función devuelve el objeto Sizer que los contiene, listo para añadirlo a un diálogo u otro Sizer.

Clases de guiHelper

El módulo guiHelper dispone de cuatro clases que nos ayudan a construir nuestra interfaz. Aunque vamos a verlas todas, la que más se usa es BoxSizerHelper. Todas ellas tienen el atributo sizer, empleado al construir el resto de la interfaz.

La clase ButtonHelper

Esta clase sirve para añadir el espacio adecuado entre botones, tanto en horizontal como en vertical. Al instanciar objetos a partir de ella, se debe especificar la orientación del Sizer que va a generar, ya sea wx.VERTICAL o wx.HORIZONTAL. Por ejemplo:
bh=guiHelper.ButtonHelper(wx.VERTICAL)
Una vez construido el objeto, podemos agregar botones llamando al método addButton:
bh.addButton(mydialog, label=_("Test button 1"))
El método addButton construye un nuevo botón con los parámetros que le pasemos, o también puede añadir un botón previamente creado. Es imprescindible indicar en el primer caso el diálogo o ventana padre que contendrá al botón, y una etiqueta por razones de accesibilidad con el parámetro label. Al acabar, se devuelve el botón creado para que podamos hacer cosas con él, como asociarle acciones.

La clase LabeledControlHelper

Esta clase permite crear controles etiquetados y asociar etiqueta y control entre sí en un Sizer. Se apoya en la función associateElements que vimos más arriba. La cabecera de su constructor es:
def __init__(self, parent, labelText, wxCtrlClass, **kwargs)
Por lo tanto, para construir un objeto de tipo LabeledControlHelper necesitamos pasar como parámetros el diálogo o ventana padre, el texto de la etiqueta que acompañará al control, la clase del control (cuidado, aquí no valen controles previamente creados), y cualquier argumento que necesite el control para construirse. Veámoslo de forma más clara con un ejemplo:
lch=guiHelper.LabeledControlHelper(mydialog, "Selecciona una fruta", wx.Choice, choices=['pera', 'manzana', 'fresa'])
En el ejemplo anterior hemos pasado como clase wx.Choice para crear un cuadro combinado, y como parámetros adicionales las opciones que presentará.
La clase LabeledControlHelper dispone de dos atributos para que podamos trabajar cómodamente: sizer, igual que en el resto de clases, y control, que hace referencia al control de wx que hemos creado.

La clase PathSelectionHelper

Esta clase nos permite crear de una forma rápida, sencilla y abstrayéndonos de todos los detalles, un cuadro de edición y un botón “Examinar…” como los que aparecen en muchos programas, con el objetivo de que podamos fabricar un selector de rutas. En el constructor le pasamos el padre, como siempre, el texto del botón Examinar, y el título del diálogo que se desplegará para seleccionar una ruta cuando pulsemos dicho botón. Por ejemplo:
psh=guiHelper.PathSelectionHelper(mydialog, "Examinar...", "Selecciona la carpeta que contiene los documentos")
Como en los casos anteriores, tenemos la propiedad sizer, pero además aquí nos acompaña otra: pathControl, que contiene una referencia al cuadro de texto donde está escrita la ruta.
En caso de que sea necesario, se podría crear una clase que herede de esta y sobreescribir o extender los métodos getDefaultBrowseForDirectoryPath y onBrowseForDirectory. El primero devuelve la ruta por defecto que muestra el diálogo de seleccionar carpeta, y el segundo muestra este diálogo y almacena el resultado en el cuadro de edición.

La clase BoxSizerHelper

Llegamos a la clase más importante de este módulo, la más usada, y la que emplea la funcionalidad expuesta en casi todas las otras. BoxSizerHelper permite configurar la disposición interna de un objeto Sizer. La cabecera de su constructor es:
def __init__(self, parent, orientation=None, sizer=None)
Como siempre, el primer argumento que espera recibir es la ventana padre. Después, podemos pasar una orientación (wx.VERTICAL o wx.HORIZONTAL), en cuyo caso se creará internamente un objeto Sizer, o un Sizer ya creado, a ser posible vacío. Si pasamos ambos parámetros, se produce un error.
Al igual que sucede en los casos anteriores, tenemos un atributo sizer. Esta clase, además, presenta los siguientes métodos:

  • addItem(self, item, **keywordArgs): añade un control wx ya creado y lo sitúa adecuadamente. El último argumento es opcional y sólo se usa en raras ocasiones. El método devuelve el elemento que se pasa como parámetro, para que podamos asociarle acciones y hacer otras cosas con él.
  • addLabeledControl(self, labelText, wxCtrlClass, **kwargs): añade un control etiquetado. El primer parámetro que recibe es el texto con la etiqueta del control, seguido de la clase del control y los parámetros adicionales que se quieran pasar. Fíjate en el ejemplo anterior del cuadro combinado. Este método devuelve el control que se acaba de agregar.
  • addDialogDismissButtons(self, buttons): agrega y alinea los botones Aceptar, Cancelar y Aplicar de los diálogos estándar. Este método debería llamarse cuando ya se han añadido todos los demás controles. Buttons puede ser un objeto wx.Button, un objeto wx.Sizer o un objeto guiHelper.ButtonHelper. Devuelve el mismo objeto que se le pasa como parámetro.

Aplicaciones prácticas

Al igual que en una entrada anterior, vamos a poner como ejemplo el complemento Enhanced Aria (aunque esta vez no vendrá solo), para demostrar lo fácil que es adaptar nuestros complementos para que se apoyen en guiHelper. En la versión 1.3, para agregar la primera casilla de verificación del diálogo de ajustes de aria mejorada, se hacía esto:
self.bannerenabled=wx.CheckBox(self, wx.NewId(), label=(u"Report banners")) # Como self es una clase que hereda de wx.Dialog, se pasa como padre
self.bannerenabled.SetValue(config.conf['aria']['reportBanner']) # Se establece el valor de la casilla

sizer.Add(self.bannerenabled,border=10,flag=wx.BOTTOM) # se añade la casilla sizer
Como se puede comprobar, hay que crear la casilla con su etiqueta correspondiente, asignarle el valor adecuado y añadirla al objeto que va a contenerla, con indicadores de borde y alineación. Sin embargo, en la versión 2.0 basta con hacer esto:
def createSettings(obj, sizer):
helper=guiHelper.BoxSizerHelper(obj, sizer=sizer)
obj.bannerenabled=helper.addItem(wx.CheckBox(obj, wx.NewId(), label=
("Report banners")))
obj.bannerenabled.SetValue(config.conf['aria']['reportBanner'])

Como se puede ver, creamos un BoxSizerHelper pasando como parámetro el Sizer que nos dan en el método makeSettings, y que en el caso particular de esta implementación se pasa a createSettings. A continuación, agregamos una nueva casilla de verificación llamando a addItem, y luego establecemos su valor.
Veamos el diálogo de Windows 10 App Essentials, que también se apoya en este módulo. Lo podemos encontrar en el archivo w10config.py. Se trata de un diálogo completo, una clase que hereda de wx.Dialog. Por lo tanto, construirlo implica más esfuerzo, al no tener a nuestra disposición la clase SettingsDialog de NVDA o la clase SettingsPanel. En lugar del método makeSettings, que ya nos da un Sizer, las operaciones de construcción se hacen en el constructor del diálogo.
En primer lugar, se crea un objeto de tipo BoxSizer:
mainSizer = wx.BoxSizer(wx.VERTICAL)
Y a continuación, se crea un BoxSizerHelper con un Sizer nuevo, que será hijo del que se acaba de crear:
w10Helper = gui.guiHelper.BoxSizerHelper(self, orientation=wx.VERTICAL)
Teniendo el BoxSizerHelper, ya se pueden añadir controles. Vamos a ver dos de ellos, la casilla de verificación y el cuadro combinado.
self.autoUpdateCheckbox=w10Helper.addItem(wx.CheckBox(self,label=_("Automatically check for add-on &updates"))) # Se crea la casilla
self.autoUpdateCheckbox.SetValue(config.conf["wintenApps"]["autoUpdateCheck"]) # Se establece su valor
labelText = _("&Add-on update channel:") # Etiqueta del cuadro combinado
self.channels=w10Helper.addLabeledControl(labelText, wx.Choice, choices=["development", "stable"]) # Cuadro combinado

Ya para acabar, se añaden los botones Aceptar y cancelar, y se hace de una forma muy particular, ya predefinida en wx:
w10Helper.addDialogDismissButtons(self.CreateButtonSizer(wx.OK | wx.CANCEL))
En este caso no existe acceso directo a los botones, como sí pasa con el resto de los controles, así que las asociaciones se hacen de esta manera:
self.Bind(wx.EVT_BUTTON, self.onOk, id=wx.ID_OK)
self.Bind(wx.EVT_BUTTON, self.onCancel, id=wx.ID_CANCEL)

El BoxSizerHelper ya está completo, hay que añadirlo al Sizer principal. Una vez más, se pide ayuda a guiHelper, y al propio motor wx para centrarlo y posicionarlo:
mainSizer.Add(w10Helper.sizer, border=gui.guiHelper.BORDER_FOR_DIALOGS, flag=wx.ALL)
mainSizer.Fit(self)
self.Center(wx.BOTH | (wx.CENTER_ON_SCREEN if hasattr(wx, "CENTER_ON_SCREEN") else 2))

Conclusión

Es importante que nuestros complementos e interfaces gráficas en general sean visualmente usables. Aunque NVDA es un lector de pantalla empleado mayoritariamente por personas con discapacidad visual, estas personas suelen estar acompañadas por otras que ven perfectamente, especialmente cuando se introducen en el mundo de la informática. Por tanto, debemos tener en cuenta a todos los posibles usuarios.
En esta entrada hemos conocido el módulo guiHelper, que nos ayuda precisamente en esta tarea. GuiHelper no hace magia, no tiene ningún tipo de “inteligencia artificial” que coloque nuestros controles exactamente como deberían estar para que nuestra interfaz sea atractiva. Sin embargo, nos ayuda un poco a conseguirlo, simplifica nuestro código y por lo tanto facilita el mantenimiento.
Si tus complementos no se apoyan todavía en este módulo, no esperes más para adaptarlos. Tus usuarios lo agradecerán, ¡y tú también!

Esta mañana, NV Access ha anunciado en una publicación que van a producirse cambios en la metodología de desarrollo de NVDA que afectarán tanto a los desarrolladores como a aquellos usuarios que prueban las versiones de desarrollo. Estos cambios se llevan a cabo para aprovechar mejor la infraestructura de Github, y porque existen cada vez más pruebas unitarias que garantizan que el código siempre tendrá cierta calidad. El principal cambio que se llevará pronto a cabo es la descontinuación de la rama next, así como sus versiones de desarrollo. La rama next ya no es necesaria porque las solicitudes de cambios (pull requests) pasan una serie de controles automatizados antes de que los desarrolladores decidan si las mezclan o no. Esto, junto al creciente número de pruebas unitarias automatizadas, hace que ya no sea necesario probar de forma tan exhaustiva el código. Aquellos usuarios que tengan instalada la versión de desarrollo next de NVDA comenzarán a recibir actualizaciones de la versión de desarrollo master. Los que utilicen las versiones de desarrollo master, por su parte, seguirán recibiendo actualizaciones por este canal de desarrollo. Pero cuidado, porque el código que antes llegaba a next ahora se recibe en master, lo que significa que estas versiones dejarán de ser tan estables como hasta ahora.
Pero entonces, ¿qué ocurre con aquellos que quieran ir por delante de las versiones rc y oficiales, pero sin arriesgarse a tener un lector de pantalla lleno de fallos?
Aproximadamente siete semanas antes de la liberación estable de NVDA, comenzarán a ponerse a disposición del público versiones beta. Habrá una rama beta en el repositorio de NVDA. El código de estas versiones de desarrollo será tan estable como el de las versiones master actuales. Para acabar, los traductores y los usuarios de versiones estables no se verán afectados por ninguno de estos cambios.
Hay más cambios específicos para desarrolladores, relacionados con la gestión de solicitudes de cambios. Ya se encuentran disponibles en nuestra traducción del artículo El proceso de liberación de versiones, disponible en inglés en la wiki de NVDA en GitHub.
Por otro lado, NV Access le ha dado un lavado de cara a su sitio web, renovándolo por completo. Ahora, entre otras cosas, ya no es obligatorio introducir una dirección de correo electrónico para descargar NVDA desde allí, los textos de la página de inicio han cambiado para mostrar la filosofía de la organización, y hay nuevas secciones con enlaces para que tengamos todos sus recursos más a mano. ¡Bien hecho!
Esto es todo por el momento. Pronto volveremos con más artículos para desarrolladores, complementos no oficiales descubiertos y detalles sobre nuestro encuentro anual.
¡Hasta la próxima!

El complemento Windows 10 App Essentials, que añade mejoras a nuestra experiencia con aplicaciones nativas de Windows10, se actualiza hoy a la versión 18.07.1A. Esta A tras el número de versión significa que las modificaciones son muy pequeñas, lo cual concuerda en este caso con el registro de cambios: Lo único nuevo es que ahora se omite el texto “encabezado 1” después del resultado en la calculadora. No era un error ya que el sistema informa a NVDA de un encabezado 1 después del resultado, pero igualmente se ha cambiado el comportamiento por comodidad y costumbre.
Como siempre ocurre con los complementos que tienen un actualizador automático, hay dos formas de descargar las nuevas versiones: podemos optar por el mencionado actualizador, o bien podemos pulsar en el enlace de más arriba, que nos llevará a la ficha del complemento en esta web desde la que podremos, además de leer toda la información sobre él, obtener el paquete nvda-addon que nos permitirá instalarlo mediante el método usual.

En el mundo NVDA comenzamos el mes de julio con otra actualización del complemento Windows 10 App Essentials, a la versión 18.07.1. Viene con varios cambios significativos: por un lado, las alertas marcadas como tal mediante aria se anunciarán cuando cambien en Edge y otras aplicaciones que utilicen su motor, y por otro NVDA será menos detallado al explorar emojys mediante el Panel de Emojys en la compilación 17704 y posteriores.
Como siempre, hacerte con esta nueva versión es tan fácil como esperar a que el propio complemento te pregunte. También puedes forzar la verificación de actualizaciones desde el diálogo de configuración del complemento o descargarla manualmente de la forma habitual.

Feliz semana.

En las últimas horas, Joseph Lee y Noelia Ruiz han actualizado varios de sus complementos. Veamos cuáles son en detalle:

Todos estos complementos llevan traducciones actualizadas. Como siempre, se recomienda instalar las últimas versiones.
Por otro lado, los complementos Team Viewer y Console timer dejan de ser estables y vuelven a la categoría de desarrollo. Esto es debido a que sus autores no disponen del tiempo o los recursos necesarios para mantenerlos, o que parte de su funcionalidad se ha integrado en NVDA. De momento siguen funcionando, pero en el futuro podrían dejar de hacerlo si el núcleo de NVDA cambia.
En nuestra web hemos reflejado este cambio retirándolos de la categoría “Complementos estables”, tal y como se ha hecho en la web de la comunidad internacional.

Llevamos ya un tiempo sin hablar de complementos no oficiales, y lo cierto es que aún nos quedan unos cuantos por documentar para agrupar todos aquellos de los que tenemos conocimiento. Vamos a empezar una nueva tanda de éstos hablándoos de la actualización más reciente de NVDA Store, que salió hace unos meses. En esta nueva versión, la 1.0.3, se finaliza la traducción al francés y, al mismo tiempo, se soluciona un error que podía imposibilitar una salida completa de NVDA.
Esta es una actualización que arregla un fallo que podría afectar al conjunto de la instalación de NVDA; de manera que es recomendable actualizar si no se ha hecho aún. Podemos hacerlo a través del enlace arriba o mediante el actualizador automático que el complemento trae consigo. Si aún no has instalado NVDA Store, un complemento para instalar y actualizar ciertos complementos listados en la web del autor, y te interesa hacerlo, deberás optar por la primera opción. Recuerda, pese a todo, que éste es un complemento no revisado por experimentados miembros de la comunidad como sí ocurre en el caso de los disponibles en la web oficial de complementos, con lo que puede contener errores y no hay garantías suficientes de que funcione como se espera en todos los casos.
Finalmente, si conoces algún complemento no oficial que se ha actualizado y no hemos avisado, no dudes en colaborar con nosotros; solos no somos capaces de vigilarlos a todos. Puedes comunicarte con esta web a través de nuestro formulario de contacto o [email protected] si optas por el correo electrónico, o mediante nuestro twitter @nvda_es, que tiene los mensajes directos abiertos para cualquier consulta, si eliges utilizar esta plataforma. Al pie de todas las páginas del sitio también tienes un menú de enlaces sociales donde se encuentran los lugares más relevantes de interacción entre miembros de la comunidad hispanohablante. Te agradeceremos cualquier información que nos hagas llegar.

El complemento que mejora la accesibilidad con el reproductor multimedia VLC Media Player se actualiza a la versión 2.4. En esta actualización se siguen solucionando fallos y se mejora la experiencia con VLC Media Player 3.x. Además, su autor ha liberado también la versión 2.5-dev, que permite explorar los cuadros de edición en la interfaz del reproductor.
Más información y descarga del complemento para VLC
Como siempre, te recordamos que mantener tus complementos actualizados es muy importante, ya que esto garantiza una experiencia óptima con NVDA y te permite disponer de las últimas mejoras de calidad, estabilidad y seguridad.
¡Feliz viernes!

Si ayer os hablábamos de la actualización a la versión 18.07 de windows 10 App Essentials, hoy hace lo propio Station Playlist Studio, el complemento que añade multitud de funciones de accesibilidad a las herramientas de la suite Station Playlist.
Con esta versión llegan algunas características nuevas, como la posibilidad de obtener transcripción de la lista de reproducción de la hora en curso o la de guardarla (o copiarla al portapapeles en el caso de los formatos texto y tabla Markdown) en vez de sólo visualizarla, y, en SPLCreator y la Herramienta de Pistas, los atajos NVDA+número dos veces para ver en una ventana navegable la información de la columna y ctrl+alt+inicio/fin para mover el navegador de columnas a la primera o última, respectivamente, de la pista con el foco. También se han corregido varios errores y se ha añadido un panel experimental multicategoríade opciones del complemento, que se puede activar desde el actual diálogo de opciones (apartado avanzado) y que no permite configurar la misma cantidad de parámetros que en éste.
Para tener en nuestro poder esta nueva actualización basta con esperar al diálogo que nos informará al respecto (que podemos abrir manualmente desde las preferencias de esta extensión, pulsando el botón “Verificar actualizaciones”); y también tenemos la posibilidad de descargar el paquete desde los enlaces disponibles en la página que te dejamos en la parte superior de este artículo, donde además podrás obtener toda la información disponible acerca de este complemento.

¡Hola!
Como dijimos el otro día en una entrada anterior, estamos organizando el primer encuentro de la comunidad de NVDA en español. Si quieres participar hablando de algún tema, ¡te esperamos!
La entrada de hoy vamos a dedicarla a Teamtalk, un conocido sistema de conferencias por chat, voz y vídeo, ya que lo utilizaremos para realizar el encuentro de forma remota. Daremos una breve descripción del programa, un resumen de sus características, y los primeros pasos que se deben llevar a cabo para conectarse al servidor que ya tenemos preparado para la ocasión. ¡Comencemos!

Descripción de Teamtalk

Teamtalk es un software multiplataforma que permite comunicarse a través de Internet mediante chat, voz y vídeo. Mucha gente lo compara con Skype, e incluso llega a utilizarlo como alternativa a este. Sin embargo, sus diferencias son tantas que aquí sólo podremos citar unas pocas:

  • En vez de llamadas de usuario a usuario o grupales, en Teamtalk existen canales. Los usuarios no llaman o contestan una llamada. Simplemente buscan un canal donde haya otro usuario y se unen a él.
  • Teamtalk es totalmente descentralizado. No hay un servidor único, tú puedes montar tu propio servidor.
  • La calidad de sonido es constante, con todo lo que ello implica. Si la conexión a Internet es mala, la calidad no se rebaja automáticamente, sino que el sonido se entrecorta.

Algunas de sus características más destacables son:

  • Canales: aunque la calidad sea constante, esto no significa que no se pueda regular. Cada servidor puede tener distintos canales, cada uno con unas características distintas (velocidad en bits del audio, códec utilizado, tasa de muestreo, etc.)
  • Capacidad para regular el sonido: se pueden configurar aspectos tales como la reducción de ruido, posicionamiento de los usuarios en el canal (escuchar algunos a la izquierda y otros a la derecha, por ejemplo), o el volumen de los altavoces y el micrófono sin tocar los ajustes del sistema. Además se puede elegir el motor de sonido, el nivel de activación del micrófono, y muchas más cosas
  • Capacidad para transmitir y recibir vídeo utilizando una WebCam
  • Capacidad para compartir el escritorio o controlar el escritorio compartido de otro usuario
  • Capacidad de emitir archivos multimedia
  • Opciones para compartir archivos subiéndolos al canal
  • Mensajes de chat tanto en el canal como privados con otros usuarios
  • Un cliente específico para usuarios de lectores de pantalla, que se mantiene al día con los últimos avances. Y por si fuera poco, hay un complemento para hacerlo un poco más accesible con NVDA!
  • Muchas otras funciones: grabación de conversaciones, posibilidad de gestionar las suscripciones a lo que envía un usuario concreto, etc.

Descarga e instalación de Teamtalk

Ahora que ya sabemos qué es, ¡toca pasar a la acción! La web oficial de Teamtalk es bearware.dk. Para ahorrar tiempo, vamos a poner los enlaces directos de la última versión, que en el momento en que se escribe esta entrada es la 5.3.2.

La instalación de Teamtalk en Android, iOs y Windows es relativamente sencilla. En este último caso, tras abrir el instalador, aparecerá el asistente de instalación en inglés y nos irá guiando por el proceso. Podemos pulsar el botón next en la mayoría de las pantallas, pero es importante que en una de ellas, que contiene un cuadro combinado, seleccionemos la opción TeamTalk Classic for Accessibility. De lo contrario se instalará la versión no accesible del programa, que resulta más difícil de manejar.

Configuración inicial en Windows

Si no desmarcamos la casilla correspondiente, el instalador abrirá Teamtalk al finalizar. En ese momento se nos preguntará si queremos agregar una excepción al firewall de Windows. Debemos responder que sí, y aceptar los avisos del control de cuentas de usuario, si aparecen. Al hacerlo, llegaremos por fin a la ventana principal de la aplicación.
La ventana de Teamtalk está formada por los siguientes elementos, presentados como aparecen al tabular por ellos:

  • Un árbol, en el que aparecerán tanto los canales como los usuarios cuando estemos conectados a un servidor.
  • Una barra deslizante para ajustar el volumen de los altavoces.
  • Una barra deslizante para ajustar la ganancia del micrófono. Se recomienda que su valor no supere el 50%, de lo contrario el ruido generado puede ser catastrófico para el resto de los usuarios.
  • Una barra deslizante para ajustar el nivel de activación del micrófono. Se recomienda ponerla a 0, de lo contrario hay que hacer mucho ruido para que Teamtalk decida transmitir.
  • Un control de pestañas, que permite seleccionar entre chat o archivos. Por el momento, no nos interesa la carga y descarga de archivos, por lo que ignoraremos la segunda pestaña.
  • Un cuadro de edición con el historial de mensajes.
  • Un cuadro de edición para escribir mensajes.
  • Una barra de menús en la que se encuentran muchísimas opciones que podrás utilizar más adelante.

Lo primero que haremos ahora que tenemos Teamtalk abierto es ir a sus preferencias y modificar algunos ajustes. Para ello, pulsaremos f4 desde la ventana de la aplicación.
En la pestaña general podemos escribir nuestro nombre, seleccionar nuestro sexo y las opciones de activación de voz. Se recomienda activar ambas, tanto la de activación por voz como la de pulsar para hablar (push to talk). En este último caso habrá que configurar un atajo de teclado, que deberemos mantener pulsado mientras hablemos.
La pestaña Display nos permite cambiar el idioma de Teamtalk y ponerlo en español, elegir si queremos minimizarlo a la bandeja y si queremos que se inicie minimizado, entre otras opciones. Se recomienda desmarcar una casilla llamada “Enable VU-meter updates” para evitar que se muestre una molesta barra de progreso.
La pestaña Sound System nos permite configurar los dispositivos de sonido. En la documentación de Teamtalk nos recomiendan que nos quedemos con Windows Audio Session como motor de sonido. Podemos elegir otros que nos dan más opciones, como Direct Sound, pero hay que tener en cuenta que si lo hacemos se deben elegir los dispositivos de sonido en los cuadros combinados que hay después, no se pueden dejar por defecto.
El resto de pestañas contienen valores que pueden dejarse como están, no es necesario modificarlos. Una vez hayamos configurado Teamtalk a nuestro gusto, podemos pulsar en Aceptar y conectarnos al servidor.

Conexión al servidor

Para abrir el diálogo de conexión puedes ir a la barra de menús, o directamente pulsar f2. Al hacerlo aparecerás en una lista. Pulsa tabulador hasta llegar a un cuadro de edición llamado Dirección del host. Escribe teamtalk.nvda.es y pulsa intro. ¡Tan sencillo como eso!
Al conectarte, verás mensajes en el cuadro de edición del historial del chat, y algunos elementos en el árbol. El primero de ellos es el canal raíz. Si pulsas flecha abajo, verás a los usuarios conectados, incluido tú. Si sigues bajando, verás el resto de canales. Pulsa ctrl+j o intro para unirte a ellos, o accede al menú de contexto para ver las opciones disponibles.

Los canales del servidor de Teamtalk de NVDA.es

Además del canal raíz, hay otros tres canales, y es importante que conozcas algunas particularidades de ellos. Eso sí, ten en cuenta que el chat está disponible en todos.

  • Canal raíz: tiene el códec de audio desactivado por defecto. Esto significa que en este canal sólo se puede usar el chat. Debes verlo como una “entrada” o zona de paso, ideal para permanecer mientras seleccionas otro canal.
  • Foro: es un canal libre para debatir sobre NVDA. Sin embargo, sólo se puede hablar utilizando el método pulsar para hablar (recuerda el atajo que configuraste antes), y no permite que ningún usuario grabe la conversación. Deberás desactivar “Usar activación por voz” desde el menú “yo” para poder hablar, de lo contrario los otros usuarios no te escucharán. Esto se hace para garantizar cierto orden, seguridad y privacidad.
  • Pruebas de sonido: este canal sólo permite tres usuarios conectados a la vez, y ha sido diseñado especialmente para los ponentes, aunque cualquiera puede entrar. Lo ideal es que entres a este canal, busques tu usuario en el árbol, pulses ctrl+4 para suscribirte a tu propia voz y te escuches. En cuanto hayas ajustado los parámetros de volumen, pulsa de nuevo ctrl+4 y únete a otro canal.
  • Sala de conferencias: en este canal hablarán los ponentes del encuentro de NVDA en español. Nadie más puede hablar, a no ser que obtenga permiso explícito del operador del canal, situación que se dará a la hora de hacer preguntas.

Algunos atajos de teclado útiles

  • f2: conecta y desconecta del servidor.
  • f4: abre las preferencias.
  • ctrl+shift+a: activa o desactiva la transmisión de voz. Imprescindible tenerla desactivada en el canal foro.
  • f5: permite cambiar rápidamente el nick.
  • f6: cambiar estado entre en línea o ausente, con mensaje opcional si fuera necesario.
  • ctrl+4: suscribirte o anular suscripción a tu propia voz.
  • ctrl+m: silenciar a todos los usuarios.
  • ctrl+j: unirse a un canal.
  • ctrl+l: abandonar el canal sin unirse a otro.

Conclusión

Después de hacer este breve recorrido por Teamtalk, toca despedir la entrada. Te recordamos que también buscamos a alguien que quiera transmitir el encuentro en su emisora de radio, ya que Teamtalk puede ser algo complejo para bastantes usuarios. Para cualquier pregunta o sugerencia, no dudes en escribirnos un comentario debajo, o contactar con nosotros en la lista de correo, las redes sociales o el formulario de contacto de esta web.
¡Hasta la próxima!