MaGUI Implementación 2008

Embed Size (px)

DESCRIPTION

Trabajo Final de carrera para la Ingeniería Informática en la Universidad de Castilla La Mancha."MaGUI: una herramienta de ayuda para personas con baja visión"

Citation preview

UN NIVERS SIDAD DE CA ASTILL LA-LA MANC CHA ES SCUEL SUP LA PERIOR DE IN R NGENIE ERA INF FORM TICA ADepa artamento de Siste o emas Info formtico os

PRO OYECTO FIN DE CA O D ARRERA AMA AGUI: Una herram mienta de ayuda sonas con baja vi isin para pers

Autor: Ele Balle A ena esteros M Molinero Director: Vctor M D Manuel L Lpez Jaq quero Jos Pascual Mo olina Ma ass

Julio, 2008 ,

I

II

ResumenEl objetivo principal del proyecto es el desarrollo de una herramienta de ayuda a personas con problemas visuales. Con tal fin, se ha llevado a cabo un estudio de las principales herramientas ya desarrolladas, que, junto con las opiniones de usuarios de este tipo de software, ha permitido definir los requisitos que una aplicacin de estas caractersticas debera cumplir. El resultado ha sido Magui, un magnificador de pantalla cuya funcionalidad consiste en: Magnificado a pantalla completa, o mediante otros tipos de lupa como pueden ser fijos sobre una mitad de la pantalla o dinmicos, que siguen la posicin en que se encuentra el ratn, el cursor o el elemento del escritorio con el que est interactuando el usuario. Establecer un factor de ampliacin entre 1 y 32, se permiten valores fraccionarios que varan de 0'25 en 0'25 en el rango [1,3] Suavizado de la imagen mediante tcnicas de antialias que permiten reducir el efecto dientes de sierra derivado de la ampliacin. Mejoras de color sobre la imagen y el sistema, entre las que destaca la posibilidad de establecer el modo en alto contraste. Mejoras del ratn y activacin/desactivacin de guas de seguimiento que resaltan su posicin en la imagen ampliada. Mejoras del cursor que permiten la activacin/desactivacin de guas de seguimiento que resaltan su posicin en la imagen ampliada. Mejoras del foco, que permiten la activacin/desactivacin de guas de seguimiento que resaltan la posicin del elemento que contiene el foco sobre el escritorio y/o la imagen ampliada. Ajustes de seguimiento, para seleccionar qu elemento o elementos (ratn, cursor y/o foco) debe actualizar la imagen ampliada. Ajustes de comportamiento para indicar dnde posicionar los elementos como el ratn, cursor o foco sobre el rea ampliada.

III

IV

AgradecimientosA mis padres, por estar siempre ah y no dejarme tirar la toalla. A Roberto por apoyarme y mantenerse a mi lado. A mi to Miguel. A esa segunda familia que ha conseguido hacerme sentir una ms. A mis tutores Jos Pascual Molina Mass y Vctor Lpez Jaquero, por haber confiado en m. Y, en general, a todos los que se han interesando por este trabajo.

DedicatoriasMe gustara dedicar especialmente este trabajo a mis padres, porque me han enseado que, aunque uno no vea, siempre puede mirar un poco ms all.

V

VI

NDICE1. INTRODUCCIN. ............................................................................................................ 1 1.1. OBJETIVOS Y MOTIVACIN. ............................................................................... 1 1.2. ESTRUCTURA DEL DOCUMENTO. ...................................................................... 2

2. ANTECEDENTES, ESTADO DE LA CUESTIN. ........................................................ 3 2.1. DISCAPACIDAD Y ACCESIBILIDAD A LA INFORMACIN Y A LA COMUNICACIN. ....................................................................................................... 3 2.2. DISCAPACIDAD VISUAL. ...................................................................................... 4 2.2.1. Introduccin a los conceptos de ceguera y baja visin. ................................... 4 2.2.2. Cataratas. .......................................................................................................... 4 2.2.3. Degeneracin macular...................................................................................... 5 2.2.4. Glaucoma. ........................................................................................................ 5 2.2.5. Retinitis Pigmentaria (RP). .............................................................................. 6 2.2.6. Retinopata Diabtica. ...................................................................................... 6 2.2.7. Hemianopsia..................................................................................................... 7 2.3. TIFLOTECNOLOGA. .............................................................................................. 7 2.3.1. Soluciones existentes en el mercado para la plataforma Windows. ................ 8 2.3.1.1. Supernova Reader Magnifier. ................................................................... 8 2.3.1.2. iZoom. ....................................................................................................... 9 2.3.1.3. MAGic..................................................................................................... 10 2.3.1.4. BigShot Screen Magnifier. ...................................................................... 11 2.3.1.5. ZoomText. ............................................................................................... 12 2.3.1.6. DesktopZoom. ......................................................................................... 13 2.3.2. Comparativa. .................................................................................................. 14 2.3.3. Conclusiones. ................................................................................................. 19

3. ANLISIS DE LAS NECESIDADES DE UNA HERRAMIENTA DE AYUDA PARA PERSONAS CON BAJA VISIN. ................................................................................. 20 3.1. OBJETIVOS PARCIALES. ..................................................................................... 20 3.1.1. Gestionar Magnificador. ................................................................................ 20 3.1.2. Gestionar Lector. ............................................................................................ 20 3.1.3. Gestionar Configuracin. ............................................................................... 21 VII

3.2. CATLOGO DE REQUISITOS DEL SISTEMA. .................................................. 21 3.2.1. Requisitos de almacenamiento de informacin.............................................. 21 3.2.2. Requisitos funcionales. .................................................................................. 23 3.2.2.1. Diagrama de casos de uso. ...................................................................... 23 3.2.2.2. Definicin de actores. .............................................................................. 24 3.2.2.3. Casos de uso del sistema. ........................................................................ 25 3.2.2.3.1. Subsistema Gestionar Magnificador. ............................................... 25 3.2.2.3.2. Subsistema Gestionar Lector. ........................................................... 33 3.2.2.3.3. Subsistema Gestionar Configuracin. .............................................. 35 3.2.3. Requisitos no funcionales. ............................................................................. 37 3.2.4. Diagrama de clases. ........................................................................................ 38

4. HIPTESIS DE TRABAJO. ........................................................................................... 39 4.1. LMITES DEL DOMINIO DEL PROBLEMA. ....................................................... 39 4.2. DISEO DEL MAGNIFICADOR CON TCNICAS DE ALTO NIVEL. ............. 40 4.3. C# COMO LENGUAJE DE PROGRAMACIN. ................................................... 42 4.4. WINDOWS XP COMO SISTEMA OPERATIVO SOBRE EL QUE SE EJECUTAR LA APLICACIN. .............................................................................. 42 4.5. TECNOLOGAS UTILIZADAS. ............................................................................. 43 4.5.1. API Hooking. ................................................................................................. 43 4.5.2. UI Automation. .............................................................................................. 43 4.6. ACCESIBILIDAD DE LA APLICACIN. ............................................................. 44

5. IMPLEMENTACIN...................................................................................................... 48 5.1. VISIN DE CONJUNTO. ........................................................................................ 48 5.1.1. Clase Contenedor. .......................................................................................... 48 5.1.2. Clase Magnificador. ....................................................................................... 49 5.1.3. Clase Imagen. ................................................................................................. 50 5.1.4. Clase Ratn. ................................................................................................... 51 5.1.5. Clase Cursores. ............................................................................................... 51 5.1.6. Clase Localizadores. ...................................................................................... 51 5.1.7. Clase Controladores. ...................................................................................... 53 5.1.8. Clase AltoContraste. ...................................................................................... 53 5.1.9. Clase Foco. ..................................................................................................... 54 VIII

5.2. CREAR UN FORMULARIO COMO UNA CAPA TRANSPARENTE, SOBRE EL PUNTO MS ALTO DEL EJE Z. .............................................................................. 55 5.3. CREAR UNA IMAGEN AMPLIADA A PARTIR DE UNA REGIN DEL ESCRITORIO. ............................................................................................................. 56 5.4. CREAR UN CONTROLADOR QUE ACTUALICE LA IMAGEN AMPLIADA CON EL MOVIMIENTO DEL RATN O EL CURSOR.......................................... 60 5.5. AADIR EL CURSOR AMPLIADO A LA IMAGEN MAGNIFICADA. ............ 62 5.6. APLICAR SUAVIZADO SOBRE LA IMAGEN MAGNIFICADA. ..................... 68 5.7. ESTABLECER MEJORAS DE COLOR SOBRE EL SISTEMA. .......................... 68 5.8. INCORPORAR MARCADOR PARA EL SEGUIMIENTO DEL FOCO. ............. 70 5.9. DESARROLLO DE UNA INTERFAZ ACCESIBLE. ............................................ 72

6. TUTORIAL DE MAGUI................................................................................................. 73 6.1. REQUISITOS PREVIOS A LA INSTALACIN. .................................................. 73 6.2. CMO COMENZAR. .............................................................................................. 73 6.2.1. Abrir el programa. .......................................................................................... 73 6.2.2. Cerrar el programa. ........................................................................................ 73 6.2.3. Ayuda. ............................................................................................................ 73 6.2.4. Desplazarse por Magui................................................................................... 74 6.3. INTERFAZ DE USUARIO. ..................................................................................... 74 6.3.1. Botn de Encendido/Apagado del magnificador. .......................................... 75 6.3.2. Botones para Aumentar/Disminuir el Factor de Ampliacin......................... 76 6.3.3. Botn Tipos de Lupa. ..................................................................................... 77 6.3.4. Antialias. ........................................................................................................ 76 6.3.4. Botn de Mejoras del Color. .......................................................................... 80 6.3.5. Botn de Mejoras del Ratn........................................................................... 81 6.3.6. Botn de Mejoras del Cursor. ........................................................................ 83 6.3.7. Botn de Seguimiento de Foco. ..................................................................... 84 6.4. OTROS. .................................................................................................................... 85 6.4.1. Ajustes de comportamiento del ratn, cursor y foco. .................................... 85 6.4.2. Ajustes de seguimiento. ................................................................................. 86

7. CONCLUSIONES Y TRABAJO FUTURO. .................................................................. 87

IX

