les microformateurs

20 October 2008

Paris-Web 2008 : Atelier Microformats vs RDFa

Filed under: événements — Christophe Ducamp @ 3:12

Paris-Web est une association française sans but lucratif « loi 1901 » fondée en 2005 qui organise chaque année une grande manifestation sur l’accessibilité, la qualité et le design web.

Paris-Web 2008, 13, 14 et 15 novembreA marquer dans vos agendas : L’édition ParisWeb 2008 aura lieu le mois prochain. Pour 10 euros H.T., vous pouvez vous inscrire à la journée des ateliers du 15 qui comporte une session sur les microformats :

Quand :
le samedi 15 novembre, à partir de 8h30.
Où :
EFREI 30-32 avenue de la République, 94800 Villejuif, FR
Un atelier pourrait tout particulièrement intéresser les microformateurs et plus largement tous ceux qui s’intéressent au Web Sémantique :

RDFa vs Microformats

Présenté par : David Larlet (Welldev), Frédéric de Villamil (BlueKiwi Software)

Au-delà de la simple sémantique issue des balises HTML employées, il est possible de donner davantage de sens à vos contenus web afin de les rendre plus facilement réutilisables.

Issus de deux philosophies distinctes, RDFa et les Microformats sont deux approches différentes mais non concurrentes dont le but est de révolutionner les possibilités offertes par le data mining et les outils de recherche.

Nous tenterons de vous transmettre outils, techniques, trucs et astuces, mais surtout l’utilité de tels standards à travers des exemples concrets d’utilisation.

18 October 2008

Emily Lewis : “Parvenir à la Sémantique avec les Microformats, 4ème partie - hCalendar”

Filed under: hcalendar, ressources, traduction — Christophe Ducamp @ 17:53

Microformats

Nous voici de nouveau à plonger dans le monde excitant (au moins pour moi) des microformats. Basé sur ce que j’avais plannifié au début, cet article marque le mi-parcours de la série. A ce stade, j’ai discuté de trois implémentations des microformats sur A Blog Not Limited :

  • Spécifier les relations fondées sur les liens en utilisant l’attribut rel dans la 1ère Partie
  • Donner aux liens un “visage humain” en utilisant le microformat XFN dans la 2ème Partie
  • Décrire les personnes, les sociétés et lieux avec le microformat hCard dans la 3ème Partie

Pas mal. Mais cela ne fait que gratter la surface des microformats.

Aussi, allons droit vers le microformat hCalendar, que j’utilise pour ajouter de la sémantique et de la structure à mon contenu pour les événements et activités basés sur des dates et heures.

Origines : iCalendar

iCalendar (ou iCal) est un standard pour partager des données de calendrier. Plus fréquemment, il est utilisé dans les échanges d’email, bien qu’il ne soit pas seulement limité à ce médium.

Comme la hCard, hCalendar a été introduit de manière à ce que les auteurs web puissent inclure des données iCalendar dans leurs pages web.

hCalendar est une représentation 1:1 du iCalendar, qui permet aux parseurs d’extraire de l’information d’événement provenant d’une page web de manière à ce qu’elle puisse être utilisée dans les programmes de calendriers (parmi d’autres usages).

Note historique : iCalendar est basé sur vCalendar (Virtual Calendar), qui est une application de calendrier en open source pour publier et maintenir des événements et rendez-vous en ligne. vCalendar a été développé avec le format de carte de visite électronique vCard.

Activités Fondées sur Date/Heure

Le microformat hCalendar décrit le type d’information à propos d’évènements (ou tout ce qui est basé sur les date/heure) que vous auriez sur un calendrier, à savoir (mais non limité) :

  • Résumé
  • Date et heure
  • Lieu
  • Description détaillée
  • Récurrence

Les Bases

Tout comme hCard, hCalendar a quelques règles de base :

  • Les propriétés et sous-propriétés sont exprimées sous des valeurs class.
  • Du fait de la relation 1:1 avec iCalendar, les propriétés spécifiées hCalendar sont basées sur les noms de propriétés de iCalendar (à savoir, vevent).
  • Les propriétés et sous-propriétés sont sensibles à la casse.
  • La propriété “racine” ne peut pas être mélangée avec n’importe laquelle de ses propriétés. De ce fait, <p class="vevent summary"> est invalide.

Et même si ce n’est pas une règle, il est important de garder ça à l’esprit : le marquage utilisé importe peu.

Les valeurs de classe (propriétés/sous-propriétés) définissent le microformat hCalendar.

Ceci étant dit, j’encourage vraiment le marquage sémantique (et cela va sans dire valide).

Le Profil

Comme pour tous les microformats, il est recommandé de faire référence au profil hCalendar dans le <head> des pages web qui contiennent le microformat :

<head profile=”http://purl.org/uF/hCalendar/1.0/”>

Le W3C autorise plusieurs valeurs de profils, séparées par des espaces blancs, ainsi vous pouvez lister plusieurs profils si vous choisissez :

<head profile="http://gmpg.org/xfn/11 http://purl.org/uF/hCard/1.0/” http://purl.org/uF/hCalendar/1.0/“>

Cependant, si vous référencez des microformats-non-draft (et hCalendar est non-draft), vous pouvez utiliser à la place l’URL profil combinée, qui couvre tous les microformats non-draft :

<head profile="http://purl.org/uF/2008/03/“>

Si vous faites référence à la fois à des microformats non-draft et draft, vous pouvez utiliser ce profil combiné avec les profils pour les nouveaux/draft microformats.

L’exemple

Ce blog est encore relativement nouveau. Aussi, je n’ai pas eu beaucoup d’opportunités de lister de l’information d’évènement.

En fait, je n’ai qu’un exemple vivant, grâce à un article sur un BarCamp récent à Albuquerque où j’ai utilisé le microformat hCalendar :

  1. <div class=”vevent”>
  2. <p>
    Oui, c'est un billet court, mais marquez ça dans vos agendas :
    <a href="http://barcamp.org/BarCampAlbuquerque"
    class=”url summary”>
    <span class=”category”>BarCamp</span>
    Albuquerque 3</a>
    aura lieu ce week-end.
    </p>
  3. <dl>
  4. <dt>Quand :</dt>
  5. <dd><abbr class=”dtstart”
    title=”2008-09-13T09:00:00″>13</abbr>–
    <abbr class=”dtend” title=”2008-09-14T18:00:00″>14 septembre</abbr>,
    à partir de 9h00 jusqu’à 18h00 les deux jours.</dd>
  6. <dt>Où :</dt>
  7. <dd class=”location vcard”>
    <a class=”fn org url” href=”http://www.chefwhite.com/cjw_cafe.php”>CJW Cafe</a>
    à <a href=”http://maps.google.com/maps” class=”adr”>
    <span class=”street-address”>4801 Alameda
    <abbr title=”Boulevard”>Blvd</abbr>
    <abbr title=”Northeast”>NE</abbr>
    </span>,
    <span class=”locality”>Albuquerque</span>,
    <abbr class=”region” title=”New Mexico”>NM
    </abbr> <span class=”postal-code”>87113
    </span>
    </a>
    </dd>
  8. <dt>Quoi :</dt>
  9. <dd class=”description”>
    Un évènement de
    <abbr class=”duration” title=”P2D”>deux jours</abbr> pour tout ce qui concerne le web — design (visuel, expérience, architecture de l’information), technologie (infrastructure, programmation), social et nouveaux médias, et d’autres trucs simplement vraiment cools.</dd>
  10. </dl>
  11. </div>

Les Parties de la Somme

Décomposons cet exemple avec ses parties.

La Racine : vevent

Vous remarquerez que la propriété racine dans mon exemple est vevent, plutôt que vcalendar. Ceci parce hCalendar a un élément racine optionne du vcalendar, qui n’est obligatoire que si vous décrivez plus d’un calendrier d’événements sur une page donnée.

