HTML semántico es el uso de marcado HTML para reforzar la semántica o significado de la información en páginas web y aplicaciones web en lugar de simplemente definir su presentación o apariencia . El HTML semántico es procesado por los navegadores web tradicionales así como por muchos otros agentes de usuario . CSS se utiliza para sugerir su presentación a los usuarios humanos.
HTML ha incluido marcado semántico desde sus inicios. [1] En un documento HTML, el autor puede, entre otras cosas, "comenzar con un título; agregar encabezados y párrafos; agregar énfasis al texto; agregar imágenes; agregar enlaces a otras páginas; [y] usar varios tipos de listas". [2]
Varias versiones del estándar HTML han incluido marcado de presentación como <font>
(agregado en HTML 3.2; eliminado en HTML 4.0 estricto), <i>
(todas las versiones) y <center>
(agregado en HTML 3.2). También están los elementos span y div semánticamente neutros . Desde finales de la década de 1990, cuando las hojas de estilo en cascada comenzaron a funcionar en la mayoría de los navegadores, se ha alentado a los autores web a evitar el uso de marcado HTML de presentación con miras a la separación del contenido y la presentación . [3]
En 2001, Tim Berners-Lee participó en una discusión sobre la Web Semántica , donde se presentó que los 'agentes' de software inteligentes algún día podrían rastrear automáticamente la Web y encontrar, filtrar y correlacionar hechos publicados previamente no relacionados para beneficio de los usuarios finales. . [4] Estos agentes no son comunes ni siquiera ahora, pero algunas de las ideas de la Web 2.0 , los mashups y los sitios web de comparación de precios pueden estar acercándose. La principal diferencia entre estos híbridos de aplicaciones web y los agentes semánticos de Berners-Lee radica en el hecho de que la agregación e hibridación actual de información suele ser diseñada por desarrolladores web, que ya conocen las ubicaciones web y la semántica API de los datos específicos que desean. para triturar, comparar y combinar.
Un tipo importante de agente web que rastrea y lee páginas web automáticamente, sin conocimiento previo de lo que podría encontrar, es el rastreador web o araña de motor de búsqueda. Estos agentes de software dependen de la claridad semántica de las páginas web que encuentran, ya que utilizan diversas técnicas y algoritmos para leer e indexar millones de páginas web al día y proporcionar a los usuarios de la web funciones de búsqueda .
Para que las arañas de los motores de búsqueda puedan calificar la importancia de los fragmentos de texto que encuentran en los documentos HTML, y también para quienes crean mashups y otros híbridos, así como para los agentes más automatizados a medida que se desarrollan, las estructuras semánticas que existen en HTML deben aplicarse amplia y uniformemente para resaltar el significado de la información publicada. [5]
Si bien la verdadera web semántica puede depender de metadatos y ontologías RDF complejas , cada documento HTML contribuye al significado de la Web mediante el uso correcto de encabezados, listas, títulos y otras marcas semánticas siempre que sea posible. Este uso "simple" de HTML se ha denominado "HTML semántico antiguo simple" o POSH. [6] El uso correcto del 'etiquetado' Web 2.0 crea folksonomías que pueden ser igual o incluso más significativas para muchos. [5] HTML 5 introdujo nuevos elementos semánticos como , , , , , , y . [7] En general, el objetivo del W3C es introducir lentamente más formas para que los navegadores, desarrolladores y rastreadores distingan mejor entre diferentes tipos de datos, permitiendo beneficios como una mejor visualización en los navegadores de diferentes dispositivos. <section>
<article>
<footer>
<progress>
<nav>
<aside>
<mark>
<time>
Los elementos de presentación no quedaron formalmente obsoletos en las recomendaciones de HTML 4.01 y XHTML, pero se desaconsejaron. En HTML 5, algunos de esos elementos, como <i>
y <b>
, todavía se especifican ya que su significado se ha definido claramente "para que se desvíen estilísticamente de la prosa normal sin transmitir ninguna importancia adicional". [8] [9]
En los casos en los que un documento requiere una semántica más precisa que la expresada únicamente en HTML, se pueden incluir fragmentos del documento span
o div
elementos con nombres de clase significativos [10] como <span class="author">
y <div class="invoice">
. Cuando estos nombres de clases son también un identificador de fragmento dentro de un esquema u ontología, pueden vincularse a un significado más definido. Los microformatos formalizan este enfoque de la semántica en HTML.
Una restricción importante de este enfoque es que dicho marcado basado en la inclusión de elementos debe cumplir las condiciones de buena formación. Dado que estos documentos están estructurados en forma de árbol, solo se pueden marcar de esta manera fragmentos equilibrados de un subárbol. [11] [12] Un medio para marcar cualquier sección arbitraria de HTML requeriría un mecanismo independiente de la estructura de marcado en sí, como XPointer .
Un buen HTML semántico también mejora la accesibilidad de los documentos web (consulte también Pautas de accesibilidad al contenido web ). [ cita necesaria ] Por ejemplo, cuando un lector de pantalla o un navegador de audio puede determinar correctamente la estructura de un documento, no hará perder el tiempo al usuario con discapacidad visual leyendo información repetida o irrelevante cuando se ha marcado correctamente.
En 2010, Google especificó tres formas de metadatos estructurados que sus sistemas utilizarán para encontrar contenido semántico estructurado dentro de las páginas web. Google utilizará dicha información, cuando esté relacionada con reseñas, perfiles de personas, listados de empresas y eventos, para mejorar el "fragmento", o breve fragmento de texto citado que se muestra cuando la página aparece en los listados de búsqueda. Google especifica que esos datos podrán facilitarse mediante microdatos , microformatos o RDFa . [13] Los microdatos se especifican dentro itemtype
y itemprop
se agregan atributos a los elementos HTML existentes; las palabras clave de microformato se agregan dentro de class
los atributos como se analizó anteriormente; y RDFa se basa en rel
y atributos agregados a elementos existentes. [14]typeof
property