Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Site Web > XHTML / CSS > La sémantique > Lecture du tutoriel

La sémantique

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : neoxx78
Note : 17 / 20 (39 votes)
Visualisations : 24 565

Plus d'informations Plus d'informations
Bienvenue dans mon premier tutoriel sur le SdZ :D .
Aujourd'hui, nous allons étudier la sémantique dans le cadre du (X)HTML. Après ça, vous verrez que vous deviendrez un adepte du respect de la sémantique web ^^ . Si, si, je vous jure ! ;)

Le tutoriel sera organisé suivant un système de problématique avec questions / réponses.
Pour chaque problématique du sommaire, nous allons apporter une réponse complète et précise de sorte que vous compreniez tout du tutoriel (oui, ce serait mieux, en effet ^^ ).

Prêts ? Ok ! On y va !

Sommaire du tutoriel :
Icône du chapitre

Qu'est-ce que la sémantique ?

Heu... tu peux nous dire ce que c'est ?

Oui, je vois d'ici vos visages se crisper de douleur quand vous lisez "sémantique", vous devez vous demander : "Piouf, encore un nom scientifique abstrait".
C'est vrai, mais normalement M@teo21 l'a abordé dans ses tutoriels, d'une façon brève, en effet, mais cela doit vous rappeler des souvenirs - je me trompe ^^ ?

Mais comme ici, tout part de zéro, j'ai le devoir de faire comme si c'était le cas. Donc nous allons voir la définition dans le dictionnaire ! ( :euh: Vous êtes toujours avec moi ?)
Zéros, à vos dictionnaires je vous prie ! (Et ne me dites pas que je dois vous expliquer ce qu'est un dictionnaire pour respecter la logique de partir à zéro :D !)

Attention ouvrez grand vos yeux...

Citation : Dictionnaire Larousse 1994
La sémantique est tout ce qui concerne l'étude scientifique du sens des unités linguistiques et de leurs combinaisons.

Euh dis donc, ça nous avance pas trop, tout ce charabia !

Bien vu, jeune zéro ;) .

Nous allons donc voir tout de suite une définition plus logique et plus compréhensible de la sémantique dans le but de l'utiliser dans notre code (X)HTML :

La sémantique web c'est à peu de choses près, considérer le sens des balises dans l'ensemble de la page, étudier leur fonction dans le code.


Rien de mieux que la liste des principales balises XHTML pour illustrer cette nouvelle définition. ;) Attention, je vous préviens, c'est assez long mais plutôt complet. Cependant, j'ai fait exprès d'oublier l'effet produit par la balise sur le navigateur pour rester dans la logique sémantique.


Liste d'utilisation des principales balises XHTML
Elément ou BaliseSens sémantique
<p>
L'élément p définit un paragraphe et / ou des images
<hx> qui désigne les balises <h1> à <h6>
L'élément hx définit des titres de moins en moins importants dans l'organisation du document.
En général, h1 contient le titre le plus important de la page et donc du contenu, puis viennent les sous-titres h2, h3, etc. Après, on respecte ou non, mais ce qui compte, c'est de garder une certaine logique
<ul> et <li>
L'élément ul, avec son compagnon li, définit une liste non-ordonnée. On peut l'utiliser par exemple pour une liste de liens dans un menu, ou une liste de course...
<ol> et <li>
L'élément ol accompagné de li définit une liste ordonnée. On peut s'en servir pour un sommaire ou une liste de commentaires...
La différence avec ul est qu'ici ol sera précédé d'un nombre au lieu d'une puce.
<dl>, <dt> et <dd>
L'élément dl définit une liste de définition. De ce fait, dl sera toujours utilisé avec dt, qui définira le terme et dd qui contiendra la définition du terme.
Ces éléments sont très utiles si vous avez une liste de mots avec leurs définitions comme dans un dictionnaire.
<table>, <tr>, <th>, <td> et <caption>
Les éléments table, tr, th et td définissent un tableau et doivent donc contenir des données tabulaires :-° comme un forum...

table définit l'ouverture du tableau, tr indique une ligne, th indique les cellules d'en-tête (dans ce tableau, les en-têtes sont balise et sens sémantique ;) ), et td indique une cellule.

