BUILDING TECHNICAL SPECIFICATIONS
PART 3 EXECUTION 3.1 EXAMINATION
En este apartado nos referiremos a algunas de las actividades que están basadas en textos, y que de uno u otro modo se pueden desarrollar para que sean accesibles para usuarios con discapacidad visual.
Se tratarán dos tipos de actividades de textos, las de rellenar huecos con la palabra correcta, y la de arrastrar la palabra correcta al hueco correspondiente.
Rellenar huecos.
Estas actividades de realizarán por parte de un alumno ciego, con la ayuda de un revisor de pantalla, por tanto para hacerlas accesibles se deben usar las opciones de accesibilidad de Flash, es decir, el panel de Accesibilidad.
Existen dos formas de llevarlas a cabo:
- Una es creando los textos que no van a cambiar, como textos dinámicos y los huecos donde se debe escribir la palabra serán textos del tipo de introducción de textos. A todos estos objetos se les puede asignar un orden de tabulación en el panel de accesibilidad. De esta forma el alumno se irá moviendo con el tabulador de un texto a otro.
- La otra opción es creando cada frase como un texto de tipo de introducción de datos en el cual se escribe el texto que va a aparecer fijo, y en el lugar en el que el alumno debe escribir se
pueden poner ciertos caracteres, tales como XXX, ***, los cuales deberán ser borrados para escribir la palabra correcta.
Estos dos métodos de implementación ofrecen ventajas e inconvenientes a la hora de la accesibilidad, y se comportan de forma diferente dependiendo de la versión del revisor de pantalla que estemos utilizando, por tanto se recomienda hacer pruebas con el revisor mientras se está desarrollando con el fin de dependiendo del objetivo de la actividad decantarnos por una u otra opción.
Arrastrar palabras.
Estas actividades se dotarán de accesibilidad mediante locuciones, y el alumno ciego deberá realizarlas con la ayuda de una tableta digitalizadora.
Es necesario resaltar que el tamaño de los textos debe ser suficientemente grande como para que luego éstos se puedan representar en braille en la lámina en relieve.
En cuanto al desarrollo de la actividad es análogo al de cualquier actividad de arrastrar objetos, visto en un apartado anterior de este documento.
ACTIVIDADES DE PREGUNTAS
En este punto se tratará el desarrollo de las actividades que consisten en una serie de preguntas a las cuales se asocia un conjunto de posibles respuestas de las cuales el alumno debe seleccionar una.
En cuanto a la accesibilidad de estas aplicaciones lo recomendable es que se implementen para ser resueltas con la ayuda de un revisor de pantalla, y dado que la accesibilidad de los controles de Flash es “peculiar”, se aconseja que se simulen los botones de opciones que representan las posibles respuestas mediante clips de película. Veamos como se hace todo esto.
En principio se crea un texto dinámico que contendrá la pregunta, y se le asigna el orden de tabulación 1.
Para las respuestas se crea un clip de película con tres fotogramas, el primero corresponde a la apariencia cuando no ocurre nada sobre él, el segundo es el aspecto que tendrá cuando se pase el ratón por encima, y el tercero cuando se haga click con el ratón sobre él, es decir, cuando se seleccione esa respuesta.
Todos estos fotogramas contendrán en su capa superior un texto dinámico, al cual asociaremos una variable en el panel de propiedades.
Una vez creado el clip de película, ya se puede comenzar a implementar la aplicación. En cada fotograma de la película principal se colocará una pregunta y sus posibles respuestas, y se pasará de una pregunta a la siguiente, al contestar la pregunta, para ello los pasos a seguir son:
- Se colocan tantas instancias del clip de película respuesta en el escenario, como respuestas posibles tenga la pregunta, nombrando cada una de ellas con un nombre diferente.
- En las acciones correspondientes al fotograma, se asigna el texto correspondiente a cada pregunta utilizando la variable asociada al texto dinámico que contiene cada una.
- En el evento rollOver de cada opción se lleva dicha opción al fotograma 2, y el resto al fotograma 1.
- En el evento rollOut de cada opción se llevan todas las opciones al fotograma 1.
- En el evento press de cada opción se pasa al fotograma siguiente de la película principal.
En el evento press también se puede controlar un contador de aciertos y fallos.
Para que todo este mecanismo funcione con un revisor de pantalla, es necesario que esté seleccionado el etiquetado automático en el panel de accesibilidad de la película principal.
Esta forma es la más sencilla de realizar este tipo de actividades y se puede complicar tanto como se quiera, haciendo comprobaciones de aciertos, usando contadores de aciertos o fallos, dando tiempos para responder, etc.
Desarrollo de aplicaciones educativas accesibles en flash (mcd) Pág 90 / 109
A
APPÉÉNNDDIICCEE
11::
LLIISSTTAA
DDEE
CCÓÓDDIIGGOOSS
DDEE
TTEECCLLAADDOO
E
ENN
FFLLAASSHH
Letras de la A a la Z y números estándar del 0 al 9
En la tabla siguiente se enumeran las teclas de un teclado estándar para las letras de la A a la Z y los números del 0 al 9, con los valores correspondientes del código de tecla usados para identificar las teclas en ActionScript.
Tecla de letra o número Código de tecla Código de tecla ASCII A 65 65 B 66 66 C 67 67 D 68 68 E 69 69 F 70 70 G 71 71 H 72 72 I 73 73 J 74 74 K 75 75 L 76 76 M 77 77 N 78 78 O 79 79 P 80 80 Q 81 81 R 82 82 S 83 83 T 84 84 U 85 85 V 86 86
Desarrollo de aplicaciones educativas accesibles en flash (mcd) Pág 91 / 109
Tecla de letra o número Código de tecla Código de tecla ASCII
W 87 87 X 88 88 Y 89 89 Z 90 90 0 48 48 1 49 49 2 50 50 3 51 51 4 52 52 5 53 53 6 54 54 7 55 55 8 56 56 9 57 57 a 65 97 b 66 98 c 67 99 d 68 100 e 69 101 f 70 102 g 71 103 h 72 104 i 73 105 j 74 106 k 75 107 l 76 108 m 77 109 n 78 110 o 79 111 p 80 112
Desarrollo de aplicaciones educativas accesibles en flash (mcd) Pág 92 / 109
Tecla de letra o número Código de tecla Código de tecla ASCII q 81 113 114 115 116 117 118 119 120 121 122 r 82 s 83 t 84 u 85 v 86 w 87 x 88 y z 89 90
Teclas del teclado numérico
En la tabla siguiente se enumeran las teclas de un teclado numérico con los valores correspondientes del código de tecla usados para identificar las teclas en ActionScript:
Tecla del teclado numérico Teclado numérico 0 Teclado numérico 1 Teclado numérico 2 Teclado numérico 3 Teclado numérico 4 Teclado numérico 5 Teclado numérico 6 Teclado numérico 7 Teclado numérico 8 Teclado numérico 9 Multiplicar Sumar Intro Restar Código de
tecla Código de tecla ASCII 48 49 50 51 52 53 54 55 56 57 42 43 13 45 96 97 98 99 100 101 102 103 104 105 106 107 13 109
Desarrollo de aplicaciones educativas accesibles en flash (mcd) Pág 93 / 109
Tecla del teclado
numérico Código de tecla Código de tecla ASCII
Decimal 110 46
Dividir 111 47
Teclas de función
En la tabla siguiente se enumeran las teclas de función de un teclado estándar con los valores correspondientes del código de tecla usados para identificar las teclas en ActionScript:
Tecla de
función Código de tecla Código de tecla ASCII
F1 112 0 F2 113 0 F3 114 0 F4 115 0 F5 116 0 F6 117 0 F7 118 0 F8 119 0 F9 120 0 F10
Esta tecla está reservada por el sistema
y no puede utilizarse en ActionScript.
Esta tecla está reservada por el sistema y no puede utilizarse en ActionScript. F11 122 0 F12 123 0 F13 124 0 F14 125 0 F15 126 0 Otras teclas
En la tabla siguiente se enumeran las teclas de un teclado estándar que no son letras, números, teclas del teclado numérico ni
teclas de función, con los valores correspondientes del código de tecla usados para identificar las teclas en ActionScript:
Tecla Código de tecla Código de tecla ASCII
Retroceso 8 8 Tabulador 9 9 Intro 13 13 Mayús 16 0 Control 17 0 Bloq Mayús 20 0 Esc 27 27 Barra espaciadora 32 32 Re Pág 33 0 Av Pág 34 0 Fin 35 0 Inicio 36 0 Flecha izquierda 37 0 Flecha arriba 38 0 Flecha derecha 39 0 Flecha abajo 40 0 Insert 45 0 Supr 46 127 Bloq Num 144 0 ScrLk 145 0 Pausa/Interr 19 0 ; : 186 59 = + 187 61 - _ 189 45 / ? 191 47 ` ~ 192 96 [ { 219 91 \ | 220 92
Desarrollo de aplicaciones educativas accesibles en flash (mcd) Pág 95 / 109
Tecla Código de tecla Código de tecla ASCII
] } 221 93 39 44 46 47 " ' 222 , 188 . / 190 191
A
APPÉÉNNDDIICCEE
22::
RREEFFEERREENNCCIIAASS
AA
LLAA
AACCCCEESSIIBBIILLIIDDAADD
E
ENN
LLAA
AAYYUUDDAA
DDEE
FFLLAASSHH
88
En este apéndice se muestran los contenidos de la ayuda de Flash 8 referentes al desarrollo de aplicaciones accesibles para usuarios con discapacidad visual.
Creación de accesibilidad con ActionScript
Además de las funciones de accesibilidad que incluye la interfaz de usuario de Flash, puede crear documentos accesibles con ActionScript. Para las propiedades de accesibilidad que se aplican a todo el documento, puede crear o modificar una variable global denominada _accProps.
Para las propiedades aplicables a un objeto específico, puede utilizar la sintaxis instancename._accProps. El valor de _accProps es un objeto que puede incluir alguna de las propiedades siguientes:
Propiedad Tipo Selección equivalente en
el panel Accesibilidad Se aplica a
.silent Booleano
Permitir acceso a la película/Hacer que el
objeto sea accesible (lógica inversa) Documentos enteros Botones Clips de película Texto dinámico Introducción de texto .forceSimple Booleano Hacer que los objetos secundarios sean
accesibles (lógica inversa)
Documentos enteros Clips de película
Desarrollo de aplicaciones educativas accesibles en flash (mcd) Pág 96 / 109
Propiedad Tipo Selección equivalente en
el panel Accesibilidad Se aplica a
.name cadena Nombre
Documentos enteros Botones Clips de película Introducción de texto
.description cadena Descripción
Documentos enteros Botones Clips de película
Texto dinámico Introducción de texto .shortcut cadena Métodos abreviados
Botones Clips de película Introducción de texto
NOTA Lógica inversa significa que un valor true en ActionScript
corresponde a una casilla de verificación que no está seleccionada en el panel Accesibilidad y un valor false en ActionScript corresponde a una casilla de verificación seleccionada en el panel Accesibilidad.
La modificación de la variable _accProps no tiene ningún efecto por sí misma. Debe utilizar también el método Accessibility.updateProperties para informar a los usuarios del lector de pantalla de los cambios de contenido de Flash. Si se efectúa una llamada al método, Flash Player volverá a examinar todas las propiedades de accesibilidad, actualizará las descripciones de las propiedades para el lector de pantalla y, si es necesario, enviará los eventos al lector de pantalla que indica que se han producido cambios.
Cuando se actualizan las propiedades de accesibilidad de varios objetos a la vez, sólo se tiene que incluir una única llamada a Accessiblity.updateProperties (si se actualiza con demasiada frecuencia el lector de pantalla puede que éste dé demasiados detalles).
Implementación de la detección del lector de pantalla con el método Accessibility.isActive()
Para crear contenido de Flash que funcione de una forma específica si un lector de pantalla está activo, puede utilizar el método ActionScript Accessibility.isActive(), que devuelve un valor true si hay un lector de pantalla presente y false si no es así. Puede diseñar el contenido de Flash para que funcione de forma que sea compatible con el uso del lector de pantalla, por ejemplo ocultando los elementos subordinados al lector de pantalla.
Por ejemplo, puede utilizar el método Accessibility.isActive() para decidir si debe incluirse o no animación no solicitada. La animación no solicitada tiene lugar sin que el lector de pantalla realice ninguna acción, lo que puede resultar confuso para los lectores de pantalla.
El método Accessibility.isActive() proporciona una comunicación asíncrona entre el contenido de Flash y Flash Player, lo que significa que se puede producir un ligero retardo en tiempo real entre el momento en que se hace la llamada al método y el momento en que Flash Player se activa, lo que devolvería un valor incorrecto false. Para garantizar que la llamada al método se efectúe correctamente, puede realizar una de las acciones siguientes:
- En lugar de utilizar el método Accessibility.isActive() cuando el contenido de Flash se reproduzca por primera vez, realice una llamada al método siempre que tenga que tomar una decisión respecto a la accesibilidad.
- Introduzca un retardo corto de uno o dos segundos al principio del documento para dar al contenido de Flash suficiente tiempo para ponerse en contacto con Flash Player.
Por ejemplo, puede asociar este método a un evento onFocus para un botón. Por lo general, esto da al archivo SWF tiempo
suficiente para cargarse y se puede presuponer con seguridad que el usuario de un lector de pantalla se desplazará mediante el tabulador al primer botón u objeto del escenario.
Utilización de ActionScript para crear un orden de tabulación para objetos accesibles
Además de asignar un índice de tabulación a objetos con el panel Accesibilidad, puede crear el orden de tabulación con ActionScript asignando la propiedad tabIndex a los objetos siguientes:
• Texto dinámico
• Introducción de texto • Botones
• Clips de película, incluidos los compilados • Fotogramas de la línea de tiempo
• Pantallas
Si crea un orden de tabulación para un fotograma y no especifica un orden de tabulación para un objeto accesible del fotograma, Flash Player ignora todas las asignaciones de orden de tabulación personalizado. Por consiguiente, debe proporcionar un orden de tabulación completo para todos los objetos accesibles. Además, todos los objetos asignados a un orden de tabulación, excepto los fotogramas, deben tener un nombre de instancia especificado en el cuadro de texto Nombre de instancia del inspector de propiedades. Incluso los elementos en los que no se detenga el tabulador, como el texto, tienen que incluirse en el orden de tabulación si deben leerse en ese orden.
Puesto que al texto estático no se le puede asignar un nombre de instancia, no se puede incluir en la lista de valores de la propiedad tabIndex. Como resultado de ello, si existe una sola instancia de texto estático en algún lugar del archivo SWF, el orden de lectura volverá a ser el predeterminado.
Para especificar un orden de tabulación, debe asignar un número de orden a la propiedad tabIndex, como se muestra en el ejemplo siguiente:
_this.myOption1.btn.tabIndex = 1 _this.myOption2.txt.tabIndex = 2
También puede utilizar los métodos tabChildren o tabEnabled para asignar un orden de tabulación personalizado.
Propiedad _accProps
_accProps.propertyName
instanceName._accProps.propertyName
Permite controlar las opciones de accesibilidad del lector de pantalla para archivos SWF, clips de película, botones, campos de texto dinámico y campos de texto de entrada en tiempo de ejecución. Estas propiedades sustituyen la configuración correspondiente disponible en el panel Accesibilidad durante la edición. Para que los cambios realizados en estas propiedades surtan efecto, debe llamar a Accessibility.updateProperties().
Para determinar si el reproductor se está ejecutando en un entorno que admite elementos de accesibilidad, utilice el método System.capabilities.hasAccessibility().
La tabla siguiente muestra el nombre y el tipo de datos de cada propiedad _accProps, su configuración equivalente en el panel Accesibilidad y los tipos de objetos a los que puede aplicarse la propiedad. El término lógica inversa significa que la configuración de la propiedad es inversa a la configuración correspondiente del panel Accesibilidad. Por ejemplo, establecer la propiedad silent en true
equivale a desactivar la opción Permitir acceso a la película o Hacer que el objeto sea accesible.
Propiedad Tipo de datos Equivalente en el panel Accesibilidad Se aplica a silent Boolean Permitir acceso a la película/Hacer que el objeto sea accesible (lógica inversa)
Archivos SWF completos Clips de película Botones Texto dinámico Texto de entrada
forceSimple Boolean Hacer que los objetos secundarios sean accesibles (lógica inversa)
Archivos SWF completos Clips de película
name String Nombre
Archivos SWF
completos Clips de película Botones Texto de entrada
description String Descripción
Archivos SWF completos Clips de película Botones Texto dinámico Texto de entrada
shortcut String Métodos abreviados Clips de película Botones Texto de entrada
En el campo Método abreviado, utilice nombres con el formato Control+A. Cuando se añade un método abreviado del teclado al panel Accesibilidad, no se crea un método abreviado del teclado sino que simplemente se avisa a los lectores de pantalla de la existencia de un método abreviado.
Para especificar la configuración correspondiente al valor de Índice de fichas en el panel Accesibilidad, utilice las propiedades Button.tabIndex, MovieClip.tabIndex o TextField.tabIndex.
No es posible especificar el valor de Etiquetado automático en tiempo de ejecución.
Para hacer referencia al objeto _accProps que representa todo el documento de Flash, omita el parámetro instanceName. El valor de _accProps debe ser un objeto. Esto significa que si no existe ya un
objeto _accProps, debe crearlo, tal y como se muestra en el siguiente ejemplo, para poder asignar valores a las propiedades del objeto _accProps:
if ( _accProps == undefined ) {
_accProps = new Object(); }
_accProps.name = "My SWF file";
Cuando _accProps se utiliza sin el parámetro instanceName , los cambios realizados en las propiedades _accProps se aplican a todo el archivo SWF. Por ejemplo, el siguiente código establece la propiedad de name de accesibilidad de todo el documento SWF en la cadena "Pet Store" y, a continuación, llama a Accessibility.updateProperties() para provocar el cambio:
_accProps.name = "Pet Store"; Accessibility.updateProperties();
Por el contrario, el siguiente código establece la propiedad de name de un clip de película con el nombre de instancia price_mc en la cadena "Price":
price_mc._accProps.name = "Price"; Accessibility.updateProperties();
Si especifica varias propiedades de accesibilidad, realice todo los cambios que pueda antes de llamar a Accessibility.updateProperties(), en lugar de realizar la llamada
después de cada sentencia de propiedad, tal y como se muestra en el siguiente ejemplo:
_accProps.name = "Pet Store";
animal_mc._accProps.name = "Animal";
animal_mc._accProps.description = "Cat, dog, fish, etc."; price_mc._accProps.name = "Price";
price_mc._accProps.description = "Cost of a single item"; Accessibility.updateProperties();
Si no especifica una propiedad de accesibilidad para un documento u objeto, se implementan los valores establecidos en el panel Accesibilidad.
Una vez especificada una propiedad de accesibilidad, no es posible recuperar el valor establecido en el panel Accesibilidad. Sin embargo, puede establecer el valor predeterminado de la propiedad (false para valores booleanos; cadenas vacías para valores de cadena) eliminando la propiedad del objeto _accProps, tal y como se muestra en el siguiente ejemplo:
my_mc._accProps.silent = true; // set a property // other code here
delete my_mc._accProps.silent; // revert to default value
El valor de _accProps debe ser un objeto. Esto significa que si no existe ya un objeto _accProps, debe crearlo para poder asignar indicaciones a las propiedades del objeto _accProps.
if (_accProps == undefined) {
_accProps = new Object();
}
_accProps.name = "My movie";
Disponibilidad: Flash Player 6,0,65,0; ActionScript 1.0 Parámetros
propertyName: Boolean or String - Nombre de la propiedad de
accesibilidad (véase la siguiente descripción de nombres válidos). instanceName
instanceName: String - Nombre de instancia asignado a una instancia
de un clip de película, botón, campo de texto dinámico o campo de texto de entrada. Para hacer referencia al objeto _accProps que representa todo el documento de Flash, omita el parámetro instanceName .
Ejemplo
Si cambia una imagen y desea actualizar su descripción de
accesibilidad, puede utilizar el siguiendo código ActionScript:
my_mc.gotoAndStop(2);
if (my_mc._accProps == undefined ) { my_mc._accProps = new Object(); }
my_mc._accProps.name = "Photo of Mount Rushmore"; Accessibility.updateProperties();
isActive (Método Accessibility.isActive)
public static isActive() : Boolean
Indica si una ayuda de accesibilidad está activa actualmente y el reproductor se está comunicando con ella. Utilice este método cuando desee que la aplicación se comporte de forma diferente en presencia de un lector de pantalla u otra ayuda de accesibilidad.
Nota: Si llama a este método en un período de uno o dos
segundos desde la primera aparición de la ventana de Flash en la que