Pour une page avec un unique calendrier d’événements, la propriété vcalendar est présumée sur la page elle-même.

Le fait que mon exemple soit un événement unique dans un “calendrier,” unique, je place toute mon information d’événement dans <div class="vevent">. Ceci indique que tout le contenu embarqué à l’intérieur décrit un événement unique.

Une fois de plus, l’élément conteneur pourrait être n’importe quoi (<dl>, <ul>, <p>, <span>, etc.) la <div> est simplement appropriée pour mon exemple.

Propriétés Requises : summary & dtstart

Les seules propriétés requises pour hCalendar (autres que la racine vevent) sont summary et dtstart.

summary

La propriété summary décrit un synopsis bref de l’événement. Le contenu embarqué par cette propriété est typiquement ce qui s’affiche dans un programme de calendrier sous le nom ou titre de l’événement.

Ainsi dans mon exemple, “BarCamp Albuquerque 3″ est contenu par summary, aussi c’est l’information qui s’affiche comme le nom/titre dans mon calendrier personnel :

<p>Oui, c'est un billet rapide, mais à marquer dans vos agendas : <a href="http://barcamp.org/BarCampAlbuquerque" class="url summary“><span class=”category”>BarCamp</span> Albuquerque 3</a> c’est ce week-end.</p>

dtstart

La propriété dtstart décrit les date/horaire pour le démarrage de l’événement. Dans mon exemple, “13″:

<dd>
<abbr class=”dtstart”
title=”2008-09-13T09:00:00″>13
</abbr>–<abbr class=”dtend”
title=”2008-09-14T18:00:00″>14 septembre</abbr>,
de 9h00 à 18h00 les deux jours</dd>

Date/Time Design Pattern

Remarquez que l’élément contenant pour dtstart est un <abbr>, là où l’information contenue est est “13″ et la valeur d’attribut title est “2008-09-13T09:00:00″:

<dd><abbr class=”dtstart”
title=”2008-09-13T09:00:00“>13</abbr>
–<abbr class=”dtend” title=”2008-09-14T18:00:00″>14 septembre</abbr>,
de 9h00 à 18h00 les deux jours</dd>

C’est l’approche actuellement recommandée pour définir l’information date/horaire dans un microformat — connue sous le datetime design pattern (qui est une extension du abbr design pattern).

Ce pattern a été développé pour supporter l’un des principes fondamentaux des microformats : designer d’abord pour les humains, ensuite pour les machines. Visant pendant tout ce temps, à fournir une information qui soit à la fois lisible par les humains et par les machines.

La logique est que les machines — tout comme les applications web — utiliseront la valeur title, alors que les navigateurs afficheront pour les humains le contenu embarqué par <abbr>.

Aussi, en tant que partie de la spécification pour utiliser ce “datetime pattern”, l’information date/horaire devrait être spécifiée dans un ISO 8601 :

  • AAAA-MM-JJThh:mm:ss — “A” représente les nombres entiers de l’année, “M” représente les nombres entiers du mois, “J” représente les nombres entiers du jour, “h” représente les nombres entiers des heures, “m” représente les nombres entiers des minutes et “s” représente les nombres entiers des secondes.
  • AAAA-MM-JJThh:mm:ssZ — “Z” est utilisé pour indiquer le GMT.
  • AAAA-MM-JJThh:mm:ss+hh (ou -hh) — les “+hh” et “-hh” indiquent le décalage horaire en heure GMT.

Pour dire ça dans des termes un peu plus compréhensibles, 2008-09-30T13:00:00 = 30 septembre 2008, 13h00 (heure locale).

Le caractère “T” dans ces exemples sépare l’information de date de l’information d’horaire.

Si vous n’avez qu’une date, omettez simplement le “T” et l’information horaire le suivant. De même, si vous n’avez qu’un horaire, omettez le “T” et l’information de date le précédant.

Il existe néanmoins et hélas, quelques problèmes d’accessibilité avec ce pattern, problèmes que je décrirai plus tard dans cet article. A cette heure, continuons avec mon exemple.

Le Reste des Propriétés Date/Horaire

Il existe deux autres propriétés date/horaire (et optionnelles) que j’ai ajoutées : dtend et duration.

dtend

La propriété dtend décrit les date/horaire de la fin de l’événement. Dans mon exemple, “14 septembre”:

<dd>
<abbr class="dtstart" title="2008-09-13T09:00:00">13</abbr>
–<abbr class=”dtend”
title=”2008-09-14T18:00:00″>14 septembre</abbr>,
de 9h00 à 18h00 les deux jours</dd>

duration

La propriété duration décrit la durée (en temps) de l’événement.
Dans mon exemple, deux jours :

<dd class="description">Un évènement de <abbr class=”duration” title=”P2D”>deux jours</abbr> pour tout ce qui concerne
le web — design (visuel, expérience, architecture de l’information), technologie (infrastructure, programmation), social et nouveaux médias, et d’autres trucs simplement vraiment cools.</dd>

Tout comme pour l’information de date/horaire, l’information de durée est spécifiée en utilisant le “datetime design pattern”, où l’information “lisible-par-les-machines” est indiquée par la valeur title et l’”information-lisible-par les-humains” est contenue par le <abbr>.

Aussi, la valeur de “duration” title est spécifiée selon ISO 8601, qui indique que la valeur est précédée par un “P” pour indiquer une période de temps.

Cette période de temps peut être exprimée en années (Y), mois (M), semaines (W), jours (D), heures (H), minutes (M) et/ou secondss (S).

Voici quelques exemples pour clarifier cela :

  • P2Y = durée de 2 ans
  • P10D = durée de 10 jours
  • P3H = durée de 3 heures
  • P2W = durée de 2 semaines weeks
  • P12DT8H30M = durée de 12 jours, 8 heures et 30 minutes
Parlons Accessibilité

J’ai rapidement évoqué dans la 3ème Partie qu’il y avait eu récemment quelques discussions sur les problèmes d’accessibilité avec le datetime design pattern.

Le point crucial du problème d’accessibilité est la façon dont les lecteurs d’écran interprètent les valeurs d’attribut title : ils les lisent/parlent.

Aussi, là où le datetime design pattern indique de mettre l’information ISO 8601 de date/horaire lisible par les machines dans le title, un lecteur d’écran déclame littéralement la valeur.

Imaginez entrendre ça à chaque fois que votre lecteur d’écran rencontre <abbr title="2008-09-30"> : “Deux mille huit tiret zéro neuf tiret trente.” Et c’est même encore pire pour les valeurs plus longues avec l’information sur l’horaire.

On peut soutenir que ceci n’est pas “human-friendly” pour ces utilisateurs.

A cette heure, ces problèmes n’ont pas été résolus. Il y a eu queques alternatives proposées, mais la communauté des microformats continue à discuter de la meilleure approche pour avancer afin de résoudre ces problèmes d’accessibilité et de rester cohérente avec l’esprit des microformats.

Pour moi et mon blog personnel, mes référents indiquent que je n’ai pas de visiteurs avec des lecteurs d’écran. Aussi, je ne suis pas préoccupée par l’implémentation du “datetime design pattern” sur ce blog.

Néanmoins, travaillant pour une grande entreprise, le manque d’accessibilité n’est tout simplement pas acceptable (pour moi et mon superviseur direct, même si je suis certaine que les “gros bonnets” pourraient moins s’en soucier).

Je suis désireuse de voir comment vont ces problèmes vont être résolus, de manière à ce que je puisse implémenter correctement l’information date/horaire en microformats et que cela puisse être encore supporté par tous les utilisateurs de lecteurs d’écrans.

Désormais, il est temps de revenir à l’exemple et des propriétés restantes utilisées …

Le Reste du Reste

Mon exemple comprend quatre propriétés supplémentaires (aussi optionnelles) : url, category, location and description.

url

