2012-03-05 14 views
8

La definición del W3C parece un poco vago cuando se trata de la <nav> etiqueta:uso semántico de <nav> en HTML5 con el elemento de búsqueda

El elemento de navegación representa una sección de una página que enlaza con otras páginas o para partes dentro de la página: una sección con enlaces de navegación.

No todos los grupos de enlaces en una página deben estar en un elemento de navegación: el elemento está destinado principalmente a las secciones que constan de los principales bloques de navegación. En particular, es común que los pies de página tengan una breve lista de enlaces a varias páginas de un sitio, como los términos del servicio, la página de inicio y una página de derechos de autor. El elemento de pie de página solo es suficiente para tales casos; mientras que un elemento de navegación se puede utilizar en tales casos, generalmente no es necesario.

Los agentes de usuario (como lectores de pantalla) dirigidos a usuarios que pueden beneficiarse de la información de navegación que se omite en la representación inicial o que pueden beneficiarse de la información de navegación disponible inmediatamente, pueden usar este elemento como una forma de determinar qué contenido de la página inicialmente omitir y/o proporcionar a petición.

Sobre la base de una interpretación muy estricta de su definición y lo que he encontrado a través de la validación, parece como si <nav> sólo debe contener elementos de la lista. Sin embargo, ¿no debería la búsqueda ser considerada una forma de navegación dentro de una serie de páginas?

Aunque entiendo que su uso principal es para los agentes de usuario, todavía parece bastante redundante tener un <nav> precediendo a una etiqueta <ul> si el primero actúa solo como un contenedor para este último. Tendría más sentido si <nav> pudiera contener otros elementos relacionados con la navegación, no se limita a una lista de enlaces.

Por ejemplo:

<nav role="navigation"> 
    <form action="http://google.com/search" method="get"> 
    <fieldset role="search"> 
     <input type="hidden" name="q" value="site:mysite.com" /> 
     <input class="search" type="text" name="q" results="0" placeholder="Search"/> 
    </fieldset> 
    </form> 

    <ul class="top-navigation"> 
    <li><a href="/">Home</a></li> 
    <li><a href="/about.html">About Me</a></li> 
    <li><a href="/archive.html">Archives</a></li> 
    </ul> 
</nav> 

Aparte de validación, es esto no un uso aceptable de <nav>? ¿Cuáles serían las repercusiones para alguien menos preocupado por la validación, que garantizar que los lectores de pantalla y otras herramientas de accesibilidad puedan procesar la página correctamente?

Respuesta

7

El elemento nav se debe utilizar para los elementos principales de navegación del sitio, no solo para todos los elementos de navegación. Tampoco tiene que contener un ul, pero como la mayoría de las veces contiene una lista, a menudo tiene sentido, pero no es esencial.

Si la búsqueda es el método Navigtion principal de su sitio, entonces por todos los medios colocarla dentro de un nav, aunque desde el ejemplo que das más arriba, la lista parece ser el principal de navegación y no su búsqueda.

He escrito un poco sobre el uso de la etiqueta nav en to nav or not to nav?, aunque no menciona una búsqueda, que es una observación interesante.

+0

Me gusta su interpretación un poco mejor cómo leo las especificaciones w3c. Y aunque la búsqueda no es el principal método de navegación para mi sitio, sigue siendo un "bloque de navegación importante" en mi opinión. Con HTML5 en borrador, creo que estoy más preocupado por cómo los distintos agentes de usuario interpretarán ese bloque de código y cómo podría optimizarse para tal fin. Esa es la razón por la que también incluí algunos de los roles de ARIA. Esperando a que alguien con más conocimiento sobre ese tema se presente. Gracias por sus comentarios, me alivia ver que no soy el único interesado en este elemento. – saneshark

+0

Si es un bloque de navegación importante, póngalo en un navegador. Ninguno de los agentes de usuario hace nada con eso en este momento. Con respecto a las herramientas de accesibilidad, creo que una búsqueda es mejor que se marque como una búsqueda (usando el rol de referencia "búsqueda"). Además, solo debe marcar un elemento en una página con un rol de referencia de "navegación", por lo que debe adjuntarlo a su lista y "buscar" en la búsqueda. Puede leer más sobre estos roles y algunos elementos HTML5 correspondientes (desplazarse hacia abajo) en: http://www.paciellogroup.com/blog/2010/10/using-wai-aria-landmark-roles/ –

+0

Gracias Ian. Eché un vistazo a la página paciellogroup, y la sección en ['

Cuestiones relacionadas