# HTML sémantique

Le HTML sémantique est l'utilisation du balisage HTML visant à renforcer le sémantisme (la signification) des informations contenues dans les pages web, c'est-à-dire leur sens, plutôt que de se borner à définir leurs présentations (ou apparence). Le HTML sémantique est traité par les navigateurs courants, mais aussi par de nombreux autres agents utilisateurs. Le langage CSS est utilisé pour suggérer la forme sous laquelle il sera présenté aux utilisateurs humains.
Par exemple, les spécifications HTML récentes déconseillent l'utilisation de la balise <i>, qui indique un style de police italique, au profit de balises sémantiquement plus précises, telles que <em>, qui indique une mise en valeur. C'est la feuille de style CSS qui spécifie ensuite si cette mise en valeur est représentée par un style italique, un style gras, un soulignement, une prononciation plus lente ou plus forte, etc. L'utilisation de l'italique ne se limite en effet pas à la mise en valeur. Il est également utilisé pour citer des sources, et pour cela, le HTML 4 propose la balise <cite>. L'italique peut également être utilisé pour les mots ou expressions en langue étrangère, ainsi que les emprunts. Les concepteurs de sites web peuvent utiliser les attributs intégrés au langage XHTML ou spécifier leur propre balisage sémantique en choisissant des noms appropriés pour la valeur de l'attribut class des éléments HTML (par exemple, class="emprunt"). Le fait de baliser la mise en valeur, les citations et les emprunts de manière différente permet aux agents Web (ou user-Agent) tels que les moteurs de recherche et autres logiciels d'évaluer précisément l'importance du texte.
Bien que le balisage HTML soit principalement utilisé pour le contenu textuel, il est également possible d'insérer du contenu sous format image ou vidéo, et même des liens internes et externes.

## Histoire

HTML inclut des balises sémantiques depuis sa création. Dans un document HTML, l'auteur peut, entre autres choses, « commencer avec un titre, ajouter des paragraphes et signatures, mettre de l'emphase sur le texte, ajouter des images et des liens vers d'autres pages et utiliser différents types de listes ». À un moment donné, HTML a inclus des balises de présentation textuel, telles que <font>, <i> et <center>. Il existe aussi des balises sémantiquement neutres : <div> et <span>. Depuis les années 1990 et l'apparition de CSS dans la plupart des navigateurs, les concepteurs de sites web ont été encouragés à éviter l'utilisation de balises HTML de présentation, en vue de la séparation de la présentation et du contenu ainsi que de la structure.
En 2001, Tim Berners-Lee a participé à une discussion sur le Web sémantique, où il a été proposé que des « agents » d'intelligence artificielle pourraient un jour automatiquement chercher sur le Web et trouver, filtrer et mettre en corrélation des faits sans relations antérieures publiés au bénéfice des utilisateurs finaux. Même maintenant, ces agents n'existent pas, mais quelques-unes des idées du Web 2.0, Application composite et les sites Comparateur de prix pourraient exister sous peu. La principale différence, entre ces hybrides d'applications web et des agents sémantiques de Berners-Lee, réside dans le fait que l'agrégation d'information et l'hybridation actuelle sont généralement conçu par développeurs web qui connaissent déjà les adresses web et la sémantique API spécifique des données qu'ils souhaitent à compulser, comparer et combiner.
Un type important d'agent Web qui parcourt et lit des pages web automatiquement, sans connaissance préalable de ce qu'il pourrait trouver, c'est le Robot d'indexation du moteur de recherche. Ces agents logiciels dépendent de la clarté sémantique des sites Web qu'ils trouvent, car ils utilisent différentes techniques et algorihthmes pour lire et indexer des millions de sites web par jour et fournir des outils de recherches aux utilisateurs du web.
Pour que les moteurs de recherche qualifient le sens des textes trouvés dans les documents HTML, et aussi pour des applications composites ainsi que d'autres agents, ainsi que pour des agents encore plus automatisés au fur et à mesure de leur développement, les structures sémantiques doivent être appliquées de manière uniforme pour révéler le sens des textes publiés.
Alors que le Web sémantique réel peut dépendre d'ontologies complexes, de RDF et des métadonnées, tous les documents HTML apportent leur contribution à la compréhensibilité du Web par l'utilisation correcte des titres, listes, et autres balisages sémantiques, chaque fois que c'est possible. Cet usage clair du HTML s'appelle "Plain Old Semantic HTML" or POSH. L'utilisation correcte des balises dans le Web 2.0 crée des folksonomies qui peuvent être très significatives dans certains cas. Le HTML5 a créé de nouvelles balises sémantiques, par exemple article, footer, progress, et nav qui seront d'usage courant sur les sites Web de l'avenir.
Les balises de présentation ne sont pas obsolètes dans le HTML actuel (4.01) et le XHTML, mais sont contrindiquées. En HTML 5 certains de ces éléments, tel que <i> et <b> conservent leur sens, mais ont été définis "comme stylistiquement non pertinents par rapport à la prose ordinaire, sans apport supplémentaire".

## Contrepartie

Dans l'éventualité où un document nécessiterait une sémantique plus précise que celle incluse dans le seul HTML, des parties du document peuvent inclure des éléments span ou div, complétés par des classes aux noms pertinents. Ces noms de classes sont au mieux suggestifs plutôt qu'indicatifs, à moins qu'ils ne soient préalablement partagés par le créateur et le consommateur du contenu, tels que <span class="author"> et <div class="invoice">. Lorsque ces noms de classes constituent également une partie identificatrice au sein d'un schéma, ils peuvent référer à une signification plus précise. Les Microformats formalisent cette approche de la sémantique dans le HTML.
Une restriction importante de cette approche s'impose : un tel balisage fondé sur l'inclusion d'éléments doit remplir les conditions de rectitude du HTML. L’architecture principale de ces documents (en arborescence) implique que seuls les parties équilibrées en provenance d'une sous-arborescence peuvent être balisées de cette manière. Un des moyens de baliser n'importe quelle section du HTML requerrait un mécanisme indépendant de la structure de balisage elle-même, tel que XPointer.
Le bon emploi du HTML sémantique permet aussi d'améliorer l'accessibilité des documents sur Internet. Par exemple, lorsqu'un lecteur d'écran ou un navigateur audio peut correctement établir la structure d'un document, ils ne gaspillera pas le temps des utilisateurs à la vue amoindrie en lisant des informations non pertinentes ou répétitives si elles ont déjà été balisées correctement.

## Les « extraits enrichis » de Google

En 2010, Google a indiqué que ses systèmes utiliseront à l'avenir trois formes de métadonnées structurées pour trouver du contenu sémantique structuré dans les pages Web. Ces informations, lorsqu'elles porteront sur des articles, des profils, des listes professionnelles ou des évènements, seront utilisées par Google pour enrichir les extraits apparaissant sous le titre des pages données en résultat. Google a annoncé que ces données peuvent être fournies sous forme de microdonnées, de mots-clés en microformat ou à l'aide de la syntaxe RDFa. Les microdonnées sont spécifiées dans les attributs itemtype et itemprop ajoutés aux éléments HTML existants ; les mots-clés en microformat sont ajoutés dans les attributs class comme expliqué précédemment ; et le RDFa fait appel aux attributs rel, typeof et property ajoutés aux éléments existants. Pour contrôler la validité du balisage, Google a mis en place un outil appelé "Rich Snippet Tool"