saimazoom escribió:
Fernando, estoy escribiendo una mini aventura en C y SDL. ¿Qué debo tener en cuenta para poderse usar con un lector de pantalla?.
Hay librerías en los So (p. ej. UIA y MSAA en Windows) para enviar información a herramientas de accesibilidad y una específica de código abierto —no sé de quién— que acomoda la salida según el lector de pantalla activo, y para NVDA NV Access tiene disponible una API para comunicarse directamente con el lector NVDA desde una aplicación.
De todas maneras, puedes evitar ahondar en estas cosas si procuras que la salida y el campo de entrada de órdenes sean controles diferentes entre los que puede tabularse y navegarse, especialmente por la salida, con comandos de navegación de texto estándar, esencialmente las flechas. Al tabular al cuadro de la salida luego de dar una orden puedes elegir entre situar el cursor al principio del resultado de la última orden, dejarlo donde estaba antes tal como hace AGE cuando se activa el modo lector de pantalla o, la que considero peor idea, desplazarlo al final tal como hacía AGE irremisiblemente cuando no existía el modo mencionado y aún hace por defecto. La última opción es una mala idea porque, al no saber el jugador a priori de cuántas líneas consta la salida de la última orden, no puede mecanizar la cantidad de veces que debe pulsar la flecha hacia arriba y ello le quita velocidad.
En relación al búfer de texto, además, algunos jugadores agradecerán que brindaras un comando u opción para borrar la pantalla, sobre todo si juegan con el eco de pantalla de JAWS en Todo, puesto que no es muy fino para manejar la desaparición natural de texto por scroll. Esta configuración de eco de pantalla distinta de la predeterminada está más bien prevista para algún valor cuyo cambio es preciso supervisar pero no se anuncia automáticamente por no estar resaltado, no ser barra de progreso, alerta…, pero como muchos usuarios no entienden esta circunstancia conviene dar apoyo a este modo también. Luego será gusto tuyo si pones o no un diálogo que permita revisar salida que ya se ha borrado pero, si lo pones, asegúrate de que se pueda cerrar con ESCAPE o, al menos, tenga un botón
Cerrar activable con BARRA ESPACIADORA una vez se tabule al mismo.
Supongo que para acciones como guardar/cargar y otros metacomandos, además de permitir escribirlas, pondrás una barra de herramientas para acceder rápidamente a las más importantes con el mouse. Si es el caso, sobre todo si no programaste que se puedan escribir, añádeles teclas rápidas (p. ej. CTRL+G/CTRL+S para guardar), da la posibilidad de mover el foco a la barra de herramientas con F6 y recorrerla con flechas izquierda y derecha, o pon menús estándar a los que puede accederse con la tecla ALT. Desde un punto de vista de accesibilidad siempre se aconseja que los elementos de barras de herramientas estén también en menús usables con el teclado sin necesidad de técnicas de simulación del mouse ni navegación por la jerarquía de objetos que ofrecen los lectores de pantalla, pero hay que ver cómo encaja una barra de menús tradicional en la estética de una aventura, sobre todo si ésta no tiene para pasar entre ventana y pantalla completa… Y hablando de la pantalla completa, si incluyes la posibilidad de cambiar a este diseño no olvides ponerle de tecla rápida de alternancia F11 o ALT+ENTER, que son las dos que según el caso suelen verse en la mayoría de programas y hasta juegos.
¿Tendrá la aventura mapas en pantalla, palabras clave en las descripciones, panel de inventario a un costado y/o barra de estado con puntuación u otras estadísticas? Como en esto cada aventura es un mundo, para efectuar recomendaciones conviene saber qué tendrá y dónde.