<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>css 4 design &#187; Sémantique</title>
	<atom:link href="http://css4design.com/tag/semantique/feed" rel="self" type="application/rss+xml" />
	<link>http://css4design.com</link>
	<description>Le blog de l&#039;intégrateur web</description>
	<lastBuildDate>Sun, 05 Feb 2012 18:10:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://css4design.com/?pushpress=hub'/>
		<item>
		<title>Quelques notes sur la balise h1 avec HTML5</title>
		<link>http://css4design.com/quelques-notes-sur-la-balise-h1-avec-html5</link>
		<comments>http://css4design.com/quelques-notes-sur-la-balise-h1-avec-html5#comments</comments>
		<pubDate>Thu, 16 Dec 2010 13:19:29 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Edito]]></category>
		<category><![CDATA[En-tête]]></category>
		<category><![CDATA[h1]]></category>
		<category><![CDATA[h2]]></category>
		<category><![CDATA[h3]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Quelques notes]]></category>
		<category><![CDATA[Référencement]]></category>
		<category><![CDATA[Section]]></category>
		<category><![CDATA[Sémantique]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Spécification]]></category>
		<category><![CDATA[Title]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=8356</guid>
		<description><![CDATA[La réponse courte à la question « Combien de balises h1 dans une page Web HTML5 ? » est : « Autant que nécessaire ! » En gros, chaque fois que vous avez une nouvelle section, vous  pouvez mettre un h1. D&#8217;une manière générale, h1 accompagnera article, aside, nav ou section avec brio ! (cf. Sectioning content). Allons voir ce que nous disent les spécifications HTM5 sur l&#8217;emploi des balises de titre h1 &#8212; h6, notamment les exemples concernant les niveaux de titre. Ils sont assez parlant bien que parfois déroutant lorsqu&#8217;on a l&#8217;habitude du balisage utilisé jusqu&#8217;à présent. Les éléments h1 &#8212; h6 représentent [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fquelques-notes-sur-la-balise-h1-avec-html5">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fquelques-notes-sur-la-balise-h1-avec-html5&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p>La réponse courte à la question « Combien de balises <code>h1</code> dans une page Web HTML5 ? » est : « Autant que nécessaire ! » En gros, chaque fois que vous avez une nouvelle section, vous  pouvez mettre un <code>h1</code>. D&#8217;une manière générale, <code>h1</code> accompagnera <code>article</code>, <code>aside</code>, <code>nav</code> ou <code>section</code> avec brio ! (cf. <a href="http://www.w3.org/TR/html5/content-models.html#sectioning-content">Sectioning content</a>). Allons voir ce que nous disent <a href="http://www.w3.org/TR/html5/">les spécifications HTM5</a> sur l&#8217;emploi des <a href="http://www.w3.org/TR/html5/sections.html#the-h1-h2-h3-h4-h5-and-h6-elements">balises de titre</a> <code>h1</code> &#8212; <code>h6</code>, notamment les exemples concernant les niveaux de titre. Ils sont assez parlant bien que parfois déroutant lorsqu&#8217;on a l&#8217;habitude du balisage utilisé jusqu&#8217;à présent. Les éléments <code>h1</code> &#8212; <code>h6</code> représentent les niveaux d&#8217;en-têtes de leurs sections respectives. Quant à l&#8217;élément <code>hgroup</code>, il regroupe un ensemble d&#8217;en-têtes composé d&#8217;au moins deux niveaux de titre, comme un titre et son sous-titre ou un titre et le slogan associé (un bon candidat pour <a href="http://css4design.com/html5-manifeste-logo-motto">Logo et Motto</a>, faute de mieux).<span id="more-8356"></span></p>

<p><img class="alignnone size-full wp-image-8475" title="html5-balise-h1-section" src="http://css4design.com/wp-content/uploads/2010/12/html5-balise-h1-section.png" alt="" width="633" height="322" /></p>

<h2>Quelques exemples avec H1</h2>

<p>Les deux bouts de code qui suivent sont équivalent :
<pre>&lt;body&gt;
    &lt;h1&gt;Let's call it a draw(ing surface)&lt;/h1&gt;
    &lt;h2&gt;Diving in&lt;/h2&gt;
    &lt;h2&gt;Simple shapes&lt;/h2&gt;
    &lt;h2&gt;Canvas coordinates&lt;/h2&gt;
    &lt;h3&gt;Canvas coordinates diagram&lt;/h3&gt;
    &lt;h2&gt;Paths&lt;/h2&gt;
&lt;/body&gt;</pre>
<pre>&lt;body&gt;
    &lt;h1&gt;Let's call it a draw(ing surface)&lt;/h1&gt;
    &lt;section&gt;
        &lt;h1&gt;Diving in&lt;/h1&gt;
    &lt;/section&gt;
    &lt;section&gt;
        &lt;h1&gt;Simple shapes&lt;/h1&gt;
    &lt;/section&gt;
    &lt;section&gt;
        &lt;h1&gt;Canvas coordinates&lt;/h1&gt;
        &lt;section&gt;
            &lt;h1&gt;Canvas coordinates diagram&lt;/h1&gt;
        &lt;/section&gt;
    &lt;/section&gt;
    &lt;section&gt;
        &lt;h1&gt;Paths&lt;/h1&gt;
    &lt;/section&gt;
&lt;/body&gt;</pre>
La première forme est celle que l&#8217;on utilisera le plus souvent dans le cadre d&#8217;un CMS, puisque il est rare que l&#8217;on puisse saisir des balises <code>section</code> lors de la rédaction d&#8217;un article, même en passant par l&#8217;éditeur HTML puisqu&#8217;il supprime les balises exotiques. A moins qu&#8217;un plugin ne permette d&#8217;y remédier.</p>

<p>Dans un autre exemple, on trouve une utilisation des niveaux <code>h1</code> suivis de <code>h2</code> et <code>h3</code> à l&#8217;intérieur des sections :
<pre>&lt;body&gt;
    &lt;h1&gt;Apples&lt;/h1&gt;
    &lt;p&gt;Apples are fruit.&lt;/p&gt;
    &lt;section&gt;
        &lt;h2&gt;Taste&lt;/h2&gt;
        &lt;p&gt;They taste lovely.&lt;/p&gt;
        &lt;section&gt;
            &lt;h3&gt;Sweet&lt;/h3&gt;
            &lt;p&gt;Red apples are sweeter than green ones.&lt;/p&gt;
        &lt;/section&gt;
    &lt;/section&gt;
    &lt;section&gt;
        &lt;h2&gt;Color&lt;/h2&gt;
        &lt;p&gt;Apples come in various colors.&lt;/p&gt;
    &lt;/section&gt;
&lt;/body&gt;</pre>
Toutefois, le W3C recommande d&#8217;utiliser la forme suivante plus explicite et plus simple à maintenir si l&#8217;on doit modifier l&#8217;ordre des sections en cours de rédaction (ou lors de corrections plus tardives) :
<pre>&lt;body&gt;
    &lt;h1&gt;Apples&lt;/h1&gt;
    &lt;p&gt;Apples are fruit.&lt;/p&gt;
    &lt;section&gt;
        &lt;h1&gt;Taste&lt;/h1&gt;
        &lt;p&gt;They taste lovely.&lt;/p&gt;
        &lt;section&gt;
            &lt;h1&gt;Sweet&lt;/h1&gt;
            &lt;p&gt;Red apples are sweeter than green ones.&lt;/p&gt;
        &lt;/section&gt;
    &lt;/section&gt;
    &lt;section&gt;
        &lt;h1&gt;Color&lt;/h1&gt;
        &lt;p&gt;Apples come in various colors.&lt;/p&gt;
    &lt;/section&gt;
&lt;/body&gt;</pre>
Si la première version semble mieux hiérarchisée, la deuxième est plus claire : un <code>h1</code> gratuit pour chaque création de section explicite ! Et l&#8217;on peut continuer avec les balises <code>h2</code>, <code>h3</code>, etc. C&#8217;est la profondeur du document, l&#8217;imbrication des sections et des sous-sections qui définit la hiérarchie du document. Ce qui ne signifie pas que les balises <code>h2</code>  &#8211; <code>h6</code> sont inutiles. Elle sont toujours indispensables pour structurer le message à l&#8217;intérieur des sections.</p>

<p>Pour l&#8217;application des styles CSS, en revanche, pas sûr que <code>section section h1 {...}</code> soit plus simple que <code>h3 {...}</code>. Voir à ce sujet <a href="https://gist.github.com/568155">HTML5 Titles Inception</a>, la courageuse descente de <a href="http://gasteroprod.com/">Nicolas Hoizey</a> dans les limbes pour styler les <code>h1</code> selon leur profondeur.</p>

<h2>Sémantique ou optimisation SEO ?</h2>

<p>La question du nombre de fois où l&#8217;on peut utiliser la balise <code>h1</code> dans un document présente deux facettes :</p>

<ol>
    <li>Logique interne du document (<em>Semantic</em>). Un document est souvent identifié par un titre et les parties qui le composent par des sous-titres. Si un document peut ne posséder qu&#8217;un seul titre (à l&#8217;image des livres où le titre se trouve en couverture), il est possible d&#8217;utiliser un titre `h1` par `section`. On suppose alors que les sections forment des parties dissociables du tout. A cet égard, on peut se demander si une balise `article` n&#8217;est pas préférable dans la mesure où une partie indépendante peut bénéficier (en théorie) d&#8217;un flux RSS dédié.</li>
    <li>Le référencement au niveau de la page (<em>In Page</em>). Google accorde un poids supplémentaire (un petit poids, faut pas trop rêver non plus) aux mots-clés contenus dans les balises de titre `h1`, `h2` et `h3`. La tentation est grande de vouloir en utiliser un maximum dans une même page.</li>
</ol>

<p>Est-il est possible de mixer ces deux approches en tentant le Jackpot de la beauté sémantique et du charme SEO ? Lorsqu&#8217;on regarde de près les ouvrages imprimés (livre ou magazine), on s&#8217;aperçoit que le titre ne se retrouve pas toujours uniquement sur la 1ère de couverture. Dans certains livres, le titre est parfois répété dans les feuillets intérieurs précédé et/ou suivi de quelques pages blanches. Dans certains magazines, le nom de la revue peut se retrouver sur toutes les pages avec le titre de la rubrique en regard.</p>

<p><small>Du coup, l&#8217;argument du titre unique pour l&#8217;ensemble du site Web &#8212; en comparaison logique avec le Livre (objet de référence dès qu&#8217;il s&#8217;agit de bon goût) &#8212; ne tient plus. CQFD. Reste la question du <code>title</code> présent dans les balises <code>meta</code>. D&#8217;un point de vue SEO, cette balise est fondamentale car elle fait office de titre dans les SERP&#8217;s (Résultats dans les pages de recherche). Il faut donc lui accorder un soin tout particulier. Elle doit être unique sur la page. Or, la plupart des CMS utilisent le titre de l&#8217;article pour garnir ce <code>title</code>, ce qui le fait apparaitre deux fois. Sans compter l&#8217;URL du billet qui reprend souvent ce même titre lors de la réécriture des URL (<em>URL Rewriting</em>).</small></p>

<p>Il est important de s&#8217;assurer que ce <code>title</code> n&#8217;est pas redondant. Le meilleur moyen d&#8217;y parvenir est de considérer qu&#8217;il représente le vrai titre de la page Web, indépendamment des niveaux de titres <code>h1</code> présents (sans compter que la page n&#8217;est pas forcément synonyme de document) ou même du logo, qu&#8217;il s&#8217;agisse d&#8217;un texte ou d&#8217;une image. Le Web n&#8217;est pas totalement réductible aux pratiques de l&#8217;imprimé, fussent-elles de bon goût.</p>

<p>En matière de SEO, redondance rime avec décadence, du moins lorsque la répétition s&#8217;effectue sur des niveaux hiérarchiques d&#8217;égale importance.</p>

<h2>Document vs Site Web</h2>

<p>La plupart des exemples fournis par le W3C concernent des documents et pas des sites Web, et ce n&#8217;est pas un détail : de nombreuses ambiguïtés concernant le bon usage de la balise <code>h1</code> viennent de là.  Si l&#8217;on doit présenter le compte-rendu d&#8217;une réunion, le titre du document pourrait être l&#8217;objet du mail qui a servi pour inviter les participants.</p>

<p>Prenons par exemple le document suivant :
<pre>&lt;h1&gt;«La Tête Dans l'Asso» accueille les nouveaux adhérents&lt;/h1&gt;
&lt;p&gt;Cette année, l'association a recueillie une centaine de nouveaux membres [...]&lt;/p&gt;
&lt;h2&gt;La réunion d'intégration&lt;/h2&gt;
&lt;p&gt;blablabla [...]&lt;/p&gt;
&lt;h2&gt;Le livret d'intégration&lt;/h2&gt;
&lt;p&gt;blablabla [...]&lt;/p&gt;
&lt;h2&gt;Partenaires&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;La Tête dans l'Ecu&lt;/li&gt;
    &lt;li&gt;La Tête allant vers... &lt;/li&gt;
&lt;/ul&gt;</pre>
Une fois que le document est balisé correctement, il reste à l&#8217;intégrer dans le site Web qui contient généralement des balises d&#8217;en-tête de différents niveaux avant et après la zone des articles. Pour simplifier, on peut utiliser le marquage suivant :
<pre>&lt;header&gt;
    &lt;hgroup&gt;
        &lt;h1&gt;Mon logo qu'il est beau&lt;/h1&gt;
        &lt;h2&gt;Mon Slogan qu'il est grand&lt;/h2&gt;
    &lt;/hgroup&gt;
    &lt;p&gt;Ma description étendue qu'elle est bien fichue [...]&lt;/p&gt;
&lt;/header&gt;</pre>
<small>Sous réserve que le logo en question soit composé en HTML et signifie quelque chose. Pendant longtemps, ce blogzine avait pour titre «CSS &amp; Webdesign», ce qui en faisait un titre efficace dans le sens où 1) l&#8217;expression était représentative du contenu et 2) signifiait quelque chose pour les moteurs de recherche. D&#8217;ailleurs, sans trop vouloir enfoncer le clou du SEO, si votre logo-titre n&#8217;est pas utile pour les moteurs de recherche (ex. css4design, logo en image), autant utiliser une balise <code>div</code>.</small></p>

<p>Pour intégrer notre document dans le site Web, nous allons l&#8217;envelopper avec une balise <code>article</code>. Puis, nous allons modifier le marquage du <code>header</code> pour supprimer la balise <code>h1</code> bien que les spécifications HTML5 ne nous y oblige pas. L&#8217;idée est de garder la ou les balises <code>h1</code> uniquement à l&#8217;intérieur de la balise <code>article</code> pour optimiser le SEO <em>In Page</em>. Nous en profiterons pour remplacer la description du site par un résumé de l&#8217;article qui servira de chapô :
<pre>&lt;header&gt;
    &lt;p&gt;
        &lt;span id="logo"&gt;Mon logo qu'il est beau &lt;/span&gt;
        &lt;span id="slogan"&gt;Mon Slogan qu'il est grand&lt;/span&gt;
    &lt;p&gt;
    &lt;p&gt;Un résumé de l'article qui servira de chapô [...]&lt;/p&gt;
&lt;/header&gt;
&lt;article&gt;
    &lt;h1&gt;«La Tête Dans l'Asso» accueille les nouveaux adhérents&lt;/h1&gt;
    &lt;p&gt;Cette année, l'association a recueillie une centaine de nouveaux membres [...]&lt;/p&gt;
    &lt;h2&gt;La réunion d'intégration&lt;/h2&gt;
    &lt;p&gt;blablabla [...]&lt;/p&gt;
    &lt;h2&gt;Le livret d'intégration&lt;/h2&gt;
    &lt;p&gt;blablabla [...]&lt;/p&gt;
    &lt;h2&gt;Partenaires&lt;/h2&gt;
    &lt;ul&gt;
        &lt;li&gt;La Tête dans l'Ecu&lt;/li&gt;
        &lt;li&gt;La Tête allant vers... &lt;/li&gt;
    &lt;/ul&gt;
&lt;article&gt;</pre>
Pour continuer dans cette logique de donner la primeur au contenu principal de la page, le mieux est encore de le placer en premier dans le code. En effet, un des avantages du Web par rapport à l&#8217;imprimé, c&#8217;est que l&#8217;ordre d&#8217;affichage des éléments n&#8217;est pas forcément celui du code source. Ainsi, dans l&#8217;exemple, ci-dessus, on peut très bien placer le contenu de la balise <code>article</code> avant celui de <code>header</code> dans le code et inverser l&#8217;ordre d&#8217;affichage avec la propriété <code>float</code> ou <code>position: absolute</code>.</p>

<h2>Adaptez la feuille de style aux documents, pas l&#8217;inverse !</h2>

<p>Si les spécification du W3C autorisent &#8212; voire encouragent &#8212; l&#8217;utilisation de plusieurs balises <code>h1</code> pour structurer le contenu à l&#8217;aide de <code>section</code>, il me semble important d&#8217;adapter le balisage HTML à la sémantique des documents. Vous trouvez ça bateau ? Pourtant je remarque que l&#8217;on a tendance à baliser les documents de manière à les adapter à la feuille de style que l&#8217;on a déjà, plutôt que d&#8217;adapter la feuille de style aux documents ! Cela passe par une analyse approfondie des documents existants, par la création d&#8217;une feuille de style CSS souple et par la capacité de remettre son travail en question selon la nature des documents à venir.</p>

<h2>Linkographie</h2>

<ul>
    <li><a href="http://www.htmlzengarden.com/2009/02/combien_peut-on_mettre_de_h1_dans_une_page/">Combien peut-on mettre de « H1 » dans une page ?</a></li>
    <li><a href="http://www.cafe-referencement.com/seo-technique/un-balisage-semantique-ideal-existe-til-339">Un balisage sémantique idéal existe-t&#8217;il</a></li>
    <li><a href="http://www.laurentbourrelly.com/blog/874.php">Non, je n’ai pas de mots clés dans l’URL</a></li>
    <li><a href="http://www.laurentbourrelly.com/blog/640.php">H1 ne sert pas à faire n’importe quoi</a>.</li>
    <li><a href="http://css4design.com/wordpress-une-meilleure-indexation-avec-not-at-all-in-one-seo">WordPress — Une meilleure indexation avec Not at All in One SEO</a></li>
    <li><a href="http://forum.alsacreations.com/topic-6-8173-1-Guide-accessiweb.html">Accessibilité Web et ordre des éléments dans le flux</a></li>
    <li><a href="http://www.accessiweb.org/fr/guide_accessiweb/thema09-structuration-de-l-information.html">Guide AccessiWeb : structuration de l&#8217;information</a></li>
    <li><a href="http://www.accessiweb.org/fr/guide_accessiweb/guide-accessiweb-glossaire.html#titre_h">Glossaire AccessiWeb : Les titres</a></li>
    <li><a href="https://gist.github.com/568155">HTML5 titles Inception</a></li>
</ul>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/html-5-outline-page-web-section-h1' title='HTML 5 Outline &#8212; Quelques notes sur la structure des pages Web avec h1 et section'>HTML 5 Outline &#8212; Quelques notes sur la structure des pages Web avec h1 et section</a></li><li><a href='http://css4design.com/composes-html-logo-baseline-potentiel-seo' title='8 composés HTML pour le logo et la « baseline » et leur potentiel SEO'>8 composés HTML pour le logo et la « baseline » et leur potentiel SEO</a></li><li><a href='http://css4design.com/programme-formation-html-css' title='Quelques notes &#8212; Programme de formation HTML &amp; CSS'>Quelques notes &#8212; Programme de formation HTML &#038; CSS</a></li><li><a href='http://css4design.com/wordpress-a-z-extension-plugin' title='WordPress de A à Z &#8212; E comme Extensions (les plugins)'>WordPress de A à Z &#8212; E comme Extensions (les plugins)</a></li><li><a href='http://css4design.com/fonctions-metier-integrateur-web' title='Quelques notes sur les fonctions de l&#8217;intégrateur web et de l&#8217;intégratrice web'>Quelques notes sur les fonctions de l&#8217;intégrateur web et de l&#8217;intégratrice web</a></li></ul>
 <p><a href="http://css4design.com/?flattrss_redirect&amp;id=8356&amp;md5=2689ee23cb61e9fa9755e99532cd2237" title="Flattr" target="_blank"><img src="http://css4design.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css4design.com/quelques-notes-sur-la-balise-h1-avec-html5/feed</wfw:commentRss>
		<slash:comments>35</slash:comments>
		<atom:link rel="payment" href="http://css4design.com/?flattrss_redirect&amp;id=8356&amp;md5=2689ee23cb61e9fa9755e99532cd2237" type="text/html" />
	</item>
		<item>
		<title>Framework CSS &#8212; Sémantique, maquette dynamique et autres notes</title>
		<link>http://css4design.com/framework-css-semantique-maquette-dynamique-et-autres-notes</link>
		<comments>http://css4design.com/framework-css-semantique-maquette-dynamique-et-autres-notes#comments</comments>
		<pubDate>Mon, 08 Mar 2010 07:12:41 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Conception de site web]]></category>
		<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Edito]]></category>
		<category><![CDATA[Framework CSS]]></category>
		<category><![CDATA[Grille]]></category>
		<category><![CDATA[Maquette]]></category>
		<category><![CDATA[Mise en page]]></category>
		<category><![CDATA[Sémantique]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=5540</guid>
		<description><![CDATA[Les frameworks CSS ont fait couler beaucoup de pixels : d&#8217;un côté, ils proposent une méthode à l&#8217;épreuve des balles pour placer les blocs sur sur la page en tenant compte des contraintes cross-browser ; de l&#8217;autre, ils ajoutent des classes CSS superflues dans le code HTML pour la présentation des contenus, ce qui n&#8217;est pas jugé «sémantique» par les farouches défenseurs d&#8217;une séparation entre le fond et la forme. Voilà en gros l&#8217;avantage principal et l&#8217;inconvénient majeur qu&#8217;on peut dégager si on met de côté le faux problème du poids de ces frameworks. Après avoir donné mon point de [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fframework-css-semantique-maquette-dynamique-et-autres-notes">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fframework-css-semantique-maquette-dynamique-et-autres-notes&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p>Les frameworks CSS ont fait couler beaucoup de pixels : d&#8217;un côté, ils proposent une méthode à l&#8217;épreuve des balles pour placer les blocs sur sur la page en tenant compte des contraintes <em>cross-browser </em>; de l&#8217;autre, ils ajoutent des classes CSS superflues dans le code HTML pour la présentation des contenus, ce qui n&#8217;est pas jugé «sémantique» par les farouches défenseurs d&#8217;une séparation entre le fond et la forme. Voilà en gros l&#8217;avantage principal et l&#8217;inconvénient majeur qu&#8217;on peut dégager si on met de côté le faux problème du poids de ces frameworks. Après avoir donné mon point de vue sur cette question de «sémantique» j&#8217;expliquerais comment l&#8217;ajout de classes liées à la présentation dans le HTML peut s&#8217;avérer très pratique à l&#8217;heure du web «sur-mesure».<span id="more-5540"></span></p>

<h2>Comment ça marche, un framework CSS ?</h2>

<p>Le positionnement des blocs avec un framework CSS s&#8217;effectue <em>grosso modo</em> en attribuant une classe CSS pour spécifier les propriétés <code>width</code> et <code>margin</code> aux blocs avec une ou <a href="http://css4design.com/retablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire">plusieurs techniques pour rétablir le flux HTML</a> après les éléments possédant la propriété <code>float</code>.</p>

<p>Dans une grille en 16 colonnes, pour placer une image sur 4 colonnes et du texte sur les 12 restantes, on pourra utiliser le marquage HTML suivant (je vous fais grâce des CSS, le code HTML est assez explicite) :
<pre>&lt;div id="header" class="grid_16 clear"&gt;
    &lt;div class="grid_4"&gt;&lt;img src="/img/logo.png" /&gt;&lt;/div&gt;
    &lt;div class="grid_12 last"&gt;Mon texte sur 12 colonnes&lt;/div&gt;
&lt;/div&gt;</pre>
Pour beaucoup, les classes .<em>col_16</em> et <em>last</em> (voire même .<em>clear</em>) sont une intrusion, que dis-je, une déclaration de guerre de la forme contre le fond. Pour tout dire, je suis assez partagé moi-même sur le sujet, mais je m&#8217;accroche&#8230; J&#8217;utilise souvent la partie «grille» des <em>frameworks</em> pour mettre en place la structure des pages car j&#8217;ai déjà l&#8217;habitude de concevoir le design d&#8217;un site avec un découpage en colonnes.</p>

<p>Attention, pas forcément du <em>tout fait</em> en <em>950px</em> ou <em>960px </em>mais en déterminant le «pas» de la grille selon <strong>mes</strong> besoins. Je laisse ensuite  les fastidieux calculs à un générateur de grille, qu&#8217;il s&#8217;agisse de <a href="http://css4design.com/boks-editeur-visuel-de-grilles-css-pour-blueprint">boks</a> pour <a href="http://www.blueprintcss.org/">Blueprint</a> ou encore de <a href="http://headless-studios.com/960.ls/">960 Layout System</a> pour <a href="http://960.gs/">960.gs</a>.</p>

<h2>Un peu (ou pas) de sémantique</h2>

<p>Les classes .<em>span-4</em> ou .<em>grid_4</em> ne sont pas sémantiques dans le sens où &#8212; pour certains &#8212; elles véhiculent une notion d&#8217;apparence et non pas d&#8217;utilité, de sens. Ainsi, une classe .<em>warning </em>est préférable à une classe .<em>rouge</em> même si la couleur de .<em>warning</em> est rouge ; si on change d&#8217;avis, on aura l&#8217;air fin avec notre classe .<em>rouge</em> affichant du texte orange. L&#8217;idée, c&#8217;est d&#8217;être à la fois très précis et suffisamment générique pour s&#8217;adapter à toutes les situations.</p>

<p>Pour revenir aux classes spécifiant la largeur des colonnes, j&#8217;ai toujours pensé qu&#8217;elles apportaient du sens, un peu à l&#8217;image de la presse quotidienne où l&#8217;on met un titre sur 8 colonnes, signifiant ainsi son importance par rapport aux autres contenus (à supposer que la maquette comporte un maximum de 8 colonnes).</p>

<p>Le côté sémantique de la chose est surtout à mettre en regard des contenus à maquetter : s&#8217;ils n&#8217;ont pas de sens en eux-mêmes, toute la sémantique du monde n&#8217;y pourra rien changer :D</p>

<p>Pour finir avec cette question de sémantique, il reste la possibilité de renommer les classes .<em>span-x</em> ou .<em>grid_x</em>. En fonction de votre projet, vous pourrez utiliser des termes plus en accord avec vos contenus comme .<em>a-la-une</em> pour .<em>span-16</em>, <em>.breves</em> pour <em>.span-4</em> ou encore <em>.entrefilet</em> pour <em>.span-2</em>, etc. On peut donc considérer que des contenus auxquels on applique un .<em>span-16</em> sont plus importants que ceux auxquels ont attribut la classe .<em>span-4</em> et ainsi de suite.</p>

<p>Comme j&#8217;ai déjà eu l&#8217;occasion de le dire dans <a href="http://css4design.com/framework-css-semantique-comment-je-vois-les-choses">Framework CSS sémantique ? Comment je vois les choses</a> (et au risque de me répéter) :</p>

<blockquote>[...] la suite des <em>.span-x</em> peut se comprendre comme l’importance accordées à chaque bloc : du moins important (<em>.span-1</em>) au plus important (<em>.span-24</em>), à l’image de la presse écrite où un article surmonté d’un titre en «8 colonnes à Une» mérite plus d’attention qu’un entrefilet sur 2 colonnes.</blockquote>

<h2>Les avantages des frameworks CSS</h2>

<h3>Standardiser les méthodes de travail</h3>

<p>Quand plusieurs personnes interviennent sur le code HTML pour placer ou déplacer des éléments (ex. supprimer ou ajouter une sidebar, un bloc de contenu, etc.) il vaut mieux avoir un jeu de classes CSS (issus d&#8217;un framework ou non, d&#8217;ailleurs) pour éviter que chaque intervenant bidouille le fichier CSS avec sa «méthode» : certains sont adeptes des <code>position: absolute</code>, d&#8217;autres raffolent des <code>float: left</code>, d&#8217;autres des <code>table</code>, etc. Avec des classes standardisées comme <em>span-x</em>, <em>last</em> et les <em>clearfix</em> qui vont avec, tout devient plus simple et cohérent.</p>

<h3>Des maquettes dynamiques côté serveur ou client grâce aux grilles</h3>

<p>Autre argument qui milite en faveur de la mise en place d&#8217;une grille avec un framework, c&#8217;est qu&#8217;en travaillant de cette manière, il devient possible de modifier dynamiquement la mise en page côté serveur avec PHP ou côté client avec Javascript.</p>

<p>Pour distribuer votre contenu sur 4 colonnes au lieu de 8, il suffira de modifier tout ou partie du nom de la classe utilisée (le «4» de col_4 par «8», par exemple) sans être obligé d&#8217;intervenir sur la feuille de style ou d&#8217;en charger une autre à la volée.</p>

<h3>Frameworks PHP, Javascript et pourquoi pas CSS ?</h3>

<p>Les critiques concernant les frameworks CSS sont souvent les mêmes que celles qui ont été faites contre les frameworks PHP ou Javascript avant que leur utilisation se généralise. Pour illustrer mon propos, voici un extrait de l&#8217;intervention de <a href="http://www.appli-box.com/">Didier Galland</a> sur <a href="http://groups.google.com/group/webdevfr?hl=fr">WebDevFr</a> à propos de l&#8217;industrialisation de l&#8217;intégration web :</p>

<blockquote>On a tenu exactement le même discours à propos de PHP, puis à propos de javascript. Les frameworks dans ces deux domaines ont largement prouvé qu&#8217;ils permettaient des améliorations. Je ne vois pas pourquoi l&#8217;intégration (css/html + javascript) ne pourrait pas bénéficier des mêmes améliorations. On a le droit d&#8217;utiliser son framework personnel dans son coin,  mais pour le bien de mon agence, je ne peux pas bloquer mes futures évolutions (en personne ou en techniques) à cause de cette attitude, j&#8217;aurais donc forcément tendance à privilégier un professionnel au courant de ces techniques dans mes recrutements ou mes contracteurs freelances.</blockquote>

<h3>Aller au bout de la logique du reset CSS</h3>

<p>Tout le monde connait le <a href="http://meyerweb.com/eric/tools/css/reset/">reset CSS d&#8217;Eric Meyer</a> que l&#8217;on trouve dans de nombreux framework. Quand on y réfléchit cinq minutes, la suite logique de ce reset, c&#8217;est le frameworks. Il faut bien voir que la plupart d&#8217;entre eux ne sont pas spécialement très lourds et quand on fait le compte des déclarations redondantes qui se trouvent dans une feuille de style un peu touffue (parce qu&#8217;évidement, si votre projet tient en 20 lignes de CSS, c&#8217;est peut-être pas la peine de se poser la question), on se rend compte que les frameworks ne sont pas si gourmands.</p>

<h3>Remplacer les styles par défaut des navigateurs</h3>

<p>J&#8217;ai toujours trouvé que les styles par défaut appliqués par les navigateurs manquait d&#8217;originalité et de <em>peps</em>. Il suffit de mettre un soupçon de <a href="http://code.google.com/p/css-boilerplate/">Boilerplate </a>ou de <a href="http://csswizardry.com/typogridphy/">Typogridfy </a>pour que de très banal, la mise en page par défaut prenne un coup de jeune et de modernité !</p>

<h2><strong>Comment déterminer le «pas de la grille»</strong></h2>

<p>Un argument récurrent qui va à l&#8217;encontre de l&#8217;utilisation des grilles concerne la partie conception graphique. Les grilles entraveraient la créativité. Pourquoi pas. Mais je mets au défi quiconque de proposer un design de site web qui ne rentrerait pas dans une grille. Une grille n&#8217;est pas forcément synonyme de 12, 16 ou 24 colonnes. Il peut s&#8217;agir de 2, 4, 6 ou 8 colonnes et pourquoi pas d&#8217;un nombre impair de colonnes comme 1 colonne (un peu le degré zéro de la grille, mais bon&#8230;), 3 ou 5 colonnes pour bénéficier d&#8217;une asymétrie créative ? Tout est possible.</p>

<p>Pour aller au plus simple, si l&#8217;on veut un site avec un bloc de contenu et une barre latérale, on pourra diviser la page en 3 parties pour obtenir les ratios 2/3 pour le contenu principal et 1/3 pour la sidebar ou en 4 parties, soit 3/4 pour le contenu principal et 1/4 pour la barre latérale. On pourra se baser sur les proportions 1/3 ou 1/4 pour la largeur des images accompagnant les textes.</p>

<p>Ensuite, rien n&#8217;empêche de diviser chaque colonne en plusieurs parties pour granulariser l&#8217;information selon les besoins : affichage de miniatures, etc. Celà permet d&#8217;obtenir une mise en page très simple tout en bénéficiant d&#8217;une système de grille souple et efficace.</p>

<h2>Quelques liens à propos des frameworks et des reset CSS</h2>

<ul>
    <li><a href="http://css4design.com/choisir-un-frameworks-css">30 frameworks CSS — Mettez une grille (ou pas) dans votre site web</a></li>
    <li><a href="http://css4design.com/frameworks-css-reset-css-design-from-scratch">Frameworks CSS + Reset CSS : design from scratch</a></li>
    <li><a href="http://css4design.com/quelques-notes-sur-les-grilles-de-mise-en-page">Quelques notes sur les grilles de mise en page</a></li>
    <li><a href="http://css4design.com/grid-design-quelques-notes-sur-linteret-des-grilles-de-mise-en-page">Grid Design — Quelques notes sur l’intérêt des grilles de mise en page</a></li>
    <li><a href="http://css4design.com/framework-css-semantique-comment-je-vois-les-choses">Framework CSS sémantique ? Comment je vois les choses</a></li>
    <li><a href="http://css4design.com/framework-css-mettez-vos-grilles-au-pas">Framework CSS — mettez vos grilles au pas !</a></li>
    <li><a href="http://css4design.com/nombre-d-or-suite-de-fibonacci-et-autres-grilles-de-mise-en-page-pour-le-design-web">Nombre d’or, suite de Fibonacci et autres grilles de mise en page pour le design web</a></li>
    <li><a rel="bookmark" href="http://css4design.com/apres-reset-reloaded-eric-meyer-fait-risette-avec-resetting-again">Styles CSS par défaut : après Reset Reloaded, Eric Meyer fait encore risette avec Resetting Again</a></li>
    <li><a rel="bookmark" href="http://css4design.com/5-reset-css-a-la-loupe-pour-une-remise-a-zero-des-valeurs-par-defaut-des-navigateurs">5 Reset CSS à la loupe pour une remise à zéro des valeurs par défaut des navigateurs</a></li>
</ul>

<h2>Pas de conclusion hâtive !</h2>

<p>Je pense que j&#8217;aurais l&#8217;occasion de revenir sur ces questions (oui encore) notamment sur la partie grille et créativité qui semble passionner beaucoup de monde à juste titre. N&#8217;hésitez pas à partager vos expériences en la matière. A bientôt !</p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/indesign-grille-mise-en-page-zoning-gabarit' title='Grille de mise en page, « zoning » et gabarit avec Adobe InDesign'>Grille de mise en page, « zoning » et gabarit avec Adobe InDesign</a></li><li><a href='http://css4design.com/wdfr-impression-grille-dessin-croquis-maquette' title='#WDFR &#8212; Imprimez votre grille pour dessiner vos croquis'>#WDFR &#8212; Imprimez votre grille pour dessiner vos croquis</a></li><li><a href='http://css4design.com/frameworks-css-blueprint-vs-960-grid-system' title='Frameworks CSS &#8212; Blueprint vs 960 Grid System'>Frameworks CSS &#8212; Blueprint vs 960 Grid System</a></li><li><a href='http://css4design.com/frameworks-css-reset-css-design-from-scratch' title='Frameworks CSS + Reset CSS : design from scratch'>Frameworks CSS + Reset CSS : design from scratch</a></li><li><a href='http://css4design.com/display-table-display-table-cell' title='display: table et display: table-cell pour faire une mise en page web ?'>display: table et display: table-cell pour faire une mise en page web ?</a></li></ul>
 <p><a href="http://css4design.com/?flattrss_redirect&amp;id=5540&amp;md5=2231dbe9b374dcd5b70f577e1de043c7" title="Flattr" target="_blank"><img src="http://css4design.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css4design.com/framework-css-semantique-maquette-dynamique-et-autres-notes/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<atom:link rel="payment" href="http://css4design.com/?flattrss_redirect&amp;id=5540&amp;md5=2231dbe9b374dcd5b70f577e1de043c7" type="text/html" />
	</item>
		<item>
		<title>Granularisation du balisage HTML : parce que nos documents le valent bien&#8230;</title>
		<link>http://css4design.com/granularisation-du-balisage-html-parce-que-nos-documents-le-valent-bien</link>
		<comments>http://css4design.com/granularisation-du-balisage-html-parce-que-nos-documents-le-valent-bien#comments</comments>
		<pubDate>Wed, 30 Apr 2008 07:51:41 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Sémantique]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.css4design.com/?p=313</guid>
		<description><![CDATA[Suite à mon dernier billet sur les différentes manières d&#8217;aborder le balisage HTML d&#8217;une hCard, Neovov et burningHat ont soulevé la question de la sur-sémantisation du code d&#8217;une manière générale et de la sur-utilisation des listes en particulier. Neovov, par exemple, ne voit pas pourquoi on devrait mettre des listes partout. burninHat quant à lui, se demande si l&#8217;on ne n&#8217;accorde pas trop d&#8217;importance à la description de notre code HTML&#8230; Magneto ! Trop de listes tue les listes ? Il n&#8217;y a jamais trop de listes, car tout est une liste : le mot est une liste ordonnée de [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fgranularisation-du-balisage-html-parce-que-nos-documents-le-valent-bien">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fgranularisation-du-balisage-html-parce-que-nos-documents-le-valent-bien&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p>Suite à mon dernier billet sur les différentes manières d&#8217;aborder le <a href="/proposition-de-balisage-html-semantique-du-microformat-hcard">balisage HTML d&#8217;une hCard</a>, <a href="http://blog.neovov.com/">Neovov</a> et <a href="http://blog.burninghat.net/">burningHat</a> ont soulevé la question de la <em>sur-sémantisation</em> du code d&#8217;une manière générale et de la <em>sur-utilisation</em> des listes en particulier. Neovov, par exemple, ne voit pas pourquoi on devrait mettre des listes partout. burninHat quant à lui, se demande si l&#8217;on ne n&#8217;accorde pas trop d&#8217;importance à la description de notre code HTML&#8230; Magneto !<span id="more-228"></span></p>

<h3>Trop de listes tue les listes ?</h3>

<p>Il n&#8217;y a jamais trop de listes, car tout est une liste :</p>

<ul>
    <li>le mot est une liste ordonnée de lettres,</li>
    <li>la phrase est une liste ordonnée de mots,</li>
    <li>le paragraphe est une liste ordonnée de phrases,</li>
    <li>le texte est une liste ordonnée de paragraphes.</li>
</ul>

<p><small>Dans ces conditions, on peut même se demander pourquoi utiliser des balises <samp>p</samp> pour les paragraphes au lieu d&#8217;une bonne vieille balise <samp>li</samp>&#8230; Et oui, il est possible de faire des <samp>p</samp> dans le <samp>li</samp> (ok, elle était facile, celle-là&#8230;) :D</small></p>

<p>Plus sérieusement, un des reproches que l&#8217;on fait souvent au HTML, c&#8217;est son manque de balises pour décrire les contenus. Alors ne boudons pas notre plaisir et profitons pleinement de nos 3 sortes de listes :)</p>

<h3>Des descriptions à la Zola ?</h3>

<p>La question que je me pose toujours quand je suis face à un document à intégrer htmlement parlant, c&#8217;est :  <q>à quoi celà devrait-il (va-t-il) ressembler en l&#8217;absence de feuille de style</q> ou plus précisément : <q>comment faire pour que la forme du document soit le plus proche possible du fond, sans CSS</q>.</p>

<p>Je me rends compte que <strong>l&#8217;utilisation des listes à chaque fois que celà est possible améliore énormément la lisibilité des documents</strong> en donnant un aperçu de leur structure dès le premier coup d&#8217;oeil.</p>

<h3>Reçu HTML 5 sur 7 ;)</h3>

<p>Je suis convaincu que la granularité du balisage HTML doit être la plus fine et la plus précise possible. A cet égard, les travaux sur le <a href="http://www.w3.org/html/wg/html5/">HTML5</a> vont dans ce sens avec l&#8217;arrivée prochaine des balises relatives au découpage des documents comme <a href="http://www.w3.org/html/wg/html5/#the-section">section</a>, <a href="http://www.w3.org/html/wg/html5/#the-nav">nav</a>, <a href="http://www.w3.org/html/wg/html5/#the-article">article</a>, <a href="http://www.w3.org/html/wg/html5/#the-aside">aside</a>, <a href="http://www.w3.org/html/wg/html5/#the-header">header</a>, <a href="http://www.w3.org/html/wg/html5/#the-footer">footer</a> ou encore la présence de l&#8217;élément <a href="http://www.w3.org/html/wg/html5/#the-dialog">dialog</a> pour regrouper certains type de contenus. Cet balise dialog qui s&#8217;ajoute d&#8217;ailleurs aux éléments permettant de faire &#8230; des listes.</p>

<p>Ainsi, même si l&#8217;on pouvait utiliser les listes de définition pour <a href="http://www.pompage.net/pompe/listesdefinitions/">mettre en forme des dialogues</a>, le HTML 5 pousse le découpage un cran au-dessus. Une des raisons qui milite selon moi pour cette granularisation, c&#8217;est l&#8217;accessibillité des documents pour les lecteurs vocaux qui pourront moduler l&#8217;intonation en fonction des différents type de balise HTML.</p>

<p><small>Note : les plus observateurs d&#8217;entre vous auront peut-être remarqué que j&#8217;aurais pu créer une liste non-ordonnée dans l&#8217;avant-dernier paragraphe avec l&#8217;énumération qui commence par section, nav, etc. Je n&#8217;ai pas opté pour une liste, car le flux naturel de lecture risque d&#8217;être perturbé par un découpage trop systématique ;)</small></p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/proposition-de-balisage-html-semantique-du-microformat-hcard' title='Proposition de balisage HTML sémantique du microformat hCard'>Proposition de balisage HTML sémantique du microformat hCard</a></li><li><a href='http://css4design.com/programme-formation-html-css' title='Quelques notes &#8212; Programme de formation HTML &amp; CSS'>Quelques notes &#8212; Programme de formation HTML &#038; CSS</a></li><li><a href='http://css4design.com/markdown-un-plugin-wordpress-pour-produire-du-xhtml' title='Markdown, un plugin WordPress pour produire du XHTML facilement, rapidement et proprement'>Markdown, un plugin WordPress pour produire du XHTML facilement, rapidement et proprement</a></li><li><a href='http://css4design.com/retablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire' title='Rétablir le flux après des éléments flottants en CSS sans balise HTML supplémentaire'>Rétablir le flux après des éléments flottants en CSS sans balise HTML supplémentaire</a></li><li><a href='http://css4design.com/design-css-liquide-ou-fluide-encadre-d-images-repetees-sans-table' title='Design CSS liquide (ou fluide) encadré d&#039;images répétées&#8230; sans table'>Design CSS liquide (ou fluide) encadré d&#039;images répétées&#8230; sans table</a></li></ul>
 <p><a href="http://css4design.com/?flattrss_redirect&amp;id=228&amp;md5=c3d44d0261b9a98500f5541b28128ced" title="Flattr" target="_blank"><img src="http://css4design.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css4design.com/granularisation-du-balisage-html-parce-que-nos-documents-le-valent-bien/feed</wfw:commentRss>
		<slash:comments>25</slash:comments>
		<atom:link rel="payment" href="http://css4design.com/?flattrss_redirect&amp;id=228&amp;md5=c3d44d0261b9a98500f5541b28128ced" type="text/html" />
	</item>
		<item>
		<title>Proposition de balisage HTML sémantique du microformat hCard</title>
		<link>http://css4design.com/proposition-de-balisage-html-semantique-du-microformat-hcard</link>
		<comments>http://css4design.com/proposition-de-balisage-html-semantique-du-microformat-hcard#comments</comments>
		<pubDate>Tue, 29 Apr 2008 09:57:51 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Intégration web]]></category>
		<category><![CDATA[hCard]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Microformats]]></category>
		<category><![CDATA[Sémantique]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.css4design.com/?p=312</guid>
		<description><![CDATA[En lisant ce billet de Frédéric de Villamil sur le compte rendu du troisième WASP café France dans lequel il présente un exemple de structuration du microformat hCard, je n&#8217;ai pu m&#8217;empêcher d&#8217;ajouter mon grain de sel pour remplacer la divite et la spanite par une structure à base de listes imbriquées que je trouve comment dire&#8230; plus sémantique&#8230; En effet, dans leur précipitation à mettre en avant les attributs des microformats, les promoteurs du &#171;&#160;web sémantique&#160;&#187; en oublient souvent de travailler le code HTML qui se trouve autour. Bien que les exemples donnés généralement soient destinés à être personnalisés, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fproposition-de-balisage-html-semantique-du-microformat-hcard">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fproposition-de-balisage-html-semantique-du-microformat-hcard&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p>En lisant <a href="http://fredericdevillamil.com/compte-rendu-de-latelier-web-semantique-du-troisieme-wasp-cafe-france">ce billet</a> de Frédéric de Villamil sur le compte rendu du troisième WASP café France dans lequel il présente un exemple de structuration du <a href="http://microformats.org/wiki/hcard-fr">microformat hCard</a>, je n&#8217;ai pu m&#8217;empêcher d&#8217;ajouter mon grain de sel pour remplacer la <em>divite</em> et la <em>spanite</em> par une structure à base de listes imbriquées que je trouve comment dire&#8230; plus sémantique&#8230; <span id="more-227"></span></p>

<p>En effet, dans leur précipitation à mettre en avant les attributs des microformats, les promoteurs du &laquo;&nbsp;web sémantique&nbsp;&raquo; en oublient souvent de travailler le code HTML qui se trouve autour. Bien que les exemples donnés généralement soient destinés à être personnalisés, force est de constater que les exemples sont souvent repris tels quels. <em>Save the markup, save the web? Maybe</em> ;-)</p>

<h3>L&#8217;exemple hCard fournit par Frédéric</h3>

<p>D&#8217;après l&#8217;exemple donné dans la documentation officielle :
<pre>&lt;div class="vcard"&gt;
  &lt;a class="fn n url" href="http://fredericdevillamil.com"&gt;
    Frédéric de Villamil
  &lt;/a&gt;
  &lt;div class="adr"&gt;
      &lt;span class="type"&gt;Domicile&lt;/span&gt;:
      &lt;div class="street-address"&gt;12 rue Danton&lt;/div&gt;
      &lt;span class="postal-code"&gt;94270&lt;/span&gt;
      &lt;span class="locality"&gt;Le Kremlin-Bicêtre&lt;/span&gt;,
      &lt;div class="country-name"&gt;France&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="tel"&gt;
      &lt;span class="type"&gt;Mobile&lt;/span&gt; +33-6-62-1337
  &lt;/div&gt;
  &lt;div&gt;Email:
      &lt;span class="email"&gt;frederic@de-villamil.com&lt;/span&gt;
  &lt;/div&gt;
&lt;/div&gt;</pre></p>

<h3>Ma proposition de balisage pour le format hCard</h3>

<p>J&#8217;ai ajouté quelques attributs pour enrichir un peu l&#8217;ensemble :
<pre>&lt;ol class="vcard"&gt;
  &lt;li&gt;
      &lt;h4&gt;Identités&lt;/h4&gt;
      &lt;ul&gt;
          &lt;li class="fn n url"&gt;
            &lt;a href="http://www.brunobichet.fr"&gt;
              Bruno Bichet
            &lt;/a&gt;
          &lt;/li&gt;
          &lt;li class="fn nickname url"&gt;
            &lt;a href="http://www.css4design.com"&gt;
              br1o
            &lt;/a&gt;
          &lt;/li&gt;
          &lt;li class="photo url"&gt;
            &lt;a href="http://www.css4design.com/identite_100x100.png"&gt;
              Tu veux ma photo ?
            &lt;/a&gt;
          &lt;/li&gt;
          &lt;li class="note"&gt;
            Intégrateur web, blogdesigner et formateur
          &lt;/li&gt;
      &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
      &lt;h4 class="type"&gt;Adresse&lt;/h4&gt;
      &lt;ul class="adr"&gt;
          &lt;li class="street-address"&gt;1, rue de l'intégration HTML&lt;/li&gt;
          &lt;li class="postal-code"&gt;69007&lt;/li&gt;
          &lt;li class="locality"&gt;Lyon sur CSS&lt;/li&gt;
          &lt;li class="country-name"&gt;France&lt;/li&gt;
      &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
      &lt;h4&gt;Téléphones&lt;/h4&gt;
      &lt;ul class="tel"&gt;
          &lt;li class="type"&gt;Mobile : +33 6 00 00 00 00&lt;/li&gt;
          &lt;li class="type"&gt;Fixe : +33 4 00 00 00 00&lt;/li&gt;
      &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
      &lt;h4&gt;Emails&lt;/h4&gt;
      &lt;ul&gt;
          &lt;li class="email"&gt;infographiste@gmail.com&lt;/li&gt;
          &lt;li class="email"&gt;bruno.bichet@gmail.com&lt;/li&gt;
          &lt;li class="email"&gt;br1o@live.fr&lt;/li&gt;
      &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;</pre>
Ce qui donne la mise en forme suivante selon la feuille de style employée globalement sur le blog :</p>

<ol class="vcard">
    <li>
<h4>Identités</h4>
<ul>
    <li class="fn n url"><a href="http://www.brunobichet.fr">Bruno Bichet</a></li>
    <li class="fn nickname url"><a href="http://www.css4design.com">br1o</a></li>
    <li class="photo url"><a href="http://www.css4design.com/identite_100x100.png">Tu veux ma photo ?</a></li>
    <li class="note">Intégrateur web, blogdesigner et formateur</li>
</ul>
</li>
    <li>
<h4 class="type">Adresse</h4>
<ul class="adr">
    <li class="street-address">1, rue de l&#8217;intégration HTML</li>
    <li class="postal-code">69007</li>
    <li class="locality">Lyon sur CSS</li>
    <li class="country-name">France</li>
</ul>
</li>
    <li>
<h4>Téléphones</h4>
<ul class="tel">
    <li class="type">Mobile : +33 6 00 00 00 00</li>
    <li class="type">Fixe : +33 4 00 00 00 00</li>
</ul>
</li>
    <li>
<h4>Emails</h4>
<ul>
    <li class="email">infographiste@gmail.com</li>
    <li class="email">bruno.bichet@gmail.com</li>
    <li class="email">br1o@live.fr</li>
</ul>
</li>
</ol>

<h3>La même hCard en liste de définition</h3>

<p><strong>Mise-à-jour :</strong> Sur une remarque judicieuse d&#8217;<a href="http://www.ajblog.fr/">Aymeric</a> dans <a href="http://www.css4design.com/proposition-de-balisage-html-semantique-du-microformat-hcard#comment-3863">ce commentaire</a>, voici la version &laquo;&nbsp;liste de définition&nbsp;&raquo;. Cette version semble effectivement plus adaptée : plus légère et le code est plus clair. Que du bon air, heu&#8230; du bonheur :)
<pre>&lt;dl class="vcard"&gt;
  &lt;dt&gt;Identités&lt;/dt&gt;
  &lt;dd class="fn n url"&gt;&lt;a href="http://www.brunobichet.fr"&gt;Bruno Bichet&lt;/a&gt;&lt;/dd&gt;
  &lt;dd class="fn nickname url"&gt;&lt;a href="http://www.css4design.com"&gt;br1o&lt;/a&gt;&lt;/dd&gt;
  &lt;dd class="photo url"&gt;&lt;a href="http://www.css4design.com/identite_100x100.png"&gt;Tu veux ma photo ?&lt;/a&gt;&lt;/dd&gt;
  &lt;dd class="note"&gt;Intégrateur web, blogdesigner et formateur&lt;/dd&gt;</p>

<p>&lt;dt class="type"&gt;Adresse&lt;/dt&gt;
  &lt;dd class="adr street-address"&gt;1, rue de l'intégration HTML&lt;/dd&gt;
  &lt;dd class="adr postal-code"&gt;69007&lt;/dd&gt;
  &lt;dd class="adr locality"&gt;Lyon sur CSS&lt;/dd&gt;
  &lt;dd class="adr country-name"&gt;France&lt;/dd&gt;</p>

<p>&lt;dt&gt;Téléphones&lt;/dt&gt;
  &lt;dd class="tel type"&gt;Mobile : +33 6 00 00 00 00&lt;/dd&gt;
  &lt;dd class="tel type"&gt;Fixe : +33 4 00 00 00 00&lt;/dd&gt;</p>

<p>&lt;dt&gt;Emails&lt;/dt&gt;
  &lt;dd class="email"&gt;infographiste@gmail.com&lt;/dd&gt;
  &lt;dd class="email"&gt;bruno.bichet@gmail.com&lt;/dd&gt;
  &lt;dd class="email"&gt;br1o@live.fr&lt;/dd&gt;
&lt;/dl&gt;</pre>
Ce qui nous donne le résultat brut de décoffrage suivant. (A noter que cette version oblige à ajouter certaine classes comme <em>adr</em> ou <em>tel</em> à chaque entrée de définition alors que dans la version précédente, nous avions la liste imbriquée <em>ul</em> pour englober l&#8217;ensemble) :</p>

<dl class="vcard"> <dt>Identités</dt> <dd class="fn n url"><a href="http://www.brunobichet.fr">Bruno Bichet</a></dd> <dd class="fn nickname url"><a href="http://www.css4design.com">br1o</a></dd> <dd class="photo url"><a href="http://www.css4design.com/identite_100x100.png">Tu veux ma photo ?</a></dd> <dd class="note">Intégrateur web, blogdesigner et formateur</dd> <dt class="type">Adresse</dt> <dd class="adr street-address">1, rue de l&#8217;intégration HTML</dd> <dd class="adr postal-code">69007</dd> <dd class="adr locality">Lyon sur CSS</dd> <dd class="adr country-name">France</dd> <dt>Téléphones</dt> <dd class="tel type">Mobile : +33 6 00 00 00 00</dd> <dd class="tel type">Fixe : +33 4 00 00 00 00</dd> <dt>Emails</dt> <dd class="email">infographiste@gmail.com</dd> <dd class="email">bruno.bichet@gmail.com</dd> <dd class="email">br1o@live.fr</dd> </dl>

<h3>Pour conclure</h3>

<p>Je ne suis pas un expert en microformats et je me pose pas mal de questions. Dans mon exemple, vaut-il mieux utiliser la classe <em>email</em> sur chaque élément de liste <samp>li</samp> ou une seule fois dans la balise <samp>ul</samp> ? Si vous avez des suggestions concernant le placement des attributs des microformats dans le balisage HTML, n&#8217;hésitez pas à participer ;)</p>

<p><strong>PS :</strong> connaissez-vous le site des <a href="http://microformateurs.org/">microformateurs</a> pour suivre l&#8217;actualité des microformats en français ?</p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/granularisation-du-balisage-html-parce-que-nos-documents-le-valent-bien' title='Granularisation du balisage HTML : parce que nos documents le valent bien&#8230;'>Granularisation du balisage HTML : parce que nos documents le valent bien&#8230;</a></li><li><a href='http://css4design.com/sandbox-un-theme-wordpress-pour-integrateurs-html-chic-qui-aiment-les-microformats' title='Quelques notes sur Sandbox, un thème WordPress pour intégrateurs html CHIC qui aiment les microformats'>Quelques notes sur Sandbox, un thème WordPress pour intégrateurs html CHIC qui aiment les microformats</a></li><li><a href='http://css4design.com/programme-formation-html-css' title='Quelques notes &#8212; Programme de formation HTML &amp; CSS'>Quelques notes &#8212; Programme de formation HTML &#038; CSS</a></li><li><a href='http://css4design.com/markdown-un-plugin-wordpress-pour-produire-du-xhtml' title='Markdown, un plugin WordPress pour produire du XHTML facilement, rapidement et proprement'>Markdown, un plugin WordPress pour produire du XHTML facilement, rapidement et proprement</a></li><li><a href='http://css4design.com/retablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire' title='Rétablir le flux après des éléments flottants en CSS sans balise HTML supplémentaire'>Rétablir le flux après des éléments flottants en CSS sans balise HTML supplémentaire</a></li></ul>
 <p><a href="http://css4design.com/?flattrss_redirect&amp;id=227&amp;md5=a784a7d3f9abe4bade3b27629377e954" title="Flattr" target="_blank"><img src="http://css4design.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css4design.com/proposition-de-balisage-html-semantique-du-microformat-hcard/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		<atom:link rel="payment" href="http://css4design.com/?flattrss_redirect&amp;id=227&amp;md5=a784a7d3f9abe4bade3b27629377e954" type="text/html" />
	</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced (User agent is rejected)

Served from: css4design.com @ 2012-02-09 03:29:55 -->