La propriété url décrit un lien (<a>) pour l’événement :

<p>Oui c'est un billet rapide, mais marquez vos agendas : <a href="http://barcamp.org/BarCampAlbuquerqueclass=”url summary”><span class=”category”>BarCamp</span> Albuquerque 3</a> c’est ce week-end.</p>

Vous remarquerez que j’ai ajouté la propriété url à la propriété summary. Ceci tout simplement parce que le contenu embarqué par le <a> était simplement la valeur pour mon summary. D’autres implémentations pourraient être différentes.

category

La propriété category décrit le type d’événement. Dans mon exemple, “BarCamp” :


<p>Oui c'est un billet rapide, mais marquez vos agendas :
<a href="http://barcamp.org/BarCampAlbuquerque" class="url summary">
<span class=”category”>BarCamp</span>
Albuquerque 3</a>
c’est ce week-end.</p>

A la différence des propriétés évoquées plus haut, category peut utiliser un nombre illimité de fois. Quelques exemples communs de valeurs de category sont :

  • Rencontre
  • Expo
  • Vacances
  • Anniversaire
  • Conférence

Dans un certain sens, category est un moyen de “taguer” l’événement. Aussi, si j’avais choisi de marquer mon exemple pour y inclure un lien vers le site principal du BarCamp, j’aurais aussi utilisé microformat rel-tag pour accompagner category :

<p>Vous pourriez vous demander ce qu'est un
<a href="http://barcamp.org/"
class=”category” rel=”tag”>BarCamp</a> ?
</p>

Souvenez-vous, rel-tag ne peut être uniquement utilisé que sur des liens (<a>).

location

La propriété location décrit où aura lieu l’événement.


<dd class=”location vcard”><a class=”fn org url”
href=”http://www.chefwhite.com/cjw_cafe.php”>CJW Cafe
</a> au <a href=”http://maps.google.com/maps” class=”adr”>
<span class=”street-address”>4801 Alameda
<abbr title=”Boulevard”>Bd</abbr>
<abbr title=”Northeast”>NE</abbr>
</span>,
<span class=”locality”>Albuquerque</span>,
<abbr class=”region” title=”New Mexico”>NM</abbr>
<span class=”postal-code”>87113</span></a>
</dd>

Dans mon exemple, je fournis le nom du lieu et son adressse. Néanmoins, ce peut être tout simplement le lieu, ou juste l’adresse ; les deux ne sont pas requis.

description

Pour finir, la propriété description décrit un synopsis plus détaillé de l’évènement que summary :


<dd class=”description”>Un évènement de
<abbr class=”duration” title=”P2D”>deux jours</abbr>
pour tout ce qui concerne le web — design (visuel, expérience, architecture de l’information), technologie (infrastructure, programmation), social et nouveaux médias, et d’autres trucs simplement vraiment cools.
</dd>

Ce Que Je N’ai Pas Ajouté

Il existe plusieurs autres propriétés souvent utilisées pour hCalendar que j’ai choisies simplement de ne pas ajouter à mon exemple :

  • dtstamp indique les date/horaire à laquelle l’information hCalendar a été créée.
  • last-modified indique les date/horaire à laquelle l’information hCalendar a été mise à jour.
  • status indique la confirmation d’événement. Les valeurs autorisées sont “cancelled,” “confirmed” et “tentative.”
  • class indique la classification d’événement. Les valeurs autorisées sont “private,” “public ” et “confidential.”
  • rrule indique la récurrence régulière d’un événement. Si cette propriété est utilisée, elle a une sous-propriété obligatoire de freq pour indiquer la fréquence de la récurrence, qui est spécifiée plus en profondeur par des qualifiants (à savoir, count, interval).
  • rdate indique des événements qui arrivent irrégulièrement. La valeur title renvoie les dates irrégulières (séparées par des virgules).

Et il en existe encore d’autres qui peuvent être utilisées. Regardez les exemples hCalendar sur le wiki pour plus de détails.

hCalendar + hCard

Peut-être que vous avez remarqué que mon marquage hCalendar comprenait des propriétés et sous-propriétés hCard :


<dd class="location vcard“>
<a class=”fn org url”
href=”http://www.chefwhite.com/cjw_cafe.php”>CJW Cafe</a> au
<a href=”http://maps.google.com/maps” class=”adr”>
<span class=”street-address”>4801 Alameda
<abbr title=”Boulevard”>Blvd</abbr>
<abbr title=”Northeast”>NE</abbr></span>,
<span class=”locality”>Albuquerque</span>,
<abbr class=”region” title=”New Mexico”>NM</abbr>
<span class=”postal-code”>87113</span></a>
</dd>

Comme je l’évoquais dans la 3ème Partie, combiner les microformats est facile, et là où cela produire du contenu contextuel, cela ajoute plus de valeur sémantique au contenu (et vous savez ce que j’en pense).

Pour aller plus loin, cela donne à l’utilisateur juste quelques autres types de données qui peuvent être extraites et utilisées, comme une vCard pour son carnet d’adresses.

Dans cet exemple, la propriété location du hCalendar fait sens pour être aussi marquée avec vcard. Même si je n’ai fait que rajouter la ville, j’aurais pu encore ajouter les propriétés/sous-propriétés de hCard.

Langage Naturel

J’ai parlé aussi d’utiliser les microformats en langage naturel (dans le flux de phrases normales) dans la 3ème Partie, et hCalendar ne fait pas exception à ce concept.

Vous remarquerez que dans cet exemple, quelques informations du hCalendar sont directement dans le flux de mon contenu.

J’aurais pu mettre toute l’information du hCalendar dans des phrases naturelles plutôt que de “découper” quelques-uns des détails dans des <dl> :

  1. <div class=”vevent”>

  2. <p>Oui, c'est un billet rapide, mais à marquer dans vos calendries :
    <a href="http://barcamp.org/BarCampAlbuquerque"
    class=”url summary”>
    <span class=”category”>BarCamp</span> Albuquerque 3</a> c’est ce week-end,
    <abbr class=”dtstart” title=”2008-09-13T09:00:00″>13
    </abbr>–
    <abbr class=”dtend”
    title=”2008-09-14T18:00:00″>14 septembre</abbr>, de 9h00 à 18h00
    <abbr class=”duration” title=”P2D”>les deux jours</abbr>.
    </p>
  3. <p class=”description”>Ce BarCamp de l’année traitera de tout ce qui concerne le web : design (visuel, expérience, architecture de l’information), technologies (infrastructure, programmation), social et nouveaux medias, et d’autres trucs qui sont tout simplement vraiment cools.</p>

  4. <p class=”location vcard”>
    <a class=”fn org url” href=”http://www.chefwhite.com/cjw_cafe.php”>CJW Cafe</a>
    (sur <a href=”http://maps.google.com/maps” class=”adr”>
    <span class=”street-address”>4801 Alameda
    <abbr title=”Boulevard”>Blvd</abbr>
    <abbr title=”Northeast”>NE</abbr>
    </span>, <span class=”locality”>Albuquerque</span>,
    <abbr class=”region” title=”New Mexico”>NM</abbr>
    <span class=”postal-code”>87113
    </span>
    </a>) sera notre hôte pour l’événement.
    </p>
  5. </div>

Ajouter à votre Calendrier

Aussi sur l’article BarCamp Albuquerque 3, je fournis un lien aux utilisateurs pour qu’ils puissent ajouter l’événement à leurs programmes de calendrier :

Télécharger le fichier événement .ics du BarCamp Albuquerque 3

Ce lien pourrait être une URL directe vers n’importe quel fichier iCalendar (à savoir, .ics, .ical, .ifb, .icalendar) avec votre information d’événement. En ce qui me concerne, j’ai utilisé le Service de Fils d’Evénements de Technorati.