Petit rappel pour certains : l'élément caption définit le titre d'un tableau, et doit être absolument imbriqué dans l'élément table.
<strong>
L'élément strong définit une forte insistance sur un ou des mots. Ces mots prennent donc un autre sens sémantique que du texte normal : on dit qu'ils sont emphasés, ou plus communément mis en évidence.
<em>
L'élément em définit une insistance moyenne sur un ou des mots. Ces mots sont emphasés, mais dans une moindre mesure qu'avec l'élément strong.
<ins>
Peut-être une nouvelle balise pour vous, l'élément ins définit une insertion de mots depuis la création du document.

Ainsi, si un jour vous rédigez un article d'actualité et qu'une dépêche vient d'arriver, vous pourrez l'annoncer dans votre article grâce à l'élément ins ! Et vous aurez un petit 20 / 20 en sémantique ^^ .
L'élément est bien évidemment contenu dans une balise <p> au même titre que strong et em
<del>
L'élément del qui, comme vous l'avez sûrement deviné, vient de "delete" définit un ou des mots (toujours imbriqué(s) dans une balise <p>) qui ont été supprimés du document pendant son évolution.

Un peu paradoxal, me direz-vous :o . Oui, mais par exemple, si vous vous trompez sur l'âge de quelqu'un, vous pouvez mettre la partie fausse dans l'élément del pour signifier que cette partie n'a plus d'importance et est supprimée. L'âge correct pourra être rajouté avec l'élément ins (le rabâchage, toujours le rabâchage :p )
<pre>
L'élément pre désigne un texte qui est déjà préformaté, c'est-à-dire que le texte est écrit comme il doit apparaître : le nombre d'espaces blancs est respecté, et les sauts à la ligne peuvent être désactivés.

Cette balise est donc indispensable si vous voulez faire des calligrammes, comme ceux d'Apollinaire :p (mais bonjour le boulot pour le taper, c'est pour ça que je ne vous donne pas d'exemple ^^ )

Et bien sûr, c'est une balise de type bloc au même titre que <p> : il est donc incorrect d'imbriquer un élément p dans un pre !
<q>
L'élément q définit une courte citation dans un paragraphe. Je vous conseille de l'utiliser le plus souvent possible car les guillemets sont mis automatiquement sur certains navigateurs et, au moins sémantiquement, on voit que ce n'est pas vous qui parlez.

Exemple : <p>M@teo21 vous a toujours dit <q>La pratique c'est mieux que la théorie</q></p>
<blockquote>
L'élément blockquote est très proche de q, mais cette fois blockquote définit une longue citation qui peut être découpée en plusieurs paragraphes, c'est-à-dire qu'il contiendra toujours une balise <p> pour définir le texte : c'est une balise de type bloc !

Si vous citez une poésie de La Fontaine, de Baudelaire et j'en passe, le blockquote sera fortement conseillé :p
<cite>
Nous restons encore dans le domaine des citations avec l'élément cite. En effet, puisqu'il désigne l'auteur d'une citation ou une référence vers une autre source. On peut reprendre l'exemple de l'élément q pour illustrer l'utilisation de cite.

Exemple : <cite>M@teo21</cite> vous a toujours dis <q>La pratique c'est mieux que la théorie</q>

