Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tesis Brenda Bustos Torres
Tesis Brenda Bustos Torres
NEUQUÉN ARGENTINA
Agosto 2009
PÁGINA PARA LOS EVALUADORES
Calificación:
Comentarios:
…………………………………… ……………………………………..
……………………………………
………………..…………………………………..
Lugar para la Fecha de la Evaluación
III
DEDICATORIAS
Quisiera dedicar este trabajo a mamá y a mis hermanas, por ser parte de lo que soy
como persona, por sus valores y principios, por demostrarme que nuestros pasados y
circunstancias pueden haber influenciado en quienes somos, pero que somos
responsables por quien llegamos a ser.
Para mis amigos y familia por su paciencia y comprensión, por haber estado. Para
Matías especialmente, que es la persona que más directamente ha sufrido las
consecuencias de este trabajo. Por enseñarme que las cosas se miran con más calma,
pero con el interés de seguir creciendo, por su amor, por ser tal y como es.
Para mis amores del alma, mis sobrinos: Cata, Manu y Juan Cruz, sin duda son mis
referencias para el presente y futuro.
PREFACIO
Esta tesis es presentada como parte de los requisitos finales para optar al grado
académico Licenciada en Ciencias de la Computación, de la Universidad Nacional
del Comahue y no ha sido presentada previamente para la obtención de otro título en
esta Universidad u otras. La misma es el resultado de una investigación llevada a cabo
en el Departamento de Ciencias de la Computación en el período comprendido entre
Diciembre de 2007 y Agosto de 2009, bajo la dirección de Mg. Adriana Martín y la
codirección de Dra. Alejandra Cechich.
AGRADECIMIENTOS
RESUMEN
Como una consecuencia del crecimiento vertiginoso de Internet, las aplicaciones con
plataforma de despliegue en la Web han evolucionado hacia aplicaciones de negocios y
servicios online de alta complejidad, convirtiéndose en recursos valiosos en la vida cotidiana
de las personas: educación, empleo, gobierno, comercio, entre otros. Al igual que cualquier
otro sistema interactivo de información, estas aplicaciones Web, no solo deben cumplir con
los objetivos funcionales para las que fueron creadas, sino que además deberían cumplir con
todos los principios y características deseables, que permitan calificarlas de “accesibles”. La
carencia de Accesibilidad en las interfaces de usuarios de los sitios Web es un dilema que
afecta actualmente a un gran número de personas. Que una aplicación Web sea “accesible”
significa que debe presentar la información a las personas de manera tal que,
independientemente de la tecnología que estas utilicen (dispositivos de escritorio y móviles) y
de las capacidades diferentes que posean (físicas y cognitivas), todas estas personas estén en
igualdad de condiciones en lo que al acceso a la información se refiere. Por lo tanto, derribar
barreras de Accesibilidad significa asegurar “a todos” el acceso a Internet independientemente
de la tecnología que utilicen y de las capacidades diferentes que posean.
Muchos países ya han legislado para custodiar la presencia de los principios de Accesibilidad
en los sitios relacionados con los organismos de gobierno, es decir aquellos destinados a la
administración y provisión de servicios públicos a sus ciudadanos. Así mismo han surgido
asociaciones y organizaciones en todo el mundo, que persiguen el objetivo de encaminar a la
Web a su máximo potencial: la posibilidad del Acceso Universal. Por ejemplo, el “World
Wide Web Consortium” (W3C) ha trabajado y trabaja incansablemente no sólo en la
confección de guías, estándares y herramientas de Accesibilidad sino que también en la
concientización con el firme propósito de inculcar porqué es tan importante hacer “accesible a
todos” el contenido de la Web. Basados en estas recomendaciones un gran número de
herramientas libres y comerciales para evaluar la Accesibilidad han surgido en los últimos
años y están disponibles para asistir a los desarrolladores Web en la generación de contenido
“accesible”.
Dado que es a nivel de interfaz de usuario donde finalmente se manifiestan las barreras de
Accesibilidad, nuestro trabajo apuesta al diseño de interfaces de usuario “accesibles”. En esta
tesis proponemos un enfoque para asistir a los desarrolladores en las tareas de diseño y
evaluación de la Accesibilidad en aplicaciones Web, desde los principios arquitectónicos del
diseño de sus interfaces de usuario. Particularmente nos centramos en presentar un Mapeo de
las pautas de la “Web Content Accessibility Guidelines 1.0” (WCAG 1.0) sobre un
framework arquitectónico que asocia las fortalezas del diseño de interfaces de usuario y del
patrón “Model View Controller” (MVC). El diseño arquitectural obtenido apunta
esencialmente a prevenir las barreras de Accesibilidad, pero aporta además a: (i) minimizar
los riesgos de cambios futuros, (ii) permitir el reuso a nivel arquitectural y (iii) disminuir en
gran medida los tiempos y costos en los que se incurre cuando un mal diseño conlleva a tareas
de re-desarrollo.
De esta manera nuestro enfoque fija su objetivo en asistir a los desarrolladores Web en la
toma de decisiones de diseño a los efectos de construir interfaces de usuario más “accesibles”
para personas con capacidades diferentes, contribuyendo a la concreción del ideal con el que
Tim Berners-Lee dio origen a la World Wide Web en 1989: “una Web para todos”.
VII
SUMMARY
As a consequence of the vertiginous Internet growth, the applications with a spread out
platform in the Web have evolved into high complexity business and online services
applications, becoming valuable resources in the every day life of people: education, job,
government, commerce among others. Just as any other interactive information systems, these
Web applications not only have to fulfill the functional goals they were created for but they
also should comply with all the desirable principles and characteristics that allow them to be
qualified as “accessible”. Accessibility lack in Websites user interfaces is a dilemma currently
affecting a large number of people. A Web application being “accessible”, means that is has
to present the information to the people in such a way that independently of the technology
they use (desktop or portable devices) and the different capacities they may have (physical
and cognitive), all these people were in the same conditions to information access is referred.
So, the fact of throwing down Accessibility barriers means to ensure everybody gets access to
Internet, independently of the technology they use and the different capacities they have.
Many countries have already legislated to take care of keeping the presence of Accessibility
principles in the sites related to government departments, that is, those appointed to the
administration and provision of public services to their citizens. Likewise associations and
organizations all over the world have come forth pursuing the objective of putting the Web in
the right track towards its highest potential: the possibility of Universal Access. For instance
the “World Wide Web Consortium (W3C)” has working and tirelessly works on not only
drawing up guidelines, standards and Accessibility tools but also leading people is awareness
on the matter with the firm purpose of teaching why it is so important to make Web contents
“accessible to everyone”. Based on these recommendations during the last year a great
number of free and commercial tools have appeared and are available to assist the Web
developers in the production of “accessible” contents.
As it is at the user interfaces level where Accessibility barriers come up, our task aims at the
design of accessible users interfaces. In this thesis we propose an approach to assist
developers in the tasks of design and assessment of Web application’s Accessibility from the
architectural principles of user interfaces design. We essentially focus on presenting a pattern
mapping of the “Web Content Accessibility Guidelines 1.0” (WCAG 1.0) on an Architectural
framework which links the users interfaces design strengths and the “Model View Controller
(MVC)” pattern. The Architectural Design obtained mainly aims at preventing the Accessible
barriers, but also brings in: (i) to lessen the risks of future changes; (ii) to let it be used again
at architectural level and; (iii) to diminish times and cost greatly, factor where we fall we
never a wrong design takes redeveloping tasks.
Thus, our approach sets it objective in assisting Web designers in making their minds up so us
to built more “accessible” user interfaces for disabled people helping to fulfil Tim Berners-
Lee ideal when starting up the World Wide Web in 1989: “a Web for everyone”
Índice general
Capítulo 1......................................................................................................................................1
Introducción al Proyecto............................................................................................................1
1.1 Motivación ......................................................................................................................1
1.2 Objetivo...........................................................................................................................3
1.3 Organización ...................................................................................................................4
Capítulo 2......................................................................................................................................5
Accesibilidad Web.....................................................................................................................5
2.1 Un poco de Historia: La Importancia del Diseño Universal en la Web ..........................5
2. 2 ¿Qué es Una Interfaz de Usuario?..................................................................................7
2.2.1 Limitaciones de Acceso ...........................................................................................8
2.3 ¿Qué es la Accesibilidad Web? .....................................................................................10
2.3.1 ¿Por qué la Accesibilidad Web es Importante? .....................................................10
2.3.2 Referentes Técnicos: W3C - WAI .........................................................................14
2.3.3 Legislación existente..............................................................................................15
Capítulo 3....................................................................................................................................18
Un Framework para el Diseño de Interfaz de Usuario ............................................................18
3.1 Framework de diseño de LARSON ..............................................................................18
3.1.1 Criterios para determinar clases de decisión..........................................................19
3.1.2 Particiónamiento de decisiones de diseño de interfaz en clases ............................20
Capítulo 4....................................................................................................................................25
Model View Controller: Un Patrón que Prioriza la Interacción ..............................................25
4.1 Introducción a Patrones de Diseño................................................................................25
4.2 Patrón de Diseño Model View Controller.....................................................................26
4.2.1 Arquitectura Model View Controller.....................................................................26
4.2.2 Beneficios al aplicar MVC.....................................................................................28
4.3 Una Arquitectura para Diseñar con Clases de Decisión................................................29
Capítulo 5....................................................................................................................................30
Arquitectura de Software para Aplicaciones Web Accesibles ................................................30
5.1 Herramienta para asistir al diseño, desarrollo e implementación de arquitecturas de
software accesibles..............................................................................................................30
5.1.1 Arquitectura con Clases de Decisión Accesibles...................................................31
Pauta 1 - Proporcione alternativas equivalentes para el contenido visual y
auditivo.....................................................................................................................32
Pauta 2: No se base sólo en el color .........................................................................36
Pauta 3. Utilice marcadores y hojas de estilo y hágalo apropiadamente ..................37
Pauta 4. Identifique el idioma usado ........................................................................41
Pauta 5. Cree tablas que se transformen correctamente ...........................................43
Pauta 6. Asegúrese de que las páginas que incorporan nuevas tecnologías se
transformen correctamente ......................................................................................48
Pauta 7. Asegure al usuario el control sobre los cambios de los contenidos tempo-
dependientes .............................................................................................................52
Pauta 8. Asegure la Accesibilidad directa de las interfaces de usuario incrustadas .53
Pauta 9. Diseñe para la independencia del dispositivo.............................................54
Pauta 10. Utilice soluciones provisionales ...............................................................56
Pauta 11. Utilice las tecnologías y pautas W3C .......................................................59
Pauta 12. Proporcione información de contexto y orientación.................................61
Pauta 13. Proporcione mecanismos claros de navegación .......................................63
Pauta 14. Asegúrese de que los documentos sean claros y simples .........................69
Capítulo 6....................................................................................................................................72
Caso de Estudio .......................................................................................................................72
6.1 Implementación del enfoque propuesto en Aplicación Web GIE. ................................72
6.1.1 Desarrollo - Objetos de la Interfaz de Usuario de la Aplicación Web GIE. ..........73
6.1.2 Construcción de la Interfaz de Usuario de la Aplicación Web GIE. .....................77
6.2 Resumen........................................................................................................................83
Capítulo 7....................................................................................................................................84
Trabajos relacionados ..............................................................................................................84
7.1 Propuesta de Hoffman et al. ..........................................................................................84
7.2 Propuesta de Brunet et al...............................................................................................87
Capítulo 8....................................................................................................................................92
Conclusiones y Trabajos Futuros.............................................................................................92
8.1 Resultados del Mapeo ...................................................................................................92
8.2 Publicaciones Derivadas de esta Tesis ..........................................................................94
8.3 Trabajos Futuros............................................................................................................94
Apéndice A..................................................................................................................................96
Glosario ...................................................................................................................................96
Pauta 1 - Proporcione alternativas equivalentes para el contenido visual y auditivo..........96
Pauta 3. Utilice marcadores y hojas de estilo y hágalo apropiadamente.............................97
Pauta 4. Identifique el idioma usado ...................................................................................97
Pauta 5. Cree tablas que se transformen correctamente ......................................................98
Pauta 6. Asegúrese de que las páginas que incorporan nuevas tecnologías se transformen
correctamente ......................................................................................................................98
Pauta 9. Diseñe para la independencia del dispositivo........................................................99
Pauta 10. Utilice soluciones provisionales..........................................................................99
Pauta 11. Utilice las tecnologías y pautas W3C..................................................................99
Pauta 13. Proporcione mecanismos claros de navegación ................................................100
Índice de figuras
3.1: Ejemplos de estilo de diálogo Menú Horizontal............................................................. 21
3.2: Ejemplos de estilo de diálogo Menú Vertical y Desplegable. ....................................... 21
3.3: Ejemplos de estilo de diálogo Formulario. ..................................................................... 22
3.4: Ejemplos de estilo de diálogo Lenguaje Natural. ........................................................... 22
3.5: Ejemplos de estilo de diálogo Manipulación Directa. .................................................... 22
3.6: Ejemplos de estilo de diálogo Interacción Asistida. ....................................................... 23
3.7: Ejemplos de Objetos de Interacción. .............................................................................. 23
4.1: Diagrama de clases de MVC [5]..................................................................................... 27
4.2: Ciclo de comunicación MVC. ........................................................................................ 28
6.1: Modelo de Clases Interfaz de Usuario Aplicación GIE.................................................. 75
6.2: Cuadro de Diálogo New Project (Visual Web Developer 2008) – Creación de Proyecto
Web GIE ................................................................................................................................ 77
6.3: Carpetas de aplicación - Proyecto Web GIE................................................................... 78
6.4: Clase FormgiController - Proyecto Web GIE................................................................. 79
6.5: Clase FormgiController - Proyecto Web GIE................................................................. 79
6.6: Archivo Site.css - Proyecto Web GIE............................................................................. 80
6.7: Archivo Site.Master - Proyecto Web GIE ...................................................................... 80
6.8: Archivo Formgi.aspx - Proyecto Web GIE..................................................................... 81
6.9: Código HTML generado correspondiente al procesamiento del archivo Formgi.aspx -
Proyecto Web GIE ................................................................................................................. 82
6.10: Archivo Formgi.resx - Proyecto Web GIE ................................................................... 83
6.11: Archivo Formgi.pt-br.resx - Proyecto Web GIE .......................................................... 83
7.1: Ejemplo de campos que comparten una misma etiqueta [12]......................................... 85
7.2: Señalización transmitida a través de elementos visuales [12]. ....................................... 85
7.3: Ejemplo de señalización efectiva en la barra de título: (A) la barra de título muestra un
error de información, (B) la barra de título muestra resultados de búsqueda [12]................. 86
7.4: Componentes de software de una solución accesible [4]................................................ 87
7.5: Solución accesible para una página Web [4]. ................................................................. 88
7.6: Patrón de diseño MVC [4]. ............................................................................................ 89
Índice de tablas
2.1: Breve descripción de los Principios Generales de Diseño Universal, enfocados en
aplicaciones Web [8].............................................................................................................. 6
2.2: Situaciones en que personas sin necesidades especiales pueden prescindir y verse
beneficiadas de interfaces accesibles [18]. ............................................................................ 12
6.1: Resumen del Mapeo utilizado como guía en el diseño de una de las interfaces de usuario
de la aplicación Web GIE. .................................................................................................... 73
Capítulo 1
Introducción al Proyecto
En este Capítulo se describe por competo el contexto de esta tesis, su objetivo y su estructura.
El detalle del contexto se instrumenta explicando la motivación que dio origen a este proyecto
y a estos efectos se incluyen conceptos y definiciones preliminares relacionados a la
Accesibilidad Web.
1.1 Motivación
La Web (World Wide Web) ha permitido un flujo de comunicación global a una velocidad de
cambio y evolución sin precedentes en la historia humana. Esta red universal de conocimiento
ha significado un enorme salto cualitativo y cuantitativo en lo que a adquisición y tratamiento
de información se refiere. Cultura, ciencia, idioma, arte, negocios… todo puede ser
compartido y diseminado digitalmente con el menor esfuerzo, haciéndolo llegar casi de forma
inmediata a cualquier otro punto del planeta, perdiendo de alguna manera las concepciones
tradicionales de distancia y tiempo. La Web, como nuevo medio de comunicación, tiene su
propio lenguaje y ha llegado a extenderse hasta áreas tales como el comercio electrónico (e-
commerce), el comercio móvil (m-commerce), los negocios electrónicos (e-bussiness) y las
organizaciones gubernamentales (e-government), permitiendo a las organizaciones: (i)
adaptarse rápidamente a patrones diferentes determinados por las necesidades y expectativas
de los usuarios en relación con la red, (ii) automatizar sus procesos de negocio y canales de
comunicación con sus clientes, y (iii) responder oportuna y adecuadamente a las necesidades
y requerimientos del mercado, manteniéndose competitivas en este.
Consecuentemente con el crecimiento de Internet, las aplicaciones Web también han
evolucionado rápidamente, hacia aplicaciones de negocios complejas y servicios online. Al
igual que cualquier otro sistema interactivo de información, estas aplicaciones, no solo deben
cumplir con los objetivos funcionales para las que han sido creadas, tarea que no es nada
fácil, sino que además deben cumplir con todos los principios y características deseables, que
permiten calificarlas como “accesibles”.
La norma ISO/TC 16027 [16], define Accesibilidad como la facilidad de uso en forma
eficiente, eficaz y satisfactoria de un producto, servicio, entorno o instrumento por personas
que poseen capacidades diferentes. Por lo tanto, Accesibilidad electrónica hace referencia a
que los productos y servicios electrónicos puedan ser utilizados por los usuarios con
efectividad, eficiencia y satisfacción en un contexto de uso determinado. En el caso de una
aplicación Web, que sea “accesible”, significa que debe presentar la información a las
personas, de manera tal que independientemente de la tecnología que utilicen (ordenador,
PDA1, teléfono, etc.) y de las capacidades diferentes que posean (físicas, psíquicas,
sensoriales u otras) estén en igualdad de condiciones en lo que al acceso a la información se
refiere.
1
PDA [37], del inglés Personal Digital Assistant, es un computador de mano originalmente diseñado
como agenda electrónica (calendario, lista de contactos, bloc de notas y recordatorios) con un sistema
de reconocimiento de escritura. Hoy día se puede usar como una computadora doméstica (ver películas,
crear documentos, juegos, correo electrónico, navegar por Internet, reproducir archivos de audio, etc.).
2 Capítulo 1 - Introducción al Proyecto
Las interfaces de las aplicaciones Web y su lenguaje asociado, juegan entonces un rol más
preponderante del que han tenido hasta el momento en aplicaciones tradicionales, como
consecuencia de la diversidad de usuarios, lenguajes y de la velocidad con que todos estos
factores están cambiando. Tal como se define en [18], debido a que la interfaz de usuario es:
(i) el principal punto de contacto entre el usuario y la computadora; (ii) la parte de la
aplicación Web con la que el usuario interactúa; y (iii) la puerta de acceso a la funcionalidad
del sistema subyacente, encargada de informar las posibles acciones a realizar, los cambios
producidos y estado actual de la aplicación Web, es justamente a nivel de interfaz de usuario
donde finalmente se manifiestan las barreras2 de Accesibilidad, debido a que lo que no es
posible expresar a través de la interfaz, permanece inaccesible a la persona o grupo de ellas
cuando interactúan con dicha aplicación Web.
Actualmente la mayoría de las interfaces de los sitios Web presentan barreras de
Accesibilidad, que afectan a un gran número de personas. Por ejemplo, los usuarios
discapacitados y las personas de edad avanzada tienen serias dificultades para interactuar con
Internet debido a impedimentos físicos y/o cognitivos para manipular los dispositivos y
entender los procedimientos y la navegación. Muchos países ya han legislado para velar por la
Accesibilidad de los sitios relacionados con los organismos del estado, es decir aquellos
referidos a la administración y provisión de servicios públicos a sus ciudadanos. Así mismo
han surgido asociaciones y organizaciones en todo el mundo, que persiguen el objetivo de
encaminar la Web a su máximo potencial, lo cual implica una Web para todos: un Acceso
Universal. Por ejemplo, el World Wide Web Consortium (W3C) [33], fue creado en Octubre
de 1994 con la visión “Universal Web Access: The Web Anywhere, for Everyone, at Anytime,
on Everything”. La W3C ha desarrollado guías de Accesibilidad denominadas Web Content
Accessibility Guidelines 1.0 (WCAG 1.0) [34] que son consideradas en la Unión Europea
como normas de facto, y citadas como referencia obligada en la mayoría de las legislaciones
sobre Tecnologías de la Información y Comunicación de todo el mundo. Estas
recomendaciones explican cómo hacer “accesible” el contenido de la Web a personas con
discapacidad y están pensadas tanto para los desarrolladores de contenido (autores de páginas
y diseñadores de sitios) como para los desarrolladores de herramientas de autor. Basados en
estas recomendaciones un gran número de enfoques han surgido en los últimos años y están
disponibles para asistir a los desarrolladores Web en la generación de contenido “accesible”.
En [19] se presentan y comparan quince de estos enfoques encontrados en la literatura
reciente en un framework de evaluación denominado WAAM “Web Accessibility Assessment
Model”.
Compañías que asisten en consultoría, no solo al sector privado sino también a la
administración pública, a países donde la Accesibilidad Web es un tema avanzado y legislado,
han investigado acerca de la carencia de Accesibilidad en las aplicaciones Web, arribando a
que uno de los factores determinantes es la significante brecha de conocimiento que existe
entre los desarrolladores de software y los especialistas de Accesibilidad. Por un lado, la
mayoría de los programadores no tienen conocimiento y experiencia, para lograr que su
código cumpla con los objetivos o características de Accesibilidad deseadas. Por otro lado, los
especialistas de Accesibilidad tienen limitaciones y poca experiencia en el desarrollo y más
aún en la programación, no siendo capaces de proveer ejemplos de trozos de código que
puedan ser usados por los desarrolladores para lograr aplicaciones “accesibles”. Además de lo
expresado, existe una carencia generalizada en la comprensión de las guías de Accesibilidad
para aplicaciones Web interactivas. Si bien existen un gran número de sitios que publican
2
Una Barrera de Accesibilidad es cualquier condición que dificulta a las personas alcanzar un objetivo
cuando está utilizando un sitio Web determinado a través de una tecnología de asistencia específica.
1.1 Motivación 3
información sobre Accesibilidad Web y las necesidades de los usuarios con capacidades
diferentes, se enfocan en el diseño de sitios Web estáticos o formularios Web básicos que no
reflejan los patrones de las aplicaciones actuales, dinámicas y con un alto grado de
complejidad, así como también introducen la Accesibilidad en el proceso de desarrollo, en
una etapa avanzada, en la que las aplicaciones ya se encuentran codificadas, y “volverlas
accesibles” puede significar un gran esfuerzo de rediseño y reprogramación, esfuerzo que
generalmente se encuentran fuera del alcance del proyecto, por no haber sido considerado en
su planificación y presupuesto inicial.
Motivados por esta situación nos focalizamos en la tarea de proponer un framework
integrador que sirva como instrumento para asistir a los desarrolladores en el diseño y
construcción de sus aplicaciones Web, desde el inicio del desarrollo, durante la toma de
decisiones de diseño y especificación de las interfaces de usuarios, para atender
simultáneamente los aspectos esenciales de diseño y las propiedades deseables de
Accesibilidad. Particularmente centramos nuestra esfuerzo en desarrollar un Mapeo de las
pautas de la WCAG 1.0 [34] a las clases de decisión de diseño del framework propuesto por
Larson en [17] y a los componentes del patrón arquitectónico más ampliamente utilizado en el
diseño de interfaces de aplicaciones Web: Model View Controller (MVC) [5]. En este punto
cabe señalar que cada una de las pautas de la WCAG 1.0 [34] se enfoca en un objetivo de
Accesibilidad y se compone de un conjunto de puntos de verificación. Cada punto de
verificación tiene a su vez su propio objetivo de Accesibilidad destinado a consolidar el
objetivo de la pauta a la que pertenece. Dada una página Web, asegurar la conformidad para
un determinado punto de verificación significa evitar la presencia de barreras de
Accesibilidad para determinados usuarios Web. El grado del aporte a la Accesibilidad de la
página Web que proporciona la conformidad de un determinado punto de verificación, se
refleja en el nivel de prioridad que tiene asignado. Estos conceptos que fundamentan la
filosofía de las guías de la WCAG 1.0 [34], se utilizaron para trabajar individualmente sobre
cada una da las pautas a través de sus respectivos puntos de verificación, "mapeándolos" a las
clases de decisión del framework de Larson [17] y a los componentes del patrón MVC [5].
1.2 Objetivo
El objetivo de este trabajo de tesis es asociar las pautas de recomendación de la WCAG 1.0
[34] con las clases de decisión de diseño del framework propuesto por Larson [17] y los
componentes del patrón arquitectural MVC [5], a los efectos de explicar como direccionar
arquitecturalmente los objetivos de cada punto de verificación de las pautas, en componentes
reusables, para fortalecer las decisiones de diseño tomadas en la etapa temprana del
desarrollo, contribuyendo a mejorar la Accesibilidad de una aplicación Web.
Los objetivos principalmente específicos de esta tesis son los siguientes:
• Estudio de las recomendaciones sobre Accesibilidad de la W3C. De esto se desprende
el estudio de las pautas de las WCAG 1.0 [34] como base para evaluar la
Accesibilidad de aplicaciones Web.
• Estudio del framework para el diseño de interfaces de usuario propuesto por Larson
en [17]. En este caso, se deberá analizar cada una de las clases de decisión de diseño
propuestas por el framework y sus relaciones con el patrón arquitectural MVC [5].
• Desarrollo de un Framework integrador que resulta del Mapeo de las pautas de las
WCAG 1.0 [34] a las clases de decisión de diseño propuestas por Larson en [17] y
sus relaciones con el patrón arquitectural MVC [5].
• Análisis de las ventajas del enfoque propuesto sobre un Caso de Estudio.
4 Capítulo 1 - Introducción al Proyecto
De esta manera es posible analizar las ventajas de nuestra propuesta desde el patrón MVC,
patrón cuyos conceptos han sido y son ampliamente aplicados al desarrollo de interfaces de
usuarios para productos modernos y tecnologías actuales.
1.3 Organización
Este trabajo de tesis se organiza de la siguiente manera:
1. En el Capítulo 2 se introduce el estado del arte en Accesibilidad Web, para
familiarizar al lector con los tópicos necesarios que le permitirán entender la
problemática fundada detrás de la Accesibilidad y el rol preponderante que asumen
las pautas de las WCAG 1.0 [34]. El Capítulo da inicio con una breve reseña histórica
para luego presentar la definición de Interfaz de Usuario y las limitaciones de acceso
que puede encontrar un usuario al navegar por una aplicación Web. Para finalizar
introduce el concepto de Accesibilidad Web y los referentes técnicos actualmente
vigentes.
2. En el Capítulo 3 se describe el framework para el diseño de interfaces de usuario
propuesto por Larson en [17] para comprender en profundidad que significa tomar
una decisión de diseño y como pueden ser agrupadas en clases de decisión. Esta
comprensión es indispensable para avanzar sobre la relación entre estas clases y el
patrón arquitectural MVC [5] (objetivo del Capítulo 4).
3. En el Capítulo 4 se presentan los tres componentes del patrón arquitectural MVC [5]
con el objetivo de comprender su relación arquitectural con el framework de clases de
decisiones de diseño de interfaces propuesto por Larson [17] (Capítulo 3) y su amplia
utilización por parte de los desarrolladores, como guía en el diseño de arquitecturas
de aplicaciones Web. Este Capítulo describe brevemente cada componente del patrón,
sus responsabilidades y el flujo de comunicación que existe entre ellos.
4. En el Capítulo 5 se forja el objetivo y corazón de este trabajo. En el se propone
nuestro Framework basado en el Mapeo propiamente dicho de las pautas de las
WCAG 1.0 [34] a las clases de decisión de diseño propuestas por Larson en [17] y a
los componentes del patrón MCV [5]. Esta actividad considera las 14 pautas de las
WCAG 1.0 [34] y las clases de decisión de diseño Diálogo, Presentación y
Pragmática dado que solo estas tres clases están relacionadas directamente con la
interacción usuario-sistema y por lo tanto involucradas directamente con la
Accesibilidad Web.
5. En el Capítulo 6 se presenta un Caso de Estudio en el que se utilizó específicamente
el Mapeo de las pautas de las WCAG 1.0 [34] a las clases de decisión de diseño
propuestas por Larson en [17] y a los componentes del patrón MCV [5], desarrollado
en el Capítulo 5. Él Mapeo fue utilizado como herramienta principal, para asistir al
diseño y desarrollo de la interfaz de usuario de la aplicación Web “Gestor de
Incidentes y Emisiones” (GIE). El objetivo planteado en el caso de estudio fue
demostrar como a través del uso del Mapeo como herramienta en la etapa de diseño
de la interfaz de usuario obtuvimos una interfaz con las características de
Accesibilidad deseadas.
6. En el Capítulo 7 se presentan los trabajos que guardan relación con esta tesis.
7. En el Capítulo 8 se presentan las conclusiones de los resultados obtenidos y los
posibles trabajos futuros destacando los aportes y limitaciones de esta tesis.
Capítulo 2
Accesibilidad Web
La información en la Web se ha convertido en la principal fuente de conocimiento para el
siglo XXI. La posibilidad o imposibilidad de acceder a los contenidos en la Web marcan los
límites de la denominada “brecha digital”. En el mundo virtual también existen barreras que
pueden dificultar el acceso a la educación, el trabajo o cualquier otro ámbito social. Para
comprender esta problemática, es fundamental conocer cuando una aplicación Web es
“accesible”, su importancia y beneficios, la visión de los diferentes países respecto de esta
temática, normas y legislaciones vigentes, así como también quienes son los protagonistas
que están de un lado y de otro de la Accesibilidad, objetivos del presente Capítulo.
Este Capítulo se organiza de la siguiente manera: en la Sección 2.1 se introduce el concepto
de Diseño Universal y su importancia; la Sección 2.2 presenta la definición de Interfaz de
Usuario y las limitaciones de acceso a esta; la Sección 2.3 desarrolla por completo la temática
de la Accesibilidad Web, su importancia, beneficios, normas y legislaciones vigentes en los
diferentes países, concluyendo con la situación actual en la Argentina.
TABLA 2.1: Breve descripción de los Principios Generales del Diseño Universal para aplicaciones Web [8].
Principio Descripción Pauta a aplicar sobre el diseño
Uso La aplicación Web ha de ser • Proporcionar las mismas maneras de uso para todos los
equitativo usable4 y de un precio razonable usuarios: idénticas cuando es posible, equivalentes
para personas con diferentes cuando no lo es.
habilidades • Evitar segregar o estigmatizar a cualquier usuario.
• Igualdad de disponibilidad a todos los usuarios de
características de privacidad, garantía y seguridad.
Uso flexible El diseño de la aplicación Web • Ofrecer al usuario posibilidades de elección en los
deberá contemplar que la misma métodos de uso.
pueda ser usada por un rango • Acceso y uso tanto con la mano derecha como con la
amplio de personas con distintos izquierda.
gustos y habilidades. • Facilitar al usuario la exactitud y precisión.
• Adaptar el paso al ritmo del usuario.
3
El estándar ISO 9241-11 [15] presenta el concepto de Usabilidad como la medida en la que un
producto se puede usar por determinados usuarios para conseguir objetivos específicos con efectividad,
eficiencia y satisfacción, en un contexto de uso especificado.
4
Jackob Nielsen define [23] Usabilidad de las aplicaciones Web como el atributo de calidad que mide
lo fáciles de usar que son las interfaces Web. Es por lo tanto fundamental tener en cuenta que una
buena Usabilidad es aquella que pasa totalmente desapercibida porque el usuario puede entender sin
esfuerzo, qué puede hacer, a dónde puede ir y qué le ofrece la página que consulta.
2.1 Un poco de Historia: La Importancia del Diseño Universal en la Web 7
Información El diseño de la aplicación Web • Usar diferentes modos para presentar de manera
perceptible debe comunicar la información redundante la información esencial (gráfica, verbal o
necesaria de manera efectiva al táctil).
usuario, independientemente de • Proporcionar contraste suficiente entre la información
las condiciones ambientales esencial y sus alrededores.
para las habilidades sensoriales • Ampliar la legibilidad de la información esencial.
del mismo. • Diferenciar los elementos en formas que puedan ser
descritas (por ejemplo, que haga fácil dar instrucciones o
direcciones).
• Proporcionar compatibilidad con varias técnicas o
dispositivos usados por personas con limitaciones
sensoriales.
Tolerancia El diseño de la aplicación Web • Disponer los elementos para minimizar los riesgos y
para el error debe minimizar posibles errores: elementos más usados, más “accesibles”; y los
incidentes por azar y las elementos peligrosos eliminados, aislados o tapados.
consecuencias adversas de • Proporcionar advertencias sobre peligros y errores.
acciones no previstas. • Proporcionar características seguras de interrupción.
Esfuerzo El diseño de la aplicación Web • Permitir que el usuario mantenga una posición corporal
físico mínimo debe proporcionar que la misma neutra.
se use de manera confortable y • Utilizar de manera razonable las fuerzas necesarias para
eficiente con un mínimo de operar.
fatiga. • Minimizar las acciones repetitivas.
• Minimizar el esfuerzo físico continuado.
Tamaño y El diseño de la aplicación Web • Proporcionar una línea de visión clara hacia los elementos
espacio para debe proporcionar un tamaño importantes tanto para un usuario sentado como de pie.
poder apropiado de la interfaz para la • El alcance de cualquier componente debería ser
aproximarse y aproximación, alcance y uso de confortable para cualquier usuario sentado o de pie.
usar el diseño la misma. • Acomodar diferentes dispositivos de variado agarre para
diferentes tamaños de manos.
• Proporcionar el espacio necesario para el uso de ayudas
técnicas o de asistencia personal.
conceptualmente. Los aspectos del sistema que están “escondidos” para el usuario formarían
parte de lo que se denomina implementación. De forma general se puede considerar entonces
como Interfaz de Usuario al conjunto de dispositivos y métodos que se utilizan para permitir
la interacción entre las máquinas y las personas que las utilizan. Por lo tanto, las interfaces de
usuario pueden tomar muchas formas, pero siempre cumplen dos requisitos fundamentales:
comunicar información desde la máquina al usuario y comunicar información desde el
usuario a la máquina.
Si bien en los últimos años, los dispositivos utilizados para implementar las interfaces de
usuario en los ordenadores no han cambiado sus características físicas sustancialmente, sí lo
ha hecho y a rápida velocidad, la forma o métodos en los que la pantalla puede usarse para
intercambiar información al usuario, junto con los sistemas de audio facilitando la
Accesibilidad a las aplicaciones. Como complemento a lo aquí vertido, posteriormente en la
Sección 3.1 del Capítulo 3, presentamos una breve descripción conceptual de los dispositivos
utilizados en la actualidad, que podrá servir como sustento al concepto de Interfaz de Usuario,
desarrollado en esta Sección.
5
Dislexia [36] (de dis – dificultad, anomalía, y lexia del griego habla o dicción): trastorno de la lectura
que imposibilita su realización correcta. En psicología y psiquiatría se define la dislexia como una
discrepancia entre el potencial de aprendizaje y el nivel de rendimiento de un sujeto, sin que existan
problemas sensoriales, físicos o, motores o deficiencias educativas
10 Capítulo 2 - Accesibilidad Web
de banda o que pagan altos costes de conexión (por ejemplo llamando mediante
teléfonos móviles) deben limitar por tanto el tamaño de la información transmitida.
• Ayudas técnicas
Teclados virtuales, programas de reconocimiento de voz…
5.- Condiciones ambientales:
Otras circunstancias externas pueden dificultar el acceso a la información, como por
ejemplo el ruido, la luz insuficiente, espacio reducido, etc.
Concluyendo, como indica Vanderheiden en [27], la discapacidad no es el único tipo de
limitación que dificulta la Accesibilidad de contenidos. Además de las limitaciones propias
del individuo, existen otras derivadas del contexto de uso y del dispositivo de acceso
empleado (hardware y/o software). Lo más interesante de este hecho es el paralelismo
existente entre limitaciones, ya que aún teniendo diferente origen suponen barreras similares
en el acceso a la información, Por ejemplo, comparten el mismo problema de visualización
aquellos usuarios con visión reducida, como aquellos que, sin padecer discapacidad visual,
utilicen pantallas pequeñas o accedan desde entornos llenos de humo.
los diseñadores de las tecnologías actuales de desarrollo Web, están dando lugar a situaciones
que imposibilitan el acceso a la información por parte de estos usuarios.
Actualmente, la mayoría de los sitios Web presentan barreras de Accesibilidad, lo que
dificulta o imposibilita la utilización de la Web para muchas personas con discapacidad. Uno
de los principales motivos, se debe a que la Accesibilidad es vista hoy en día cómo una
dificultad añadida al diseño de aplicaciones Web. Mientras que muchos desarrolladores
estarían de acuerdo en “pretender” que el mayor número de usuarios sea capaz de usar sus
productos, no todos ellos se sentirían tan dispuestos a realizar los esfuerzos necesarios para
lograrlo, ya que existe una percepción de que el volumen de la población con “necesidades
especiales” no es lo suficientemente importante. Percepción, sin embargo, posiblemente
errónea. Existen “millones” de personas con discapacidad que no pueden utilizar la Web. Otro
motivo y no menos importante, es que la mayoría de los programadores no tienen
conocimiento y experiencia, para lograr que su código cumpla con los objetivos o
características de Accesibilidad deseadas. Por otro lado los especialistas de Accesibilidad
tienen limitaciones y poca experiencia en el desarrollo de aplicaciones y más aún en la
programación.
Si bien, para solucionar los problemas de acceso a los recursos que ofrece Internet existen
numerosas ayudas técnicas, en función de la diversidad de limitaciones de los usuarios, para
poder acceder a los recursos recogidos en las páginas Web, es necesario que el diseño de las
mismas resulte “accesible”. Actualmente existe una carencia general de comprensión de estas
ayudas técnicas y guías. La mayoría se enfocan en el diseño de sitios Web estáticos o
formularios Web básicos que no reflejan los patrones de las aplicaciones actuales, dinámicas
y con un alto grado de complejidad, así como también introducen la Accesibilidad en el
proceso de desarrollo, en una etapa avanzada, en la que las aplicaciones ya se encuentran
codificadas, y “volverlas accesibles” puede envolver un significante esfuerzo de rediseño y
reprogramación, esfuerzo que generalmente se encuentran fuera del alcance del proyecto, por
no haber sido considerado en su planificación y presupuesto inicial.
Es sumamente importante que la Web sea “accesible” para así proporcionar un acceso
equitativo e igualdad de oportunidades a las personas con discapacidad. Una página Web
“accesible” puede ayudar a estas personas a que participen más activamente en la sociedad.
Cuanto más software y sitios Web “accesibles” estén disponibles, más personas con
discapacidad podrán utilizar la Web y contribuir de forma más eficiente. Por lo tanto, es
necesario evitar diseñar solamente atendiendo a características de grupos de población
específicos, imponiendo barreras innecesarias, posibles de evitar. No obstante, existen
muchas otras razones que se pueden encontrar para diseñar de forma “accesible”. Cualquier
producto que sea diseñado atendiendo a limitaciones derivadas de discapacidades
individuales, posibilitarán y facilitarán así mismo su acceso por usuarios que, sin padecer
estas discapacidades, se encuentren en contextos de uso desfavorables y de equivalente
limitación, por lo que el número de usuarios beneficiados de este modo de diseño sería mayor
que el representado por usuarios con discapacidad [25].
La Accesibilidad Web beneficia también a compañías, organizaciones y personas sin
discapacidad. Por ejemplo, un principio básico de la Accesibilidad Web es la flexibilidad,
cuyo objetivo es satisfacer diferentes necesidades, situaciones y preferencias. Esta flexibilidad
beneficia a todas las personas, incluyendo a quienes no tienen ninguna discapacidad pero que,
debido a determinadas situaciones, tienen dificultades para acceder.
A continuación presentamos y adaptamos el planteo establecido en [18] y [32], respecto a los
beneficios empresariales, técnicos y de otra índole para diferentes tipos de organizaciones y
compañías, y de los beneficios directos para las personas con discapacidades, que se pueden
obtener con una Web “accesible”.
12 Capítulo 2 - Accesibilidad Web
• Beneficio Social:
El creciente uso de Internet en todas las áreas de la sociedad hace que la Accesibilidad
represente un paso adelante para la independencia de las personas con discapacidades. La
Accesibilidad en las páginas Web proporciona un acceso equitativo, igualdad de
oportunidades, incremento de las posibilidades laborales y educativas, permitiendo a las
personas con discapacidades participar hasta en las actividades cotidianas, cómo leer el
periódico o realizar la compra semanal, etc.
• Beneficio para Todos los Usuarios:
El beneficio de la Accesibilidad no repercute solamente en las personas que realmente lo
necesitan; no se excluyen grupos de personas que potencialmente pueden formar parte del
los usuarios de las páginas Web, sino que tal como lo indica la Tabla 2.2 otros colectivos
también se ven favorecidos con estas adaptaciones.
TABLA 2.2: Situaciones en que personas sin necesidades especiales pueden verse beneficiadas por interfaces
accesibles [18].
Tipo de Personas afectadas Situaciones que provocan esta Tecnologías de
discapacidad discapacidad a otras personas Rehabilitación
Sin visión Ciegos - Ojos ocupados (al conducir) - Lectores de pantalla
- En la oscuridad
Poca visión Con limitaciones visuales - Visor pequeño - Pantallas más grandes
(pérdida parcial de la - Ambiente con humo - Fuentes mayores
visión, deficiencias en la - Aumento del contraste
percepción de los - Ampliaciones de
colores) pantalla
6
Show Sounds: término en inglés utilizado para definir el proceso de presentar la información auditiva
en formato visual.
7
Duros de Oído: personas con dificultad para distinguir cambios de frecuencia sonora o de localización
de sonidos.
8
Eye Tracking: termino en inglés utilizado para definir el proceso de evaluar bien el punto donde se
fija la mirada (donde estamos mirando), o el movimiento del ojo en relación con la cabeza.
2.3 ¿Qué es la Accesibilidad Web? 13
9
La Web Semántica es una extensión de la Web actual en la que la información se ofrece con un
significado bien definido, facilitando que computadores y personas trabajen en cooperación.
10
La Minería de Datos (Data Mining) consiste en la extracción no trivial de información que reside de
manera implícita en los datos. Dicha información era previamente desconocida y podrá resultar útil
para algún proceso. En otras palabras, la minería de datos prepara, sondea y explora los datos para
sacar la información oculta en ellos.
14 Capítulo 2 - Accesibilidad Web
Brasil: En Brasil, en el 2004 fue sancionado el Decreto 5296, que regula las leyes 10.048, que
da prioridad de atención a las personas que especifica, y 10.098, que establece normas
generales y criterios básicos para la promoción de la Accesibilidad. El decreto define los
conceptos de: Barrera de Accesibilidad, Ayuda Técnica y Diseño Universal, y en el artículo
47 marca un plazo de 12 meses a partir de su publicación para que la Accesibilidad sea
2.3 ¿Qué es la Accesibilidad Web? 17
11
Una Arquitectura de Software es la organización fundamental de un sistema encarnado en sus
componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y
evolución [13].
12
Un Framework de Aplicación surge cuando un desarrollador personaliza un framework para una
aplicación particular al crear subclases y componer instancias de las clases del framework [11].
3.1 Framework de diseño de LARSON 19
“framework de aplicación”, es una categoría arquitectural que mantiene unidas las nociones
de: diseño, estructura, estilo, racionalidad, proceso y dificultad o costo del cambio.
Durante muchos años los desarrolladores de software se han enfocado en las consecuencias de
las decisiones de diseño tomadas durante el proceso de desarrollo, en el resultado de estas, en
la “arquitectura de software” seleccionada subyacente, representándola a través de gráficos
arquitecturales o de lenguajes de descripción de arquitecturas. Una de las consecuencias de
aplicar solo estas prácticas durante el desarrollo de una aplicación, es la pérdida del
conocimiento adquirido que los llevó a seleccionar la arquitectura subyacente, es decir, la
perdida del conocimiento de cada decisión de diseño en sí misma, conocimiento propio del
proceso de decisión.
Particularmente Larson propone [17] para este complejo proceso de decisión de diseño,
dividir las decisiones de diseño de interfaz de usuario, agrupándolas en diferentes clases, con
el objetivo de que los desarrolladores puedan concentrarse en cada clase por separado. De esta
manera, el framework propuesto, se compone de una colección de clases de decisión de
diseño, constituyendo las decisiones de diseño arquitecturales, la primera clase a instanciar en
la representación de la arquitectura de una aplicación.
1.- Estructural: En esta clase el analista de la aplicación especifica la estructura del “modelo
conceptual” del usuario final, es decir la descripción de los objetos conceptuales (dominio
de la aplicación) que serán manipulados (consumidos, producidos y/o accedidos) por los
usuarios a través de la interfaz. Esta especificación también incluye la descripción de las
restricciones y relaciones establecidas entre dichos objetos. Se excluyen los objetos
“independientes” de la aplicación, tal como ventanas, menús y otros objetos de
interacción que usualmente forman parte de la interfaz. Estos serán agregados al “modelo
conceptual” para formar la interfaz cuando las decisiones sobre presentación sean
tomadas.
3.- Diálogo: En esta clase el diseñador de diálogo especifica el contenido y secuencia del
intercambio de información entre el usuario y la aplicación. Es decir, especifica el “estilo
del diálogo”. Las respuestas a las siguientes preguntas, son una guía para los diseñadores,
para determinar las decisiones de diseño más importantes, asociadas a esta clase:
a. Cuales son las unidades de información que serán intercambiadas entre la
aplicación y el usuario?
Un “token semántico” es la menor unidad de información intercambiable entre el
usuario y la aplicación con un significado formalmente definido. Consiste de uno
o más tokens léxicos13, que en conjunto proveen el significado, a tal punto de no
poder ser dividido en tokens léxicos significativos capaz de ser interpretados por
la aplicación o el usuario individualmente. Un “token léxico” es un keystroke14,
13
Un Token Léxico es una cadena de caracteres que tiene un significado coherente en cierto lenguaje
de programación. Pueden ser palabras clave (tales como if, while, int), identificadores, números,
signos, o un operador de varios caracteres (tal como :=) [24].
14
Un Keytroke representa el ingreso de un carácter presionando una tecla del teclado o dispositivo de
entrada equivalente, también el ingreso de un carácter específico de Java o de un modificador (alt,
3.1 Framework de diseño de LARSON 21
FIGURA 3.1: Ejemplo Menú Horizontal FIGURA 3.2: Ejemplo Menú Vertical y Desplegable
shift, control) o combinación de ellos. Los Keystrokes son usados para definir acciones que
desencadenan eventos de alto nivel o alguna funcionalidad específica [26].
22 Capítulo 3 - Un Framework para el Diseño de Interfaz de Usuario
>Liste todos los empleados que cumplieron con sus objetivos este mes
Salcedo Oscar
Ferrero Andrea
Garcia Roberto
>Compare los porcentajes con los empleados que no alcanzaron sus objetivos
Ferreira Olga 20%
Perez Victor 60%
4.- Presentación: En esta clase el diseñador de diálogo selecciona los objetos de interacción
que componen la interfaz de usuario. Informalmente, se llaman objetos de interacción a
los objetos visible sobre la pantalla o cualquier otro dispositivo de salida, a través del cual
el usuario ingresa u obtiene los “tokens léxicos”. Ejemplos de objetos de interacción son
los controles mencionados en la Sección Menús y Formularios y ejemplificados en la
Figura 3.7. Los objetos de interacción representan para el usuario los tokens semánticos,
así como también son los objetos de interacción los que obtienen información semántica
desde el usuario, quien ingresa tokens léxicos en forma de keystokes, movimientos de
mouse, etc.
En esta clase de decisión, generalmente el diseñador de diálogo trabaja junto al artista
gráfico o diseñador gráfico a tomar las siguientes decisiones:
- La representación visual de los objetos de interacción: tamaño, figura, bordes,
color, textura, composición, estructuración y tipo de fuente, entre otras.
- La disposición de los objetos de interacción visibles respecto de otros objetos de
interacción.
15
Los Asistentes son entidades computacionales que asisten al usuario en el uso de las aplicaciones
existentes. Exponen de una manera fácil que es el que se ha de hacer y pueden entender palabras
escritas o habladas o acciones gráficas e interpretarlas. Interpretar quiere decir que el asistente puede
hacer acciones complejas u ordenes cortas.
24 Capítulo 3 - Un Framework para el Diseño de Interfaz de Usuario
5.- Pragmática: Las decisiones tomadas en esta clase abarcan todas las decisiones hardware
dependiente, es decir, todos los aspectos relacionados a gestión de espacio y dispositivos
de hardware que serán usados por el usuario para ingresar la información (valores y
comandos), y por la aplicación para devolver los resultados. Algunas de las decisiones de
esta clase son determinadas por los técnicos de hardware en conjunto con los
especialistas ergonómicos.
Capítulo 4
Model View Controller: Un Patrón que
Prioriza la Interacción
En este Capítulo presentamos el patrón de diseño Model View Controller (MVC) [5] con el
objetivo de comprender su relación arquitectural con el framework de clases de decisiones de
diseño de interfaz propuesto por Larson (Capítulo 3) y su amplia utilización por parte de los
desarrolladores, como guía en el diseño de arquitecturas de aplicaciones Web.
Este Capítulo se organiza de la siguiente manera: en la Sección 4.1 se presenta una breve
introducción a los patrones de diseño; en la Sección 4.2 se desarrolla específicamente el
patrón MVC detallando su arquitectura y los beneficios de su aplicación en la Sección 4.2.1 y
4.2.2 respectivamente. Finalmente, en la Sección 4.3 se establece su relación con el
framework propuesto por Larson [17].
En algunos casos el Controlador podría también darle instrucciones a la Vista para que realice
cambios en la interfaz de usuario, a través de la invocación de métodos sobre esta. Los
cambios son enviados directamente a la Vista cuando corresponden puramente a “aspectos
gráficos o cosmética” y no tienen efecto sobre el Modelo. Asimismo, las vistas no
necesariamente tienen que representar el Modelo en su totalidad, es decir no necesitan
representar la misma información, podrían simplemente abarcar aspectos diferentes del
Modelo.
La Figura 4.2 muestra el “ciclo de comunicación” de un caso simple del patrón MVC, con un
solo Modelo, una sola Vista y un solo Controlador. Sin embargo, el común de los casos es
que existan 2 o más vistas para un mismo Modelo. En la Figura 6.1 ( Capítulo 6), se puede
observar como para el mismo Modelo se han creado múltiples vistas. Para las
implementaciones que contengan múltiples vistas por Modelo, cada Vista deberá tener
exactamente una instancia de Controlador y viceversa, cada Controlador estará dedicado a
prestar servicio a una única Vista, formando ambos un par indivisible.
28 Capítulo 4 - Model View Controller: Un Patrón que Prioriza la Interacción
Modelo
Datos y
Actualizaciones Lógica Modificaciones
Modificaciones
Vista Controlador
Interfaz Inputs
Ejemplo:
- Prescripción: explicación del punto de verificación y fundamentos que lo
sustentan.
- Ejemplo: provee tópicos de cómo implementar el punto de verificación utilizando
ejemplos bien formados en HTML.
- Mapeo: indica la clase de decisión de Larson y a través de ella el componente
MVC a la que se corresponde al punto de verificación.
- Convenciones de la Pauta: Cuando una palabra del [Enunciado de la pauta u
objetivo de Accesibilidad] o de la Prescripción, aparece subrayada y en letra
cursiva, hace referencia a una definición preliminar recogida en el Glosario
(Apéndice A, página 99).
Tal como podemos observar cada pauta pretende ser lo suficientemente autocontenida, como
para que cualquier diseñador pueda tener presentes cuáles son los principios que subyacen al
diseño de interfaces de usuario “accesibles” y cómo se vinculan estos con las clases de
decisiones de diseño y el componente MVC [5] respectivo para sustentar dicha
Accesibilidad.
32 Capítulo 5 - Arquitectura de Software para Aplicaciones Web Accesibles
Punto de Verificación: 1.3 Hasta que las aplicaciones de usuario puedan leer
automáticamente el texto equivalente de la banda visual, proporcione una descripción
auditiva de la información importante de la banda visual de una presentación multimedia.
[Prioridad 1]
Prescripción Mapeo
Las descripciones sonoras de la banda visual proporcionan una Clases de Presentación,
narración de los elementos visuales claves sin interferir con el sonido o Diálogo y Pragmática -
el diálogo de una película. Los elementos visuales claves incluyen Componentes Vista y
acciones, escenarios, lenguaje corporal, gráficos y el texto mostrado. Controlador:
A la interfaz de usuario de
la aplicación Web se
incorporará un nuevo
objeto de presentación,
asociado a la descripción
auditiva. Dependiendo de
las preferencias del
usuario, este nuevo
elemento interactuara con
el, modificando la
secuencia de diálogo. De
nada servirá mejorar la
Accesibilidad de la
aplicación incorporando
la descripción auditiva, si
la PC sobre la cual corre
la misma no cuenta con
los dispositivos de
hardware multimedia
necesarios, como por
ejemplo tarjeta de sonido.
Ejemplo: se puede proporcionar una presentación Flash que lea por si mismo el contenido,
eliminando la necesidad de lectores de pantalla. Se estará presentando en forma auditiva, cualquier
contenido que se presente visualmente en la presentación Flash. En HTML [30] incluir el archivo
.swf dentro del elemento OBJECT.
<OBJECT width="250" height="100">
<PARAM NAME="movie" VALUE="pelicula.swf">
<EMBED SRC="peliucla.swf" width="250" height="100">
</EMBED>
</OBJECT>
Si un usuario de lector de pantalla encuentra una presentación Flash que usa sonido, puede resultarle
difícil escuchar simultáneamente el lector y el sonido del Flash. En la mayoría de casos, se debería
proporcionar una opción para que los usuarios conecten el sonido cuando acceden por primera vez a
un sitio o darles instrucciones antes de acceder a la presentación sobre cómo desactivar el sonido
(quizás a través de un atajo de teclado). Si el sonido tiene que funcionar la primera vez que se
descarga la presentación, se tendrá que proporcionar una opción para apagar el sonido como primer
elemento de navegación en la presentación Flash.
5.1 Herramienta para asistir al diseño, desarrollo e implementación de arquitecturas de
software accesibles 35
Punto de Verificación: 1.4 Para toda presentación multimedia tempo dependiente (por
ejemplo, una película o animación) sincronice alternativas equivalentes (por ejemplo,
subtítulos o descripciones de la banda de visual) con la presentación. [Prioridad 1]
Prescripción Mapeo
Las presentaciones sonoras deben ir acompañadas por transcripciones Clases de Presentación,
de texto, es decir equivalentes textuales de los eventos sonoros. Diálogo y Pragmática -
Cuando estas transcripciones se presentan de forma sincronizada con la Componentes Vista y
presentación visual, se denominan subtítulos y son utilizados por las Controlador:
personas que no pueden escuchar la banda sonora del material Los subtítulos o
audiovisual. Algunas tecnologías también permiten al usuario elegir descripciones sonoras
diferentes tipos de subtítulos para adecuarlos a sus capacidades serán los elementos que se
lectoras. adicionarán a la
presentación.
Sincronizarlos, como
también permitirle al
usuario decidir
visualizarlos, o
seleccionar el tipo de
subtítulo cambia la
secuencia original de
intercambio de tokens
semánticos entre este y la
aplicación Web. Ver
punto de verificación 1.3.
Ejemplo: debido a la naturaleza interactiva de Flash, los subtítulos pueden activarse o desactivarse
y pueden programarse para que se ejecuten de diversas formas.
Tanto Media Access Generator (MAGpie) de WGBH's National Center for Accessible Multimedia
como Hi-Caption™ SE de HiSoftware, permiten generar subtítulos que pueden incorporarse a la
presentación Flash. Para incorporar archivo swf en HTML ver ejemplo de punto de verificación 1.3.
Punto de Verificación: 1.5 Hasta que las aplicaciones de usuario interpreten el texto
equivalente para los vínculos de los mapas de imagen de cliente, proporcione vínculos en
formato texto redundantes para cada zona activa del mapa de imagen de cliente.
[Prioridad 3]
Prescripción Mapeo
Proporcionar la misma funcionalidad o información de cada zona Clases de Presentación y
activa del mapa de imagen de cliente en una forma alternativa, Diálogo - Componentes
“accesible”, facilitando un vínculo redundante de texto para cada una Vista y Controlador:
de estas zonas. Al Igual que cualquier vínculos, el texto debe tener Ver punto de verificación
sentido cuando se lee fuera de su contexto. 1.2.
Ejemplo: en HTML [30] las zonas o regiones que se pueden definir en una imagen se crean
mediante rectángulos, círculos y polígonos. En un mapa de imagen, la imagen original se inserta
mediante la etiqueta <IMG>. El atributo “usemap” indica que la imagen utiliza un mapa de imagen,
y el nombre del mapa se define en la etiqueta <MAP>. Esta etiqueta define las zonas o regiones de
la imagen. Cada zona es etiquetada con <AREA>, y su atributo “shape” indica el tipo de área y
coordenadas asociadas, cuyo significado depende del tipo de área definido. El enlace de cada área se
referencia mediante el atributo “href”. A través del atributo "alt.", se indica la existencia y
ubicación de los vínculos alternativos.
<IMG src="mapa1.gif" alt="Mapa de imagen de las secciones del
buscador" usemap="#map1">
<MAP name="map1">
<AREA shape="CIRCLE" coords="44,36,29"
href="buscador.html" alt="Pulse para usar el buscador">
<AREA shape="CIRCLE" coords="140,35,31"
href="manualUsuario.html" alt="Pulse para acceder al manual
36 Capítulo 5 - Arquitectura de Software para Aplicaciones Web Accesibles
Ejemplo: en CCS [28] utilizar números en vez de palabras para definir los colores, ya que la gama
definida con palabras es muy limitada.
h1 {color: #808000} o h1 {color: rgb(50%,50%,0%)}
en vez de h1 {color: red}
Ejemplo: las ecuaciones matemáticas complejas definidas en la página Web, podrían ser marcadas
utilizando el lenguaje de marcado de matemática MathML 1.01 [31] o TeX. Luego, el documento
convertido a HTML para su publicación en la Web debe usar una sola descripción de la ecuación,
teniendo posiblemente pequeñas imágenes para partes y trozos de la misma.
La ecuación ax2+bx+c=0, con a>0 podría ser marcada de la siguiente forma:
<MATH>
<MROW>
<MI>a</MI>
<MSUP>
<MI>x</MI>
<MN>2</MN>
</MSUP>
<MO>+</MO>
<MI>bx</MI>
<MO>+</MO>
<MI>c</MI>
<MO>=</MO>
<MN>0</MN>
<MI></MI>
<MO>,</MO>
<MI>con a</MI>
<MO>></MO>
<MN>0</MN>
</MROW>
</MATH>
Punto de Verificación: 3.2 Cree documentos que estén validados por las gramáticas
formales publicadas. [Prioridad 2]
Prescripción Mapeo
Validar un documento Web implica asegurar que un documento escrito Clase de Presentación -
en un determinado lenguaje (por ejemplo HTML [30]) cumple con las Componente Vista:
normas y restricciones de ese lenguaje. El conjunto de normas, Al estar el documento
obligaciones y restricciones que se deben seguir al crear un documento Web validado por una
38 Capítulo 5 - Arquitectura de Software para Aplicaciones Web Accesibles
de un determinado tipo, se recogen en cada DTD (Document Type gramática formal, los
Definition). El proceso de validación consiste en probar página a desarrolladores han
página si su código (HTML [30]) pasa la prueba de validación. Que el utilizado adecuados
documento sea válido le permitirá al navegador del usuario conocer e marcadores y elementos
interpretar la estructura del documento. estructurales, definidos
para el lenguaje en
particular, como así
también, dependiendo de
los estricto que sea el
DTD, una clara
separación de los aspectos
de marcado de la
estructura y presentación
de la página Web.
Ejemplo: en HTML [30], en la primera línea del texto que figura en el código del archivo, con la
etiqueta DOCTYPE, se indica y valida la estructura del mismo contra algún estándar prefijado.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
En este caso indica que el documento que lo contiene está desarrollado bajo los estándares de
HTML 4.01 [30].
Otra forma de validar un documento es a través de una herramienta de validación. Algunos editores
de páginas Web incluyen sus propios validadores y el W3C ha creado una herramienta de acceso
gratuito para la validación de las páginas.
Si la página no pasa correctamente la prueba de validación, se muestra el listado completo de fallos
junto con la ayuda necesaria para resolver cada uno de los errores.
Punto de Verificación: 3.3 Utilice hojas de estilo para controlar la maquetación y la
presentación. [Prioridad 2]
Prescripción Mapeo
El uso de hojas de estilo permite que los usuarios definan sus propios Clase de Presentación –
estilos y a través de facilidades que ofrecen los navegadores los Componentes Vista y
impongan a los del autor, de esta forma pueden tener control total Controlador:
sobre contraste de colores o tamaños de letras para navegar los sitios La representación visual,
con comodidad, según sus necesidades. la ubicación de los objetos
de interacción (efectos
tipográficos, fuentes,
colores, background,
posición, etc.) dependen
de las reglas de estilo
definidas en el archivo
externo. El usuario será
quien a través de las
facilidades (alguna
acción) que ofrecen las
herramientas de
navegación, tendrá el
control total e impondrá
sus propios estilos, o
activará los definidos por
el autor.
Ejemplo: en HTML [30] a través de la etiqueta <LINK> se pueden enlazar las hojas de estilos
CSS [28] utilizadas por las páginas Web. Esta etiqueta se debe incluir dentro de la cabecera del
documento. Se pueden añadir tantas etiquetas <LINK> como hagan falta, pero siempre dentro de
<HEAD>...</HEAD>.
5.1 Herramienta para asistir al diseño, desarrollo e implementación de arquitecturas de
software accesibles 39
<HEAD>
<LINK rel="stylesheet" type="text/css" href="/css/comun.css" />
</HEAD>
…
<DIV><H1>Buscador de Páginas Web</H1></div>
En caso de que existan definidos estilos para los mismos elementos en la propia página HTML o
establecidos por lector, el programa de navegación será quien optará por uno u otro estilo.
Punto de Verificación: 3.4 Utilice unidades relativas en lugar de absolutas al especificar
los valores en los atributos de los marcadores de lenguaje y en los valores de las
propiedades de las hojas de estilo. [Prioridad 2]
Prescripción Mapeo
Utilizar unidades de medida relativas en lugar de absolutas en los Clase de Presentación -
valores de los atributos de elementos estructurales de marcado (por componente Vista:
ejemplo FRAMES) así como en valores de propiedades de las hojas de Ante eventos y acciones
estilo permitiría que los elementos de presentación cambien su aspecto realizadas por el usuario,
de un medio a otro fácilmente (por ejemplo, de un monitor a una en el ejemplo, definir el
impresora láser). Las unidades de medida absolutas son útiles font-size para el
solamente cuando las propiedades físicas del medio de salida son encabezado, o
conocidas. dependiendo del medio
físico de salida, la
aplicación presenta
cambios en la Vista.
Ejemplo: en el lenguaje de hoja de estilo en cascada, CSS [28] utilizar las medidas relativas:
• em: la unidad em es igual al valor computado de la propiedad ‘front-size’ del elemento en
el que se usa. Puede usarse para longitudes verticales como horizontales.
• ex: la unidad ex es definida por la propiedad ‘x-height’ de la fuente.
H1 {line-height: 1.2em}: significa que la altura de línea de los elementos H1
será un 20% mayor que el tamaño de fuente de los elementos H1.
H1 {font-size: 1.2em}: significa que la propiedad font-size de los elementos H1
será un 20% mayor que el tamaño de fuente heredado por los elementos H1.
Punto de Verificación: 3.5 Utilice elementos de encabezado para transmitir la estructura
lógica y utilícelos de acuerdo con la especificación. [Prioridad 2]
Prescripción Mapeo
Los documentos largos se suelen dividir en una serie de capítulos, los Clase de Presentación -
capítulos tienen apartados, los apartados se dividen en distintas Componente Vista:
secciones, las secciones en párrafos, etc. Estos trozos semánticos de Los navegadores asignan
información constituyen la estructura del documento. de forma automática el
tamaño del título de cada
Las secciones deberían iniciarse con los elementos de encabezamiento.
sección en función de su
Así, los títulos de sección <H1> se muestran con el tamaño de letra
importancia. Así mismo,
más grande, ya que son el nivel jerárquico superior. La importancia del
como cada elemento de
resto de etiquetas es descendiente mientras que los títulos de sección
encabezado tiene un
<H6> se visualizan con un tamaño de letra muy pequeño, adecuado
significado esta semántica
para el nivel jerárquico de menor importancia.
es transmitida a aquellos
usuarios que busquen
información a través de
buscadores, o que solo
ojeen los encabezamientos
de los documentos.
Ejemplo: en HTML [30] las etiquetas que definen los títulos de sección son <H1>, <H2>, <H3>,
<H4>, <H5> y <H6>.
<HEAD>
40 Capítulo 5 - Arquitectura de Software para Aplicaciones Web Accesibles
<TITLE>Buscador WEB</TITLE>
<STYLE type="text/css"> /* Sangra el encabezamiento y el
contenido
siguiente */ DIV.section2 { margin-left: 5% }
</STYLE>
</HEAD>
<BODY>
<H1>Página principal buscador Web</H1>
... algún texto aquí ...
<DIV class="sección2">
<H2>Búsqueda simple</H2>
... texto para esta sección ...
</DIV>
<DIV class="sección2">
<H2>Búsqueda avanzada</H2>
... texto para esta sección ...
</DIV>
Punto de Verificación: 3.6 Marque correctamente las listas y los ítems de las listas.
[Prioridad 2]
Prescripción Mapeo
Agrupar determinadas palabras o frases en un conjunto de elementos Clase de Presentación -
que tienen significado de forma conjunta, bajo el marcado de listas componente Vista:
según los elementos provistos por los diferentes leguajes de Marcar las listas
programación. Cualquier usuario, y más aún, los usuarios no visuales correctamente incorporará
pueden sentirse perdidos, especialmente en las listas anidadas y nueva semántica a la
aquellas que no especifican el nivel de anidamiento para cada ítem. Es aplicación, que tendrá
muy importante proporcionar un medio para identificar claramente el mayor impacto en
contexto dentro de una lista, es decir, incluir el marcado de pistas herramientas como
contextuales. La lista "1, 1.1, 1.2, 1.2.1,1.3, 2, 2.1, ..." proporciona más lectores de pantalla, las
contexto que la misma lista sin números compuestos, que sería cuales permitirán
formateada de la siguiente manera: reconocer estos tokens e
1 intercambiarlos con el
usuario.
1
2
1
3
2
Y narrada por los lectores de pantallas como: "1, 1, 2, 1, 3, 2, 1".
Ejemplo: XHTML provee para el marcado de listas los elementos: UL, LI, para encerrar la lista
completa y cada elemento, OL, LI para listas ordenadas y DL, DT y DD para listas de términos y
definiciones.
<BODY>
<H1>Instrucciones</H1>
<OL>
<LI>Ingresar criterio de búsqueda</LI>
<LI>Pulsar el botón Buscar</LI>
<LI>Pulsar el enlace de la página a la que desea acceder</LI>
</OL>
</BODY>
CSS1 [28] y CSS2 [29] permiten a los usuarios controlar los estilos de números (para todos los tipos
de lista, no sólo las ordenadas) mediante las hojas de estilo del usuario. En CSS2 [29] se pueden
especificar los números compuestos para listas anidadas creadas tanto con elementos UL como OL.
Los ítems están numerados como "1", "1.1", "1.1.1", etc.
<STYLE type="text/css">
5.1 Herramienta para asistir al diseño, desarrollo e implementación de arquitecturas de
software accesibles 41
UL, OL { counter-reset: item }
LI { display: block }
LI:before {content: counters(item, "."); counter-increment:
item }
</STYLE>
Punto de Verificación: 3.7 Marque las citas. No utilice el marcador de citas para efectos
de formato tales como sangrías. [Prioridad 2]
Prescripción Mapeo
Marcar las citas externas mediante los elementos de marcado provistos Clase de Presentación -
por los lenguajes. No se debe utilizar el marcado de citas para efectos componente Vista: Marcar
de formato tales como sangrías. Los efectos de espaciado deben las citas correctamente
realizarse a través del correcto uso de elementos de marcado y sus incorporará nueva
propiedades. semántica a la aplicación,
que tendrá mayor impacto
en herramientas como
lectores de pantalla, las
cuales permitirán
reconocer estos tokens
semánticos (texto de la
cita y el autor de esta) al
mismo tiempo que
incorporan el efecto visual
de identar el texto que
contienen.
Ejemplo: HTML [30] provee el elemento BLOCKQUOTE para indicar de forma clara que el texto
es una cita externa. Los navegadores muestran por defecto, el texto del elemento
<BLOCKQUOTE> con un gran margen en la parte izquierda.
<BLOCKQUOTE cite="http://www.ejemplo.com/Accesibilidadweb">
<P> La discapacidad no es el único tipo de limitación que
dificulta la Accesibilidad de contenidos!!!
--- Henry, Shawn Lawton. (2002). Understanding Web
Accessibility
</P>
</BLOCKQUOTE>
Si el efecto que se quiere lograr en la aplicación Web es dejar sangría, se puede utilizar, por
ejemplo, la propiedad de CSS2 [29] "text-indent". No se debe utilizar BLOCKQUOTE o cualquier
otro elemento estructural para hacer sangrías en el texto.
dispositivos braille
interpretarán y
presentarán la
información en el nuevo
idioma, cambiando
algunos elementos de
presentación al usuario
que hace uso de estas
herramientas.
Ejemplo: en HTML [30] la mayoría de los elementos disponen del atributo “lang” para indicar el
idioma del elemento:
<P><Q lang="es">Sus superpoderes son el resultado de las
radiaciones γ,</Q> dijo él.</P>
En el ejemplo, aparecen caracteres del alfabeto griego dentro un texto escrito en español, por lo que
el agente de usuario debe intentar representar el contenido en español de una manera apropiada (en
lo que respecta a la puntuación de la cita) e intentar representar “&gamma”, lo mejor posible aunque
no sea un carácter español.
lectores de pantalla.
Entenderán sin dificultad
la organización de la
página o cómo navegar
por ella.
Ejemplo: en HTML [30] utilice las etiquetas <TABLE> para crear la tabla, <TR> para crear cada
fila y <TD> para crear cada columna, y el atributo "headers" para especificar una lista de celdas de
encabezamiento (etiquetas de fila y columna) asociadas con la celda de datos actual.
<TABLE border="1"
summary="Esta tabla esquematiza el número de búsquedas
realizadas desde cada dirección IP, el tipo de búsqueda (simple
o avanzada) y si se ha ingresado a algún enlace del resultado.">
<CAPTION>Tazas de café consumidas por cada senador</CAPTION>
<TR>
<TH id="header1">IP</TH>
<TH id="header2">Búsquedas</TH>
<TH id="header3" abbr="Tipo">Tipo de búsqueda</TH>
<TH id="header4">¿Ingresó?</TH>
<TR>
<TD headers="header1">10.14.100.173 </TD>
<TD headers="header2">10</TD>
<TD headers="header3">Avanzada</TD>
<TD headers="header4">SI</TD> …
Punto de Verificación: 5.2 Para las tablas de datos que tienen dos o más niveles lógicos
de encabezamientos de fila o columna, utilice marcadores para asociar las celdas de
encabezamiento y las celdas de datos. [Prioridad 1]
Prescripción Mapeo
Es común que las tablas más avanzadas dispongan de una sección de Clase de Presentación -
cabecera, una sección de pie y varias secciones de datos. Además, Componente Vista:
también es posible agrupar varias columnas de forma lógica para poder Al usar los marcadores
aplicar estilos similares a un determinado grupo de columnas. Utilizar adecuados para
los marcadores apropiados para que los navegadores o cualquier implementar tablas más
software especializado puedan interpretar y diferenciar adecuadamente complejas, los tokens
las celdas de encabezamiento y de datos. semánticos asociados al
significado u objetivo de
estos elementos de
marcado se harán
evidentes, para usuarios
cuyos navegadores
realizaban una mala
transformación de las
tablas, o más aún, para
usuarios que dispongan de
software especializado,
por ejemplo lectores de
pantalla. Entenderán sin
dificultad la organización
de la tabla y cómo
navegar por ella.
Ejemplo: en el lenguaje HTML [30] las partes que componen las tablas complejas se definen
mediante las etiquetas <THEAD> para la cabecera, <TBODY> para la sección de datos y
<TFOOT> para el pié.
La etiqueta <TBODY> permite realizar agrupaciones de filas, pero en ocasiones se necesitan
agrupar columnas. Aunque su uso no es muy común, HTML [30] define dos etiquetas similares para
agrupar columnas: <COL> y <COLGROUP>.
5.1 Herramienta para asistir al diseño, desarrollo e implementación de arquitecturas de
software accesibles 45
La etiqueta <COL> se utiliza para asignar los mismos atributos a varias columnas de forma
simultánea.
Por otra parte, la etiqueta <COLGROUP> se emplea para agrupar de forma estructural varias
columnas de la tabla. La forma habitual de indicar el número de columnas que abarca la agrupación
es utilizar el atributo “span”, que indica el número de columnas de cada agrupación.
<HTML>
<HEAD><TITLE>Ejemplo de tabla avanzada</TITLE></HEAD>
<BODY>
<H3>Histórico Buscador
<TABLE summary="Resultados de Búsqueda realizada por año">
<CAPTION>Resultados de Búsquedas por año</CAPTION>
<THEAD>
<TR>
<TH rowspan="2" scope="col">AÑO</TH>
<TH colspan="4" scope="col">Páginas accedidas</TH>
</TR>
<TR>
<TH scope="col">URL A</TH>
<TH scope="col">URL B</TH>
<TH scope="col">URL C</TH>
<TH scope="col">URL D</TH>
</TR>
</THEAD>
<TFOOT>
<TR>
<TH rowspan="2" scope="col">AÑO</TH>
<TH scope="col">URL A</TH>
<TH scope="col">URL B</TH>
<TH scope="col">URL C</TH>
<TH scope="col">URL D</TH>
</TR>
<TR>
</TR>
</TFOOT>
<TBODY>
<TR>
<TH scope="row">N-3</TH>
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
</TR>
<TR>
<TH scope="row">N-2 </TH>
<TD>3</TD>
<TD>5</TD>
<TD>8</TD>
<TD>4</TD>
</TR>
<TR>
<TH scope="row">N-1</TH>
<TD>4</TD>
<TD>4</TD>
<TD>7</TD>
<TD>3</TD>
</TR>
<TR>
<TH scope="row">N</TH>
<TD>5</TD>
46 Capítulo 5 - Arquitectura de Software para Aplicaciones Web Accesibles
<TD>7</TD>
<TD>6</TD>
<TD>2</TD>
</TR>
</TBODY>
</TABLE>
</BODY>
</HTML>
Punto de Verificación: 5.3. No utilice tablas para maquetar, a menos que la tabla tenga
sentido cuando se transcriba línea a línea. Por otro lado, si la tabla no tiene sentido,
proporcione una alternativa equivalente (la cual debe ser una versión linearizada).
[Prioridad 2]
Prescripción Mapeo
Los contenidos deben ser maquetados, ubicados, colocados en capas y Clase de Presentación -
alineados mediante hojas de estilo. Las tablas utilizadas para maquetar Componentes Vista y
páginas, con celdas en el que el texto se extiende a través de más de Controlador:
una línea, plantean problemas para los lectores de pantalla antiguos, El posicionamiento visual
que no interpretan el código fuente o para los navegadores que no de los objetos de
permiten la navegación por celdas individuales de tablas. Estos lectores interacción en el
de pantalla leerán la página por líneas completas, leyendo las frases de documento, depende de
toda una línea pero de cada columna como si fueran una sola frase. las reglas de estilo
Si se utilizan tablas, solo es recomendable utilizarlas para maquetear definidas. En caso de
cuando el orden de la información en ella sea comprensible después de haberse utilizado archivos
transformarse en forma lineal. externos de hoja de estilo,
el usuario podría
controlar la posición
visual de casi cualquier
elemento con
independencia de donde
aparezca el elemento en el
documento. Siempre que
los desarrolladores hayan
diseñado el documento
para que tengan sentido
sin la hoja de estilo (por
ejemplo, el documento
esta escrito en un orden
“lógico”).
Ejemplo: en CSS1 [28] existen un conjunto de propiedades de colocación absoluta para darle
estilo de posicionamiento al contenido:
• Las propiedades “text-indent”, “text-align”, “word-spacing” y “font-stretch”, permiten a los
usuarios controlar el espaciado sin añadir espacios adicionales.
• Las propiedades “margin” “margin-top”, “margin-right”, “margin-bottom” y “margin-left”,
los desarrolladores pueden crear espacios en los cuatro lados del contenido de un elemento,
en lugar de añadir espacios de no separación ( ).
<INPUT type="text" name="nombreOperador" style="margin-
left:1em"> </INPUT>
Punto de Verificación: 5.4. Si se utiliza una tabla para maquetar, no utilice marcadores
estructurales para realizar un efecto visual. [Prioridad 2]
Prescripción Mapeo
Cuando se utilicen tablas para maquetar, no utilice etiquetas Clase de Presentación -
estructurales para crear formatos visuales. Componente Vista:
Utilizar hojas de estilo en
vez de marcadores
5.1 Herramienta para asistir al diseño, desarrollo e implementación de arquitecturas de
software accesibles 47
estructurales para dar un
efecto visual de formato,
son decisiones asociadas a
los aspectos de la Vista y
presentación de la
aplicación Web.
Ejemplo: en HTML [30], el elemento <TH> muestra visualmente el contenido de la celda centrado
y en negrita. Si una celda no es realmente el encabezamiento de una fila o columna de datos, se
deberían utilizar hojas de estilo o atributos de formateo del elemento.
Punto de Verificación: 5.5. Proporcione resúmenes de las tablas. [Prioridad 3]
Prescripción Mapeo
Proporcionar el resumen de una tabla permite describir el contenido de Clase de Presentación -
la misma. Un resumen de las relaciones entre las celdas es Componente Vista:
especialmente importante para las tablas con encabezamientos Al proporcionar el
anidados, celdas que ocupan varias columnas o filas, u otras relaciones resumen de una tabla, la
que no sean evidentes en un análisis de la estructura de la tabla, pero presentación de la
que sí se aprecian cuando la tabla se muestra visualmente. Un resumen aplicación Web no sufrirá
también puede describir como una tabla encaja en el contexto del ningún cambio para los
documento actual. usuarios con navegadores
comunes. Por lo contrario,
para los usuarios con
algún tipo de software
especializado, por
ejemplo lectores de
pantalla, incorporará
nuevos elementos de
interacción
correspondientes al texto
del resumen ingresado.
Ejemplo: en el lenguaje HTML [30] puede realizarse a través del atributo “summary”. Ver
ejemplo punto de verificación 5.2.
Punto de Verificación: 5.6. Proporcione abreviaturas para las etiquetas de
encabezamiento. [Prioridad 3]
Prescripción Mapeo
Proporcionar subtítulos para las etiquetas de encabezamiento puede Clase Presentación -
realizarse a través de atributos asociados a la cabecera de la tabla. Componente Vista: las
abreviaturas reducen la
repetición y el tiempo de
lectura, aportando nuevos
objetos de interacción en
la presentación de la
aplicación Web. Los
mismos serán
intercambiados en un
orden específico con el
usuario final, cuando sean
reconocidos por software
especializados o por
futuras tecnologías con
habla que puedan leer las
etiquetas de fila y columna
para cada celda.
Ejemplo: en HTML [30] el atributo "abbr" de la etiqueta <THEAD>.
48 Capítulo 5 - Arquitectura de Software para Aplicaciones Web Accesibles
Ejemplo: el orden en que los objetos de interacción son distribuidos en la ventana del navegador
del usuario no debería ser diferente del orden en que aparecen en el documento fuente. Si esto
ocurriera, la ubicación de los mismos ha sido forzada o establecida en la hoja de estilo, y cambiará
al ser esta desconectada.
Punto de Verificación: 6.2 Asegúrese de que los equivalentes de un contenido dinámico
son actualizados cuando cambia el contenido dinámico. [Prioridad 1]
Prescripción Mapeo
El contenido dinámico, al igual que el estático debe tener asociado un Clases de Diálogo y
contenido equivalente que cumpla esencialmente la misma función o Presentación -
propósito en la presentación al usuario final, en el mismo contexto. Componentes Vista y
Este contenido equivalente debe estar siempre actualizado. Controlador: ante posibles
cambios en el contenido
dinámico, por eventos
ingresados por el usuario,
trasladados por el
Controlador, la Vista
actualiza consistentemente
la información que
muestran al usuario.
Ejemplo: para el contenido de cada frame se debe proporcionar un equivalente textual, asegurando
que los contenidos y las relaciones entre los frames tienen sentido, y que serán actualizados cuando
se presenten cambios. En HTML [30] cuando se implemente un frame con una imagen como
contenido, no se debe insertar directamente en el frame, por el contrario, la imagen debe estar en un
archivo HTML, y este debe ser el origen “scr” del frame.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
5.1 Herramienta para asistir al diseño, desarrollo e implementación de arquitecturas de
software accesibles 49
<HTML>
<HEAD>
<TITLE>Un documento de frames correcto</TITLE>
</HEAD>
<FRAMESET cols="100%" title="Conjunto de frames que
evolucionan">
<FRAME name="marcobueno" src="ordenadores.html"
title="Tipos de Ordenadores">
</FRAMESET>
</HTML>
<!-- En ordenadores.html -->
<P><IMG src="ordenadores.gif" alt="Tipos de Ordenadores">
De esta manera, si un vínculo causa la inserción de una nueva imagen en el frame:
<P>Consulte un tipo de
<A target="marcobueno" href="teclados.gif" title="Tipos de
Teclados">teclados</A>
El nuevo título del frame ("Tipos de Teclados") se corresponderá con el contenido actual del frame
("Tipos de Teclados").
Punto de Verificación: 6.3 Asegúrese de que las páginas sigan siendo utilizables cuando
se desconecten o no se soporten los scripts, applets u otros objetos programados. Si esto
no es posible, proporcione información equivalente en una página alternativa accesible.
[Prioridad 1]
Prescripción Mapeo
Algunos navegadores no disponen de soporte completo de lenguajes de Clases Presentación y
scripting. Otros permiten bloquear la ejecución de scripts parcialmente Diálogo - Componentes
e incluso algunos usuarios bloquean completamente el uso de objetos Vista y Controlador: Ante
programados porque creen que así navegan de forma más segura. Ante la configuración de los
cualquiera de estos casos, a través de la incorporación de “equivalentes navegadores o los eventos
textuales y no textuales”, el diseñador de la aplicación Web, debe disparados por los
asegurarse de proveer las mismas funciones o propósito para el usuario usuarios, la Vista de la
final. aplicación cambiará de
manera tal de que siga
siendo utilizable, es decir
reflejando el mismo
modelo, en caso de no
estar desconectados los
scripts, applets u otros
objetos programados.
Ejemplo: en HTML [30] la etiqueta <SCRIPT> sirve tanto para insertar un bloque de código en la
página como para enlazar un archivo externo. Esta etiqueta puede enlazar código que esté escrito en
algún lenguaje de Scripting, por ejemplo JavaScript. El elemento <NOSCRIPT> permite a los
diseñadores proporcionar contenido alternativo cuando un script no es ejecutado.
<SCRIPT type="text/tcl">
...un script Tcl para mostrar un resumen de búsquedas realizadas
realizada...
</SCRIPT>
<NOSCRIPT>
<P>Históricos de búsquedas realizadas por mes:</P>
<DL>
<DT>ENE 91, FEB 80.
<DD>
<A href="estadistica.html">Estadística de búsquedas por
páginas </A>
...mas resultados...
</DL>
50 Capítulo 5 - Arquitectura de Software para Aplicaciones Web Accesibles
</NOSCRIPT>
En el caso particular del elemento <APPLET>, el atributo "alt" dentro del contenido del elemento,
permite incorporar un equivalente textual, logrando una transformación satisfactoria del contenido
para aquellas aplicaciones de usuario que sólo soportan uno de los dos mecanismos ("alt" o
contenido).
<APPLET code="Press.class" widTH="500" height="500"
alt="Applet Java: estadística de búsquedas por criterios">
La cantidad de búsquedas realizadas en los últimos meses …
</APPLET>
Punto de Verificación: 6.4 Para los scripts y applets, asegúrese de que los manejadores
de evento sean independientes del dispositivo de entrada. [Prioridad 2]
Prescripción Mapeo
La interacción con el usuario se puede conseguir mediante la captura Clases de Presentación y
de eventos que este produce. Los eventos soportados estarán Pragmática -
determinados por el lenguaje de programación utilizado, por el sistema Componentes Vista y
operativo e incluso por eventos creados por el mismo programador de Controlador:
la aplicación. Algunos manejadores de eventos, cuando se invocan, La utilización de eventos
causan efectos puramente decorativos tales como resaltar una imagen o independientes del
cambiar el color del texto de un elemento. Otros causan efectos más dispositivo, generan un
importantes, tales como realizar un cálculo, proporcionar información comportamiento a nivel
importante al usuario, o enviar un formulario. Para manejadores de de aplicación, logrando la
eventos que solo cambian la apariencia de un elemento, los mayoría un efecto sobre
diseñadores de la aplicación deberían: los elementos de la
1. Emplear disparadores al nivel de aplicación en vez de presentación de la misma.
disparadores de nivel de interacción con el usuario. Los Las decisiones asociadas
eventos a nivel de aplicación son atributos diseñados para ser a la combinación y
independiente del dispositivo. secuencia de teclas,
2. Si se tiene que emplear atributos específicos de un movimientos y presión de
dispositivo, se debería proporcionar mecanismos redundantes botones del mouse, o
de interacción (es decir, especificar dos manejadores para un cualquier definición sobre
mismo elemento). dispositivo de entrada
3. No emplear manejadores de eventos que dependan de las deberán tomarse. Así
coordenadas del mouse porque esto impide la interacción mismo el Controlador
independiente de dispositivo. será quien deberá
determinar en función de
las entradas ingresadas
por el usuario, entre los
mecanismo redundantes
de interacción,
actualizando la Vista.
Ejemplo: en HTML [30] utilizar los atributos "onfocus", "onblur", "onselect", "onmousedown"
con "onkeydown", "onmouseup" con "onkeyup" y "onclick" con "onkeypress" para los elementos
de presentación que los soporten. El foco de la aplicación por ejemplo, se obtendrá sin importar el
dispositivo que lo dispare.
Punto de Verificación: 6.5 Asegúrese de que los contenidos dinámicos son accesibles o
proporcione una página o presentación alternativa. [Prioridad 2]
Prescripción Mapeo
Particularmente si los frames de una página no son soportados por el Clases Presentación,
navegador, los usuarios invidentes, no podrán percibir las relaciones Diálogo y Pragmática -
establecidas entre los contenidos de los distintos frames. Dentro de los Componentes Vista y
problemas de Accesibilidad asociados a frames encontramos que: Controlador:
• Algunos navegadores no los soportan o están configurados Ver punto de verificación
para no mostrarlos. 6.4.
• Sin scripts, los frames tienden a degradar la funcionalidad del
5.1 Herramienta para asistir al diseño, desarrollo e implementación de arquitecturas de
software accesibles 51
botón "página anterior" del navegador.
• Es imposible hacer referencia al "estado actual" de un
conjunto de frames con URI; una vez que cambien los
contenidos de un conjunto de frames, el URI original ya no es
válido.
• Al abrir el contenido de un frame en una nueva ventana puede
desorientar al usuario o simplemente molestarle.
Para scritps y applets ver puntos de verificación 6.2 y 6.3
Ejemplo: algunas de las formas de proveer alternativas accesibles al usuario:
1. En HTML [30] para frames inaccesibles, ofrecer una alternativa “accesible” equivalente a
través del elemento NOFRAMES, incluyendo entre la etiqueta <NOFRAMES > y su cierre
</ NOFRAMES > el contenido que sólo será interpretado por aquellos navegadores que no
soporten frames.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<HTML>
<HEAD>
<TITLE>Este es arriba.html</TITLE>
</HEAD>
<FRAMESET cols="50%, 50%" title="Nuestro documento largo">
<FRAME src="principal.html" title="Donde se muestra el
contenido">
<FRAME src="tabla_de_contenido.html" title="Tabla de
contenidos">
<NOFRAMES>
<A href="tabla_de_contenido.html">Tabla de contenidos.</A>
<!-- otros vínculos de navegación visibles en principal.html
también son visibles aquí. -->
</NOFRAMES>
</FRAMESET>
</HTML>
2. Situar en el servidor scripts que generen versiones “accesibles” de la página solicitada. El
servidor ejecuta los scripts y se genera una página resultado, que solamente contiene
código HTML “accesible”. De esta manera, el cliente no puede ver los scripts, ya que se
ejecutan y transforman en HTML antes de ser enviados. Además son independientes del
navegador del usuario, ya que el código que reciben es HTML fácilmente interpretable.
3. Proporcionar un número de teléfono, fax, dirección de correo electrónico o postal donde la
información esté disponible y “accesible”, preferentemente las 24 horas del día.
4. Permitirle al usuario navegar a otra página diferente que sea “accesible” y contenga la
misma información que la página inaccesible, con la condición de que sea actualizada con
la misma frecuencia que la página inaccesible. Se podría proporcionar el vínculo al
principio, tanto de la página principal como de la alternativa, asegurando que este sea una
de las primeras cosas que el usuario vaya a percibir, permitiéndole moverse entre ellas. El
elemento LINK de HTML [30] permite enlazar recursos, apuntando a la página
“accesible” y relacionar unos recursos con otros. Su atributo “media” hace referencia al
medio para el que es válida la relación con el recurso enlazado. Los medios más comunes:
screen para los contenidos mostrados en pantalla, print para las impresoras y handheld
para los dispositivos móviles, entre otros. Las aplicaciones de usuario que soportan LINK
cargarán la página alternativa para aquellos usuarios cuyo tipo de navegador se identifica
como uno de los establecidos en el atributo “media”, por ejemplo: "aural", "braille", o "tty".
<HEAD>
<TITLE>Bienvenidos Buscador Virtual!</TITLE>
<LINK title="Versión solo texto"
rel="alternate"
href="solo_texto"
media="aural, braille, tty">
</HEAD>
<BODY><P>...</BODY>
52 Capítulo 5 - Arquitectura de Software para Aplicaciones Web Accesibles
Los mapas de imagen controlados por el cliente permiten que el apuntalamiento, para el
usuario vea la URL actual asociada con las regiones mapeadas en la resto de las zonas podrá
barra de estado de su navegador Web e independizarse del dispositivo ingresar las coordenada
de apuntalamiento, así como también las personas que utilizan agentes para ingresar a las
de usuario no gráficos pueden interactuar con la aplicación de usuario mismas. Las acciones o
y saber si una región esta activa o no. eventos ingresados por el
usuario provocarán el
Para aquellas zonas de un mapa que no puedan ser definidas en forma
cambio en la Vista de la
geométrica, la pauta actual establece que se definan a través de un
aplicación.
mapa procesado en el servidor. Este tipo de mapas se basa en la
utilización de un archivo en el servidor, que define las diferentes
coordenadas de las zonas sensitivas de la imagen.
Ejemplo: las zonas de la imagen que pueden ser definidas en forma geométrica serán
proporcionadas por un mapa de imagen controlado por el cliente. En HTML indicando cada área y
tipo:
• shape="RECT": Crea un área rectangular. Para definirla se utilizan las coordenadas de los
puntos de la esquina superior izquierda y la esquina inferior derecha.
<area shape="RECT" coords="X1,Y1,X2,Y2" href="#">
• shape="CIRCLE": Crea un área circular, que se indica con la coordenada del centro del
círculo y el radio.
<area shape="CIRCLE" coords="X1,Y1,R" href="#">
• shape="POLY": Crea un área poligonal. Un polígono queda definido indicando todos sus
puntos, pero atención, los tenemos que indicar en orden, siguiendo el camino marcado por
el perímetro del polígono.
<area shape="POLY" coords=" X1,Y1, X2,Y2, X3,Y3, X4,Y4"
href="#">
Las zonas de la imagen que no puedan ser definidas en forma geométrica serán procesadas a través
de un script en el servidor.
<a href ="http://www.miservidor.com/cgi-bin/mapa1.map">
<img src="mapa1.gif" ismap border="0">
</a>
En el archivo mapa1.map estarían definidas las coordenadas de los enlaces de la imagen sensitiva
mapa1.gif , de manera que cuando se realiza un click sobre la imagen, se realiza sobre coordenadas
determinadas de la misma, que son enviadas al servidor y en función de estas se consulta el archivo
mapa1.map y se halla la dirección final del enlace.
Punto de Verificación: 9.2 Asegúrese de que cualquier elemento que tiene su propia
interfaz pueda manejarse de forma independiente del dispositivo. [Prioridad 2]
Prescripción Mapeo
Los usuarios deben poder interactuar con una aplicación Web Clases Diálogo y
utilizando los dispositivos de entrada y salida de su elección y acordes Pragmática - Componentes
a sus necesidades. Que las aplicaciones puedan manejarse Vista y Controlador:
independientemente del dispositivo, no implica que tenga que soportar Para cualquier contexto de
todos los dispositivos de entrada y salida, sino que deben ofrecer presentación de hardware,
mecanismos de entrada y salida redundantes para cada dispositivo que no dependiendo de una
sea soportado. combinación de hardware
Para que los desarrolladores logren esta independencia es necesario y software específica, el
que los lenguajes de etiquetado estándares usados funcionen con una usuario final utilizará la
amplia gama de dispositivos y tecnologías. También son necesarias aplicación Web con
técnicas de autor nuevas para ayudar a los desarrolladores, una independencia de los
negociación de contenido mejorada entre un agente de usuario y dispositivos, utilizando
servidores de contenido, es decir, es necesaria más información sobre una o varias modalidades
el contexto de envío (preferencias de los usuarios, características y (vista, sonido, teclado,
configuración de los dispositivos, contexto y entorno). voz, etc.). Según la
Este entorno genérico permite al agente de usuario, describir las configuración provista por
características del dispositivo, el contexto, y las preferencias del el usuario, el Controlador
usuario junto con las restricciones que sufre. presentará la Vista
56 Capítulo 5 - Arquitectura de Software para Aplicaciones Web Accesibles
correspondiente.
Ejemplo: si una aplicación de usuario soporta entradas de teclado y mouse, los usuarios deben
poder interactuar con toda la presentación utilizando cualquier teclado o mouse. Ver Ejemplo Punto
de verificación 6.4.
Punto de Verificación: 9.3 Para los "scripts", especifique manejadores de eventos lógicos
en vez de manejadores de evento dependientes de dispositivos. [Prioridad 2]
Prescripción Mapeo
Ver punto de verificación 6.4. Ver punto de verificación
6.4.
Ejemplo: ver punto de verificación 6.4.
Punto de Verificación: 9.4 Cree un orden lógico para navegar con el tabulador a través
de vínculos, controles de formulario y objetos. [Prioridad 3]
9.5 Proporcione atajos de teclado para los vínculos más importantes (incluidos los de los
mapas de imagen de cliente), los controles de formulario y los grupos de controles de
formulario. [Prioridad 3]
Prescripción Mapeo
La navegación consiste en el modo en el que podemos recorrer las Clases de Presentación,
páginas de la aplicación. Para establecer un orden lógico de Diálogo y Pragmática -
navegación se debe estructurar y organizar el sitio Web con el objetivo Componentes Vista y
de que los usuarios puedan navegar por las páginas de la manera más Controlador:
sencilla e intuitiva posible. Siempre debe jugar a favor de la Los diseñadores de la
navegación, la facilidad de uso, la funcionalidad y objetivos a lograr aplicación analizarán la
por el sitio, de manera que la experiencia del usuario en él sea manera en que los
positiva. usuarios potenciales
Hay varias maneras de dirigir el foco hacia un elemento: usarán la aplicación para
• Designar el elemento con un dispositivo apuntador. definir la secuencia lógica
• Navegar de un elemento a otro con el teclado. de navegación y
• Seleccionar un elemento por medio de una tecla de acceso. establecer la combinación
de teclas de acceso. El
usuario será quien a través
de la navegación, definirá
las acciones a seguir,
utilizando como medios
físicos el teclado o algún
dispositivo de
apuntalamiento como un
mouse, lápiz óptico etc.
Ejemplo: en HTML [30] el atributo “tabindex” permite especificar la posición del elemento actual
dentro del orden de tabulación del documento actual. Este valor debe ser un número entre 0 y
32767. La navegación se produce desde el elemento con menor valor de “tabindex” hasta el
elemento con el valor más alto. Si hay elementos que tengan valores idénticos de “tabindex” debería
navegarse por ellos según el orden en que aparezcan en el flujo de caracteres.
Otra manera de dirigir el foco hacia un elemento de interacción en HTML [30] es a través de teclas
de acceso o atajos del teclado. El atributo “accesskey” permite asignar una tecla de acceso a un
elemento.
Punto de Verificación: 10.5 Hasta que las aplicaciones de usuario (incluidas las ayudas
técnicas) interpreten claramente los vínculos contiguos, incluya caracteres imprimibles
(rodeados de espacios), que no sirvan como vínculo, entre los vínculos contiguos.
[Prioridad 3]
Prescripción Mapeo
Vínculos agrupados lógicamente, como las barras de navegación, por Clases de Diálogo y
ejemplo, son normalmente lo primero que el usuario encuentra en una Presentación -
página. Para usuarios con sintetizador de voz, la navegación implicaría Componentes Vista y
tener que escuchar una serie de vínculos antes de llegar a los Controlador:
contenidos interesantes de la página Cuando los vínculos se agrupan en La incorporación del
conjuntos lógicos, estos deberían estar etiquetados como una unidad, vínculo al inicio, o la
permitiendo a los usuarios con softwares especiales, saltar el grupo de agrupación de los
vínculos (tal y como hacen los usuarios videntes cuando ven el mismo vínculos, permitirán al
comienzo en cada página). Para lograrlo los diseñadores de las usuario elegir diferentes
aplicaciones pueden: caminos alternativos de
• Incluir un vínculo que permita al usuario saltar sobre el navegación, evitando una
conjunto de vínculos de navegación. navegación secuencial,
• Proporcionar una hoja de estilo que permita a los usuarios permitiéndolo saltar la
ocultar el conjunto de vínculos de navegación. información que ya
• Agrupar los vínculos e incluir caracteres imprimibles para conoce Así mismo, la
impedir que los lectores de pantalla viejos lean los enlaces presentación de la
adyacentes como un único enlace. aplicación también se
verá afectada por la
incorporación de estas
mejoras, permitiendo los
caracteres imprimibles
entre los enlaces dar una
distinción visual que
pueda ayudar a los
usuarios a diferenciar los
enlaces a simple vista.
Ejemplo: para agrupar vínculos, HTML 4.01 [30] provee el elemento MAP. Los vínculos están
separados por corchetes ([]) para impedir que los lectores de pantalla antiguos lean vínculos
adyacentes como si fueran un solo vínculo.
<MAP title="Barra de navegación">
[ <A href="#salto">Saltar Barra de navegación</A ]
[ <A href="prueba1.html">Sección 1</A ]
[ <A href="prueba2.html">Sección 2</A ]
[ <A href="prueba3.html">Sección 3</A ]
[ <A href="prueba4.html">Sección 4</A ]
[ <A href="prueba5.html">Sección 5</A ]
</MAP
<H1><A name="salto">Título del texto del sitio
</A></H1>
Ejemplo: en HTML [30] los elementos FRAME, IFRAME y FRAMESET disponen de los
atributos <title> y <longdesc> para proveer el nombre y relación entre frames:
• <title> para proporcionar el título de cada frame.
• <longdesc> para proporcionar la dirección en la que puede encontrarse una descripción
larga del contenido del frame.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<HTML>
<HEAD>
<TITLE>Las noticias de hoy</TITLE>
</HEAD>
<FRAMESET cols="10%,*,10%">
<FRAMESET rows="20%,*">
<FRAME src="promo.html" name="promo" title="promociones">
<FRAME src="barranavega.html" name="barranavega"
title="Barra de navegación global del sitio"
longdesc="frameset-desc.html#barranavega">
</FRAMESET>
<FRAME src="historia.html" name="noticia"
title="Noticia seleccionada - contenido principal"
longdesc="frameset-desc.html#noticia">
<FRAMESET rows="*,20%">
<FRAME src="titulares.html" name="indice"
title="Índice de otros titulares nacionales"
longdesc="frameset-desc.html#titulares">
<FRAME src="anuncio.html" name="espacioanuncio"
title="Publicidad">
</FRAMESET>
Por ejemplo, el texto contenido en la página frameset-desc.html puede ser el siguiente:
#barranavega - este frame contiene vínculos a las secciones
más importantes de este sitio: Noticias del mundo, Noticias
nacionales, Noticias locales, Noticias tecnología, y Noticias
del ocio.
#noticia - este frame contiene la historia actualmente
seleccionada.
#indice - este frame contiene vínculos a las noticias
principales de hoy dentro de esta sección.
Punto de Verificación: 12.3 Divida los bloques largos de información en grupos más
manejables cuando sea natural y apropiado. [Prioridad 2]
Prescripción Mapeo
Los diseñadores de diálogo de la aplicación Web, no deben crear Clases de Diálogo y
grupos de información de forma aleatoria, puesto que pueden Presentación -
confundir a los usuarios, por lo contrario, deberían utilizar mecanismos Componentes Vista y
de agrupación cuando sean apropiados y naturales, por ejemplo, Controlador:
cuando la información se dé en grupos lógicos, y proporcionar El agrupamiento de la
información de contexto y orientativa sobre la relación entre información incorpora
elementos. semántica a la aplicación
que les permite a los
usuarios entender su
propósito y al mismo
tiempo les facilita la
navegación con agentes
de usuario visuales y
agentes de usuario
basados en voz. Los
navegadores muestran de
5.1 Herramienta para asistir al diseño, desarrollo e implementación de arquitecturas de
software accesibles 63
forma destacada el título
de cada agrupación, de
forma que el usuario
pueda localizar más
fácilmente la información
deseada.
Ejemplo: en HTML [30]:
• El elemento FIELDSET (grupo de campos) permite agrupar temáticamente controles y
rótulos relacionados. El elemento LEGEND permite asignar un título a un FIELDSET.
<FORM action="..." meTHod="post">
<P>
<FIELDSET>
<LEGEND>Información Personal</LEGEND>
Apellido: <INPUT name="personal_apellido" type="text"
tabindex="1">
Nombre: <INPUT name="personal_nombre" type="text"
tabindex="2">
Dirección: <INPUT name="personal_dirección" type="text"
tabindex="3">
...más información personal...
</FIELDSET>
• El elemento OPTGROUP permite agrupar opciones relacionadas dentro de una lista
desplegable en grupos más pequeños. A través de su atributo “label” se puede indicar el
nombre de cada agrupación.
<FORM id="formulario" meTHod="post" action="">
<LABEL for="programa">Programa seleccionado</LABEL> <BR/>
<SELECT id="programa" name="programa">
<OPTGROUP label="Sistemas Operativos">
<OPTION value="Windows" selected="selected">Windows</
OPTION>
<OPTION value="Mac">Mac</ OPTION>
<OPTION value="Linux">Linux</ OPTION>
<OPTION value="OTHer">Otro</ OPTION>
</OPTGROUP>
• Los elementos THEAD, TBODY, TFOOT y COLGROUP permiten agrupar filas y
columnas de una tabla. Ver punto de verificación 5.2.
• Los elementos UL, OL y DL permiten anidar los ítems de las listas estructuralmente. Ver
punto de verificación 3.6
• Los elementos de encabezado (H1 - H6) permiten especificar la estructura lógica de los
documentos y separar tramos largos de texto. Ver punto de verificación 3.5.
Punto de Verificación: 12.4 Asocie explícitamente las etiquetas con sus controles.
[Prioridad 2]
Prescripción Mapeo
Ver punto de verificación 10.2 Ver punto de verificación
10.2
Ejemplo: Ver punto de verificación 10.2
objetivo del vínculo. El texto no debería ser demasiado general; ni Diálogo - Componentes
tampoco frases como “pinche aquí”, ya que no sólo es específica a un Vista y Controlador:
dispositivo (dispositivo de apuntamiento) sino que no indica nada Indicar claramente en el
acerca de lo que se encontrará si se sigue el vínculo. Si hay más de un título del vínculo es una
vínculo en una página con el mismo texto, todos estos vínculos deben incorporación semántica
remitir al mismo recurso. Si dos o más vínculos van referidos a significativa, sobre todo
objetivos diferentes pero comparten el mismo texto, se deberían para usuarios con
distinguir especificando un valor diferente para su título. dificultades cognitivas o
usuarios que no estén
familiarizados con el uso
de estas herramientas.
Esta información puede
ser determinante en la
navegación por la
aplicación Web, y la
determinación de las
acciones a realizar. Según
los eventos invocados por
el usuario, el Controlador
invocará los cambios en la
Vista de la Presentación.
Ejemplo: en HTML [30], tanto la etiqueta <A> como <LINK> disponen del “title” que permite
añadir información sobre la naturaleza de un vínculo. Ver punto de verificación 6.2 y 11.3
Punto de Verificación: 13.2 Proporcione metadatos para añadir información semántica a
las páginas y sitios. [Prioridad 2]
Prescripción Mapeo
Los desarrolladores de las aplicaciones Web deben utilizar metadatos Clases Presentación,
para añadir información semántica a las páginas y sitios. Los Diálogo y Pragmática -
metadatos de tipo descriptivos permiten a los usuarios descubrir Componentes Vista y
recursos (por ejemplo, búsqueda en la Web para encontrar colecciones Controlador:
digitalizadas sobre medio ambiente), los tipo estructurales facilitan la Los metadatos aportan
navegación, presentación de recursos electrónicos y proporcionan más información
información sobre la estructura interna de los recursos, incluyendo semántica para ser
página, sección, capítulo, numeración, índices, y tabla de contenidos; intercambiada entre el
por último los tipo administrativo facilitan la gestión y procesamiento usuario y la aplicación.
de las colecciones digitales tanto a corto como a largo plazo, incluyen Agentes de software tales
datos técnicos sobre la creación y el control de calidad; incluyen como sintetizadores de
gestión de derechos y requisitos de control de acceso y utilización. voz, dispositivos braile,
etc., pueden, a través de la
interpretación de la
metainformación
determinar el software,
hardware u otro
equipamiento necesario
para ejecutar u operar un
recurso, mejorar los
elementos de
presentación, por ejemplo
aplicando reglas de
pronunciación
dependientes del idioma
establecido, etc.
Ejemplo: en HTML [30] las maneras de incorporar metadatos a las páginas Web serían:
• A través del elemento <META>, incrustando los metadatos dentro del propio documento,
al mismo tiempo que este es creado. Generalmente embebidos y codificados en la cabecera
5.1 Herramienta para asistir al diseño, desarrollo e implementación de arquitecturas de
software accesibles 65
del documento.
<HEAD profile="http://www.acme.com/profiles/core">
<TITLE>Buscador Web</TITLE>
<META name="author" content="José Pérez">
<META name="copyright" content="© 1997 Acme Corp.">
<!-- Para hablantes de inglés británico -->
<META name="keywords" lang="en"
content="advanced, standart, instructions">
<!-- Para hablantes de español -->
<META name="keywords" lang="es"
content="avanzada, estandar, instrucciones">
<META name="date" content="1994-11-06T08:49:37+00:00">
</HEAD>
• A través de otros elementos y atributos más específicos, como por ejemplo los elementos
<TITLE>, <ADDRESS>, <INS> y <DEL>, los atributos “title” y “cite”. También
incorporados en el propio documento.
• A través del elemento LINK, asociándolos por medio de archivos acoplados a los recursos
a los que describen. De esta manera pueden ser cambiados los metadatos sin cambiar el
contenido del recurso en sí mismo, y persisten aunque el documento ya no esté “accesible”.
<LINK rel="DC.identifier" type="text/plain"
href="http://www.ietf.org/rfc/rfc1866.txt">
Punto de Verificación: 13.3 Proporcione información sobre la maquetación general de
un sitio (por ejemplo, mapa del sitio o tabla de contenidos). [Prioridad 2]
Prescripción Mapeo
Ofrecer una visión global de la organización o estructuración de la Clases de Presentación,
información del sitio Web, para que el usuario pueda localizar lo que Diálogo y Pragmática -
busca de la forma más fácil, clara e intuitiva posible, dejándole la Componentes Vista y
elección del modo de acceder, más cómodo y adecuado para los fines Controlador:
que persigue. Una posible implementación es un mapa del sitio Web o La información de la
una tabla de contenido con las principales secciones ya desde la página maquetación general del
principal, o en otra página adicional que esté fácilmente “accesible”, sitio provee al usuario un
titulándola Mapa de Navegación, alto contenido semántico
Otra manera es emplear las llamadas fish-eye views o mapas ojo de pez a través del cual puede
que muestran todo el espacio hipertextual en un único gráfico en conocer los contenidos o
distintos niveles de detalle, ofreciendo más información sobre la conceptos incluidos en la
posición actual en la que se encuentra el usuario y disminuyendo los aplicación y determinar la
detalles de forma gradual según estén más alejadas las partes. Otras forma de acceder a ellos
opciones son los mapas táctiles o mapas sensibles, como animaciones para localizar lo que
o applets de Java para que los gráficos cambien de color al situar el busca. Dependiendo de
cursor sobre ellos. las acciones realizadas
por el usuario, se realizará
el intercambio de
información con este, y el
Controlador será quien
actualice las vistas.
Ejemplo: ver punto de verificación 3.6 y pauta 5.
Punto de Verificación: 13.4 Utilice los mecanismos de navegación de forma coherente.
[Prioridad 2]
13.5 Proporcione barras de navegación para destacar y dar acceso al mecanismo de
navegación. [Prioridad 3]
Prescripción Mapeo
Los diseñadores deberán proveer un sistema de navegación que Clases de Presentación,
posibilite una navegación simple, intuitiva, consistente, transparente y Diálogo y Pragmática -
flexible. Un estilo de presentación coherente entre las páginas Componentes Vista y
66 Capítulo 5 - Arquitectura de Software para Aplicaciones Web Accesibles
ingrese la información
para que el Controlador
actualice las vistas de la
aplicación.
Ejemplo: en HTML [30] el elemento <LINK> es usado como conector de las partes de una
colección de documentos. Los siguientes son sus principales atributos:
• Href: uri: tipos de vínculo [CT]: especifica la localización de un recurso de la Web,
definiendo así un vínculo entre el elemento actual (el origen del vínculo) y el destino del
vínculo definido por este atributo.
• Rel: tipos de vínculo [CI]: describe la relación entre el documento actual y el destino del
vínculo, especificado por el atributo “href”.
• Rev: tipos de vínculo [CI]: describe un vínculo inverso desde el origen del vínculo,
especificado por el atributo “href”, y el documento actual.
Dentro de los tipos de vínculos que pueden utilizar los diseñadores para proporcionar acceso a los
documentos asociados se detallan:
• Alternate: Designa una versión alternativa del documento en que aparece el vínculo.
• Stylesheet: Se refiere a una hoja de estilo externa.
• Start: Se refiere al primer documento de un conjunto de documentos. Este tipo de vínculo
dice a los motores de búsqueda qué documento es considerado por el autor como el punto
de inicio de un conjunto.
• Next: Se refiere al siguiente documento en una secuencia lineal de documentos.
• Prev: Se refiere al documento anterior en una serie ordenada de documentos.
• Contents: Se refiere a un documento que sirve como tabla de contenidos.
• Index: Se refiere a un documento que proporciona un índice para el documento actual.
• Glossary: Se refiere a un documento que proporciona un glosario de términos que
pertenecen al documento actual.
• Copyright: Se refiere al aviso de copyright del documento actual.
• Chapter: Se refiere a un documento que actúa como capítulo en una colección de
documentos.
• Section: Se refiere a un documento que actúa como sección en una colección de
documentos.
• Subsection: Se refiere a un documento que actúa como subsección en una colección de
documentos.
• Appendix: Se refiere a un documento que actúa como apéndice en una colección de
documentos.
• Help: Se refiere a un documento que ofrece ayuda (más información, vínculos a otros
recursos informativos, etc.)
• Bookmark: Se refiere a una señal de lectura. Una señal de lectura (bookmark) es un vínculo
a un punto de entrada importante dentro de un documento extenso.
Comienzo del código <HEAD>
<LINK rel="index" href="index.html" />
<LINK rel="prev" href="doc1.html" />
<LINK rel="next" href="doc3.html" />
<LINK rel="copyright" href="copyright.html" />
<LINK rel="alternate" media="print" href="doc2-printer.html"
/>
<LINK rel="alternate" lang="en" href="doc-ingles.html" />
<LINK type="text/css" href="basic.css" media="screen" />
</HEAD>
Punto de Verificación: 13.10 Proporcione un medio para saltar sobre un dibujo ASCII
art de varias líneas. [Prioridad 3]
5.1 Herramienta para asistir al diseño, desarrollo e implementación de arquitecturas de
software accesibles 69
Prescripción Mapeo
Si los diseñadores deciden incorporar como objetos de presentación en Clases de Presentación,
sus aplicaciones Web, gráficos ASCII art, estas deberán proveer de un Diálogo y Pragmática -
“ancla” o enlace para poder ser saltados, y en caso que los dibujos Componentes Vista y
proporcionen información que enriquezca el contenido, se deberá Controlador:
agregar también un equivalente textual. Incorporar un medio para
saltar dibujos ASCII art,
proveerá de un orden de
lectura principal y otro
alternativo, en caso de
que el usuario “salte” al
navegar el gráfico.
Ejemplo: en HTML [30] mediante el elemento <A> se podrá crear un vínculo para saltar el dibujo
ASCII ART.
<A href="#salto">Saltar ASCII art</A>
,,
___( )___
/ \
/\/\/\||/\/\/\
^^
<A name="salto">Continua texto después del dibujo.</A>
Ejemplo:
Punto de Verificación: 14.2 Complemente el texto con presentaciones gráficas o
auditivas cuando ello facilite la comprensión de la página. [Prioridad 3]
Prescripción Mapeo
Dependiendo del tipo de contenido de la aplicación Web, cierta Clases de Diálogo,
información es conveniente presentarla acompañada de gráficos o Presentación y Pragmática
sonidos que complementen el concepto. Información sobre procesos o - Componentes Vista y
procedimientos puede ser mejor interpretada y comprendida cuando es Controlador
explicada a través de animaciones, gráficos e infografías, una
traducción del texto puede ser acompañada con una presentación
animada en lenguaje de señas, o sonidos pre-grabados de música,
discursos hablados o efectos sonoros serían los indicados para el texto
de una presentación.
Ejemplo: Ver punto de verificación 1.3
Punto de Verificación: 14.3 Cree un estilo de presentación que sea coherente en todas las
páginas. [Prioridad 3]
Prescripción Mapeo
El estilo de presentación de la aplicación Web tiene una relación Clase Presentación -
directa con el aspecto visual de la misma. Es importante mantener una Componente Vista.
coherencia y estilo común entre todas las páginas de la aplicación Web
(posición de cada elemento, uso del tamaño y espacio ocupado,
utilización del contraste de color para discriminar y distribuir
información, uso de efectos tipográficos para enfatizar contenidos,
rotura de la simetría y uso de efectos de relieve / profundidad para
resaltar elementos, etc.) proporcionando una consistencia visual a toda
la aplicación. Para asegurar que esta coherencia se cumple, es útil que
el diseñador gráfico elabore un libro o guía de estilo que sirva de
documento referencia para todo el equipo de desarrollo. La utilización
de un número mínimo de hojas de estilo en el sitio, hojas de estilo
vinculadas en vez de estilos incrustados u hojas de estilo incrustadas,
también contribuirán a la coherencia visual de la aplicación.
Ejemplo: Ver pauta 2 y pauta 3
Capítulo 6
Caso de Estudio
A los efectos de poder llevar adelante una discusión sobre las ventajas de nuestro enfoque
(desarrollado en el Capítulo 5), mostramos en este Capítulo la instrumentación del Mapeo
como herramienta principal para asistir al diseño y desarrollo de la interfaz de usuario de una
aplicación Web (caso de estudio). El objetivo es obtener una interfaz que cumpla con las
características de Accesibilidad planteadas para dicho caso de estudio.
16 La Plataforma .NET [20] es la primera implementación que Microsoft hace de los estándares
necesarios para el desarrollo en múltiples capas: los webServices y el protocolo SOAP a los que se
añaden la experiencia de años en el estándar XML y potenciado por una ingente librería de clases
(llamada .NET FrameWork).
6.1 Implementación del enfoque propuesto en Aplicación Web GIE. 73
Pauta 3: Utilice 3.3 Utilice hojas de estilo para controlar la Clase: Presentación
marcadores y maquetación y la presentación. Componentes: Vista y
hojas de estilo y Controlador
hágalo
apropiadamente
Pauta 3 3.4 Utilice unidades relativas en lugar de absolutas al Clase: Presentación
especificar los valores en los atributos de los Componente: Vista
marcadores de lenguaje y en los valores de las
propiedades de las hojas de estilo.
Pauta 4: 4.1 Identifique claramente los cambios en el idioma Clase Presentación
Identifique el del texto del documento y en cualquier texto Componente Vista
idioma usado. Use equivalente (Por ejemplo, leyendas).
marcadores que
faciliten la
pronunciación o
interpretación de
texto abreviado o
extranjero
Pauta 4 4.3 Identifique el idioma principal de un documento. Clase Presentación
Componente Vista
Pauta 6: 6.1 Organice el documento de forma que pueda ser Clase: Presentación
Asegúrese de que leído sin hoja de estilo. Por ejemplo, cuando un Componentes: Vista y
las páginas que documento HTML es interpretado sin asociarlo a una Controlador
incorporan nuevas hoja de estilo, tiene que ser posible leerlo.
tecnologías se
transformen
correctamente
Pauta 10: Utilice 10.2 Hasta que las aplicaciones de usuario soporten Clases: Presentación
soluciones explícitamente la asociación entre control de Componente: Vista
provisionales. formulario y etiqueta, para todos los controles de
formularios con etiquetas asociadas implícitamente,
asegúrese de que la etiqueta está colocada
adecuadamente.
Pauta 10 10.4 Hasta que las aplicaciones de usuario manejen Clases: Presentación
correctamente los controles vacíos, incluya caracteres Componente: Vista
por defecto en los cuadros de edición y áreas de texto.
Pauta 11: Utilice 11.3 Proporcione la información de modo que los Clases: Presentación ,
las tecnologías y usuarios puedan recibir los documentos según sus Diálogo y Pragmática-
pautas W3C preferencias (Por ejemplo, idioma, tipo de contenido, Componentes: Vista y
etc.) Controlador
Pauta 12: 12.4 Asocie explícitamente las etiquetas con sus Clases: Presentación
Proporcione controles. Componente: Vista
información de
contexto y
orientación
6.1 Implementación del enfoque propuesto en Aplicación Web GIE. 75
Para comenzar con nuestro diseño, utilizamos el patrón MVC [5], que nos permite separar el
modelo de las clases Vista y Controlador. Por sus características (detalladas en el Capítulo 3),
este patrón fue el seleccionado para direccionar arquitecturalmente la toma de las decisiones
de diseños en cumplimiento de cada una de las recomendaciones de la Tabla 6.1.
Para cumplimentar con los puntos de verificación 4.1 y 4.3 y dado que los países que
actualmente utilizan la aplicación GIE son Argentina y Brasil, consideramos necesario un
diagrama de clases que modelara la internacionalización de los textos asociados a las
etiquetas de la interfaz de usuario, lo que nos condujo a clasificarlos en dos subclases
diferentes: TextoCastellano y TextoPortugués. Así mismo, entendimos que un gran aporte
semántico para el programador era especializar la clase Vista en las clases
VistaExploradorPortugués y VistaExploradorCastellano, una por cada idioma en el que la
aplicación estará disponible, y la incorporación del patrón Abstrac Factory17 para la creación
de las mismas. El diseño obtenido permite que la aplicación sea compatible con el idioma de
preferencia del usuario, especificado por ejemplo, en el programa cliente, Internet Explorer
en este caso. La subclasificación en el modelo de la clase Vista, sin lugar a dudas aporta a la
flexibilidad, claridad y facilidad para incorporar ágilmente en futuros prototipos de la
aplicación, una nueva subclase de Vista, por cada agente de usuario que se utilice al acceder a
la aplicación, dada la característica inter-organizacional distribuida que tiene la compañía.
Así mismo, para cumplir con los puntos de verificación 6.1 y 3.3 se adicionaron al diagrama
las clases EstiloPermitidoEnHoja, Color, EstiloFuente, EstiloTexto, y Posicionamiento, junto
a los atributos necesarios que permiten definir las características visuales o de “estética” de
los elementos de la interfaz de usuario, como por ejemplo las etiquetas. Específicamente en
relación al punto de verificación 6.1, se decidió realizar una especificación entre las clases
EstiloPermitidoEnHoja, Posicionamiento y la asociación entre esta última y la clase Vista, de
manera de incorporar las restricciones necesarias a nivel de diseño. En este caso particular,
que el posicionamiento de los elementos de la interfaz no se pueda definir en la hoja de estilo,
logrando que los objetos de interacción queden distribuidos de igual forma que en el
documento fuente y que la aplicación cumpla con los estilos mínimos y necesarios para
funcionar de manera “accesible”, sin hoja de estilo. Para el punto de verificación 3.3, la
incorporación de la clase HojaEstilo y las posibles asociaciones a instanciar con las clases
Color, EstiloFuente y EstiloTexto, especificaciones de la clase EstiloPermitidoEnHoja, hacen
que la aplicación sea “accesible” utilizando una o varias hojas de estilo, permitiéndole a los
programadores y usuarios gozar de sus beneficios.
La definición como tipo de dato decimal, de los atributos de las clases Color, y la de tipo de
dato em o decimal de los atributos de las clases EstiloFuente y Posicionamiento, nos permitió
incorporar a nivel de diseño, la restricción asociada a las unidades de medidas utilizadas en
los valores de estas propiedades, limitando a que se correspondan únicamente con medidas
relativas, cumpliendo así el punto de verificación 3.4.
La agrupación explícita de los campos de texto (texts fields) que están lógicamente
relacionados, en la clase GrupoTextField a través de la relación todo-partes, y su asociación
con la etiqueta de texto (text label) de la clase Etiqueta que comparten, permitirá al cliente
17
Abstract Factory (Fábrica Abstracta) es un patrón de diseño para el desarrollo de software. El
problema que intenta solucionar este patrón es el de crear diferentes familias de objetos, permitiendo
trabajar con estos de manera que las familias no se mezclen entre sí y haciendo transparente el tipo de
familia concreta que se esté usando.
6.1 Implementación del enfoque propuesto en Aplicación Web GIE. 77
Internet Explorer: (i) interpretar la relación entre el control y su etiqueta, (ii) identificar el
tipo de elemento de formulario que está seleccionado en ese momento y (iii) proporcionar los
medios para completar, seleccionar, des-seleccionar o presentar estos elementos de
formulario, cumpliendo con las pautas de Accesibilidad establecidas por los puntos de
verificación 10.2 y 12.4. Así mismo, que cada objeto de la clase TextField se encuentre
asociado sí o sí a un elemento de la clase Etiqueta, define por modelo que los campos de texto
vacíos de la interfaz, siempre contengan valores iniciales, cumpliendo entonces la pauta 10.4
de la guía.
FIGURA 6.2: Cuadro de Diálogo New Project (Visual Web Developer 2008) para la Creación de Proyecto Web
GIE
78 Capítulo 6 - Caso de Estudio
5. Dentro del directorio /Views encontramos un directorio Shared, que tal como muestra
la Figura 6.7, contiene un archivo de Master Pages: Site.Master. Este archivo es la
plantilla HTML que nuestra aplicación GIE va a utilizar. La naturaleza de este
archivo es proveer de una interfaz unificada en toda la aplicación. Esta plantilla
global cuenta con dos secciones que funcionan como contenedor, y serán llenadas con
el HTML generado por las vistas de GIE.
Dentro del archivo Site.Master incluimos inline, la definición de estilos singulares, que
instancian con la clase Posicionamiento y definen parte de la apariencia del título y
cuerpo de las vistas. Así mismo mediante un link enlazamos el archivo externo Site.css.
6. Dentro del directorio /Views creamos el directorio Formgi, que una vez mas, obedece
a la convención de nombres sobre la cual funciona el framework. En este directorio
creamos el archivo Formgi.aspx cuyo nombre corresponden a las acciones del
Controlador FormgiController.vb. La extensión aspx del archivo, indica que es un
archivo ASP.NET, pero en realidad es una plantilla MVC.
FIGURA 6.9: Código HTML generado correspondiente al procesamiento del archivo Formgi.aspx para el
Proyecto Web GIE
6.2 Resumen
En este Capítulo hemos detallado como a partir de los requerimientos funcionales
propios de la empresa “Petróleo SA” y del conjunto de especificaciones no-
funcionales de Accesibilidad que se requirieron anexar, utilizamos el Mapeo de
recomendaciones de Accesibilidad de la WCAG 1.0 [34] en clases de decisión del
framework del Larson [17] (desarrollado en el Capítulo 4) para asistirnos
arquitecturalmente en el direccionamiento de los requerimientos de Accesibilidad en
un Modelo de Objetos Reusables. Este Modelo de Objetos tiene las propiedades de
fácil mantenimiento, integración, extensión y modularidad, permitiendo con
posterioridad utilizar con facilidad el Framework.Net como framework tecnológico de
implantación, disminuyendo los defectos, tiempos y costos incurridos en el proceso de
desarrollo actual y en el de los futuros prototipos a ser implementados.
Capítulo 7
Trabajos relacionados
Existe numerosa literatura en el campo de la Accesibilidad Web. Sin embargo es muy escasa
la evidencia hallada sobre la existencia de enfoques que planteen el tema de la Accesibilidad
Web desde una perspectiva arquitectural. En esta Sección nosotros nos remitiremos a
presentar dos trabajos [12] [4] que guardan relación con nuestra propuesta, ya que enfocan su
atención en el diseño de interfaces de usuario “accesibles” señalando como desde una visión
arquitectural y en etapas tempranas del ciclo de vida se puede asistir a concretar dicho diseño.
Los usuarios visuales pueden asociar la información por contexto con una simple exploración
con sus ojos, sin quitar el foco de los campos del formulario, pero los usuarios con lectores de
pantalla deben elegir entre una vista textual que permite la lectura de todo el contenido en
forma lineal y una vista de manipulación de campos que permite la manipulación de todos los
campos de datos de entrada.
FIGURA 7.3: Ejemplo de señalización efectiva en la barra de título: (A) la barra de título muestra un error de
información, (B) la barra de título muestra resultados de búsqueda [12].
comportamiento de las aplicaciones para manejar eventos). Por ejemplo Microsoft WIN32
API (disponible en Windows XP) define una plataforma, mientras que Hypertext Markup
Labguage (HTML), Cascading Style Sheets (CSS) y JavaScript definen otras plataformas.
Las plataformas “accesibles” deben proporcionar la manera de que las aplicaciones exporten
información correspondiente a sus interfaces de usuario visuales para los productos de
tecnología asistiva (AT), como así también para que los dispositivos de productos de AT
observen el cambio de estado de los componentes de la interfaz de usuario. Adicionalmente
deben proveer un dispositivo de acceso independiente a las aplicaciones.
Soporte para Desarrolladores. Los desarrolladores pueden a menudo pasar por alto detalles
que deben ser y pueden ser fácilmente direccionados, para lograr Accesibilidad en las
aplicaciones. El resultado es la necesidad de soporte para asistir al desarrollador en crear una
solución “accesible”. Específicamente los desarrolladores necesitan guías, controles
“accesibles” reusables y herramientas de autor con ejemplos de código. Particularmente, los
desarrolladores Web necesitan herramientas para crear HTML accesible y otros contenidos
Web. Por ejemplo el grupo de trabajo conocido cómo Web Accesibility Initiative (WAI) [33]
el World Wide Web Consortium’s (W3C) [33] ha desarrollado un conjunto de
recomendaciones denominadas Authoring Tools Accessibility Guidelines (ATAG) [33], que
definen que debe hacer una herramienta de creación de contenido Web para promover la
creación de contenido Web “accesible”.
7.2 Propuesta de Brunet et al. 89
Otros dos aspectos en los hace fuerte hincapié este trabajo a los efectos de obtener una
aplicación “accesible” son: (i) la necesidad de poder acceder a información semántica y, (ii)
los requerimientos de Accesibilidad para los componentes de una solución “accesible”. A
continuación se describen estos dos aspectos proveyendo una síntesis del detalle original
provisto por el trabajo [4].
Necesidad de Acceder a Información Semántica. Desde este aspecto, los autores definen en
primer lugar el término “información semántica” como la información subyacente en una
aplicación, en contraposición a lo que se presenta de dicha información. Por ejemplo,
consideremos una interfaz de usuario de una aplicación que presenta una imagen de un
grafico de barras. En esta imagen no hay información acerca del significado de las barras del
gráfico y sus valores, la imagen es solo un arreglo de pixeles. Por lo tanto es esencial
mantener la “información semántica”, separada de la representación visual para hacer la
“información semántica accesible” a través de interfaces de programación. Capturar la
“información semántica” puede ser fácil cuando es utilizada únicamente la tecnología de
carácter I/O. El carácter I/O consiste en contenido de texto plano, normalmente limitado en su
extensión (como una red de 80x25). Un ejemplo de carácter I/O son las interfaces en línea de
comandos provisto por muchos sistemas operativos. Si la aplicación consiste únicamente de
indicadores y respuestas, toda la “información semántica” de la interfaz es codificada en
cadenas de texto. Los AT no necesitan realizar interpretaciones adicionales de la información,
las cadenas de caracteres pueden ser presentadas en interfaces físicas alternativas tales como
dispositivos Braile. En contraposición, las interfaces de usuario que explotan paradigmas
gráficos no son tan fáciles de tratar. El medio grafico de las interfaces consiste de una red de
pixeles (comúnmente mas grande de 1024x768) sobre las que el contenido es dibujado. El
contenido es entramado en una red pequeña de pixeles, pero otro contenido, como las
imágenes, es directamente dibujado. En este caso, los AT deben capturar la información
dibujada en la pantalla e intentar realizar ingeniería reversa de texto-semántica, si dicha
facilidad está disponible. Por lo tanto, el AT deberá presentar este contenido de una forma
aceptable para el usuario, independientemente de las habilidades de este. Esto implica una
mayor carga para el desarrollador de la aplicación, al tener que proveer la “información
semántica” adicional al contenido y presentación, para que este disponible a través de
interfaces de programación.
Por esta razón, nosotros además concentramos nuestros esfuerzos en mapear cada una de las
pautas correspondientes a la WCAG 1.0 [34] a las clases de decisión de diseño propuestas por
el framework de Larson y a los componentes del patrón MVC [5], preservando la filosofía
inherente a cada punto de verificación de las pautas de la WCAG 1.0 [34].
De esta manera al aplicar el patrón MVC, se logra: (i) abstraer e identificar los aspectos
claves para una estructura de diseño accesible de base, (ii) crear un diseño orientado a objetos
reutilizable, (iii) acortar los esfuerzos de diseño, desarrollo y mantenimiento y, (iv) alcanzar
los niveles de Accesibilidad deseados.
Es importante destacar que estas ventajas de nuestro enfoque no han quedado sólo en prédica,
sino que hemos aplicado el Mapeo como instrumento y herramienta principal para asistir al
diseño y desarrollo de la interfaz de usuario de una aplicación Web específica. Como caso de
estudio seleccionamos la aplicación Web GIE (Gestor de Incidentes y Emisiones), de la
compañía “El Petroleo SA”. Compañía que por las características de los usuarios de sus
aplicaciones: (i) edades, características físicas, cognitivas y de habla diferentes, (ii) gran
distribución geográfica (iii) condiciones tecnológicas, de conectividad y de variedad de
dispositivos (notebooks, PDAs, celulares etc.), consideramos el escenario ideal donde nuestro
enfoque podía contribuir de manera notable al principio de Accesibilidad y a través de este
factor de calidad, a la calidad de su aplicación Web GIE.
Una vez implementada la aplicación GIE, pudimos observar y evaluar a partir de su código
HTML generado, cómo utilizando nuestro enfoque, obtuvimos los niveles de Accesibilidad
deseados sobre los elementos de la interfaz de usuario tales como etiquetas (labels), cuadros
de textos (text fields), y otros aspectos que hacen a la Accesibilidad de una aplicación Web,
como por ejemplo el uso de hojas de estilo, el idioma de la aplicación, etc.
Cuando nos propusimos el objetivo de esta tesis y luego de familiarizarnos con el área de la
Accesibilidad Web, investigamos profundamente sobre la existencia de trabajos o enfoques
que plantearan el tema de la Accesibilidad Web desde una perspectiva arquitectural. Dentro
de la escasa evidencia hallada, encontramos algunas guías que los desarrolladores pueden usar
para introducir la relación Accesibilidad-Arquitectura de Software, como la propuesta de
Hoffman et al. [12] presentada en la Sección 7.1. Este trabajo si bien valioso, es ciertamente
incompleto, si lo evaluamos a luz de nuestra propuesta que ofrece un universo más amplio
para tratar problemas de Accesibilidad con un nivel de detalle técnico y de abstracción mayor
en las soluciones resultantes al propiciar el uso de múltiples vistas.
En este punto es importante destacar de que somos concientes, que nuestro enfoque estudia un
aspecto de la ecuación que lleva al diseño de aplicaciones Web “accesibles” dando respuesta
a ¿cuán accesible es el contenido en una aplicación Web?. Trabajos como el propuesto por
Brunet et al. [4] presentado en la Sección 7.2, abordan la discusión contemplando los otros
dos aspectos de la ecuación: la Accesibilidad de los navegadores y la Accesibilidad de las
herramientas para la creación de sitios respectivamente. Si bien este último trabajo enmarca
94 Capítulo 8 -Conclusiones y Trabajos Futuros
Tal como señalamos en secciones anteriores, nuestro enfoque se fundamenta en las pautas de
Accesibilidad de la WCAG 1.0 [34] que es la normativa referente desde 1999 a nivel mundial.
Sin embargo, la WAI-W3C [33] ha seguido trabajando en el perfeccionamiento de pautas de
8.1 Resultados del Mapeo 95
Accesibilidad hasta proponer recientemente una nueva versión de la WCAG 2.0 [35] como
una alternativa a la WCAG 1.0 [34]. Este trabajo permanente es la respuesta apropiada a las
características de evolución inherente a los sistemas de información que tienen la Web como
plataforma de despliegue. Nuestro Mapeo debe también poder acompañar estos nuevos
requerimientos para seguir soportando con eficiencia la normativa dictada por futuras
versiones de la WAI-W3C.
[6] Bustos, B. V., Martín A. E., Cechich A. S.: Extendiendo MVC para Diseñar Interfaces de
Usuario Accesibles, CACIC 2008, La Rioja - Argentina, 2008.
[7] Consejería de Trabajo, Consumo y Política Social Secretaría Sectorial de Acción Social
Dirección General de Familia y Servicios Sectoriales: Diseño de páginas web accesibles,
Región de Murcia, ISBN 84-87926-36-3, 2003.
[8] Fundación SIDAR, Seminario SIDAR: Principios del Diseño Universal o Diseño para
Todos. Disponible en http://www.sidar.org/recur/desdi/usable/dudt.php
[10] Galloni Balmaceda, M.: Diseño universal vs. Accesibilidad integral - ¿Utopía o
realidad?, 2005. Disponible en http://www.accesible.com.ar/recursos/diversidad/un-poco-de-
historia-sobre-la-Accesibilidad/
[11] Gamma, E. Helm, R. Johnson, R. Vlissides, J.: Design Patterns: Elements of Reusable
Object-Oriented Software, Addison-Wesley, 1995.
[12] Hoffman, D. Grivel, E.Battle, L.: Designing software architectures to facilitate accessible
Web Applications, IBM Systems Journal, vol. 44, pp. 467 – 483, ISSN:0018-8670, 2005.
[13] IEEE 1471-2000, IEEE Recommended Practice for Architectural Description for
Software-Intensive Systems, Institute of Electrical and Electronics Engineers, ISBN: 0-7381-
2518-0, 2000.
[17] Larson, J. Interactive Software: Tools for Building Interactive User Interfaces. Yourdon
Press Computing Series, Prentice Hall, ISBN: 0-13-924044-6, 1992.
[20] Microsoft Corporation: Microsoft Visual Studio 2008/.NET Framework 3.5, 2007.
Disponible en: http://msdn.microsoft.com/es-es/library/ms178093.aspx
[21] Montero, Y. Fernández, F.: Qué es la Accesibilidad Web, No Solo Usabilidad journal,
Nº 2, ISSN: 1886-8592, 2003. Disponible en:
http://www.nosolousabilidad.com/articulos/accesibilidad.htm
[22] Morant, T. P.: The command language grammar: a representation for the user interface
of interactive systems en International Journal of manmachine studies, vol. 15, 1981.
[23] Nielsen, J.: Usability Engineering. Academic Press Professional: Chestnut Hill,
Massachusetts, 1993.
[25] Shawn Lawton, H.: Understanding Web Accessibility, en Constructing Accessible Web
Sites, Glasshaus, ISBN: 1904151000, Abril 2002. Disponible en:
http://www.macromedia.com/macromedia/accessibility/pub/acc_sites_chap01.pdf
[27] Vanderheiden, G.: Fundamental Principles and Priority Setting for Universal Usability,
en: Proceedings of Conference on Universal Usability (CUU) 2000, Association for
Computing Machinery, pp32-38. Disponible en:
http://trace.wisc.edu/docs/fundamental_princ_and_priority_acmcuu2000/
[28] W3C Recomendación Cascading Style Sheets, level 1, 1996, revisado 2008. Disponible
en http://www.w3.org/TR/REC-CSS1.
[29] W3C Recomendación Cascading Style Sheets Level 2 Revision 1 (CSS 2.1)
Specification, 2009. Disponible en http://www.w3.org/TR/REC-CSS2
[30] W3C Recomendación HTML 4.01 Recommendation, 1999. Disponible en
http://www.w3.org/TR/1999/REC-html401-19991224/.
[31] Ion, P. Miner, R.: W3C Recomendación Mathematical Markup Language (MathML™)
1.01 Specification, 1999. Disponible en http://www.w3.org/TR/REC-MathML.
[32] W3C Web Accessibility Initiative (WAI): Auxiliary Benefits of Accesible Web Design.
http://www.w3.org/WAI/bcase/benefits.hml
[34] WCAG 1.0 Web Content Accessibility Guidelines 1.0. World Wide Web Consortium
(W3C) Recommendations, 1999. Disponible en http://www.w3.org/TR/WAI-
WEBCONTENT/
[35] WCAG 2.0 Web Content Accessibility Guidelines (WCAG) 2.0, World Wide Web
Consortium (W3C) Recommendations, 2008. Disponible en:
http://www.w3.org/TR/WCAG20/.