En utilisant la technologie de Technorati, vous faites précéder simplement l’URL de la page où réside votre microformat avec http://feeds.technorati.com/events/, et puis utilisez l’URL résultante comme la valeur href de votre lien (<a>) :

<a href="http://feeds.technorati.com/events/http://www.ablognotlimited.com/articles/barcampalbuquerque-around-the-corner
title=”Télécharger le fichier .ics “>
Ajoutez à votre calendrier</a>

Quand un utilisateur sélectionne ce lien, le fichier .ics est créé dynamiquement et il peut le télécharger ::

Télécharger le fichier .ics

Les Apparences Comptent

Je l’ai répété plusieurs fois : le marquage importe peu (bien qu’il devrait idéalement être valide et sémantique).

Et même si les valeurs class (propriétés/sous-propriétés) sont essentielles pour le microformat, la CSS que vous utilisez pour styliser votre information hCalendar est uniquement dédiée à la présentation (pas pour dire que ce n’est pas important).

Je recommanderais néanmoins d’utiliser les valeurs class qui sont requises par hCalendar dans votre CSS, plutôt que d’ajouter de nouvelles classes pour le style. Ceci vous donne simplement une CSS plus maigre.

Pour un exemple sur la façon dont vous pouvez styliser un calendrier d’événements, jetez un oeil au superbe travail de Jeremy Keith qu’il a produit pour des calendriers en cascade.

Pour finir, vous pouvez produire tout ce que votre coeur désire. La présentation de votre hCalendar ne se limite qu’à vos talents en CSS.

Pourquoi s’en Soucier ? Les Avantages, Bien Sûr

Bien qu’ayant déjà traité des avantages dans cette série d’articles, ils valent toujours la peine d’être répétés, … essentiellement parce que les microformats sont si simples à mettre en oeuvre et qu’ils offrent tant de potentiels.

Je souhaiterais que plus de personnes les connaissent et les utilisent. Cela aiderait à accroître le nombre d’outils et d’applications qui les utilisent.

Une Fois de Plus : Sémantique

Oui, la sémantique. Vous devez croire que c’est mon concept favori. Oui, vous auriez raison.

Les microformats prennent les standards existants, comme les éléments XHTML, et ajoutent encore même plus de valeur sémantique au contenu qu’ils contiennent. Ceci aide de mon point de vue les auteurs web à créer de meilleurs sites qui deviennen t plus utilisables et accessibles tant pour les humains que pour les machines (comme les moteurs de recherche).

Pour aller plus loin, le fait d’adopter la sémantique (même sans microformats, mais dans le marquage en lui-même) fait partie du support des standards ; des moyens standardisés de développer des sites. Ceci profite non seulement aux utilisateurs (et ceci concerne aussi les machines), mais assi aux designers/développeurs et aux équipes. Cela profite à tous.

Et, une fois de plus, ces approches posent une fondation (sémantiquement riche) pour Le Web Sémantique, tout en nous permettant simultanément de tirer profit du web et des technologies d’aujourd’hui.

Cool Shit

Je comprends tout à fait que la sémantique et les standards relèvent pour certains de discussions philosophiques. En fin de compte, soit vous “captez” ou non.

Si vous êtes dans le dernier camp, considérez quelques-uns des outils plutôt cools et utiles disponibles aujourd’hui qui savent tirer profil du microformat hCalendar.

Extensions Navigateur

Il existe tout un paquet d’outils navigateurs qui extraient l’information hCalendar provenant d’une page web de façon à pouvoir l’exporter et l’utiliser dans des applications qui supportent iCalendar.

  • L’extension Operator pour Firefox extrait l’information hCalendar et vous permet de l’ajouter dans votre application préférée de gestion de calendrier (elle fait de même avec l’information hCard pour votre carnet d’adresses) :
    exemple de hCalendar avec Operator pour Firefox
  • Aussi pour Firefox, l’extension Tails Export détecte l’information hCalendar (tout comme pour hCard) et l’extrait pour l’exporter dans votre application de calendrier :

    exemple de hCalendar avec Tails Export pour  Firefox
  • Le plugin microformats pour Safari fonctionne comme les extensions Firefox, en extrayant pour vous l’information hCalendar (et hCard) afin de l’ajouter à votre programme de calendrier.
  • Le bookmarklet microformats extrait lui aussi l’information hCalendar que vous pouvez exporter dans votre application de calendrier :

exemple de bookmarklet microformats

Autres Services
  • X2V de Brian Suda est une feuille de style XSLT qui extrait l’information hCalendar provenant d’une page web pour créer un fichier iCalendar .ics.
  • Technorati offre un moteur de recherche de microformats qui indexe l’information microformatée (hCalendar, hCard et hReview) provenant d’URLs proposées et rend cette information disponible pour la recherche.
  • Elias Torres a créé un script Greasemonkey hCalendar + Google Calendar Reminders qui identifier l’information hCalendar sur une page web et fournit une icône pour ajouter cet événement à votre Calendrier Google.
  • Un autre script GreaseMonkey de Les Orchard vous permet de modifier les champs de formulaire texte de Firefox pour devenir des générateurs hCalendar : Magic Microformat Forms.

Il existe encore plein d’implémentations hCalendar que je n’ai pas mentionnées.

Pression Par les Pairs

Si ces ressources ne vous ont pas fait tourner la tête, alors peut-être qu’un peu de pression par les pairs le fera. Bon nombre de services leaders aujourd’hui utilisent hCalendar (et d’autres microformats) :

  • Le site d’événement de Yahoo, Upcoming utilise hCalendar, de façon à ce que pendant que les utilisateurs naviguent dans les événements, ils puissent aussi les importer dans leurs applications de gestion de calendrier.
  • MapQuest Local supporte aussi hCalendar, tout comme les microformats hCard et celui de géolocalisation.
  • TripIt utilise le marquage hCalendar pour ses itinéraires.
  • Last.fm utilise hCalendar pour ses annonces de concerts.
  • Le géant du réseau social, Facebook, utilise hCalendar pour l’information d’événements.

Et il existe encore plus d’exemples hCalendar dans la jungle

Bon, vous savez que vous voulez y aller. Essayez tout simplement. Croyez-moi, vous aimerez.

Outils pour une Production Plus Facile

Aussi, si j’ai pu parvenir à vous “vendre” les microformats, vous pourriez être ravi(e) de savoir qu’il existe quelques outils qui vous faciliteront la vie pour les implémenter (à l’inverse du codage à la main, sans mentionner le fait de se rappeler de toutes les propriétés/sous-propriétés) :

  • Le hCalendar Creator est un formulaire qui génère du marquage hCalendar et les propriétés/sous-propriétés que vous lui proposez. Copiez et collez. Ne pourrait pas être plus simple.
  • Pour Textpattern, vous disposez du plugin pnh_mf et de JMC_Event_Manager pour ajouter du contenu microformaté à votre site/blog Textpattern.
  • WordPress a aussi quelques plugins qui aident les auteurs web à ajouter des microformats à leurs blogs/sites WordPress : Structured Blogging (aussi disponible pour MovableType) et WP-Microformats.
  • Grâce à WaSP, il existe une extension microformats pour Dreamweaver conçue pour DW 8, MX et au-dessus.
  • Le Conference Schedule Creator vous aide à créer un programme complet de conférence avec tous les événements marqués avec hCalendar.

A venir en 5ème Partie

Voilà c’est tout ce que j’ai pour hCalendar (est-ce assez ?).

La prochaine fois, dans Parvenir à la Sémantique avec les Microformats, 5ème Partie, je vous emmènerai en détail sur le microformat hAtom pour le contenu syndiqué comme les billets de blogs.

D’ici là …

Share the Love

Note : Cette traduction s’inscrit dans la poursuite de travaux visant à mieux faire connaître les microformats. L’article original d’Emily Lewis a été publié le 1er octobre dernier sur son blog personnel. Seul le lien original fait référence. Vous pouvez aider à raffiner cet article en éditant directement le code posé sur la page miroir de mon wiki-personnel. Merci d’avance. xtof