LISTA DE TABLASTabla 1 Magnificadores - Caractersticas generales................................................. 15 Tabla 2 Magnificadores - Aumentos. ...................................................................... 15 Tabla 3 Magnificadores - Tipos de contenedores .................................................... 16 Tabla 4 Magnificadores - Mejoras del ratn ............................................................ 16 Tabla 5 Magnificadores - Suavizado........................................................................ 17 Tabla 6 Magnificadores - Mejoras de color ............................................................. 17 Tabla 7 Magnificadores - Desplazamiento automtico ............................................ 18 Tabla 8 Requisitos de accesibilidad - Principios Generales ..................................... 44 Tabla 9 Requisitos de accesibilidad - Teclado ......................................................... 45 Tabla 10 Requisitos de accesibilidad - Informacin de objetos ............................... 45 Tabla 11 Requisitos de accesibilidad - Pantalla ....................................................... 46 Tabla 12 Requisitos de accesibilidad Documentacin. ......................................... 47 Tabla 13 Requisitos de accesibilidad - Otros ........................................................... 47 Tabla 14 Valores para la variable TernaryRasterOperation - StretchBlt ................. 59 Tabla 15 Punteros reconocidos por el magnificador ................................................ 65

X

LISTA DE FIGURASFig. 1 Cataratas. ......................................................................................................... 4 Fig. 2 Degeneracin macular. .................................................................................... 5 Fig. 3 Glaucoma. ........................................................................................................ 5 Fig. 4 Retinitis Pigmentaria. ...................................................................................... 6 Fig. 5 Retinopata diabtica. ...................................................................................... 6 Fig. 6 Hemianopsia. ................................................................................................... 7 Fig. 7 Interfaz de Supernova Reader Magnifier. ........................................................ 8 Fig. 8 Interfaz de iZoom. ........................................................................................... 9 Fig. 9 Interfaz de MAGic. ........................................................................................ 10 Fig. 10 Interfaz de BigShot Screen Magnifier. ........................................................ 11 Fig. 11 Interfaz de ZoomText. ................................................................................. 12 Fig. 12 Interfaz de DesktopZoom. ........................................................................... 13 Fig. 13 [OBJ1] Gestionar magnificador ................................................................... 20 Fig. 14 [OBJ2] Gestionar lector ............................................................................... 20 Fig. 15 [OBJ3] Gestionar configuracin .................................................................. 21 Fig. 16 Casos de uso relacionados con el [OBJ1] Gestionar Magnificador ............ 23 Fig. 17 Casos de uso relacionados con el [OBJ2] Gestionar lector ........................ 24 Fig. 18 Casos de uso relacionados con el [OBJ3] Gestionar configuracin ........... 24 Fig. 19 [ACT1] Usuario ........................................................................................... 24 Fig. 20 Diagrama de Clases ..................................................................................... 38 Fig. 21 Diseo de un magnificador desarrollado con tcnicas de alto nivel. ........... 40 Fig. 22 Localizador de ratn cruz grande ................................................................ 52 Fig. 23 Localizador de ratn cruz pequea. ............................................................. 52 Fig. 24 Localizador de ratn circular. ...................................................................... 52 Fig. 25 Localizador de cursor con forma de cuas. ................................................. 52 Fig. 26 Localizador de cursor con forma cuadrada. ................................................. 52 Fig. 27 Formulario transparente a eventos sobre el punto ms alto del Eje Z. ........ 55 Fig. 28 Efecto magnificado - Funcin StretchBlt .................................................... 56 Fig. 29 Seleccin de las esquinas superior izquierda - Funcin StretchBlt ............. 57 Fig. 30 Imagen ampliada, centrada en el ratn ........................................................ 57 Fig. 31 No centrar ratn segn la imagen magnificada ........................................... 58 Fig. 32 Dimensiones origen y destino - Funcin StretchBlt .................................... 58 Fig. 33 Tipo de mapa de bits en la imagen ampliada - Funcin StretchBlt ............. 59 Fig. 34 Distorsin de la imagen - Funcin BitBlt .................................................... 59 Fig. 35 Comportamiento del controlador de Teclado .............................................. 61 Fig. 36 Cursor ampliado de forma proporcional al factor de ampliacin. ............... 62 Fig. 37 Cursor con tamao predefinido (normal, grande, ms grande). .................. 63

XI

Fig. 38 Diagrama de actividad - Capturar el manejador del ratn global del sistema .............................................................................................................................................. 64 Fig. 39 Ejemplo de ratn fantasma con la aplicacin magnificando a pantalla completa ............................................................................................................................... 66 Fig. 40 Ratn oculto correctamente bajo el formulario. .......................................... 67 Fig. 41 Ratn con forma de mano que no queda oculto correctamente bajo el formulario............................................................................................................................. 67 Fig. 42 Imagen con Antialias ................................................................................... 68 Fig. 43 Imagen del explorer en modo alto contraste. ............................................... 69 Fig. 44 Mejoras de color - Propiedades del aspecto de la pantalla .......................... 69 Fig. 45 Comportamiento del controlador de Foco ................................................... 70 Fig. 46 Procedimiento para mostrar los localizadores del foco ............................... 71 Fig. 47 Iconos de la itnerfaz para el modo normal y el modo en alto contraste....... 72 Fig. 48 Icono del magnificador. ............................................................................... 73 Fig. 49 Interfaz de usuario ....................................................................................... 74 Fig. 50 Barra de ttulo del magnificador .................................................................. 74 Fig. 51 Barra de men del magnificador .................................................................. 74 Fig. 52 Ventana principal del magnificador. ............................................................ 75 Fig. 53 Botn de encendido del magnificador en estado apagado. .......................... 75 Fig. 54 Botn de encendido del magnificador en estado activo. ............................. 75 Fig. 55 Botn para aumentar el factor de ampliacin. ............................................. 76 Fig. 56 Botn para disminuir el factor de ampliacin. ............................................. 76 Fig. 57 Factor de ampliacin. ................................................................................... 76 Fig. 58 Botn para modificar el tipo de lupa ........................................................... 77 Fig. 59 Ventana para seleccin de un tipo de lupa. .................................................. 77 Fig. 60 Ventana para definir un tipo de lupa personalizado..................................... 79 Fig. 61 Botn mejoras del color. .............................................................................. 80 Fig. 62 Botn mejoras de color. ............................................................................... 80 Fig. 63 Botn Mejoras del Ratn ............................................................................. 81 Fig. 64 Ventana con los ajustes del ratn. ................................................................ 82 Fig. 65 Botn mejoras del cursor. ............................................................................ 83 Fig. 66 Ventana con los ajustes del cursor. .............................................................. 83 Fig. 67 Botn de seguimiento de foco. .................................................................... 84 Fig. 68 Ventana para la personalizacin del seguimiento del foco. ......................... 84 Fig. 69 Comportamiento del ratn. .......................................................................... 85 Fig. 70 Posicionamiento del ratn en la ventana con zoom. .................................... 85 Fig. 71 Posicionamiento del foco en la ventana con zoom ...................................... 85 Fig. 72 Restriccin del movimiento del ratn a la ventana activa. .......................... 86 Fig. 73 Ajustes de seguimiento. ............................................................................... 86 Fig. 74 Elementos a los que aplicar seguimiento. .................................................... 86 XII

XIII

XIV

1. INTRODUCCIN.

1.1. OBJETIVOS Y MOTIVACIN.Las interfaces de usuario de las aplicaciones actuales, tanto en su parte software como en el hardware, resultan fciles de aprender a usar y su manejo diario resulta sencillo, al menos para el usuario medio. Sin embargo, muchas veces se olvida que no todas las personas poseen las mismas capacidades, y donde muchos ven una interfaz de usuario que le ayuda en su trabajo, otros ven una barrera que les impide acercarse a la informtica y aprovecharse de ella. Siendo las interfaces grficas de usuario las que dominan el panorama actual, es inmediato pensar que las personas con problemas de visin constituyen uno de los sectores de poblacin ms afectados por esta situacin. Uno de esos problemas es la baja visin, la cual se caracteriza por la dificultad en la percepcin de colores y formas, as como una limitada visin de lejos. Este proyecto tiene, por tanto, el objetivo de analizar, disear e implementar una herramienta de ayuda para que personas con baja visin puedan ver la interfaz adaptada a sus capacidades, superar la barrera tecnolgica impuesta, y acercarse a la informtica como cualquier otro usuario. Las soluciones profesionales del mercado estn muy depuradas y ofrecen una gran cantidad de servicios, pero su alto coste supone una gran desventaja a la hora de utilizarlas. Finalmente, su objetivo indirecto es el de tratar de concienciar de la importancia que tiene el desarrollo de sistemas siguiendo las pautas de accesibilidad, pretendindose que pueda servir como referencia de desarrollo de software accesible.

1

1.2. ESTRUCTURA DEL DOCUMENTO.El documento se encuentra dividido en varios captulos: El captulo segundo pretende introducir al lector en la problemtica de una persona con problemas de visin, mediante la definicin de algunos conceptos y la presentacin de imgenes que reflejan la percepcin visual de este tipo de individuos; por otro lado, presenta un estudio de herramientas, casi todas ellas profesionales, desarrolladas para la plataforma Windows y destinadas a mejorar la relacin del colectivo con problemas visuales con la interfaz de escritorio. En el tercer captulo se pretende realizar un anlisis de los requerimientos que posee una herramienta destinada a ayudar a personas con baja visin; para ello se har un recorrido detallado por los objetivos a travs de casos de uso. El captulo cuarto muestra cules han sido las decisiones de diseo tomadas una vez delimitado el dominio del problema sobre el que se iba a trabajar; pretende comentar en detalle qu es lo que se ha realizado, por qu y de qu manera, introduciendo la tecnologa que se ha escogido para el desarrollo de la herramienta. En el quinto captulo se presentan los mdulos bsicos que se han desarrollado de la herramienta, as como la relacin entre ellos. Adems, permite una vista detallada de los puntos que han resultado ms interesantes a la hora de implementar el magnificador de pantalla. El sexto captulo contiene un tutorial que se ha generado para el magnificador, permitiendo una visin final sobre su funcionalidad. En el sptimo captulo se presentan las conclusiones obtenidas tras el desarrollo del proyecto, junto con una propuesta de trabajo futuro sobre el mismo. Finalmente, el octavo est destinado a la bibliografa, recogiendo las fuentes que se han empleado para poder alcanzar los resultados y conclusiones que se exponen a lo largo de esta memoria.

2

2. ANTECEDENTES, ESTADO DE LA CUESTIN.Este captulo est dividido en dos secciones bien diferenciadas. La primera, intenta introducir al lector en la problemtica de una persona con problemas de visin, mediante la definicin de algunos conceptos y la presentacin de imgenes que reflejan la percepcin visual de stas. La segunda, presenta un estudio de herramientas, casi todas ellas profesionales, desarrolladas para la plataforma Windows y destinadas a mejorar la relacin del colectivo con problemas visuales con la interfaz de escritorio.