Et enfin, un autre exemple où cite sert à désigner une référence (exemple tiré de la doc HTML)
Exemple : pour plus d'informations, voir <cite>[ISO-0000]</cite>.
Bien sûr, vous pouvez pointer cette référence vers une autre page avec, tout bêtement, un lien.
<acronym>
L'élément acronym permet de définir des acronymes grâce à l'attribut title (ouah, c'est la réflexion du siècle, là). En fait, je vous dis ça car il y a une différence qu'il faut connaître avec la balise suivante.

Un acronyme est un sigle que l'on prononce comme un mot ordinaire tel que ONU, UNESCO, radar, BTS, BEP, etc.
Voici un exemple : <p>L'organisation internationale qui siègent à New York est l'<acronym title="Organisation des Nations Unies">ONU</acronym></p>
<abbr>
L'élément abbr est très similaire à acronym ; seulement abbr sert à définir une forme abrégée ; c'est-à-dire que l'on doit prononcer les lettres une à une.
Voici quand même des exemples : WWW, HTTP, SdZ (pour site du zéro :p ).

Comme vous l'aurez remarqué, la différence entre les éléments acronym et abbr est futile, et à la fois cruciale : respectez-la

abbr fonctionne comme acronym avec l'attribut title pour renseigner l'abréviation
<sup> et <sub>
Les élément sup et sub servent respectivement à mettre en exposant et en indice. Petit indice mnémotechnique : sup comme supérieur, et sub comme submersible (comme les sous-marins :D )
<code>
Et enfin, dernière balise importante, ouf... L'élément code indique un fragment de code informatique, rien de bien compliqué. N'oubliez pas que c'est une balise de type en-ligne



Eh oui, quand on y réfléchit, la sémantique c'est aussi simple que ça, mais surtout assez long, voire très long. :D Pourtant, je vous assure qu'avec cette liste vous avez appris 90 % des balises XHTML, et surtout les plus utilisées. Pour les curieux, voici quelques éléments à connaître si on souhaite appronfondir ses connaissances.

Et voilà un lien vers la spécification HTML du W3C, pour que vous alliez vous-mêmes chercher les définitions. :p

Revenons à nos moutons : à quoi me sert de connaître les sens des balises XHTML pour la sémantique ?!

Justement : pour respecter la sémantique du web, il faut utiliser les balises en fonction de ce que l'on souhaite, c'est-à-dire choisir la balise la plus appropriée à nos besoins.
Logique, me direz-vous ? Pas tant que ça ^^ . En effet, il existe de nombreuses solutions qui donnent le même résultat visuel grâce au CSS, mais n'ont aucune valeur au niveau du code !
Cela se révèle souvent avec l'utilisation des balises génériques <div> ou <span> qui n'ont aucun sens sémantique : on peut donc en faire ce que l'on veut !

Lisez bien la partie qui suit... nous allons entrer dans le vif du sujet. ^^

Le problème !

Il est où, le problème ?

Oui, mais voilà :( ... actuellement, les codes ont évolué, et de plus en plus de nouveaux programmeurs découvrent la puissance du CSS !

Fini le temps du design dans le contenu, vive le CSS ! C'est très bien, mais attention aux abus !
En effet, maintenant on est arrivés à un effet inverse tout aussi nuisible aux respects des standards du W3C.

On organise le contenu via le CSS !

Vous me demandez des exemples ^^ ? Il est très facile d'en trouver si vous naviguez sur le forum du SdZ.
Par exemple, je vois parfois des codes avec : <div class="titre"> pour mettre un titre ou <div class="texte"> pour un texte...

Malheureusement, c'est faux ! Cela n'a pas de sens d'un point de
vue sémantique.

Il faut que vous sachiez que la balise <div>, très utile pour la mise en page, n'a strictement aucun sens sémantique, et donc aucune fonction ! Elle est neutre en tout point de vue. Un code rédigé seulement avec des <div> (trop par rapport aux besoins) est un code sémantiquement nul... sans but, illogique et de plus il paraît fouillis, car on se demande : "à quoi sert ce morceau de code ?" o_O n'est-ce pas ?

Le non-respect de la sémantique se manifeste aussi dans les sites qui utilisent une présentation sous forme de tableau. C'est un problème plus ancien, car maintenant la balise <div> nous permet d'avoir beaucoup plus de liberté dans notre design ;) .
Donc l'usage des balises <tr>, <td>, etc. pour la mise en page est une infraction aux lois de la sémantique du web.

Les balises pour les tableaux ne doivent être utilisées que pour afficher des données tabulaires !
Comme une liste des membres d'un forum, etc.

Pour de plus amples précisions, je vous invite à voir l'excellent post de Deeder sur le forum du Sdz :
Tableaux vs CSS : un combat de chaque instant...
Ou sinon, vous avez ici une comparaison entre l'utilisation des <div> et des tableaux :
Alsacréations : Tableaux ou Div, petite compraraison.

Comment la respecter ?

Et c'est quoi, la solution ?

Pour moi : il suffit de faire un effort sur l'organisation de vos codes. Il faut qu'une structure logique, et donc sémantique, apparaisse explicitement dans vos codes (il faut qu'elle saute aux yeux).

En gros, cela signifie qu' un titre se désignera toujours par <hx>, un paragraphe par la balise <p>... (de même pour les autres balises que nous avons vues plus haut ;) ). Libre à vous après de changer le design du titre avec le CSS, mais, s'il vous plaît, ne faites pas de <div class="titre"> (qui est un exemple parmi tant d'autres) !

Passons à la pratique.
Voici quelque chose que je veux ne plus jamais voir dans vos codes.

Code : HTML
1
2
3
4
<td id="corps">
<div class="titre">Un titre qui ne respecte pas la sémantique</div>
<div class="texte">Un texte qui ne respecte pas la sémantique</div>
</td>


C'est pas très joli, hein ;) . Voici désormais ce que vous devez faire à la place.

Code : HTML
1
2
3
4
<div id="corps">
<h1>Un titre qui respecte la sémantique</h1>
<p>Un texte qui respecte la sémantique</p>
</div>

C'est bien compris ? Au début, il faudra peut-être que vous vous forciez, ce sera donc long et ennuyeux (car on n'aime pas trop changer les habitudes, hein ^^ ) ; mais après un petite expérience, vous ne réfléchirez même plus au choix d'une balise. Cela deviendra un réflexe (comme d'aller sur le SdZ).
Je vous conseille d'ailleurs de vous référer à la liste des utilisations des balises XHTML que j'ai faite dans la première partie : j'y ai mise toutes les balises les plus utilisées.

Eh ! Reste ici ! Comment on fait pour savoir si on a fait le maximum pour respecter la sémantique ?

Oui, c'est vrai, j'allais oublier.
Pour vous aider à savoir si votre code respecte la sémantique, il existe une technique diablement efficace. Mais hyper complexe. :diable: ?

il suffit de "débrancher" le CSS !

Eh oui : le style des balises étant enlevé, celles-ci ne gardent que leurs aspects sémantiques (leurs sens). Donc, si votre site est illisible sans CSS, c'est-à-dire par exemple qu'un titre est écrit de la même façon que du texte normal :-° , c'est qu'il y a un gros problème... vous savez ce qu'il vous reste à faire ^^ .

Pour désactiver le CSS, rien de plus simple ! Pour les utilisateurs de Firefox, il vous suffit d'aller dans Affichage / style de la page / aucun style. Pour ceux qui surfent avec Opéra, c'est aussi simple : faites Affichage / Styles / Mode utilisateur, puis décocher les cases qui le sont.
Vous pouvez même, grâce à ce même Opera, simuler un navigateur texte : il vous suffit de sélectionner émuler un navigateur texte dans le menu Mode utilisateur. C'est encore mieux pour travailler sur la sémantique d'une page. Merci à Harvis pour l'astuce.

Pour les autres qui utiliseraient Internet Explorer, je ne peux que leur conseiller de télécharger Firefox ou encore Opera :D .

C'est un petit geste à faire dans vos codes qui peut vous paraitre barbant, mais les avantages sont nombreux comme nous allons le voir tout de suite.

Quels sont les avantages ?

Mais quels sont les avantages à respecter une bonne sémantique ?

Vous n'allez pas me croire, mais les avantages sont nombreux (sinon, à quoi bon respecter la sémantique, hein). Ils permettent souvent un gain de temps non négligeable pour les flemmards du web comme moi. :D

Respecter une bonne sémantique permet :


Ce n'est bien sûr qu'un résumé des idées principales. C'est pour cela que je rajoute l'adresse d'un article plus complet et fait par des professionnels :D . Vous y trouverez toute une page qui détaille largement les avantages à respecter une bonne sémantique, avec une analyse de code sur Lynx un navigateur qui affiche une page web en mode "texte", c'est-à-dire sans aspect graphique (avec que du texte).

Lynx analyse une page Web comme le ferait les logiciels de synthèse vocale et les logiciels "braille", deux types de logiciels utilisés par les aveugles !

Voilà de quoi rendre concret ce que je vous ai dit.
OpenWeb : La sémantique . Merci à Nyro Xéo pour le lien.
Et comme je suis généreux (c'est rare :p ), je vous invite à visiter un autre site qui dispose de nombreux tutoriels complets, clairs et structurés sur les sujets en rapport avec l'accessibilité web (donc, la sémantique.
Alsacréations : La sémantique


Bon : je sais pas pour vous, mais moi, ça m'a déjà convaincu !
Des réticents pour le respect de la sémantique ? Je m'en occupe :diable: !


Voilà : nous en avons terminé avec ce tutoriel sur la sémantique :) .

Vous avez tout compris ? Tant mieux alors (enfin, j'espère).
Cela a été un plaisir pour moi de vous suivre dans ce petit tutoriel... vous avez tous été de bons élèves (sauf toi, là au fond :diable: !).
A partir de maintenant, vous savez coder en respectant la sémantique web... alors à vos Notepad, et plus vite que ça...
Retour en haut Retour en haut


Créé : le 06/12/2005 à 21:12:12
Modifié : le 22/08/2008 à 16:07:35
Avancement : 100%
Licence : Copie non autorisée

35 commentaires

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 131 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0315s (0.0164s)