WAI-ARIA (ARIA y los controles desarrollados con Ajax, HTML, Javascript y sus tecnologías relacionadas

Accesibilidad web WAI-ARIA WAI-ARIA (Web Accessibility Initiative - Accesible Rich Internet Applications) es una especificación del W3C, recomendación

1 downloads 51 Views 435KB Size

Recommend Stories


Manual de Tabs con Ajax, Javascript, Html y css. La forma más fácil de crear pestañas con Javascript, css y Html
Manual de Tabs con Ajax, Javascript, Html y css La forma más fácil de crear pestañas con Javascript, css y Html Escrito por Ajaxman 17/08/2007 Manua

AJAX: EJEMPLOS EFECTOS Y USO EN DESARROLLOS WEB CON HTML, CSS, JAVASCRIPT VENTAJAS E INCONVENIENTES (CU01205F)
El papel de Ajax en los desarrollos web. Qué es y para qué sirve. APRENDERAPROGRAMAR.COM AJAX: EJEMPLOS EFECTOS Y USO EN DESARROLLOS WEB CON HTML, C

Normatividad y políticas relacionadas con las mujeres y sus derechos
Normatividad y políticas relacionadas con las mujeres y sus derechos Secretaría de las Mujeres, Alcaldía de Medellín - 2014 Mujeres y sus derechos 1

Homonegatividad Internalizada y sus Consecuencias Relacionadas con la Salud para los HSH en San Salvador
Homonegatividad Internalizada y sus Consecuencias Relacionadas con la Salud para los HSH en San Salvador OBJETIVOS DEL ESTUDIO En este resumen de inve

DIFERENCIAS ENTRE JAVASCRIPT Y JAVA, HTML, CSS, PHP, ETC. FRONTERA ENTRE LENGUAJES EN DESARROLLOS WEB (CU01105E)
Diferencias entre JavaScript, Java, HTML, CSS, PHP, etc. APRENDERAPROGRAMAR.COM DIFERENCIAS ENTRE JAVASCRIPT Y JAVA, HTML, CSS, PHP, ETC. FRONTERA E

Story Transcript

Accesibilidad web WAI-ARIA WAI-ARIA (Web Accessibility Initiative - Accesible Rich Internet Applications) es una especificación del W3C, recomendación desde el 20 de marzo de 2014. La versión actual es la 1.0 y se está elaborado la 1.1. WAI-ARIA (ARIA y los controles desarrollados con Ajax, HTML, Javascript y sus tecnologías relacionadas. WAI-ARIA (ARIA en adelante) en adelante) está pensado pensado para hacer más accesible el contenido dinámico –principalmente JavaScript y Ajax- transmitiendo a las APIs de accesibilidad información sobre el comportamiento de la interfaz y su estructura, para que los productos de apoyo puedan acceder a dicha información.

Tabindex

Hay que recordar que en HTML 4 y XHTML solo pueden recibir el foco los enlaces y elementos de formulario. No sucede lo mismo con los eventos, puesto que en todos los elementos se pueden incluir eventos. Por ejemplo en un elemento LI de una lista, si incluimos los eventos onclick y onkeypress no podremos acceder al elemento mediante el teclado –como pueden ser los usuarios de lectores de pantalla- porque nunca recibirá el foco. Para que un elemento, que no sea un enlace o control de formulario, pueda recibir el foco se utiliza el atributo tabindex. A continuación se listan los posibles valores que puede tener: 





tabindex="0": permite que un elemento que no coge el foco por defecto pueda recibir el foco. Podrás acceder con el tabulador hasta él y el orden vendrá definido por su posición en el documento. Ejemplo:
  • tabindex="-1": se diferencia del caso anterior en que no podremos tabular hasta el elemento. Lo que permite es que pueda coger el foco mediante JavasScript con .focus(). Ejemplo: Para una ventana emergente simulada mediante un DIV (div role=”dialog”): al abrirla el foco deberá moverse a su primer elemento y al cerrarla deberá volver al elemento que la abrió. tabindex=”x” donde x es un número entero. Define un orden de tabulación explícito: 1,2, 3, etc.

    Roles

    Incluir información sobre el rol o función de un elemento de nuestra página mediante ARIA es tan sencillo como añadir a la etiqueta del elemento role=”[nombre_del_rol]”. Por ejemplo:
      ,
      • ….

        No se debe cambiar dinámicamente el rol de un elemento, este es fijo. Si se quiere cambiar habría que eliminar del DOM el elemento y crear uno nuevo con el nuevo rol. Puedes consultar todos los roles en WAI-ARIA 1.0 (Categorization of Roles) (http://www.w3.org/TR/wai-aria/roles#roles_categorization )

        Existen dos tipos de roles, aquellos que definen elementos de la interfaz (árboles, alertas, sliders, etc.) y los que definen la estructura de la página (cabecera, navegación, pie) Dentro de los que definen la estructura de la página se distinguen los landmark roles, que se usan para identificar áreas separadas de la pagina y transmitir la naturaleza de las mismas. De esta manera añadimos características útiles de navegación global, consistentes en cualquier documento (X)HTML, que transmiten información de la estructura de la página e información semántica sobre estas zonas.

        Estados y propiedades

        Los elementos dinámicos cambian de estado, por ejemplo un elemento de un árbol puede estar plegado o desplegado. ARIA permite definir las propiedades y estados de los elementos.

        En este ejemplo se indica que el elemento del árbol "Lenguajes" está plegado. Cuando el usuario lo despliegue deberás cambiar dinámicamente su estado mediante javascript para que los productos de apoyo puedan transmitir el cambio al usuario. $id.attr('aria-expanded', 'true');

        Por tanto, el rol es fijo, no se cambia, los estados y propiedades son dinámicos.

        Podéis encontrar el listado y descripción de todos ellos en ARIA 1.0 (Supported States and Properties): (http://www.w3.org/TR/wai-aria/states_and_properties )

        Algunos ejemplos de uso Live regions: aria-live

        aria-live permite identificar una zona dinámica de nuestro contenido que se actualiza automáticamente, de esta manera los cambios se anunciarán al usuario de los productos de apoyo. En función de su valor (off, polite, assertive) indicaremos cuándo queremos que se anuncie la actualización. Se combina con aria-atomic para indicar si queremos que se anuncie toda la región o solo las partes que cambian, y con aria-relevant para indicar el tipo de actualización que queremos que se anuncie.

        aria-label, aria-labelledly y aria-describedby

        Tanto aria-label como aria-labelledby permiten etiquetar un elemento. La diferencia es que con aria-label indicas directamente el texto y con aria-labelledby el id/ids del elemento/s de la página que actúa/n como etiqueta. Ejemplo de aria-label:
        • ...una lista de enlaces ...
        • ...una lista de enlaces ...


        Ejemplo de aria-labelledby:

        Download 2012 Sales Report: PDF | Word | Powerpoint



        Hay que tener cuidado con su uso. aria-label pueden ser desatendida si se usa con arialabelledby y anula otras formas nativas de etiquetado como ALT en las imágenes o en los campos de formulario. Por tanto hay que usarlas cuando estas otras formas de etiquetado nativo no pueden usarse, como en los ejemplos anteriores, y no en vez de ellas.

        Por otro lado, aria-describedby permite asociar una descripción larga a un elemento indicando el id del elemento que proporciona la descripción. Uno de las novedades previstas en la versión WAI-ARIA 1.1 será la inclusión de aria-describedat que permitirá incluir la URL de la página que describe al elemento.

        Otros estados y propiedades

        aria-autocomplete y aria-activedescendant permiten mejorar la accesibilidad de las sugerencias en los campos de formularios. Sugerencias en la caja de búsqueda de Google. Aria-activedescendant to add focus to child elements. This alert screen readers to read suggestions aloud.

        Lo más importante, y que no debes olvidar, es que no solo tienes que indicar el estado y propiedades iniciales, sino que debes modificarlos dinámicamente por javacript cuando estos cambien, de modo que el usuario de productos de apoyo conozca siempre su estado actual. Los roles no se actualizan, los estados y propiedades sí.

        Pasos y buenas prácticas para aplicar WAI-ARIA

        En el documento del W3C, WAI-ARIA 1.0 Primer, se nos indican los pasos y buenas prácticas para aplicar WAI-ARIA.



          



        Usa marcado nativo cuando sea posible. Si puedes usar o úsalos en vez de o . Ten en cuenta que el rol ARIA anula el rol nativo. Puedes consultar la lista de elementos nativos que deberías intentar usar antes que su rol equivalente en una referencia rápida en "What is WAI-ARIA, what does it do for me, and what not?", marcozehe.de, marzo 2014; o en su totalidad, con ejemplos de malas prácticas y errores comunes en Using WAI-ARIA in HTML, W3C. Usa los roles adecuados según la especificación y recuerda que el rol no se debe cambiar dinámicamente. Conserva la estructura semántica Forma grupos lógicos (por ejemplo con role=”group”, role=”toolbar”); incluye landmark roles para facilitar la navegación por teclado; define las live regions (zonas que cambian dinámicamente sin intervención del usuario) Construye relaciones donde sea necesario.
  • Get in touch

    Social

    © Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.