2.1. DISCAPACIDAD Y ACCESIBILIDAD A LA INFORMACIN Y A LA COMUNICACIN.La Organizacin Mundial de la Salud (OMS), define la discapacidad como Cualquier restriccin o carencia (resultado de una deficiencia) de la capacidad de realizar una actividad en la misma forma o grado que se considera normal para un ser humano. Se refiere a actividades complejas e integradas que se esperan de las personas o del cuerpo en conjunto, como pueden ser las representadas por tareas, aptitudes y conductas1. La Asociacin Interaccin Persona-Ordenador dice que para que un sistema interactivo cumpla sus objetivos tiene que ser usable y, adems, debido a la generalizacin del uso de los ordenadores, accesible a la mayora de la poblacin2. En la bsqueda por la igualdad de los individuos, las personas con discapacidad se han de poder enfrentar de forma autnoma al da a da, y, con ello, a la tecnologa. As, ha de tenerse en cuenta la accesibilidad como requisito no funcional al inicio del diseo de un sistema. La normativa espaola define como gua la UNE 139802:2003 Requisitos de accesibilidad al ordenador. Software3 que se ver con detalle ms adelante, por haberse considerado la accesibilidad un requisito ms para el desarrollo del proyecto.

1 2

(Visin 2020: El derecho a ver, 2004). (Abascal & Valero, 2001). 3 (AEN/CTN 139 Tecnologas de la Informacin y las comunicaciones para la salud, 2003).

3

2.2. DISCAPACIDAD VISUAL..

2.2.1. Introduccin a los conceptos de ceguera y baja visin..Segn la OMS, se habla de ceguera cuando un individuo dispone de una agudeza visual inferior a 3/60 en el mejor ojo y con la mejor correccin posible, o una restriccin del campo visual de cada ojo a 10 grados del punto de fijacin; si el individuo posee una capacidad de 6/18, se habla de baja visin4. En otras palabras, el individuo de baja visin ser aquel que posee un resto visual suficiente para ver la luz, orientarse por ella y emplearla con propsitos funcionales5.

2.2.2. Cataratas.

Fig. 1 Cataratas.

rea nublada u opaca en el cristalino del ojo (ADAM). Posibles Sntomas: Visin nublada, borrosa, difusa o velada. Prdida de la intensidad de los colores. Sensibilidad al resplandor y halos alrededor de las luces. Doble visin en un solo ojo. Disminucin de la sensibilidad al contraste.

4 5

(Visin 2020: El derecho a ver, 2004). (UNCU).

4

2.2.3. Degeneracin macular.

Fig. 2 Degeneracin macular.

Trastorno que afecta a la mcula (parte central de la retina del ojo), causando disminucin de la visin y posible prdida de la visin central (ADAM). Posibles Sntomas: Visin central ausente, oscura, distorsionada o borrosa.

2.2.4. Glaucoma.

Fig. 3 Glaucoma.

Grupo de trastornos que llevan a que se presente un dao en el nervio ptico, que es el encargado de llevar la informacin visual del ojo al cerebro (ADAM). Posibles Sntomas: Glaucoma de ngulo abierto: o Prdida gradual de la visin perifrica. Glaucoma de ngulo cerrado: o Visin borrosa o disminuida, pupila no reactiva a la luz. Glaucoma congnito: o Opacidad en la parte frontal del ojo. o Sensibilidad a la luz.

5

2.2.5. Retinitis Pigmentaria (RP).

Fig. 4 Retinitis Pigmentaria.

Es una enfermedad ocular en la cual hay dao a la retina que empeora con el tiempo. Las personas con esta afeccin tienen problemas con la visin nocturna y la perifrica. El principal factor de riesgo es su carcter hereditario (ADAM). Posibles sntomas: Disminucin de la visin nocturna o en ambientes con poca luz. Prdida de la visin perifrica. Prdida de la visin central (en casos avanzados).

2.2.6. Retinopata Diabtica.

Fig. 5 Retinopata diabtica.

Dao progresivo a la retina del ojo ocasionado por diabetes prolongada que puede causar ceguera (ADAM). Posibles sntomas: Efecto moscas volantes. Visin borrosa o disminuida. Ceguera.

6

2.2.7. Hemianopsia.

Fig. 6 Hemianopsia.

Se denomina con este trmino a la visin defectuosa o ceguera que nubla el campo normal de la visin de un ojo. En la hemianopsia homnima, el dao afecta a la misma parte del campo visual en ambos ojos (ADAM).

2.3. TIFLOTECNOLOGA..Del griego tiflo, ciego, se define con este trmino la adaptacin y accesibilidad de las tecnologas de la informacin y comunicacin para su utilizacin y aprovechamiento por parte de las personas con ceguera y deficiencia visual (ONCE). Destinados a tal fin existen diversos tipos de materiales. En este apartado se ver una breve descripcin de algunos de ellos, para, posteriormente, hacer un estudio ms detallado sobre los magnificadores de pantalla. Magnificadores: Amplan la imagen que se muestra en pantalla. Lectores de pantalla: Permiten acceder a la informacin mostrada por pantalla a travs de dispositivos de voz y/o Braille. Programas de reconocimiento de textos (OCR): Programas de sencillo manejo que combinados con un scanner leen textos impresos. Traductores Braille: Traducen la salida de un documento electrnico a Braille antes de enviar la orden de impresin a una impresora en relieve. Navegadores parlantes: Destinados a la lectura del contenido de las pginas web. El carcter degenerativo de muchas de las patologas oculares da lugar a que una misma persona utilice varias de estas soluciones de manera conjunta o pase de unas a otras segn el estado de su enfermedad. 7

2.3.1. Soluciones existentes en el mercado para la plataforma Windows.

2.3.1.1. Supernova Reader Magnifier.

Fig. 7 Interfaz de Supernova Reader Magnifier.

Autor: Dolphin6. Versin: 9.01 Descripcin: Combina opciones de magnificado, voz y Braille. Tipo de contenedor: Pantalla completa, fijo o desplazable siguiendo el cursor. Factor de escala mximo: x32. Admite factores fraccionarios: S. Suavizado de fuentes: S. Con propiedades de lector: S. Con propiedades de Braille: S. Tipo: De pago (1500 2000). A destacar: No es necesario cambiar de herramienta si la vista del usuario empeora, por tratarse de una especie de todo en uno (Magnificador, Lector y Braille).

6

http://www.yourdolphin.com/index.asp

8

Otros: Existen versiones comerciales que ofrecen un subconjunto de las opciones del producto Supernova (HAL: Braille, Lunar: magnificador y LunarPlus: magnificador y voz), abaratando, as, su coste.

2.3.1.2. iZoom.

Fig. 8 Interfaz de iZoom.

Autor: Issist7. Versin: 2.0 Descripcin: Magnificador a bajo costo con un lector muy simple. Tipo de contenedor: Pantalla completa, fijo, desplazable o como horizontal. Factor de escala mximo: x32. Admite factores fraccionarios: No. Suavizado de Fuentes: S. Con propiedades de lector: S, pero bsicas. Con propiedades de Braille: No. Tipo: De pago (150 200). A destacar: En sus inicios se presentaba como opcin de bajo costo, aunque su precio sube segn avanzan las versiones. La versin 2.0 an es inestable, dando problemas durante el periodo de prueba.

7

http://www.issist.com/

9

2.3.1.3. MAGic.

Fig. 9 Interfaz de MAGic.

Autor: Freedom Scientific8. Versin: 10.0 Descripcin: Combina opciones de magnificado, voz, seguimiento del foco, Tipo de contenedor: Pantalla completa, fijo o desplazable siguiendo el cursor. Factor de escala mximo: x16. Admite factores fraccionarios: No. Suavizado de fuentes: S. Con propiedades de lector: S. Con propiedades de Braille: No. Tipo: De pago (250 700). A destacar: Existe una versin posterior que an no est disponible en castellano.

8

http://www.freedomscientific.com/

10

2.3.1.4. BigShot Screen Magnifier..

Fig. 10 Interfaz de BigShot Screen Magnifier.

Autor: Ai Squared9. Versin: 2.12 Descripcin: Magnificador de pantalla simple. Tipo de contenedor: Pantalla completa o ventana activa. Factor de escala mximo: 200% dividido en 20 niveles. Admite factores fraccionarios: No. Modifica el esquema de color: No. Suavizado de fuentes: No. Con propiedades de lector: No. Con propiedades de Braille: No. Tipo: De pago 75 . A destacar: En su pgina web se dice que se trat del primer software implementado como herramienta de accesibilidad para personas con deficiencia visual.

9

http://www.aisquared.com/index.cfm

11

2.3.1.5. ZoomText.

Fig. 11 Interfaz de ZoomText.

Autor: Ai Squared10. Versin: 9.0 Descripcin: Combina opciones de magnificado, voz, seguimiento del foco, Tipo de contenedor: Pantalla completa, fijo, desplazable siguiendo el cursor, modo lnea horizontal o congelado (se selecciona la regin de pantalla a magnificar). Factor de escala mximo: x36. Admite factores fraccionarios: S. Modifica el esquema de color: S. Suavizado de fuentes: S. Con propiedades de lector: S. Con propiedades de Braille: No. Tipo: De pago (250 600). A destacar: Su alto grado de especializacin le hace despuntar sobre el resto con un amplio nmero de posibilidades, a parte de las descritas anteriormente. Entre ellas destacan: localizador de escritorio que permite encontrar/abrir programas/documentos del escritorio, men de inicio, etc.; localizador Web que ayuda a encontrar enlaces y controles sobre el Explorer, AOL, HTML email y HTML sistemas de ayuda, as como interactuar con ellos. Existe la opcin de comprarlo con o sin lector.

10

http://www.aisquared.com/index.cfm

12

2.3.1.6. DesktopZoom..

Fig. 12 Interfaz de DesktopZoom.

Autor: desconocido11. Versin: 2.1 Descripcin: Magnificador gratuito, completo pero de interfaz poco intuitiva. Tipo de contenedor: Pantalla completa, regin fija o siguiendo al ratn. Factor de escala mximo: 10x. Admite factores fraccionarios: S. Suavizado de fuentes: No. Con propiedades de lector: No Con propiedades de Braille: No. Tipo: Gratuito. A destacar: Herramienta gratuita que permite ampliacin a pantalla completa.

11

http://users.telenet.be/littlegems/MySoft/DesktopZoom/Index.html

13

2.3.2. Comparativa.

