HTML5 ha intentado dotar de contenido semántico el código de las páginas web. Eso no solo facilita la creación de código «correcto» sino que tiene múltiples ventajas SEO, que creo que no es necesario aclarar en este post. Pero HTML es un estándar en continua evolución y eso es muy positivo porque permite resolver, o al menos intentarlo, problemas como el de las imágenes Responsive.
Hace unos días se presentó una etiqueta nueva, <main>
, esta etiqueta intenta resolver los problemas que han surgido en HTML5, desde su aprobación, por la mala utilización que desarrolladores y SEOs hacen del estándar y para solventar un problema intrínseco al HTML5. El algoritmo de Sooby Doo. Lo que a nivel SEO plantea un grave problema.
El algoritmo de Scooby Doo
Bruce Lawson, evangelista de Open Web Standards y uno de los impulsores del HTML5 planteó uno de los problemas más graves del nuevo estándar. ¿Cómo identifico el contenido principal de un documento?Su solución la llamó El algoritmo de Scooby Doo y la definió así:
Siempre sabes que la persona que hay detrás del fantasma del parque de atracciones en desuso será el portero siniestro. ¿Por qué?. Por que no hay más protagonistas.
O lo que es lo mismo, la primera pieza de contenido que no está en un <header>, <nav>, <aside>
o <footer>
es el contenido principal de un documento.
Pero esta teoría hace aguas por todas partes. Es muy teórica pero muy poco práctica. El primer problema es que los programadores y SEOs no se han leído el estándar del HTML5 y por lo tanto utilizan de una manera incorrecta las etiquetas y por otro lado que deja a etiquetas como ROLE
que pertenece a la WAI el marcar el contenido principal de un documento con el atributo role="main"
.
Tip SEO
Hay que remarcar que Google lee etiquetas en ID y Clases y entiende perfectamente etiquetas como <div id="content">
o <div id="main">
que son muy utilizadas por la mayoría de CMS. Aún así es recomendable utilizar etiquetado de accesibilidad (WAI-ARIA) acabando con un código como <div id="main" role="main">
.
Etiquetas en HTML5
La elección de main
como nombre es muy acertada con respecto a algunas propuestas que hemos leido como content
. Aunque son más utilizadas por los usuarios en el estudio que hicieron en Diciembre del 2005 para decidir el nombre de las etiquetas, es más genérica y puede llevar a que se utilice en varias partes de un documento y volveríamos al punto de partida.
Os dejo los estudio sobre el nombre de las etiquetas HTML5:
- Documento donde se recoge el estudio que se hizo sobre los nombres de las clases de HTML5, cogiendo como referencia 1.000 millones de páginas. Web Authoring Statistics: Classes. Este estudio buscaba patrones que ya se estaban dando de la red para estructurar el contenido basados en el atributo
Class
. - Opera hizo lo propio con un estudio algo menor pero igual de interesante.
La nueva etiqueta <main>
<main>
la nueva etiqueta del HTML5 que ha propuesto Steve Faulkner ha pasado a borrador el 27 de Noviembre. Steve Faulkner ha conseguido apoyos en Google y Apple (Maciej Stachowiak). Todo en un tiempo record, lo que auguraba para los SEOs un juguete nuevo. Esta etiqueta ayudaría a los motores de búsqueda a encontrar el contenido principal de una página lo que seria una gran ayuda para el SEO y su utilización se masificaría si fuera «adoptada» por el equipo de Matt Cutts.
Puedes leer más sobre ello en:
- Discusión en Noviembre 2012: https://lists.webkit.org/pipermail/webkit-dev/2012-November/date.html#23013
- https://krijnhoetmer.nl/irc-logs/accessibility/20121129
- Discusión en Diciembre 2012: https://lists.w3.org/Archives/Public/public-html-a11y/2012Dec/
La argumentación base de la nueva etiqueta era la accesibilidad, lo que no es suficiente para la aprobación de una nueva etiqueta ya que ARIA ya solucionaba este problema. El día 28 ya tiene oposiciones de la gente de Mozilla y parece que no va a salir. Falta conocer aún la postura de Opera y Microsoft. Crucemos los dedos.
Antes de <main>
Steve Faulkner había presentado <maincontent>
el 9 de Septiembre del 2012 y fue rechazada por el «nucleo duro», Ian Hickson (hixie). Parece que esta siendo un «todos contra hixie».
Incluso Bruce Lawson que acuño el término de Scooby Doo ha cambiado de opinión. Todo es un comienzo. Va a ser emocionante ver como la nueva etiqueta sale a la luz, porque no lo dudéis, será un parto dificil, pero al final saldrá.
MAIN ya forma parte de HTML5.1
En la nueva versión de HTML5.1 ya incluye la nueva etiqueta, así que pronto vais a oir hablar mucho de ello.
Plantillas como HTML5 Bones v.1.4.1 o html5boilerplate.com que utilizan Normalize.css ya incluyen la nueva etiqueta.
<main role="main">
Ya es soportado también por la validación de Html5 http://validator.w3.org/nu/ y https://webkit.org/build-archives/
Durante este 2013 aparecerá algún post de Google recomendando el buen etiquetado de los sites y las mejoras que ello conlleva 🙂