Emily Lewis : “Parvenir à la Sémantique avec les Microformats, 3ème partie - hCard”

Filed under: hcard, ressources — Christophe Ducamp @ 13:47

logo des Microformats

J’ai démarré cette série d’articles en détaillant les microformats pour les relations fondées sur les liens en utilisant l’attribut rel dans la 1èrePartie. Puis j’ai poursuivi dans la 2° Partie par une discussion sur l’extension de l’attribut rel avec les valeurs XFN pour connoter les relations sociales sur le web.

XFN et les microformats fondés sur rel sont relativement simples, n’exigeant que l’ajout de l’attribut rel sur les liens (<a>) et la(es) bonne(s) valeurs pour fournir le contexte sémantique.

Il est désormais temps de porter cette discussion sur les microformats à un niveau plus détaillé avec le microformat hCard, qui ajoute de la sémantique et de la structure au contenu web traitant des personnes, organisations, sociétés et lieux.

(Mettez-vous à l’aise, c’est long.)

Origines : vCard

vCard est un standard pour les cartes de visite électroniques, qui sont le plus souvent attachées en pièces jointes aux courriers électroniques sous forme de fichiers avec l’extension “.vcf”. Tout comme les cartes de visite traditionnelles, les vCards contiennent de l’information sur le nom et le contact.

La hCard a été présentée comme un format standard pour permettre aux auteurs du web d’inclure l’information vCard au sein de leurs pages web.

hCard utilise une représentation 1:1 de la vCard. Ce qui veut dire que le contenu web marqué avec le format hCard peut être converti en vCards par les spiders et autres agrégateurs, et peut être utilisé dans n’importe quelle application ou service vCard.

Personnes, Organisations, Sociétés & Lieux

Le microformat hCard représente des personnes, organisations, sociétés et lieux — le plus souvent en termes d’information adresse/contact, y compris mais non limité à :

  • Nom formaté/structuré
  • Adresse postale/distribution
  • Adresse e-mail
  • Numéro(s) de téléphone
  • Photographie

Parmi toutes les informations qui peuvent être incluses dans hCard, la seule information obligatoire est le nom formaté. Tout le reste est optionnel.

Et hCard, comme tous les microformats, utilise un marquage et des attributs existants pour spécifier cette information adresse/contact, et tout particulièrement différentes valeurs de classe, qui sont renvoyées sous des “propriétés” et “sous-propriétés.”

Une Personne, à Savoir Moi

L’une des premières implémentations hCard sur A Blog Not Limited est pour mon information personnelle de contact sur ma page About :

  1. <div class=”vcard”>
  2. <p class="fn n">
    <span class="given-name">Emily</span>
    <span class="additional-name">Paige</span>
    <span class="family-name">Lewis</span></p>
  3. <p><a class="email"
    href="mailto:emily@ablognotlimited.com">
    emily@ablognotlimited.com</a>
    </p>
  4. <p class="adr">
    <span class="locality">Albuquerque</span>,
    <abbr class="region" title="New Mexico">NM
    </abbr>
    <span class="postal-code">87106
    </span>
    <acronym class="country-name" title="United States of America">USA</acronym>
    </p>
  5. <p class="nonVisual">
    <a href="http://www.ablognotlimited.com" rel="home me" class="url">
    A Blog Not Limited</a>
    </p>
  6. </div>

La première chose à considérer sur l’exemple ci-dessus est que tout le balisage et le contenu sont contenus dans une <div> déclarée class="vcard".

L’élément contenant pourrait être n’importe quoi (<p>, <ul>, <span>, etc.), tant que cela reste de la syntaxe valide et de préférence sémantique.

Ce qui est essentiel c’est class="vcard".

“Mais le microformat s’appelle hCard … quel rapport avec la propriété vCard ?” me direz vous.

Bon, ceci s’explique par la représentation 1:1 de la vCard. Toutes les propriétés spécifiées hCard (les valeurs class) sont fondées sur les noms des propriétés type vCard.

Acceptez ça et avançons.

Information d’Identité Personnelle

En divisant l’exemple dans ses différentes propriétés, commençons par celles qui m’identifient personnellement, comme mon nom. Vous pouvez constater que mon information de nom est contenue dans <p class="fn n"> :

<p class=”fn n”>
<span class=”given-name”>Emily</span>
<span class=”additional-name”>Paige</span>
<span class=”family-name”>Lewis</span>
</p>

La propriété fn indique que le contenu contenu à l’intérieur est une chaîne correspondant au nom de la personne, comme pourriez le voir sur une plaque nominative. Comme je l’évoquais précédemment, c’est une propriété obligatoire dans le microformat hCard.

La propriété n indique que le contenu à l’intérieur contient les parties du nom d’une personne, comme le prénom, le deuxième prénom et les noms de famille.

Bien que la propriété n soit requise par la spécification, elle peut être implicite (ce qui veut dire, non spécifiée), si le contenu regroupé par la propriété fn fait exactement deux mots. Le wiki Microformats explique en détail cette optimisation implicite.

Il existe quelques autres propriétés d’identification que je pourrais inclure si j’étais encline à faire ainsi :

  • class="nickname" indique le pseudo/nom de guerre d’une personne, et s’applique à un élément contenant le texte de ce pseudo.
  • class="photo" indique une photo associée à une personne, et s’applique à un élément <img /> faisant référence à l’URL de la photo (via src). Cette propriété pourrait être aussi appliquée à un élément <object> référençant l’URL de la photo via l’attribut data (bien que ce soit pour moi une option non-sémantique).
  • class="bday" indique une date de naissance d’une personne, et s’applique à un élément contenant l’information de date.
Aparté : Les Dates

Je devrais mentionner que quand on arrive à l’information de date, celle-ci est souvent marquée avec de l’information à la fois lisible par les humains et par les machines. Ceci s’appelle le datetime design pattern.

Sans rentrer trop dans les détails (parce que je traiterai cela en profondeur avec microformat hCalendar dans la 4ème partie de cette série), voici un exemple sur la façon dont l’information de date est communément référencée dans les différents microformats :

<abbr class="bday"
title=”1974-09-04″>4 Septembre 1974
</abbr>

>Remarquez que ce qui est contenu par le <abbr> est de l’information-date-lisible-par-les-humains, alors que la valeur title est de l’information de date lisible–par–les–machines.

L’utilisation de l’élément <abbr> pour l’information de date (l’abbr design pattern), a cependant soulevé quelques problématiques d’accessibilité.

Une fois de plus, je traiterai cela plus en détails dans la 4ème partie, mais ce qui a été proposé pour contourner ces problématiques est d’utiliser un élément <span> avec une valeur title plutôt que <abbr>. (Je traiterai aussi des problématiques d’accessibilité plus en détail en conclusion de cette série.)

Sous-Propriétés

Ainsi, pour revenir à l’exemple sur ma page About

Beaucoup de propriétés hCard ont des sous-propriétés pour fournir encore plus de contenu. Dans mon exemple, je marque le contenu dans <p class="fn n"> avec des <span>s référençant les sous-propriétés :

<p class="fn n">
<span class=”given-name”>Emily</span>
<span class=”additional-name”>Paige</span>
<span class=”family-name”>Lewis</span>
</p>

  • Mon premier prénom est indiqué par class="given-name".
  • Mon second prénom est indiqué par class="additional-name".
  • Mon nom de famille est indiqué par le class="family-name".

Parmi ces trois sous-propriétés, given-name et family-name ne peuvent être seulement utilisées qu’une fois par vcard, alors que la sous-propriété additional-name peut être utilisée plusieurs fois.