A continuacin se mostrar un pequeo estudio comparativo de las herramientas. Slo se compararn las caractersticas relacionadas con el magnificador, dado que ese es el tema que interesa para este proyecto; sera interesante, no obstante, revisar tambin las propiedades como lector de pantalla de las herramientas que incorporan dicha posibilidad. Se hace saber al lector que, de las dos herramientas de Ai Squared, si bien se ha descrito y comentado BigShot Screen Magnifier por su valor histrico, sta no se incluye en la comparativa. Las caractersticas que se estudiarn son: A. Caractersticas generales que muestran qu herramientas poseen una versin en castellano, y de qu bloques importantes constan (magnificador, lector o Braille). B. Accesibilidad durante el proceso de instalacin. C. Tipos de contenedores sobre los que se muestra la imagen ampliada, como pueden ser pantalla completa, una lupa dinmica que se desplace conjuntamente con el ratn, una lupa esttica que ocupe una mitad, horizontal o vertical, de la pantalla, etc. D. Aumentos mximos soportados, as como si cabe la posibilidad de seleccionar aumentos fraccionarios. E. Mejoras del ratn y F. Mejoras del cursor, que permiten cambiar el color de relleno del elemento, su tamao o el uso de guas de seguimiento para localizarlos con mayor facilidad. G. Suavizado o antialias tanto a nivel de fuentes como de imagen. H. Mejoras de color sobre la lupa, entre las que destaca la posibilidad de mostrar la imagen, adems de con su color real, con colores invertidos, la eliminacin de un color particular, etc. I. Desplazamiento automtico, al presionar una determinada combinacin de teclas la pantalla se desplaza en direccin horizontal o vertical con una velocidad predefinida, o restringido, a la ventana activa.

14

J. Seguimiento del foco tanto de cara a actualizar una regin de imagen ampliada cuando el usuario se desplaza a travs de un men o se lanza una ventana nueva, como por medio de localizadores que resaltan el elemento que contiene el foco. K. Teclas de acceso rpido para permitir que el usuario acceda sin necesidad del ratn a las funcionalidades de la aplicacin que ms le interesen, as como configurarlas a su medida.

A. Caractersticas generales. Uso En Castellano Magnifica Voz X X X No X X X X X X X X No X No

Supernova iZoom MAGic ZoomText DesktopZoom

Braille X No No No No

Tabla 1 Magnificadores - Caractersticas generales.

Es un rasgo frecuente el uso combinado de caractersticas de voz con ampliacin de pantalla. Sin embargo, el conjunto Supernova es el nico que gestiona dispositivos Braille.

B. Accesibilidad durante el proceso de instalacin. El proceso de instalacin contempla por defecto, fuentes grandes y lector de voz.

C. Aumentos. Factor mximo 32x 32x 16x 36x 10x

Fraccional X No No X X

Supernova iZoom MAGic ZoomText DesktopZoom

Tabla 2 Magnificadores - Aumentos.

Aunque el factor de aumento mximo es distinto de unas a otras no se puede establecer como comparativa fiable, dado que dos herramientas con un mismo factor muestran un tamao de ampliacin distinto. 15

La posibilidad de usar factores fraccionarios es importante, sobre todo en el intervalo [1, 3] ya que, ante un estado temprano de baja visin el salto entre dos factores enteros puede resultar brusco.

D. Tipos de contenedores. Esttica Pantalla Lnea Lupa Completa Horizontal Vertical Horizontal Supernova iZoom MAGic ZoomText DesktopZoom X X X X X No X No X No X X X X X X No X X X X No X X X

Tabla 3 Magnificadores - Tipos de contenedores

Varan poco de unas herramientas a otras, todas presentan magnificado a pantalla completa (donde el contenedor posee la dimensin de la pantalla) y los otros tipos suelen permitir configurar su tamao. Esto, no ocurre as en casi ninguna herramienta gratuita, ya que stas no suelen permitir el magnificado a pantalla completa.

E. Mejoras del ratn. Relleno

Extra Localizador Grande Color Invertir Supernova iZoom MAGic ZoomText DesktopZoom No X X X No No No X X No X X X X No X No X No

Tabla 4 Magnificadores - Mejoras del ratn

Las soluciones de pago magnifican el ratn del sistema, sin embargo, DesktopZoom incorpora un puntero en el lugar donde debera aparecer el ratn magnificado. Los tipos de localizador observados seran con forma de cruz (grande o pequea), rectngulo o crculo. Suele ser configurable el color, grosor y su grado de transparencia.

16

F. Mejoras del cursor. Slo Supernova y ZoomText ofrecen esta posibilidad, donde contemplan mejoras similares a las del ratn (aumentar su tamao, cambiar su color o incorporar guas de seguimiento).

G. Suavizado o antialias.

Suavizado Supernova iZoom MAGic ZoomText DesktopZoom X X X X X

Tabla 5 Magnificadores - Suavizado

El suavizado compensa el efecto dientes de sierra resultante de la ampliacin de los elementos en pantalla. DesktopZoom, suaviza la imagen en conjunto, pero el resto permite que se aplique alisado nicamente sobre el texto.

H. Mejoras del color sobre la lupa.

Personalizable Supernova iZoom MAGic ZoomText DesktopZoom X X X X No

Inversor X X X X Slo pantalla completa

Regin No/Ampliada No No X X -

Tabla 6 Magnificadores - Mejoras de color

Ayudan ante problemas de vista cansada, ampliando o reduciendo el brillo y permitiendo la sustitucin o supresin de colores concretos.

17

I. Desplazamiento automtico y restringido.

Siguiente Men Tiempo Desplazamiento Lnea Velocidad entre lneas Restringido MAGic ZoomText X X X No X No No X

Tabla 7 Magnificadores - Desplazamiento automtico

MAGic, a partir de un factor de ampliacin 2x, permite desplazamiento automtico lineal o incremental; para ello, facilita un men de opciones y la posibilidad de que los cambios perduren. Se puede definir el tiempo que se tarda en saltar del final de una lnea al inicio de la siguiente. ZoomText, por su parte, permite la restriccin del desplazamiento del puntero en la horizontal o la vertical al pulsar una combinacin de teclas determinada; con un sistema similar ofrece la opcin de restringir la movilidad del ratn a la ventana activa. Supernova e iZoom carecen de la posibilidad de desplazamiento automtico o restringido.

J. Seguimiento del foco. Salvo iZoom, las otras permiten seguimiento de foco automtico. Es posible seleccionar qu tipo de elementos seguir (mens, cursor, ventanas nuevas) o desactivarlo.

K. Teclas de acceso rpido. El conjunto de funciones ofrecido por cada una de las herramientas es muy amplio; debido a esto y a que las personas con problemas de visin hacen mucho uso de su memoria, es interesante que cada usuario configure el conjunto de teclas rpidas que ms se ajusta a sus necesidades. Por defecto, casi todas las acciones llevan asociada una combinacin de teclas, en cada una de las herramientas estudiadas.

18

2.3.3. Conclusiones.Dos ojos distintos no pueden ver de la misma forma, de este modo, las deficiencias visuales no siguen patrones especficos. De las herramientas estudiadas se entiende ZoomText como una buena solucin a este tipo de problemas por ofrecer un amplio abanico de posibilidades, permitiendo que cada usuario ajuste la interfaz de trabajo a sus necesidades. Contraria a la especificidad, Supernova opta por la generalidad. Con la divisin de su funcionalidad en mdulos facilita las sucesivas ampliaciones del programa, e incorpora compatibilidad con elementos Braille, de modo que, ante enfermedades degenerativas, se convierte en una herramienta prctica. Se hace indispensable para una aplicacin de este tipo el uso de magnificador y voz. Tambin las teclas de acceso rpido con posibilidad de configuracin. Hay que cuidar cmo se desarrollan los resultados; por ejemplo, el bajo rendimiento del sistema. Las herramientas estudiadas estn bastante depuradas de errores y detalles, en anteriores versiones destacaban los problemas derivados del efecto dientes de sierra que resultaba al ampliar el tamao de las letras. Otro de los aspectos que distingue estas aplicaciones de las de uso habitual es su proceso de instalacin, desarrollado con fuentes grandes y la posibilidad de activar o desactivar el ayudante de voz. Aunque se supone que las deficiencias visuales exigen el uso continuo de la herramienta, desde el arranque del sistema hasta su cierre, sta tiene que poder ser deshabilitada. Una computadora puede estar compartida por varias personas, cada una con necesidades propias; por ello, se ha de tener en cuenta la posibilidad de guardar la configuracin sobre distintos ficheros, de modo que al iniciar aparezca la opcin de cargar un perfil u otro.

19

3. ANLISIS DE LAS NECESIDADES DE UNA HERRAMIENTA DE AYUDA PARA PERSONAS CON BAJA VISIN.A lo largo de este captulo se har un recorrido por los objetivos para construir una herramienta competitiva en el mercado; se muestra informacin detallada sobre los requisitos de informacin, requisitos funcionales y requisitos no funcionales. Para definir la lista de requisitos del sistema se han atendido las sugerencias de usuarios de este tipo de aplicaciones12, as como las conclusiones del captulo anterior.

3.1. OBJETIVOS PARCIALES.

3.1.1. Gestionar Magnificador.

Fig. 13 [OBJ1] Gestionar magnificador.

El sistema deber encargarse de propiedades referentes a la salida por pantalla: magnificado, mejoras de color y seguimiento de foco.

3.1.2. Gestionar Lector.

Fig. 14 [OBJ2] Gestionar lector.

El sistema deber encargarse de propiedades referentes a la salida por voz.

Se han estudiado sugerencias de individuos annimos y otras fuentes como el portal The screen magnifiers home http://www.magnifiers.org que ofrece informacin y aconseja a personas con baja visin, as como las de Manolo, www.manolo.net, creador de un portal de referencia para la comunidad de personas ciegas y con baja visin.

12

20

3.1.3 Gestionar Configuracin.

Fig. 15 [OBJ3] Gestionar configuracin

El sistema deber encargarse de almacenar y cargar caractersticas generales de la aplicacin en particular: teclas de acceso rpido y personalizacin de la interfaz.

3.2. CATLOGO DE REQUISITOS DEL SISTEMA.. 3.2.1. Requisitos de almacenamiento de informacin.[IRQ1] Propiedades de la lupa. El sistema debe almacenar informacin correspondiente con lo que se ha de mostrar por pantalla, cmo y dnde: Factor de ampliacin: 1, 125, 15, 175, 2, 2,25,, 3, 4, 5, ..., 16. Contenedor del zoom. Tipo (dinmico o esttico). Ubicacin. Dimensiones. Borde: color y grosor. Color: real, invertido, etc. Prioridad alta. [IRQ2] Propiedades del puntero del ratn. El sistema debe almacenar informacin sobre el puntero del ratn: Tamao. Color. Guas de referencia. Prioridad media. 21

