El Html5 da mucha importancia a cómo distribuimos jerárquicamente el contenido de nuestras páginas web, esto es, cómo indicar cuales son las secciones principales y cuales son las secundarias que pertenecen a esas seccines principales.
Antes con el Html4 podíamos definir este orden de niveles con las etiquetas de titular <h1>, <h2>, y así hasta el <h6>. Ahora en cambio, con las nuevas etiquetas semánticas <section>, <article>, etc, aparecen nuevos modos de indicar dónde empieza y/o termina una nueva sección o subsección, un nuevo nivel jerárquico.
Os lo explico un poco mejor. Antes con Html4 podíamos estableces un orden jerárquico para el contenido de este modo:
Esas cinco secciones tienen el mismo orden de importancia, pues todas son <h1>, tienen el mismo nivel jerárquico. Pero podíamos crear partes dentro de algunas de esas secciones, con una etiqueta <h2> en el interior de una de las <h1> mostradas. El contenido de esa subsección sería secundario, de un segundo orden, algo menos importante que la sección principal a la que pertenece. Veamos un ejemplo añadiendo un par de subsecciones a algunas de esas secciones principales:
Del mismo modo, podemos ir creando otras secciones de tercer nivel con <h3> dentro de las de nivel dos <h3> y así sucesivamente hasta <h6> que es el máximo permitido. Aunque creo que casi nunca llegaremos a dividir tanto los contenidos de una página, no?
Los navegadores entenderán que se está en un nivel de primer orden <h1> desde que empieza éste hasta que aparezca otra etiqueta de orden. Si el navegador encuentra una etiqueta <h2>, sabrá que a a partir de ahí se está en nivel 2. Si después encuentra un <h1>, volverá a pensar que está en el primer nivel nuevamente. Se comprende? Si se está en nivel 2 y se encuentra otra etiqueta <h2>, también de nivel 2, sabrá que ha empezado otra subsección, también de nivel 2 pero distinta.
Pero como te quería decir, ahora con el nuevo Html5 la cosa va cambiando un poco. Con la aparición de las etiquetas semánticas <section>, también se puede indicar que empieza una nueva sección, se añada o no etiquetas como las anteriores, <h1>, <h3>, etc. Por tanto a partir de ahora, para empezar una nueva sección o subsección bastará con colocar etiquetas de apertura <section> al inicio de una sección y de cierre </section> para terminar con ese nivel.
Si queremos crear un nivel secundario dentro de una sección, bastará con definir una nueva sección con la etiqueta <section>, pero lo haremos antes de la etiqueta de cierre de la sección a la que queremos que pertenezca esa sección secundaria.
Dicho esto, veamos cómo quedaría en ejemplo anterior pero usando las nuevas etiquetas de Html5 en lugar de las usadas en Html4:
Esto no está del todo bien. Nos faltaría colocar las etiquetas <h1> dentro, pero no las puse antes para que el código se viera algo más clarito. Además quería explicar algo más sobre el uso de etiquetas del tipo <h1> dentro de las etiquetas <section>. Vamos allá.
En el interior de cada <section> debe aparecer una etiqueta de título, <h1>. Pero a diferencia de cuando usabamos Html4, con el que ibamos llevando la cuenta del nivel en el que estábamos para saber si correspondia colocar un <h1>, <h2>, etc, ahora con el Html5, como ya definimos el orden con la misma etiqueta <section>, lo que haremos será empezar la cuenta de nuevo, es decir, con <h1>. Es decir, si estamos escribiendo el código de una sección de tercer nivel, no hay porqué colocar un <h3>, sino que usaremos un <h1>.
El ejemplo anterior quedaría mejor por tanto así:
Ves? Por qué no hemos colocado un <h2> en el titular de una sección de segundo nivel? Exácto, porque ya hemos indicado el orden de ese nivel con la etiqueta <section> y ahora podemos empezar desde <h1> sin problemas.