Funcionamiento de la aplicación
A partir del documento HMTL y los archivos asociados de la página Web objetivo, se obtienen un documento HTML accesible y los archivos CSS modificados correctamente. Además se crearán archivos CSS donde los colores contrasten correctamente manteniendo el máximo parecido con el original. De esta forma permitimos que la página Web se pueda visitar con el estilo original o con un estilo de alto contraste.
Figura 1: Esquema de funcionamiento de ACTAW
Como hemos comentado, el análisis de un documento no sólo depende de la gramática definida por el W3C, así que el intento de analizar un documento basándose en esta gramática sea infructuoso, ya que no se podrían analizar un gran número de páginas Web. Por ello se debe buscar algún elemento que sí sea común en todas las páginas Web y que nos permita analizarlas. En este caso podemos utilizar las etiquetas y atributos definidos. Estos elementos deben aparecer ya que son los encargados de ofrecer la información al usuario. Aunque existen atributos y etiquetas definidas fuera de la gramática, estos son la minoría y su uso puede solucionarse con cierta facilidad. En cambio la incorrecta estructuración de los diferentes elementos de un documento HMTL y los errores de implementación relacionados con la estructura hacen la implementación de un analizador realmente compleja.
Así pues ACTAW implementa un analizador de HTML sin basarse en la estructura de la gramática. Se implementa basándose en las etiquetas existentes y sus atributos. De esta forma podemos crear un árbol con el contenido del documento HTML. Cada nodo corresponderá a una etiqueta con sus atributos, sin importar si se encuentra en el lugar adecuado o si esta definido de manera incorrecta. En el siguiente código podemos ver un ejemplo.
<HTML>
<BODY>
<B>Hello<U> World<I> !!!</H1></U>
This text is also in italic type.
</BODY>
</HTML>
Este código generaría un árbol como el que se muestra en la figura 2. Al reconstruir el documento la aplicación se encarga de generar un documento correcto como se muestra a continuación de la figura.
Figura 2: árbol creado por el ejemplo anterior.
<HTML>
<BODY>
<B>Hello<U> World<I> !!!</I></U>
<I>This text is also in italic type.</I></B>
</BODY>
</HTML>
En el caso de encontrar una etiqueta no definida en el estándar no podemos tratarla para adaptarla a la normativa, ya que no existirán recomendaciones para ella, pero no podemos eliminarla, ya que con ella eliminaríamos información para el usuario final. En este caso se trata la etiqueta, o atributo, como desconocido añadiéndolo al conjunto de etiquetas conocidas mientras se ejecuta la aplicación. Esto nos permite tratar el resto de apariciones de este elemento desconocido como un elemento conocido pero que no se debe tratar posteriormente.
Como hemos visto podemos ser totalmente independientes de la corrección del documento que estamos tratando. Esto nos permite ampliar el campo de acción de la aplicación de manera notable y este es uno de los puntos fuertes de esta aplicación. El analizador de documentos HTML es capaz de tratar documentos aunque estos no cumplan la gramática o sean incorrectos. Si tenemos en cuenta el número de páginas incorrectas este atributo implica poder tratar y corregir un gran abaúnico de posibilidades.
Así mismo, para mejorar el código resultante se reemplazan situaciones que no son incorrectas pero sí que no están recomendadas. Para ello se unifican los criterios para especificar colores, pasando todas las definiciones a un formato hexadecimal en lugar de decimal o del nombre del color. Así mismo se sustituyen una gran cantidad de caracteres especiales por su equivalente HTML. De esta manera se podrán ver correctamente en cualquier navegador. Un ejemplo sería el carácter ‘ñ’ que se sustituiría por el identificador “ñ”.
El caso del análisis de estilos en cascada es análogo al caso del HTML. Se analiza un documento CSS sin ningún elemento definido, más allá de la estructura básica de definición de un estilo. Toda la información se almacena de manera independiente, es decir, las definiciones múltiples se dividen en definiciones simples. Esto nos permite, al aplicar la normativa WAI, modificar diferentes elementos que en un inicio eran iguales de manera totalmente independiente pudiendo adaptar la solución a cada caso concreto.
Aplicación de la normativa: Soluciones propuestas
Para cada pauta propuesta por WCAG se han analizado los diferentes casos posibles y se han aplicado las técnicas recomendadas. Cabe decir, que la normativa WAI está destinada a desarrolladores de sitios Web que conocen el significado semántico del contenido del documento HTML. Es decir, aquellas personas que son capaces de ofrecer información no descrita mediante etiquetas HTML, como el significado de una imagen. Este hecho hace que la aplicación de normas sea una tarea dura y realmente complicada. Algunas de las pautas no se pueden implementar a posteriori sin un conocimiento del contenido de la página y su significado. Para obtener esta información es necesario un estudio semántico del contenido de la página, con el coste temporal que esto significa. Actualmente se está trabajando en posibles soluciones, que en un futuro, pueden aportar mejoras a la aplicación, y a la accesibilidad Web en general.
Pasamos a comentar algunas de las soluciones propuestas a algunas de las pautass. Comentar la totalidad de propuestas y pautas puede ser excesivamente largo y tedioso por lo que se comentan aquellas que pueden ser de mayor interés.
PAUTA 1: Proporcione alternativas equivalentes al contenido visual y auditivo.
Los elementos susceptibles a esta pauta son las imágenes, mapas de imagen y objetos incrustados. Para ellos se proveen textos alternativos con toda la información que se puede obtener del código HTML. En estos textos alternativos se indica si se utilizan como enlaces, si no existe la referencia o el tipo de elemento del que se trata. De esta manera podemos diferenciar una imagen utilizada como enlace de una que no tenga otra función.
Así mismo se describen textos alternativos para páginas organizadas mediante marcos. En estos textos se indican el número de filas y columnas así como la posición que ocupan. También se añade información para aquellos navegadores que no soporten la navegación mediante marcos.
PAUTA 2: No se base sólo en el color.
Se comprueban los colores definidos dentro de las hojas de estilo de la página Web. En caso que los colores no consigan superar el umbral marcado por el W3C para el contraste de colores, se creará un nuevo documento CSS con los colores que contrasten correctamente. El algoritmo aplicado intenta conseguir la máxima similitud entre el documento original y el estandarizado, ya que la combinación de colores puede proporcionar información. El resultado del CSS no contendrá toda la información posible, pero sí permitirá acceder a ella.
PAUTA 3: Utilice marcadores y hojas de estilo, y hágalo apropiadamente.
Para esta pauta las etiquetas que marcan efectos visuales se sustituyen por las equivalentes que marcan énfasis, por ejemplo. Se añaden pistas contextuales para poder seguir correctamente una lista, ya sea anidada o no, correctamente.
La aplicación no puede detectar texto incluido en imágenes, por lo que este texto no estará disponible para navegadores de voz. Así mismo la coherencia de los encabezados, y el correcto uso de las etiquetas que los marcan, recae sobre el creador del documento, ya que no se puede saber si realmente se marca el inicio de una sección, y si esta es de mayor o menor importancia que la anterior.
PAUTA 4: Identifique el idioma original usado.
Dado que la única fuente de información de la que disponemos es el código HTML se busca dentro de los metadatos el idioma utilizado para poder indicarlo. Actualmente, se está trabajando en un sistema de detección de idiomas que sea ágil y rápido. Además, este sistema, podrá decidir el idioma, en caso de duda, con la ayuda de otros datos como la temática del sitio Web.PAUTA 5: Cree tablas que se transformen correctamente.
Se ofrece toda la información posible de la tabla como puede ser su tamaño dentro de la ventana o el número de filas y columnas. También se agrupan las columnas según sus cabeceras, si disponen de ellas. Por otro lado no se realizan acciones específicas para la correcta alineación de la tabla, ya que no podemos obtener información sobre el contenido de la tabla, lo que podría confundir al usuario. Actualmente, se esta buscando un algoritmo eficaz para este problema y, así poder ofrecer un sistema de orientación completo al usuario.
PAUTA 6: Asegure que las páginas que incorporan nuevas tecnologías se transformen correctamente.
Para las acciones dependientes de dispositivos concretos se proveen de equivalentes para teclado y ratón. Aunque para los elementos creados mediante JavaScript no se puede ofrecer ningún tipo de solución, ya que no se dispone de una analizador de este tipo de código y por lo tanto no podemos modificarlo correctamente.
Las páginas creadas con marcos ya han sido comentadas, pero existe una situación altamente inaccesible, el caso que uno de los marcos sea una imagen. En esta situación se sustituirá la imagen por un documento HTML que la contenga junto con toda la información posible. De esta manera permitimos que el usuario pueda obtener información sobre la imagen que anteriormente no estaría disponible.
PAUTA 7: Asegure al usuario el control sobre los cambios de los contenidos tempo-dependientes.
Las imágenes animadas y los elementos incrustados no se pueden detener sin perder información. Así pues, este tipo de contenido debe ser creado con especial cuidado para no incumplir la normativa.
Por otro lado, la aplicación sustituye el movimiento y destello de un texto si éste ha sido creado por medio de HTML. Este cambio se realiza mediante técnicas CSS y HTML equivalentes pero que pueden ser desactivadas desde el navegador por parte del usuario. Así mismo, se han eliminado las redirecciones automáticas y los refrescos de página. De esta forma evitamos que el usuario final pierda el control de las páginas visitadas y el contenido de estas.
PAUTA 10: Utilice soluciones provisionales.
Dentro de esta pauta encontramos situaciones como el hecho de abrir una nueva ventana mediante un enlace. Esta acción puede provocar que el usuario quede confuso ya que aparece una nueva ventana del navegador sin previo aviso. La eliminación de enlaces que muestren información en nuevas ventanas puede hacer que se pierda información, por ejemplo en caso de desear volver a la información contenida en la página Web anterior y que ésta dependiese de una sesión de usuario. Ante esta situación se ha decidido informar en todos los enlaces si se abre en una ventana nueva y no eliminarlos. De esta manera el usuario conoce de antemano la apertura de una nueva ventana y puede tratarla como una más y orientase correctamente.
Por otro lado, se pide que se agrupen aquellos enlaces con relación lógica, o la inclusión de etiquetas a los controles. Nos encontramos con el problema de no poder analizar las relaciones entre el texto de los diferentes enlaces, o la relación entre un texto y un control específico, por lo que no se puede ofrecer una solución satisfactoria.
Por último, se ofrece una ayuda a personas con discapacidad cognitiva para su correcta navegación por un formulario. Se rellenan aquellos cuadros de edición, o áreas de texto, de un formulario indicando “Escriba aquí” o “Texto” dependiendo del tamaño del elemento. Así mismo, en caso que una imagen sustituya a algún botón se indicará que tipo de acción realiza.
PAUTA 11: Utilice las tecnologías y pautass W3C.
Se sustituyen todas aquellas etiquetas obsoletas o no recomendadas, por sus equivalentes recomendados ya sean etiquetas HTML o estilos CSS. También se modifican tamaños pasando del formato numérico al formato CSS. Por último, se eliminan las directivas “!Important” del documento CSS para evitar que el usuario no pueda desactivar alguna parte del estilo.
PAUTA 13: Proporcione mecanismos claros de navegación.
El mecanismo básico de la navegación Web es el enlace. Para conseguir que estos sean lo más claros posibles se añaden textos alternativos con el título del enlace y la dirección de destino. En caso de ser un enlace a una sección, a un correo electróúnico, que se indique el marco, o ventana, donde se cargará se indica de manera clara y ordenada. De esta manera, el usuario tiene toda la información posible sobre el enlace y podrá decidir que si desea seguirlo, o no.
PAUTA 14: Asegure que los documentos sean claros y simples.
Se ha traslado todas las definiciones de estilos del documento HTML a un documento CSS para hacer que el documento resultante cumpla la división de estructura y visualización. Así mismo, se han añadido mediante el uso de estilos, la obligación de mostrar los textos alternativos, para asegurarnos que esta información está disponible también visualmente. Por último, se han creado diferentes estilos indicando el tipo y tono de voz, que se deben usar para encabezados y elementos que indiquen énfasis y similares. Aunque los navegadores de voz actuales son capaces de hacer este análisis automáticamente, se incluyen para evitar que los navegadores antiguos no informen correctamente.