[IRQ3] Propiedades del cursor. El sistema debe almacenar informacin sobre el cursor: Tamao. Color. Guas de referencia. Prioridad media. [IRQ4] Guas de referencia. El sistema debe almacenar informacin sobre las guas empleadas para resaltar el puntero del ratn, del cursor o la situacin del foco, como podra ser: Forma. Borde: color y grosor. Prioridad media. Nota: La forma ser distinta si se trata del puntero, del cursor o del foco. [IRQ5] Localizador de escritorio. El sistema debe almacenar informacin sobre los elementos del men de inicio, escritorio, bandeja de entrada, ya bien sean documentos, programas, etc. Prioridad baja. [IRQ6] Propiedades de la voz. El sistema debe almacenar informacin sobre la voz del lector, en concreto: Hablante. Tono. Volumen. Velocidad. Idioma primario e idioma secundario. Prioridad alta.

22

Nota: En caso de poder incluir varios idiomas resulta atractivo ofrecer una hoja que almacene caractersticas de voz para un segundo idioma (interesante para usuarios bilinges).

[IRQ7] Verbosidad. El sistema debe almacenar informacin sobre qu debe reconocer el lector: elemento bajo el cursor, mens, controles, consejos de herramientas, ttulos de ventanas, informacin sobre el foco (dnde estoy?), barras de estado, encabezados. Prioridad alta. Nota: El tipo de informacin til depende del individuo, dado que no sern las mismas necesidades para un usuario experto que para uno novel.

3.2.2. Requisitos funcionales.

3.2.2.1. Diagramas de casos de uso.Se presentan divididos segn su relacin con los objetivos del sistema.

Fig. 16 Casos de uso relacionados con el [OBJ1] Gestionar Magnificador

23

Fig. 17 Casos de uso relacionados con el [OBJ2] Gestionar lector

Fig. 18 Casos de uso [OBJ3] Gestionar

relacionados con el configuracin

3.2.2.2. Definicin

de actores.

U suario

Fig. 19 [ACT1] Usuario

El sistema nicamente distinguir un tipo de actor al que, como ya se ha venido haciendo hasta ahora, se denominar usuario.

24

3.2.2.3. Casos de uso del sistema..

3.2.2.3.1. Subsistema Gestionar Magnificador..[UC01] Activar/Desactivar magnificador. Descripcin: El usuario decide poner en marcha, o desactivar, el magnificador. Flujo de eventos bsico: 1. El usuario modifica la opcin con el estado del magnificador. 2. El sistema aplica el cambio de estado. Precondicin: Ninguna. Postcondicin: Si se encontraba en estado activo, pasa a desactivarse y la imagen ampliada deja de emitirse por pantalla; sino, se da el proceso inverso. Prioridad Alta.

[UC02] Establecer tipo de lupa. Descripcin: Establecer las caractersticas de tamao, tipo y/o tipo de borde del contenedor sobre el que se representa la imagen ampliada. Flujo de eventos bsico: 1. El usuario solicita cambiar de tipo de lupa. 2. El sistema muestra los disponibles y la opcin de personalizacin. 3. El usuario selecciona uno de los tipos predeterminados y acepta. 4. El sistema modifica las caractersticas del contenedor de la imagen ampliada con los nuevos parmetros. Precondicin: Ninguna.

25

Postcondicin: Se actualizan los parmetros que determinan el contendor. Prioridad Alta. [UC03] Establecer propiedades de tipo de lupa personalizadas. Descripcin: Personalizar las caractersticas de tamao, tipo de borde y propiedad de dinamismo del contenedor sobre el que se representa la imagen ampliada. Flujo de eventos bsico: 1. El usuario selecciona la opcin de personalizacin avanzada. 2. El usuario muestra las caractersticas configurables para el contenedor (estas sern: dimensiones, si es dinmico y posicin en caso de que no lo sea, grosor y color del borde). 3. El usuario introduce los parmetros deseados y acepta. 4. El sistema sigue por el punto 4 del flujo bsico del [UC02]. Precondicin: El usuario debe encontrarse en el punto 3 del [UC02] para poder comenzar este caso de uso. Postcondicin: Se actualizan los parmetros que determinan el contendor. Prioridad Baja.

[UC04] Modificar factor de ampliacin. Descripcin: El usuario solicita ampliar/reducir el zoom sobre la imagen. Flujo de eventos bsico: 1. El usuario selecciona el factor deseado. 2. El sistema aplica los cambios. Precondicin: Ninguna. Postcondicin: Si el magnificador est activo los cambios se aprecian instantneamente. Prioridad Alta. 26

[UC05] Aplicar antialias. Descripcin: Cambiar el modo en que se representa la imagen ampliada, para minimizar con tcnicas de antialias el efecto dientes de sierra derivado de la magnificacin. Flujo de eventos bsico: 1. El usuario activa la opcin de antialias. 2. El sistema muestra la imagen magnificada suavizada. Precondicin: El magnificador debe encontrarse en estado activo. Postcondicin: La imagen ampliada se muestra suavizada. Prioridad Alta. [UC06] Establecer mejoras del puntero. Descripcin: Modificar el aspecto del ratn (tamao, color, guas de seguimiento). Flujo de eventos bsico: 1. El usuario solicita visualizar las mejoras para el ratn. 2. El sistema muestra las mejoras: a. Tamao: por defecto, medio, grande o muy grande. b. Color. c. Activar guas de seguimiento. 3. El usuario activa y/o selecciona las mejoras que estime oportunas. 4. El sistema muestra una vista previa. 5. El usuario valida los cambios. 6. El sistema efecta los cambios. Precondicin: Ninguna. Postcondicin: Los cambios se hacen efectivos una vez el usuario lo valida. Prioridad Media.

27

[UC07] Establecer mejoras del cursor. Descripcin: Modificar el aspecto del cursor (tamao, color, guas de seguimiento) Flujo de eventos bsico: 1. El usuario solicita visualizar las mejoras para el cursor. 2. El sistema muestra las mejoras: a. Tamao: medio, grande o muy grande. b. Color. c. Guas de seguimiento. 3. El usuario selecciona las mejoras que estime oportunas. 4. El sistema muestra una pre-visualizacin. 5. El usuario valida los cambios. 6. El sistema efecta los cambios. Precondicin: Ninguna. Postcondicin: Los cambios se hacen efectivos una vez el usuario lo valida. Prioridad Media.

[UC08] Establecer preferencias para las guas de seguimiento. Descripcin: El usuario configura las caractersticas de las guas de seguimiento. Flujo de eventos bsico: 1. El sistema muestra las caractersticas de las guas: a. Forma (distinta para foco, ratn o texto). b. Borde: color y grosor. 2. El usuario selecciona las mejoras que estime oportunas. 3. El sistema muestra una pre-visualizacin. 4. El usuario valida los cambios. 5. El sistema efecta los cambios. Precondicin: Las guas de seguimiento han de estar activas. Postcondicin: Los cambios se hacen efectivos una vez el usuario lo valida. Prioridad Media. 28

[UC09] Establecer preferencias de seguimiento de foco. Descripcin: Activar/Desactivar seguimiento del foco y las guas que marcan el elemento que lo posee. Si queda desactivado, la regin ampliada slo se actualiza con el movimiento del ratn, o cursor, no con cambios de foco como podran ser aparicin de mensajes de error, movimiento por mens, etc. Flujo de eventos bsico: 1. El usuario solicita ver las opciones del foco. 2. El sistema las muestra: a. Activar/Desactivar seguimiento del foco. b. Activar guas de seguimiento. 3. El usuario la selecciona si lo estima oportuno y valida el cambio. 4. El sistema efecta los cambios. Precondicin: Ninguna. Postcondicin: Los cambios se hacen efectivos una vez el usuario lo valida. Prioridad Media.

[UC10] Activar localizador de escritorio. Descripcin: Permite buscar elementos sobre carpetas especficas. Flujo de eventos bsico: 1. El usuario activa el Localizador de Escritorio. 2. El sistema las muestra las posibles rutas explorables. 3. El usuario selecciona el destino que se ajuste a sus necesidades. 4. El sistema muestra los elementos asociados. 5. El usuario selecciona el elemento que le interese. 6. El sistema abre el elemento seleccionado.

29

Flujo de eventos alternativo (1) elemento no encontrado: 5. El usuario no encuentra el elemento deseado, de modo que no abre ninguno y el caso de uso queda sin efecto. Precondicin: Ninguna. Postcondicin: El sistema muestra en primer plano el elemento abierto. Prioridad Media.

[UC11] Activar localizador web. Descripcin: Se permite al usuario la bsqueda de enlaces en una pgina web. Flujo de eventos bsico: 1. El usuario activa el Localizador Web. 2. El sistema muestra las opciones para filtrar los enlaces. a. Bsqueda por palabras b. Tipo de enlace/control 3. El usuario aplica un filtro de entre los disponibles. 4. El sistema muestra los elementos obtenidos y sus operaciones. a. Ejecutar el enlace. b. Desplazar la vista ampliada a ese punto. 5. El usuario selecciona el elemento que le interese. 6. El sistema abre el elemento seleccionado y efecta la operacin. Flujo de eventos alternativo (1) elemento no encontrado: 5. El usuario no encuentra el elemento, de modo que no interacta con ninguno y el caso de uso queda sin efecto. Precondicin: Ninguna. Postcondicin: El sistema realiza la operacin seleccionada por el usuario sobre el vnculo marcado. Prioridad Media. 30

[UC12] Desplazar texto automticamente. Descripcin: El magnificador se desplaza de forma automtica por la imagen ampliada de un texto, permitindole configurar la velocidad y el aspecto del marcador. Flujo de eventos bsico: 1. El usuario solicita la opcin de desplazamiento automtico. 2. El sistema muestra las opciones de avance automtico. a. Velocidad b. Activar guas de seguimiento. 3. El usuario activa/modifica lo que estime oportuno y valida. 4. El sistema efecta los cambios. Precondicin: El usuario debe haber situado el cursor en el lugar deseado. Postcondicin: El sistema realiza la operacin sobre el vnculo marcado. Prioridad Media.

[UC13] Aplicar mejoras de color sobre la lupa y/o el sistema. Descripcin: El usuario desea cambiar el esquema de colores del sistema o el tipo de colores que afecta a la visualizacin de la lupa. Flujo de eventos bsico: 1. El usuario solicita visualizar las posibles mejoras de color. 2. El sistema las muestra mejoras para: a. El sistema: esquema de color, modo en alto contraste. b. El rea ampliada: normal o invertida. 3. El usuario selecciona las que estime oportunas y valida. 4. El sistema efecta los cambios. Flujo de eventos alternativo (1) cambios a nivel de sistema: 3.1 El usuario activa un cambio a nivel del sistema 3.2 El sistema solicita confirmacin. 3.3 El usuario confirma aplicar cambios. 3.4 El sistema sigue por el punto 4 de este caso de uso [UC13]. 31