Et il existe deux sous-propriétés supplémentaires que j’aurais pu inclure :

  • class="honorific-prefix" indique les préfixes du nom (par ex. M., Dr.), et qui s’applique à un élément contenant le texte de ce préfixe.
  • class="honorific-suffix" indique les suffixes du nom (par ex. MD, PhD), et s’applique à un élément contenant le texte de ce suffixe.

Comme additional-name, ces deux sous-propriétés peuvent aussi être utilisées plusieurs fois.

E-mail & Téléphone

La prochaine partie de l’exemple est mon adresse e-mail dans <a class="email"> :

<p>
;<a class=”email”
href=”mailto:emily@ablognotlimited.com”>
emily@ablognotlimited.com</a>
</p>

Attribuer la propriété email à mon lien (<a>) indique que la valeur href est mon adresse e-mail. Le contenu regroupé par le <a> pourrait être n’importe quoi. J’ai simplement choisi d’afficher la véritable valeur de mon adresse e-mail.

La propriété email peut être utilisée plusieurs fois. Dans ces cas, la sous-propriété type peut être ajoutée pour savoir quelle adresse parmi les multiples e-mails est la préférée (”pref”):

  1. <p><a class=”email”
    href=”mailto:test1@test.com”>
    <span class=”type”>pref</span>
    erred email
    </a>
    </p>
  2. <p><a class=”email”
    href=”mailto:test2@test.com”>alternate email
    </a>
    </p>

Je pourrais aussi inclure une autre propriété, tel, qui indique un numéro de téléphone d’une personne (via la sous-propriété value). La propriété tel a une sous-propriété type pour indiquer le type de numéro (par exemple home, work, fax) :

<p class=”tel”>
<span class=”type”>Work</span> :
<span class=”value”>555-123-4567</span>
</p>

La sous-propriété type est complètement optionnelle. Si vous avez choisi de l’omettre, la valeur par défaut est “voice.”

La propriété tel peut être utilisée plusieurs fois, comme le peut type. La sous-propriété type peut aussi indiquer “pref” pour afficher si c’est le numéro de téléphone préféré.

  1. <p class=”tel”>
    <span class=”type”>Work
    </span>(<span class=”type”>pref
    </span>
    erred):
    <span class=”value”>555-123-4567
    </span>
    </p>
  2. <p class=”tel”>
    <span class=”type”>Home
    </span> :
    <span class=”value”>555-789-0123
    </span>
    </p>

Pour finir, la sous-propriété value peut être implicite. Si un type est spécifié sans qu’aucune value ne soit spécifiée, alors tout autre propriété autre que type dans la propriété tel est considérée comme la value.

Information d’Adresse

La prochaine partie de l’exemple inclut mon adresse regroupée sous un <p class="adr"> :

<p class=”adr”>
<span class=”locality”>Albuquerque</span>,
<abbr class=”region” title=”Nouveau Mexique”>NM</abbr>
<span class=”postal-code”>87106</span>
<acronym class=”country-name” title=”United States of America”>USA</acronym>
</p>

La propriété adr indique les parties d’une adresse, que je décris par des <span>s assignés aux différentes sous-propriétés de l’adresse :

  • La ville est indiquée par class="locality".
  • L’état est indiqué par class="region". Cette sous-propriété pourrait s’utiliser pour les provinces.
  • Le code postal est indiqué par class="postal-code".
  • Le pays est indiqué par class="country-name".

Remarquez que pour mon country-name, j’ai utilisé l’élément <acronym> pour une référence plus courte vers mon pays, avec le nom complet inclus dans le title. J’aurais pu tout aussi bien écrire le nom complet et contourner complètement l’<acronym>e. Juste une question de préférence (même si j’encourage vivement à la concision sémantique).

Pour des détails d’adresses encore plus précis, je pourrais aussi ajouter :

  • class="street-address" pour mon adresse de rue
  • class="extended-address" pour ajouter le numéro de mon appartement
  • class="type" pour indiquer le type d’adresse (par ex. home, work)
Aparté : address

Mais attendez ! Qu’en-est-il de la sémantique ? Pourquoi ne pas utiliser l’élément <address> comme le conteneur principal, plutôt qu’un <p> ?

En fait, jusqu’à ce que j’écrive cet article et fasse la recherche, j’ai découvert que j’utilisais <address> de manière incorrecte depuis des années. J’avais toujours pensé que c’était littéralement pour les adresses physiques, comme dans cet exemple précis.

J’avais tort.

Selon le W3C, l’élément <address> est :

… employer l’élément ADDRESS pour fournir les informations de contact du document ou d’une partie essentielle de celui-ci, comme un formulaire.

Compte tenu de cela, ce n’est tout simplement pas le bon élément à utiliser.

Information sur le Site Web

La dernière partie de mon exemple contient mon URL de blog dans <a class="url"> :

<p class="nonVisual">
<a href="http://www.ablognotlimited.com" rel="home me" class=”url”>
A Blog Not Limited</a>
</p>

La propriété url indique que le lien (<a>) destination (href) se fait vers un site web associé à moi. Bien que je sois en train de référencer mon blog, ceci pourrait être aussi un lien vers mon portfolio design ou toute autre URL m’étant associée.

Quelques trucs à remarquer concernant la dernière partie de l’exemple :

  • En restant engagée avec les microformats fondés sur le rel, je me suis aussi assurée d’inclure rel="home me". Remarquez la facilité de combiner les microformats ?
  • Le lien est contenu dans un <p class="nonVisual">, ce qui est tout simplement un paragraphe auquel j’ai déclaré une classe personnalisée pour supprimer l’affichage de l’information parce que je ne pense pas qu’il soit nécessaire de l’afficher dans cette situation spécifique. Sans tenir compte du fait que cela n’a rien à voir avec le microformat hCard.
Produit Fini

Après cette explication exhaustive du marquage, voici à quoi cela ressemble :

vCard d'Emily

Et du fait que hCard n’utilise que du XHTML standard, elle peut être stylisée de n’importe quelle façon comme il vous plaira.

Si vous n’avez pas déjà compris, j’ai choisi une esthétique plutôt minimaliste, aussi j’en suis arrivée virtuellement à aucun autre stylisme que l’utilisation du class="nonVisual" pour supprimer l’affichage de quelque contenu.

Mais pour voir un exemple de ce que vous pourriez produire, Chris Coyier a récemment posté une Carte de Visite Professionnelle en Microformats, qui utilise le marquage hCard avec une très belle CSS pour imiter une carte de visite traditionnelle imprimée.

Les possibilités ne se limitent qu’à vos talents en CSS.

Ajouter au Carnet d’Adresses ?

Vous voyez dans mon exemple qu’immédiatement après mon contenu hCard, j’offre un lien vers “Ajouter à votre Carnet d’Adresses.” C’est tout simplement un lien vers le fichier vCard qui peut être téléchargé et ajouté à un programme de gestion de carnet d’adresses.

Vous pouvez offrir facilement un lien direct vers le .vcf que vous créerez et maintiendrez sur votre serveur, ou vous pouvez tirer profit du Service Contacts de Technorati.

En utilisant la technologie de Technorati, vous faites simplement précéder l’URL de la page où votre microformats hCard réside avec http://feeds.technorati.com/contacts/, et puis utilisez l’URL résultante comme la valeur href pour votre lien (<a>).


<a
href="http://feeds.technorati.com/contact/http://www.ablognotlimited.com/about/
title=”Téléchargez la vCard”
>Ajouter au Carnet d’Adresses
</a>

Quand un utilisateur sélectionne ce lien, la vCard est créée dynamiquement et il peut alors la télécharger :

Téléchargez la vCard d'Emily

Quelques Règles & Un Rappel

Maintenant que j’en ai terminé avec mon premier exemple de hCard, il est nécessaire de faire remarquer quelques règles :

  • Les noms de propriétés et de sous-propriétés sont sensibles à la casse.
  • La “racine” vcard ne peut pas être mélangée avec n’importe laquelle de ses propriétés. Par conséquent, class="vcard fn" est invalide.
  • Les propriétés ne peuvent pas être combinées avec les sous-propriétés. Par conséquent, class="tel value" est invalide.

