• No results found

EXECUTION 3.1 EXAMINATION

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