Precondicin: Ninguna. Postcondicin: Si el magnificador est activo, los cambios sobre el rea ampliada se aprecian de forma automtica una vez sea lanzada la peticin de cambio. Prioridad Alta.

[UC14] Restringir el movimiento del ratn. Descripcin: Se ha de permitir que el usuario, presionando una combinacin de letras preestablecida, restrinja el movimiento del ratn a una direccin determinada (en horizontal o vertical) o a la ventana activa. Flujo de eventos bsico: 1. El usuario solicita modificar el comportamiento del ratn. 2. El sistema muestra las opciones: i. Limitacin a la horizontal/vertical. ii. Limitacin a la ventana activa. 3. El usuario activa aquellas que le interesen y valida la operacin. 4. El sistema efecta los cambios. Precondicin: Ninguna. Postcondicin: El sistema, dada la combinacin de teclas asociada, restringe el movimiento del ratn, ya bien est activo, o no, el magnificador. Prioridad Baja.

32

3.2.2.3.2. Subsistema Gestionar Lector..[UC15] Activar/Desactivar lector. Descripcin: El usuario decide poner en marcha, o desactivar, el lector. Flujo de eventos bsico: 1. El usuario modifica la opcin con el estado del lector. 2. El sistema aplica el cambio de estado. Precondicin: Ninguna. Postcondicin: Si el lector se encontraba en estado activo, pasar a estar desactivado y dejar de emitirse el sonido por la salida de audio; sino, se da el proceso inverso Prioridad Alta.

[UC16] Establecer nivel de verbosidad. Descripcin: El usuario ha de poder configurar la cantidad de informacin que necesite sea emitida por la salida de audio, dado que segn el nivel de experiencia del individuo le ser ms til una informacin que otra. Flujo de eventos bsico: 1. 2. 3. 4. El usuario solicita modificar el nivel de verbosidad. El sistema muestra los niveles preestablecidos. El usuario selecciona uno de ellos y valida. El sistema aplica la nueva configuracin sobre el lector

Precondicin: Ninguna. Postcondicin: Si el lector se encontraba en estado activo los cambios se aprecian de forma instantnea. Prioridad Media.

33

[UC17] Activar leer seleccin. Descripcin: El usuario solicita la lectura de un fragmento de texto seleccionado. Flujo de eventos bsico: 1. El usuario activa la opcin de lectura de seleccin. 2. El sistema efecta dicha lectura. Precondicin: El rea a leer ha de estar seleccionada y el lector activado. Postcondicin: Lectura del rea activa. Prioridad Baja.

[UC18] Activar leer aplicacin. Descripcin: El usuario solicita la lectura sobre la aplicacin activa. Flujo de eventos bsico: 1. El usuario solicita lectura de aplicacin. 2. El sistema sigue por el punto 3 del caso de uso [UC16] y, cuando acaba, comienza con la lectura. Precondicin: La aplicacin que se desee leer debe estar seleccionada. Postcondicin: Lectura de la ventana activa. Prioridad Baja.

34

[UC19] Determinar opciones de seguimiento de la voz. Descripcin: El usuario ha de poder configurar los parmetros del lector. Flujo de eventos bsico: 1. El usuario solicita las opciones de configuracin del lector. 2. El sistema muestra las opciones: a. Idioma. b. Hablante, tono y volumen. c. Velocidad. 3. El usuario selecciona aquello que ms se ajusta a sus necesidades. 4. El sistema configura el lector segn las nuevas preferencias. Precondicin: El lector ha de estar activo. Postcondicin: El lector asume la nueva configuracin. Prioridad Media.

3.2.2.3.3. Subsistema Gestionar Configuracin.[UC20] Activar arranque al iniciar Windows. Descripcin: Se ha de permitir que el magnificador arranque, con la configuracin que se desee, desde el mismo momento en que se inicie Windows. Flujo de eventos bsico: 1. El usuario activa la opcin de iniciar con Windows. 2. El sistema asume los cambios. Precondicin: Ninguna. Postcondicin: El sistema almacena la configuracin actual como deseada y la aplica, a partir de ahora, con el inicio de Windows. Prioridad Media.

35

[UC21] Modificar configuracin de teclas de acceso rpido. Descripcin: Se ha de permitir que el usuario personalice las combinaciones de acceso rpido preestablecidas. Flujo de eventos bsico: 1. El usuario solicita modificar las combinaciones de acceso rpido. 2. El sistema muestra las funciones que poseen atajo y sus teclas asociadas. 3. El usuario modifica aquellas que estime oportuno. 4. El sistema almacena y hace efectivos los cambios. Precondicin: Ninguna. Postcondicin: Las funciones pasan a depender de las nuevas combinaciones. Prioridad Media.

[UC22] Personalizar aspecto de la interfaz. Descripcin: Se ha de permitir que el usuario ajuste los colores de la interfaz a sus necesidades. Flujo de eventos bsico: 1. 2. 3. 4. El usuario solicita modificar el esquema de colores de la interfaz. El sistema muestra los colores que acepta. El usuario selecciona aquel que determina adecuado. El sistema almacena y actualiza los cambios.

Precondicin: Ninguna. Postcondicin: Los ajustes de color de la interfaz pasan a ser los seleccionados. Prioridad Baja.

36

3.2.3. Requisitos no funcionales.[RNF01] Interfaz accesible y usable. Descripcin: El manejo de la herramienta ha de ser lo ms intuitivo posible, siguiendo la normativa espaola13, y los consejos sobre desarrollo de aplicaciones accesibles de Microsoft14.

[RNF02] Portabilidad. Descripcin: Aunque la herramienta sea desarrollada para correr sobre Windows XP, deber seguirse un diseo modular que facilite su adaptacin a otros sistemas operativos, ya bien sea Windows Vista, Windows 2008 o versiones anteriores.

[RNF03] Baja carga del sistema. Descripcin: La herramienta no es la tarea principal que desarrolla el usuario, sino que se apoya en ella para poder llevar a cabo sus verdaderas tareas, por tanto, su carga en el sistema debe ser mnima, para no interferir con el resto de aplicaciones.

13 14

(AEN/CTN 139 Tecnologas de la Informacin y las comunicaciones para la salud, 2003) (MSDN Library, 2007)

37

3.2.4. Diagrama de clases.Lupa MitadFija LineaHorizontal AltoContraste contraste : Boolean setAltoContraste() PantallaCompleta ContenedorImagenAmpliada dimension : Dimensin posicion : Point dinamico : Boolean borde : Borde alisado : Boolean CrearImagenAmpliada() ResituarLupa() Pers onalizado

Magnificador estado : Boolean caractRaton : Ratn caractCursor : Cursor IncrementaFactor() DecrementaFactor()

ImagenFuente imagen : Image origen : Point colorReal : Boolean SetOrigenImagenFuente() SetPosImagenFuenteCentradaRaton() SetPosImagenFuenteEnMargenes()

Controladores estado : Boolean ActivarControlador() DesactivarControlador()

Foco activo : Boolean tipo : Integer borde : Borde posicion : Point personalizar() activar() desactivar()

Raton origen : Point icono : Icon tamanyo : Integer centrado : Boolean

Curs or posicion : Point personalizar()

GuiaSeguimiento SeguimientoFoco HookTeclado HookRaton activa : Boolean borde : Borde posicion : Point tipo : Integer activar() desactivar() personalizar()

Fig. 20 Diagrama de Clases

En el diagrama aparecen las clases ms relevantes que forman el sistema, obviando las necesarias como soporte, por ejemplo, las destinadas a comunicar elementos. Se ha intentado dividir el sistema en clases especializadas segn funcionalidades, con esto se pretende facilitar la adicin de nuevos mdulos o modificacin de los ya existentes.

38

4. DISEO DE LA HERRAMIENTA DE AYUDA PARA PERSONAS CON BAJA VISIN.Con este captulo se pretende informar al lector de las prioridades establecidas para el desarrollo de la herramienta, as como de las decisiones de diseo que han sido tomadas en pasos previos a la implementacin del mismo.

4.1. DOMINIO DEL PROBLEMA.De los objetivos descritos en el captulo anterior se ha centrado la atencin en los casos de uso correspondientes con el [OBJ1] Gestin del magnificador siguientes: [UC01] Activar/Desactivar magnificador. [UC02] Establecer tipo de lupa. [UC03] Establecer propiedades de tipo de lupa personalizadas. [UC04] Modificar factor de ampliacin. [UC05] Aplicar antialias. [UC06] Establecer mejoras del puntero. Se ha implementado de modo parcial, sin las mejoras de color ni permitir una vista previa antes de aplicar los cambios. [UC08] Establecer preferencias para las guas de seguimiento. Tanto para el cursor como para el puntero del ratn, sin permitir una vista previa antes de aplicar los cambios. [UC09] Establecer preferencias de seguimiento de foco. [UC13] Aplicar mejoras de color sobre la lupa y/o el sistema. [UC14] Restringir el movimiento del ratn. La restriccin slo se aplica sobre la ventana activa, no sobre la horizontal o la vertical. As, se presenta un prototipo funcional con un amplio abanico de posibilidades, quedando cubierta la lgica de negocio de la herramienta con la implementacin de la ampliacin de la imagen sobre pantalla completa o sobre cualquiera de los otros tipos de contendor, junto con la posibilidad de establecer el sistema en modo alto contraste. La imagen ampliada se refresca ante movimientos del ratn, del cursor (punto de insercin de texto sobre un editor) o del foco (desplazamiento por mens, aparicin de nuevas ventanas, etc.).

39

Adems, se han aadido ciertas mejoras no contempladas sobre la especificacin de casos de uso pero que, a lo largo del proceso de desarrollo, han ido surgiendo: Ajuste del ratn al centro de la imagen ampliada o dentro de unos lmites predefinidos sobre el tamao del contenedor. Ajuste del cursor al centro de la imagen ampliada o dentro de unos lmites predefinidos sobre el tamao del contenedor.

4.2. DISEO DEL MAGNIFICADOR CON TCNICAS DE ALTO NIVEL.De los diferentes diseos posibles para un magnificador de pantalla15 se ha optado por un desarrollo mediante tcnicas de alto nivel ejecutadas contra el sistema operativo.

Fig. 21 Diseo de un magnificador desarrollado con tcnicas de alto nivel.

Se trata de un diseo independiente de dispositivo; no se trabaja directamente contra la tarjeta grfica, de modo que se evitan todos los problemas derivados de la amplia variedad de tarjetas que se encuentran en el mercado. El resultado ser una herramienta fcil de instalar mantenimiento mnimo una vez desarrollada. que necesita un nivel de

Otro de los factores ms importantes a la hora de decantarse por esta alternativa ha sido la cantidad de fuentes de informacin disponibles que describen este diseo, y el detalle con el que dicho diseo es descrito en esas fuentes.