Pas si mal non ? Je veux dire, allez les microformats sont standards. Bien sûr il y a quelques règles.

Et n’oubliez pas : Ce n’est pas intrinsèquement un problème de marquage quand on parle de microformats. Cela concerne les valeurs de classe et différents attributs de marquage — propriétés et sous-propriétés.

Vous pouvez utiliser presque tous les éléments (X)HTML que vous voudrez et faire que les microformats soient encore valides si vous déclarez proprement les propriétés et sous-propriétés.

Bien sûr, si vous vous souciez de comprendre la sémantique des microformats, vous devriez aussi comprendre le marquage sémantique.

N’oublions Pas le Profil

Tout comme je le mentionnais avec XFN, il est recommandé d’inclure le profil hCard dans le <head> des pages web qui incluent le microformat :


<head profile=”http://www.w3.org/2006/03/hcard”>

le W3C autorise plusieurs valeurs de profil, séparées par un espace blanc, ainsi vous pouvez avoir à la fois les profils pour hCard et XFN :

<head
profile=”http://gmpg.org/xfn/11
http://www.w3.org/2006/03/hcard”>

Mise à jour :

J’ai récemment découvert qu’il existe un profil combiné pouvant être utilisé pour tous les microformats-non-draft, plutôt que de lister plusieurs profils dans le d’un document :

<head profile="http://purl.org/uF/2008/03/">

Aussi si vous utilisez un microformat unique sur une page, vous pouvez utiliser ce profil combiné si ce microformat est non-draft. Néanmoins pour les microformats-draft (en projet), vous devez spécifier le profil pour ce microformat particulier.

A cette heure, tous les microformats discutés dans cette série (à l’exception de rel-home) sont “non-draft”.

A nouveau, comme je l’ai déjà abordé eu égard à XFN, je maintiens mon <head> dans une inclusion globale, ainsi il y est fait référence sur l’ensemble du site A Blog Not Limited. Néanmoins, tel que cela se révèle, ceci est requis, parce que j’utilise le microformat hCard sur presque toutes les pages de mon site (dans le pied de page).

Ce qui suit très joliment dans la prochaine partie de cet article …

hCard en Langage Naturel

Il y a de ça un moment, j’étais tombée sur un article génial du brillant Jeremy Keith, qui suggère d’utiliser hCard en langage naturel.

En fait, il propose d’appliquer les propriétés et sous propriétés de hCard pour l’information de contact (par ex : nom, site web, email) qui apparaîtront dans le flux des phrases naturelles, à l’inverse du “découpage ” de l’information de contact d’une personne comme montré dans mon premier exemple.

Le concept est si simple et s’ouvre vraiment aux opportunités pour utiliser hCard. Aussi, ai-je décidé de l’utiliser dans mon pied de page sur A Blog Not Limited où j’ai quelques trucs me concernant :

  1. <div id="creator" class=”vcard”>
  2. <h3><a href="/about/"
    title="En savoir plus à propos d'Emily">La Personne la plus Cool que Je Connaisse</a>
    </h3>
  3. <a href="/about/"
    title="En savoir plus à propos d'Emily">
    <img src="/images/emilyLewisThumb.jpg"
    style="width:80px; height:80px;" class=”photo”
    alt=”Emily Lewis” />
    </a>
  4. <p>Yeah ce serait moi :
    <a class=”fn email”
    href=”mailto:emily@ablognotlimited.com”>Emily Lewis</a>.
    </p>
  5. <p>Je suis
    <span class=”title”>web designer
    </span> vit à
    <span class=”adr”>
    <span class=”locality”>Albuquerque</span>,
    <span class=”region”>New Mexico
    </span> <span class=”postal-codenonVisual”>87106
    </span>
    <acronym class=”country-name nonVisual” title=”United States of America”>USA
    </acronym></span>, et suis une “standardista.”</p>
  6. <p>Je suis spécialisée dans le
    <acronym title="eXtensible Hypertext Markup Language">(X)HTML
    </acronym> sémantique codé à la main et <acronym title="Cascading StyleSheets">CSS
    </acronym>, concevoir des sites web accessibles, et l'écriture et optimisation du contenu web.
    </p>
  7. <p><a href="http://www.ablognotlimited.com" rel="home me"
    class=”url”>A Blog Not Limited</a> est mon blog personnel où je pontifie sur le design web, les standards du web, la sémantique et tout ce qui m’entiche.
    </p>
  8. </div>
Les Différences

Mis à part le fait que le contenu hCard dans ce second exemple soit “dans la ligne” avec du contenu non-hCard, il y a quelques légères différences dans les propriétés et sous-propriétés hCard utilisées :

  • Je fais uniquement référence dans cet exemple à mon premier prénom et à mon nom de famille, aussi je n’utilise que class="fn". Souvenez-vous que la propriété n peut être implicite si le contenu fn fait exactement deux mots.
  • J’inclus mon titre de job dans la description, aussi j’ajoute class="title", qui est l’une des propriétés fournissant de l’information à propos de l’affiliation professionnelle d’une personne. Cette propriété indique le titre de mon job.
  • J’inclus une photo de moi-même, aussi j’ajoute class="photo" à <img />.

Néanmoins, ces différences avec le premier exemple n’ont rien à voir avec le fait que j’utilise la hCard en langage naturel. Ce n’étaient simplement que les valeurs appropriées à utiliser avec le contenu dans cet exemple spécifique..

Combiner hCard & XFN

Comme je le mentionnais, ce concept de hCard en langage naturel fournit tellement plus de contextes dans lesquels la hCard peut être utilisée. Je l’ai déja appliqué à l’information à mon propos, mais je fais souvent référence à des amis et confrères dans mes articles … cela fait vraiment sens de marquer ces références avec hCard.

Et peu importe si je marque déjà ces références avec les valeurs XFN. L’une des meilleures choses à propos des microformats est qu’ils peuvent être facilement combinés.

Selon le contexte de la référence, j’utilise un marquage légèrement différent.

Dans les situations où je fais référence à un article/billet (tel que la référence au-dessus à Jeremy Keith), j’utilise <cite> comme mon conteneur vcard :

<p> … le brillant
<cite class=”vcard”>
<a href=”http://adactio.com” rel=”muse colleague”
class=”url fn”
title=”adactio.com”>Jeremy Keith</a>
</cite>,
qui suggère d’utiliser <a href=”http://adactio.com/journal/1122/”
title=”adactio : hCard en langage naturel”>hCard en langage naturel</a>.
</p>

Et dans les situations où je fais simplement référence à la personne, j’utilise <span> comme mon conteneur vcard :

<span class=”vcard”>
<a href=”http://www.jenschwedler.com/”
title=”jenschwedler.com” class=”url fn”
rel=”met colleague co-worker friend”>
Jen Schwedler</a>
</span>

Pour finir, si je fais seulement référence à la personne par son prénom, j’utilise <abbr> le conteneur du nom formaté avec le nom complet comme valeur pour title :

<span class="vcard">
<abbr class=”fn” title=”Ian Pitts”>
<a href=”http://www.iso-100.com/” title=”iso-100.com”
class=”url” rel=”met colleague co-worker friend”>
Ian
</a>
</abbr>
</span>

Dans tous ces exemples, les différences de marquage reflètent simplement ma sémantique préférée. Les microformats hCard et XFN sont les mêmes :

  • propriété fn pour le nom
  • propriété url pour le site web
  • valeurs rel appropriées.

Et si j’avais de l’information supplémentaire à propos de ces types (comme un titre de job, un e-mail, etc.) je marquerais de la même façon ce contenu avec les propriétés/sous-propriétés appropriées.

Organisations & Sociétés

