Estamos en proceso de implementar (es decir, agregar) soporte de WAI-ARIA en el menú principal de navegación de un portal web. Menú es el que se muestra aquí:Implementación de WAI-ARIA recomendada para la barra de navegación/menú
menú se implementa por medio de clásico árbol DOM <ul>
/<li>
/<a>
, de estilo con CSS para parecerse a las pestañas horizontales.
¿Cuál es la implementación de WAI-ARIA recomendada para dicho widget?
Voy a publicar aquí una posible implementación, como respuesta, para que todo funcione.
Omita los párrafos restantes si conoce/no le interesan los menús de navegación CSS en contexto WAI-ARIA.
TA
Preámbulo (por así decirlo)
He leído muchas partes de la mayoría de los recientes especificaciones de WAI-ARIA de w3org para una comprensión general, taxonomía, y así sucesivamente. Luego, he leído sobre varios ejemplos de implementaciones de widgets UI. No pude encontrar ningún ejemplo específicamente dirigido a dicho menú de navegación CSS. Los widgets más cercanos que siempre he encontrado son el menú, la barra de menú y el panel de tabulación. Por supuesto, también busqué en Free ARIA Community group (donde esta pregunta se publicó originalmente).
Yo diría que ninguno de esos widgets coinciden exactamente con un menú de navegación (CSS). Como ejemplo, TabPanel puede controlar algunos contenidos en la página (-> aria-controls), tal vez MenuBar también; pero no estoy del todo seguro de que un menú de navegación controle el contenido de la página (controla la página siguiente para mostrar). Sin ir más lejos, también existen otras diferencias. Las referencias se encuentran al final de la publicación. Si alguien es mejor (o más en forma) ejemplos de menú de navegación, nos alegraría saber sobre ellos.
Referencias
- https://developer.mozilla.org/en-US/docs/Accessibility/ARIA/ARIA_Test_Cases#Menubar_and_Menu
- http://wiki.jqueryui.com/w/page/38666403/Menubar
- http://www.oaa-accessibility.org/examplep/menubar2/
- http://test.cita.illinois.edu/aria/menubar/
- http://dev.aol.com/dhtml_style_guide#menu
- http://whatsock.com/modules/aria_tabs_menu_modules/demo.htm
- http://www.w3.org/TR/wai-aria-practices/#menu
- http://www.w3.org/TR/wai-aria/roles
- http://www-03.ibm.com/able/resources/wai_aria_intro.html
Estaba casi listo para darme por vencido con las especificaciones de aria, que estaban mal pensadas hasta que leí su respuesta. Para mí, era la función de "presentación" que me faltaba en mi menú, lo que daba como resultado un comportamiento extraño, como que cada elemento del menú se leyera como "1 de 1" en lugar de "1 de [longitud]". La mayoría de los ejemplos que he visto en línea dan como resultado este comportamiento indeseable y no he encontrado ninguno que diga 'ul [role = menu]> li [role = presentation]> a [role = menuitem]' que no sea tu respuesta. Bien hecho. –
En realidad, el problema "1 de 1" era cuando estaba intentando 'ul [role = menu]> li> a [role = menuitem]'. Para estar seguro, la mayoría de la gente recomendaba 'ul [role = menu]> li [role = menuitem]> a', ¡que no funcionaba en absoluto! Leería los elementos del menú, pero como no había ningún enlace enfocado, no podría ir a ninguna parte con ellos. –
¡me alegro de que haya ayudado! Según tengo entendido, la necesidad de xxx [role = presentation] se cumple cada vez que insertas algunos nodos (anidados) solo para fines * aestetichal *, es decir, posicionamiento, mostrar u ocultar, coloración de fondo, etc. Pero esos nodos no significan nada desde el punto de vista * content *, por lo que los marca para cualquier herramienta de accesibilidad. – superjos