Una descripcin ms exhaustiva sobre los tipos de diseo empleados para desarrollar un magnificador de pantalla se puede ver en (Screen Magnifiers: Evolution and Evaluation, 2003)

15

40

El diseo en cuestin se basa en tomar la imagen del escritorio desde la interfaz grfica de vdeo (GDI, Graphics Device Interface) y mostrarla ampliada en una ventana sobre la capa ms alta a la hora de representar el escritorio, transparente a eventos, y ocultando la regin de pantalla que quede debajo. La regin a magnificar debe ser: Sensible al movimiento del ratn. Sensible al movimiento del cursor. Sensible a cambios de foco como puedan ser movimiento a travs de mens, aparicin de nuevas pantallas (alertas, errores,). Sensible a tooltips16. Las limitaciones del modelo surgen de su propia definicin: El hecho de que se trabaje con una ventana transparente que no debe aparecer en la imagen ampliada hace que tampoco otras ventanas transparentes aparezcan. Al no trabajar contra la tarjeta grfica, los vdeos que aparecen en pantalla no se muestran ampliados; esto, que podra parecer una limitacin grave, se ha estudiado con algunos usuarios y no causa un efecto traumtico. Cuando una persona con deficiencia visual decide magnificar un vdeo pierde su visin global, y necesita mover la lupa de una parte a otra mientras sigue corriendo el vdeo; esto supone un gran esfuerzo y molestia y no asegura una experiencia correcta, ya que no se conoce por adelantado hacia qu parte de la imagen dirigir la atencin. En cualquier caso, de cara a versiones futuras y posibles mejoras, sera interesante tratar de solucionar estas limitaciones.

Pequeo rectngulo, normalmente amarillo, que surge cuando un usuario posiciona el ratn sobre un elemento, sin hacer clic, y brinda informacin relacionada con dicho elemento.

16

41

4.3. C# COMO LENGUAJE DE PROGRAMACIN.Aunque en un principio el proyecto se iba a desarrollar en C++, debido a su potencia, el lenguaje escogido para la implementacin de la herramienta ha sido C#. Las razones: La inquietud por asentar mis conocimientos sobre este lenguaje, dado que a lo largo de la carrera no haba trabajado mucho con l, pero tiene bastante peso en el mundo laboral. Tanto C++ como C# permitan trabajar contra las APIs necesarias para llevar a cabo el proyecto. C# me resultaba mucho fcil de comprender, debido a su proximidad con Java, en lugar de trabajar con punteros. Posee gestin automtica de memoria. La apuesta de Microsoft por C# con Windows Forms.

4.4. WINDOWS XP COMO SISTEMA OPERATIVO SOBRE EL QUE SE EJECUTAR LA APLICACIN.La eleccin del sistema operativo sobre el que se ejecutar la aplicacin es muy importante, ya que los requisitos de la herramienta obligan a profundizar en la gestin del escritorio y las ventanas. La primera pregunta que surgi fue: Linux o Windows? La respuesta fue Windows; aunque el primero es un sistema operativo gratuito con una comunidad colaborativa, Windows, es el sistema operativo con mayor nmero de usuarios, de modo que la aplicacin podra ser utilizada por ms gente. Sin embargo, dado que son muchas las versiones de este sistema operativo, y existen diferencias notables en la gestin del escritorio de cada una de ellas, fue necesario volver a escoger. Cuando comenzaron a explorarse las necesidades y riesgos del proyecto, el sistema operativo Windows Vista estaba a punto de salir al mercado; an as, se consider que el nmero de usuarios de XP que coexistiran con el nuevo sistema sera significativo, de modo que la herramienta se ha desarrollado para ser usada bajo entorno Windows XP.

42

4.5. TECNOLOGAS UTILIZADAS. 4.5.1. API Hooking.Un hook es un mecanismo por el que una funcin puede interpretar los eventos (mensajes, acciones de ratn, pulsaciones de teclado) antes de que estos alcancen una aplicacin especfica (Exinferis Inc., 2006). Esta funcin puede reaccionar ante un evento, modificarlo o, incluso, anularlo; para ello se instala un hook que asocia la funcin con los eventos con que se ha de despertar. La decisin de implementar el magnificador de pantalla con tcnicas de alto nivel implica el uso de estos mecanismos para decidir cosas como: En qu momento, y a partir de qu posicin del escritorio, se debe actualizar la imagen ampliada porque se ha movido el puntero del ratn (ratn). Si debe cambiar el factor de ampliacin al girar la rueda del ratn (ratn). Si se ha movido el cursor porque el usuario ha introducido texto (teclado). Si se est moviendo por un documento mediante las flechas (teclado).

4.5.2. UI Automation.Otro de los requisitos para generar la imagen ampliada es que sta no slo se debe actualizar con el movimiento del ratn o cursor, tambin ha de hacerlo cuando aparezca una nueva ventana o cambie el foco porque el usuario se est desplazando por un men. Pinsese, por ejemplo, en un usuario que visualiza, a pantalla completa, la parte superior izquierda del escritorio y, en paralelo, se genera un mensaje de error que aparece en la parte central; si la aplicacin no controla los cambios de foco, el usuario no tendr constancia del error hasta que no pase el ratn por encima. Para manejar estas situaciones se ha usado el framework de accesibilidad UI Automation (MSDN Library, 2007), soportado en los sistemas operativos que toleran Windows Presentation Foundation (MSDN Library, 2007), entre los que se encuentran Windows Vista, XP y Windows Server 2008. Su finalidad es la de permitir el acceso a la mayora de elementos de la interfaz de usuario mediante programacin, dando informacin sobre los mismos. 43

Se trata de una tecnologa relativamente nueva, de modo que la informacin que relaciona el desarrollo de clientes de accesibilidad (magnificadores de pantalla, lectores,) con el seguimiento de los objetos que componen la interfaz de usuario apunta a la tecnologa MSAA (framework de accesibilidad predecesor al UI Automation). An as, se ha decidido trabajar con UI Automation con vistas a facilitar la portabilidad de la herramienta a futuros sistemas operativos como pueden ser Windows Vista o Windows 2008, ya que proporciona funcionalidad completa sobre XP.

4.6. ACCESIBILIDAD DE LA APLICACIN.Uno de los requisitos no funcionales de la herramienta es su accesibilidad. Con ello, entre otros, se intenta concienciar de la importancia que tiene el hecho de que la interfaz de las aplicaciones sea accesible para que los programas cliente puedan modificar el escritorio segn las necesidades del usuario y/o recoger informacin. Aunque es mucha la informacin destinada a accesibilidad web, los estndares y organismos encargados de vigilar la accesibilidad para entornos de escritorio parecen no estar tan asentados. De los requisitos recogidos en la normativa espaola se mencionarn los que afectan a la aplicacin motivo del proyecto, mediante las tablas expuestas a continuacin. PRINCIPIOS GENERALES Principio En el proyecto Minimizar el nmero de pasos que debe Hecho realizar el usuario ante cualquier accin. Hecho: la aplicacin se Manejo del software de forma efectiva a travs puede usar empleando de slo uno de los dispositivos de entrada. nicamente el ratn/teclado. Las aplicaciones deben utilizar los servicios Hecho: Elementos del ofrecidos por el sistema operativo para facilitar framework de accesibilidad su accesibilidad. UIAutomation. Se debe permitir la definicin de perfiles con Pendiente. las preferencias del usuario. Cada usuario debe poder cambiar/mantener sus preferencias mediante la interfaz del sistema, Pendiente. sin necesidad de conocimientos profundos.Tabla 8 Requisitos de accesibilidad - Principios Generales

Prioridad

Mxima

Media

44

Prioridad

Mxima

TECLADO Principio En el proyecto Se deben poder activar todas las funciones Hecho: Teclas de acceso (incluyendo navegacin) desde el teclado. rpido. Hecho: Las teclas que activan Los comandos de navegacin por teclado no los elementos de la interfaz deben activar los objetos de la interfaz. son distintas de las que la recorren. Se deben ofrecer alternativas a la pulsacin Pendiente. simultnea de varias teclas. Se debe permitir cambiar la asignacin de Pendiente. funciones de todas las teclas. El desplazamiento mediante teclado de un elemento a otro en los cuadros de dilogo debe seguir una secuencia consistente con la distribucin en pantalla.Facilita el seguimiento de la navegacin por teclado y es fundamental para las personas que no pueden ver la pantalla o tienen problemas cognitivos.

Media

Baja

La navegacin entre elementos de la Hecho. interfaz debe ser circular. Las aplicaciones deben respetar las Hecho: Como en las convenciones de funcionamiento del teclado aplicaciones Windows, ALT sita el foco en la barra de en el sistema operativo. men de la aplicacin. Las etiquetas de los controles de la interfaz de usuario deben tener mnemnicos para Hecho. acceso rpido por teclado.Tabla 9 Requisitos de accesibilidad - Teclado

Prioridad

Mxima

INFORMACIN DE OBJETOS Principio En el proyecto Hecho: Aunque en la interfaz Se debe proporcionar a otras aplicaciones todos los objetos actan segn informacin semntica sobre los objetos de el rol que les corresponde por la interfaz de usuario. defecto. El foco de entrada debe quedar reflejado en Hecho. pantalla de forma inequvoca.Tabla 10 Requisitos de accesibilidad - Informacin de objetos

45

Prioridad

Mxima

Media

PANTALLA Principio En el proyecto Los textos presentados en pantalla deben ser generados mediante las funciones del Hecho. sistema dedicadas a mostrar texto. No debe usarse el color como nica fuente Hecho. de informacin. Deben existir opciones para modificar el tipo de letra, el tamao y el color de todos Pendiente. los controles de la interfaz. Deben existir opciones para modificar la apariencia del cursor de texto y del puntero Pendiente. del ratn. Todos los iconos deben poder tener asociada una etiqueta de texto y debe existir Pendiente. la posibilidad de visualizar slo esa etiqueta. Deben proporcionarse opciones para minimizar, maximizar, restaurar y cerrar las Hecho. ventanas. Hecho. La escala y disposicin de objetos se auto-ajusta cuando La interfaz de usuario debe adaptarse a la el usuario cambia el tamao de configuracin de contraste, color, tamao y los textos. dems atributos de visualizacin que haya Se controla la reaccin de la definido el usuario en el sistema operativo. interfaz ante la puesta en marcha del sistema en modo alto contraste. Deben proporcionarse combinaciones de colores predefinidas que hayan sido diseadas teniendo en cuenta las Pendiente. necesidades de las personas con deficiencias visuales. Las etiquetas de los campos de entrada o visualizacin de datos de los formularios Hecho. deben estar prximas a estos campos.Tabla 11 Requisitos de accesibilidad - Pantalla