J’ai déjà rencontré des situations où je devais utiliser hCard pour décrire une société ou une organisation sur ce blog, et je voulais vraiment fournir un exemple sur la façon dont cela pourrait s’implémenter :

  1. <div class=”vcard”>
  2. <p class=”fn org”>Big Ass Blow-Up Dolls</p>
  3. <img src="logo.png" class=”logo” style=”width:69px; height:69px;” alt=”Big Ass Blow-Up Dolls” />
  4. <p class=”adr”><span
    class=”street-address”>
    6969 Happiness Avenue</span>,
    <span class=”locality”>Los Angeles</span>,
    <abbr class=”region” title=”California”>CA</abbr>
    <span class=”postal-code”>69069</span>
    </p>
  5. <ul>
  6. <li class=”tel”><span
    class=”value”>696-969-6969</span>
    </li>
  7. <li><a class=”email”
    href=”mailto:goodtimes@babud.com”>Envoyez-nous un e-mail</a>
    </li>
  8. <li><a class=”url”
    href=”http://www.babud.com/”>Visitez Notre Site Web</a>
    </li>
  9. </ul>
  10. </div>

Comme vous pouvez le constater, la hCard pour les organisations/sociétés est en fait la même qu’elle l’est pour les individus. Les principales différences sont :

  • En plus de la propriété fn pour le nom, le nom de l’organisation se voit aussi déclarer la propriété org. Et avec les sociétés/organisations, vous n’utilisez jamais la propriété n.
  • Plutôt que photo pour l’<img />, l’image associée est marquée avec la propriété logo.

Lieux

Ce que j’ai détaillé pour les sociétés et organisations serait la même approche pour les lieux. Vous référenceriez simplement le nom du lieu avec les propriétés fn org et appliqueriez toute l’information d’adresse comme je l’ai démontré au-dessus.

Voici un exemple de hCard en langage naturel pour un lieu :


<p class=”vcard”>
Durant ma visite à <span class=”locality”>Atlanta
</span>,
<abbr title=”Georgia” class=”region”>GA
</abbr>,
je prévois de jeter un oeil au
<span class=”fn org”>
Centennial Olympic Park
</span>.</p>

Il y a quelques propriétés hCard spécifiques-aux-lieux qui sont particulièrement utiles pour les endroits (bien qu’elles ne soient pas uniquement limitées aux lieux) :

  • La propriété geo spécifie la position globale en utilisant deux sous-propriétés, latitude et longitude.
  • La sous-propriété latitude spécifie une valeur décimale qui indique la position verticale en relation avec l’équateur.
  • La sous-propriété longitude spécifie une valeur décimale qui indique la position horizontale en relation avec le premier méridien.

Parlons Avantages

Ainsi, maintenant que j’ai traité plusieurs exemples de hCard, il est temps de passer aux avantages.

Sémantique

Vous saviez que ça arriverait. Je l’ai déjà dit et le répéterai encore une fois :

L’usage des microformats ajoute de la structure et du sens au contenu web, le rendant à la fois lisible par les humains et les machines. Et tout cela avec des standards existants pour le marquage et les données.

Ceci encourage aussi le concept plus large de standards du web qui profitent à tous.

Partager l’Information de Contact

En utilisant hCard pour marquer l’information de contact, vous rendez automatiquement possible le fait que cette information soit convertie en une vCard téléchargeable, qui peut alors être utilisée par les programmes tels que Outlook de Microsoft et le Carnet d’Adresses d’Apple.

Vous pouvez utiliser le service de contacts de Technorati décrit précédemment, ou pouvez créer le vôtre et l’héberger sur votre propre serveur pour le téléchargement.

En outre, il existe plusieurs modules/extensions de navigateurs qui exportent automatiquement l’information hCard en vCards :

Firefox

Operator 0.9.3 reconnaît le contenu hCard et offre aux utilisateurs une option pour exporter l’information sous une vCard pour utilisation dans leurs programmes préférés de gestion d’adresses :

Extension Firefox Operator avec hCard

vCard importée dans le Carnet d'Adresses

Vous pouvez aussi voir la liste des options dans la capture d’écran, Operator utilise l’information hCard pour chercher sur d’autres sites web, comme Google Maps :

Google Maps recherche hCard

Tails Export 0.3.5 est une autre extension Firefox qui tire profit de l’information hCard pour l’export à l’intérieur d’autres programmes de carnet d’adresses :

Extension Firefox Tails Export vers hCard

Safari

Le plugin Safari Microformats est utilisé pour vous utilisateurs de Safari afin d’identifier les microformats hCard sur une page web et de la sauvegarder dans votre carnet d’adresses.

Je ne suis pas une fervente utilisatrice de Safari, et l’installation de ce plug-in fût bien trop boîteuse pour moi … aussi je ne l’ai pas installé et ne peux pas vous fournir de capture d’écran.

Bookmarklets

Le concept derrière le plugin susmentionné a été implémenté dans un bookmarklet microformats indépendant du navigateur, et je peux confirmer que c’est vraiment très beau :

bookmarklet Microformats avec hCard

Il existe aussi d’autres bookmarklets hCard.

Chercher

Le contenu web marqué avec des microformats a naturellement plus de sens. Ceci pourrait aider les moteurs de recherche à mieux évaluer le contenu que vous leur fournissez, et peut-être, augmenter votre classement dans les résultats des moteurs de recherche.

Il n’y a jamais de garanties quand on arrive à la recherche, mais le contenu de qualité dans le contexte est toujours un bon démarrage.

Au delà des résultats de recherche, bon nombre des moteurs de recherche sont en train d’implémenter hCard dans leurs propres applications et services :

Réseaux Sociaux

Les sites de réseaux sociaux utilisent les microformats hCard pour marquer les pages profils avec l’information de contact des utilisateurs, tout comme celles des “contacts/friends/followers” des utilisateurs :

  • Twitter applique la hCard aux pages profil, tout comme celles des listes des “following” et “follower”.
  • ClaimID applique la hCard sur les profils publics des utilisateurs.
  • Last.fm applique la hCard sur les profils, qui comprend photo et url en plus de fn.

Et ce pour n’en citer que quelques-uns. Regardez la liste complète des services qui utilisent hCard.

Des Outils pour Vous Faciliter La Vie

Je serais négligente si je ne vous faisais pas ressortir quelques outils utiles qui peuvent vous aider à implémenter bien plus facilement hCard que de coder à la main et vous obliger à vous souvenir de toutes les valeurs (bien que j‘apprécie) :

  • hCard creator est un simple formulaire qui génère une hCard à partir de l’information proposée.
  • Le validateur microformat hCard vous laisse proposer une URL avec un contenu hCard, et puis valide les propriétés et sous-propriétés.
  • Il existe une anti-sèche hCard pour une référence rapide aux propriétés et sous-propriétés.

Il y en a Tellement Plus

Je suis entrée dans des détails vraiment spécifiques sur le microformat hCard. Mais il y en a bien plus encore que ce que j’ai pu mentionner.

Je vous encorage vivement à prendre un peu de temps et lire toutes les propriétés et sous-propriétés disponibles du microformat hCard, tout comme à voir quelques-uns des exemples de hCard dans la jungle.

A venir en 4ème Partie

Bien que ce fût un article long (qui en dit beaucoup considérant ma tendance normale à la verbosité), j’espère que cela a été intéressant et au moins utile pour vous.

Parvenir à la Sémantique Avec les Microformats, 4ème Partie traitera du microformat hCalendar.

Restez branchés …

Tags Technorati :

Note : Cette traduction s’inscrit dans la poursuite de travaux visant à mieux faire connaître les microformats. L’article original d’Emily Lewis a été publié le 22 septembre dernier sur son blog personnel. Seul le lien original fait référence. Vous pouvez aider à raffiner cet article en éditant directement le code posé sur la page miroir de mon wiki-personnel. Merci d’avance. xtof

Powered by WordPress