46

Prioridad

Mxima

DOCUMENTACIN Principio En el proyecto Debe estar redactada de la forma ms clara y sencilla posible, dentro del vocabulario Hecho. del dominio de la aplicacin. Se deben proporcionar sistemas de ayuda en texto sencillo, complementado de forma Pendiente. opcional mediante lengua de signos.Tabla 12 Requisitos de accesibilidad Documentacin.

OTROS Prioridad Mxima Principio En el proyecto Las aplicaciones deben ofrecer la opcin de Hecho: Opcin Salir del men. finalizar.Tabla 13 Requisitos de accesibilidad - Otros

47

5. IMPLEMENTACIN.Este captulo comienza mostrando cules han sido los mdulos bsicos que conforman la herramienta, as como la relacin entre ellos. Adems, presenta una vista detallada de los puntos que han resultado ms interesantes a la hora de desarrollar el magnificador de pantalla.

5.1. VISIN DE CONJUNTO.Al tomar la decisin de desarrollar el magnificador de pantalla mediante tcnicas de alto nivel se coment que el diseo de su componente principal consistira en un formulario transparente a eventos que se estableciera sobre el punto ms alto del eje z del escritorio y al que denominaremos de aqu en adelante FormLupa. Las propiedades que ste debe adoptar para amoldarse a la configuracin del usuario se recogen en cada una de las clases que se vieron en el diagrama de clases (vase la Fig. 20). Para facilitar la comprensin del resto de apartados del captulo y cmo stos enlazan entre s, se ver, a continuacin, cada una de las clases del diagrama con algo ms de detalle y cmo se interrelacionan entre ellas.

5.1.1. Clase Contenedor.Se ha creado una clase abstracta para facilitar el que puedan ser aadidos nuevos tipos de contenedores predefinidos en implementaciones futuras. Las clases heredadas se corresponden con cada uno de los tipos predefinidos de lupa que puede seleccionar el usuario (pantalla completa, lupa dinmica, lnea horizontal o la lupa fija sobre la mitad superior, inferior, izquierda o derecha), junto con una ms para la lupa personalizada.

48

Las propiedades principales de cada una de las clases sern: Dimensin del rea en que se muestra la regin magnificada, es decir, del FormLupa. Posicin en la pantalla de dicha rea, se gestionar la posicin de los formularios dinmicos, segn las necesidades propias de su estructura, con esto se entiende que no acta igual el posicionamiento de una lupa dinmica cuadrada (que se mueve, por ejemplo, tras el ratn, tanto por el eje X como por el Y) que una lupa con estilo lnea horizontal (que siempre mantiene fija la posicin sobre el eje X). Tipo de borde, donde se define el grosor y color del mismo. Si se trata de una lupa dinmica o no. En caso afirmativo ser necesario que sobrescriban el mtodo Reposiciona(). Adems, sobre la clase abstracta se desarrolla el mtodo CrearImagenAmpliada() que, como su nombre indica, se encarga de crear la imagen que ha de mostrarse en el FormLupa. Esto se ha decidido as porque el tipo de contenedor condiciona el modo en que se debe llevar a cabo la ampliacin; por ejemplo, una lupa con forma de lnea horizontal no ampla sobre el eje X, slo lo hace sobre el Y, por lo que deber sobrescribir este mtodo.

5.1.2. Clase Magnificador.Su misin es proporcionar unidas todas las propiedades del mismo para que stas puedan ser accedidas desde cualquier parte del programa, de una manera nica. Esto debe conseguirse de manera nica; no tendra sentido que unas propiedades del magnificador fueran cambiadas sobre una instancia y, en un punto determinado, se creara otra nueva instancia sobre la que se modificaran stas u otras propiedades distintas. Para lograr dicha unicidad se ha hecho uso del patrn de diseo Singleton, asegurando que el objeto que se consulta o modifica desde cualquier punto del sistema siempre es el mismo. Las propiedades que recoge esta hacen referencia a: Si el magnificador se encuentra en modo activo. El estado del antialias. El contenedor con el que se est trabajando. El factor de ampliacin determinado por el usuario.

49

5.1.3. Clase Imagen.sta, junto con las dos clases anteriores define el cuerpo principal del magnificador. Como propiedades posee: Un elemento de tipo Image que almacenar la imagen que fue creada por la clase Contenedor y ser mostrada sobre el FormLupa segn las propiedades de antialias y factor definidas en la clase magnificada. No slo contendr el mapa de bits con la ampliacin, sobre ella se aadir el puntero ampliado y, en caso de que sea necesario, los localizadores del ratn o/y del cursor. Cabe destacar que el localizador de foco se toma como parte de la imagen del escritorio, ya que se gestiona de manera distinta a las guas del ratn y cursor. Modo de color en que debe copiarse el mapa de bits del escritorio, ya bien sea real o invertido. Punto origen que define la esquina superior izquierda del escritorio que se toma como inicio para delimitar el mapa de bits de la regin a ser ampliada17. Desde esta clase, a travs del mtodo SetOrigenImagenFuente(x,y), se determina el punto del origen del escritorio, a partir de los parmetros x, y, que vendrn dados por la posicin del puntero, del cursor o de la esquina superior izquierda del elemento que contiene el foco; ello depende del elemento que haya sido el encargado de llamar al mtodo que repinta la imagen magnificada. De manera privada a la clase se calcula el punto origen a partir de dos mtodos distintos. La eleccin entre uno y otro depende de que las preferencias del usuario se inclinen por centrar la imagen ampliada con respecto a la posicin del ratn (o cursor) o que se respeten unos mrgenes conforme a los cuales el usuario tenga libertad para moverse dentro de ellos sin que sea actualizada el rea ampliada que existe bajo el elemento.

17

Esto se ver con ms detalle en el siguiente punto de la memoria.

50

5.1.4. Clase Ratn.Esta clase contiene todas las operaciones definidas sobre el ratn a partir de las propiedades: Icono del puntero del sistema actual. Posicin del puntero. Tamao del icono. HotSpot o punto al que apunta, valga la redundancia, el puntero; es decir, lugar en que se encuentra la punta de la flecha. Posee los mtodos encargados de capturar el manejador del ratn del sistema, ocultarlo o restablecerlo al predeterminado; cuya misin es la gestin correcta del puntero sobre el FormLupa.

5.1.5. Clase Cursores.Es mucho ms sencilla que la del ratn, pues nicamente se emplea para establecer la posicin del FormLupa con respecto al cursor, para que se le pueda asociar el localizador, en caso de que sea solicitado, y se actualice el rea magnificada de manera centrada o conforme a unos mrgenes cuya longitud tambin es seleccionada por el usuario.

5.1.6. Clase Localizadores.Los localizadores de ratn y cursor nicamente se muestran sobre la imagen ampliada pues se gestionan como polgonos dibujados, que se centran sobre el elemento en cuestin, en la regin magnificada. Las propiedades empleadas para definir un localizador sern: Si se encuentra activo. El tipo de borde (color y grosor) de las lneas del localizador. La opacidad. El tipo, o la forma, del mismo.

51

En el caso del puntero del ratn se han definido tres posibles tipos: Cruz grande, cuyo trazado cruza por completo la regin ampliada.

Fig. 22 Localizador de ratn cruz grande

Cruz pequea.

Fig. 23 Localizador de ratn cruz pequea.

Circular.

Fig. 24 Localizador de ratn circular.

En el del cursor se han definido dos: Cuas, que son entendidas como dos tringulos slidos separados por el cursor y cuyos picos le apuntan.

Fig. 25 Localizador de cursor con forma de cuas.

Cuadrado.

Fig. 26 Localizador de cursor con forma cuadrada.

El mtodo PintaGuias() se encarga de aadir, a la imagen que ya contena el mapa de bits con la regin ampliada del escritorio, el dibujo del localizador correspondiente atendiendo a los polgonos que lo conforman y sus propiedades.

52

5.1.7. Clase Controladores.De esta clase heredan las de ControlRaton, ControlTeclado y ControlFoco. En ella se definen los mtodos ActivarControlador() y DesactivarControlador() que deben ser implementados en cada una de las clases heredadas. Cada tipo de controlador se encarga de detectar un evento distinto a nivel global del sistema: El controlador del ratn detecta el movimiento del ratn. El controlador de teclado detecta que una tecla ha sido presionada y el cursor est en pantalla, es decir, entiende que se trata de edicin de texto y el cursor se est desplazando. El controlador del foco detecta movimientos del foco, ya bien sea que el usuario se desplaza a travs de los elementos de un men, se abre una nueva ventana, etc. Una vez detectado el evento que los dispara lanzan la orden de Repintar() el FormLupa con la nueva regin de imagen ampliada, para lo que se emplea la clase Repinta, creada como evento interno con la misin de que relacione los eventos que tienen lugar sobre el sistema operativo con la manera en que ha de actualizarse la regin magnificada.

5.1.8. Clase AltoContraste.Su misin es agrupar la funcionalidad que concierne a determinar si el sistema se encuentra en modo alto contraste y activarlo o desactivarlo segn las preferencias del usuario.

53

5.1.9. Clase Foco.Cuando el controlador encargado del seguimiento de foco detecta que ste ha pasado a ser contenido por otro elemento del escritorio y est activo el seguimiento del mismo mediante guas entra en juego la clase Foco. Con ella, lo que se realiza es toda la lgica concerniente a mostrar por pantalla el localizador que resalta el elemento que posee el foco. Se ha comentado en otro de los apartados de este captulo que la gestin de los localizadores de ratn y cursor es distinta a la gestin del localizador del foco; los primeros se trataban como polgonos que se pintaban sobre el mismo lienzo que contiene el mapa de bits de la regin ampliada, con el segundo se trabaja creando un elemento independiente. Este elemento independiente tiene las siguientes propiedades principales: Borde: con color y grosor. Tipo: se han implementado dos formas distintas para el localizador del foco; la primera, rectangular, la segunda, como lnea que subraya. Ambas se implementan como un array de tantos formularios como aristas tenga cada tipo (cuatro para el caso rectangular y una para el de subrayado). Los formularios que componen la gua de seguimiento de foco se definen de modo que no sean reconocidos por el sistema, como por ejemplo, cuando se lleva a cabo la combinacin de teclas ALT + TAB. Se sitan en pantalla conforme a la posicin que les indica el controlador de foco. Aunque se tratan de elementos en s mismos no se ha considerado moverlos ante un cambio del elemento que contiene el foco, ya que no slo cambia la posicin, sino tambin sus dimensiones. As, lo que se hace es liberar los componentes del array y crear unos nuevos.

54

5. CREA UN FO .2. AR ORMULA ARIO COM