value-class-pattern-fr: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
m ([fr : Shortening URL http://tr.im/ClasseValue])
m (Replace <entry-title> with {{DISPLAYTITLE:}})
 
(32 intermediate revisions by 8 users not shown)
Line 1: Line 1:
<entry-title>Modèle de Classe Value</entry-title>
{{DISPLAYTITLE:Modèle de Classe Value}}


Le modèle de classe "value" provient de l'[[hcard-fr#Extraction_de_Valeur|extraction de valeur]] dans la hCard.
Le modèle de classe "value" provient de l'[[hcard-fr#Extraction_de_Valeur|extraction de valeur]] dans la hCard.


''Les auteurs croient que le modèle-de-classe-value est désormais complet et prêt à l'emploi pour le balisage.  
''Les auteurs pensent que le modèle-de-classe-value est désormais complet et prêt à l'emploi pour le balisage.  
Les implémenteurs sont encouragés à mettre leurs sites à jour et fournir un [[value-class-pattern-feedback|feedback]].  
Les implémenteurs sont encouragés à mettre leurs sites à jour et fournir un [[value-class-pattern-feedback|feedback]].  
'''Remarque''', le comportement précis du parsage pourrait être modifié en réponse aux feedbacks des implémenteurs, mais les méthodes sont stables.  
'''Remarque''', le comportement précis du parsage pourrait être modifié en réponse aux feedbacks des implémenteurs, mais les méthodes sont stables.  
Line 37: Line 37:


<source lang=html4strict>
<source lang=html4strict>
<span class="tel">
<span class="tel">
  <span class="type">Home</span>:
  <span class="type">Home</span>:
  <span class="value">+1.415.555.1212</span>
  <span class="value">+1.415.555.1212</span>
</span>
</span>
</source>
</source>


Line 51: Line 51:


<source lang=html4strict>
<source lang=html4strict>
<span class="tel">
<span class="tel">
  <span class="type">Home</span>:
  <span class="type">Home</span>:
  <span class="value">+33</span> (0) <span class="value">1 42 31 23 23</span>
  <span class="value">+33</span> (0) <span class="value">1 42 31 23 23</span>
</span>
</span>
</source>
</source>


Line 66: Line 66:


<source lang=html4strict>
<source lang=html4strict>
<p>Je flâne dans Montmartre rue Junot
<p>Je flâne dans Montmartre rue Junot
    <span class="geo">
  <span class="geo">
       48° 53' 16.3206", 2° 20' 5.9712"
       48° 53' 16.3206", 2° 20' 5.9712"
       (<span class="value">48.887867;2.3349922</span>)
       (<span class="value">48.887867;2.3349922</span>)
  </span>
  </span>
  </p>
</p>
</source>
</source>




Line 80: Line 78:
ainsi la classe <code>value</code> l'isole de la forme en degrés, que l'auteur a inclus pour plus de complétude.
ainsi la classe <code>value</code> l'isole de la forme en degrés, que l'auteur a inclus pour plus de complétude.


==Analyse Basique==
==Analyse Fondamentale==
# L'exemple de classe value ne s'applique uniquement qu'aux propriétés qui sont de simples chaînes, des valeurs énumérées, des numéros de téléphone et des datetimes. L'exemple de classe value n'affecte pas l'analyse des propriétés de type email, URL, URI, UID.
# L'exemple de classe value ne s'applique uniquement qu'aux propriétés qui sont de simples chaînes, des valeurs énumérées, des numéros de téléphone et des dates-heures. L'exemple de classe value n'affecte pas l'analyse des propriétés de type email, URL, URI, UID.
# Là où un élément avec un tel nom de propriété de classe microformat a un descendant avec un nom de classe <code>value</code> (un élément "value"), les parseurs devraient utiliser la portion suivante de cet élément :  
# Là où un élément avec un tel nom de propriété de classe microformat a un descendant avec un nom de classe <code>value</code> (un élément "value"), les parseurs devraient utiliser la portion suivante de cet élément :  
## si l'élément value est un élément <code>img</code> ou un élément <code>area</code>, utiliser alors la valeur d'attribut du <code>alt</code> de l'élément.
## si l'élément value est un élément <code>img</code> ou un élément <code>area</code>, utiliser alors la valeur d'attribut du <code>alt</code> de l'élément.
Line 88: Line 86:
# Là où il y a plusieurs descendants d'une propriété avec un nom de classe de <code>value</code> (plusieurs éléments value)
# Là où il y a plusieurs descendants d'une propriété avec un nom de classe de <code>value</code> (plusieurs éléments value)
## si la propriété microformats attend une chaîne simple, une valeur énumérée ou un numéro de téléphone, alors les valeurs extraites des éléments value devraient être concaténées ''sans'' insérer de caractères supplémentaires ou d'espace-blanc.
## si la propriété microformats attend une chaîne simple, une valeur énumérée ou un numéro de téléphone, alors les valeurs extraites des éléments value devraient être concaténées ''sans'' insérer de caractères supplémentaires ou d'espace-blanc.
## si la propriété microformats attend une valeur datetime, voir la section [[#Date_and_time_parsing|Date Time Parsing]].
## si la propriété microformats attend une valeur datetime, voir la section [[#Analyse_Date_et-heure|Analyse Date et heure]].
# Les descendants avec la classe <code>value</code> ne doivent pas être parsées plus profond qu'à un niveau. Ce qui veut dire, là où il y a un élément <code>foo</code> avec la classe <code>value</code>  
# Les descendants avec la classe <code>value</code> ne doivent pas être analysées plus profondément qu'à un niveau. Ce qui veut dire, là où il y a un élément <code>foo</code> avec la classe <code>value</code>  
qui a un <em>descendant</em> <code>bar</code> avec la classe <code>value</code>, le contenu de <strong><code>foo</code></strong> est pris comme la <code>value</code>.  
qui a un <em>descendant</em> <code>bar</code> avec la classe <code>value</code>, le contenu de <strong><code>foo</code></strong> est pris comme la <code>value</code>.  
L'imbrication d'éléments supplémentaires avec la classe <code>value</code> ne peut pas être utilisé pour isoler plus en profondeur une value de propriété.
L'imbrication d'éléments supplémentaires avec la classe <code>value</code> ne peut pas être utilisé pour isoler plus en profondeur une value de propriété.
Line 108: Line 106:
<samp><code>&lt;em class="value">Puppies Rule!&lt;/em>&lt;strong>But kittens are better!&lt;/strong></code></samp>, pas simplement <samp>Puppies Rule!</samp>.
<samp><code>&lt;em class="value">Puppies Rule!&lt;/em>&lt;strong>But kittens are better!&lt;/strong></code></samp>, pas simplement <samp>Puppies Rule!</samp>.


== Values Date et time ==
== Valeurs Date et heure ==
Quelques propriétés microformats attendent une valeur datetime ISO8601, par ex. [[hcalendar-fr|hCalendar]] <code>dtstart</code> et <code>dtend</code> ou [[hatom-fr|hAtom]] <code>published</code>.   
Quelques propriétés microformats attendent une valeur datetime ISO8601, par ex. [[hcalendar-fr|hCalendar]] <code>dtstart</code> et <code>dtend</code> ou [[hatom-fr|hAtom]] <code>published</code>.   


Les auteurs peuvent utiliser le modèle de classe value pour spécifier séparément la date et l'heure, qui sont alors combinés pour spécifier une valeur unique datetime.
Les auteurs peuvent utiliser le modèle de classe value pour spécifier séparément la date et l'heure, qui sont alors combinés pour spécifier une valeur unique datetime.


Exemple :
Exemple : cette propriété hCalendar 'dtstart' avec des éléments 'value' :


<source lang=html4strict>
<source lang=html4strict>
Line 124: Line 122:
</source>
</source>


Produit :  
Produit la valeur 'dtstart' suivante :  
 
et les convertisseurs iCalendar produisent le DTSTART suivant :
 


<source lang=text>
<source lang=text>
DTSTART:2009-05-19T19:30:00
DTSTART:20090519T193000
</source>
</source>


L'absence d'une timezone indique une datetime "flottante", qui est une datetime indépendant de tout fuseau horaire particulier. Des exemples de datetimes flottantes pourraient être  
L'absence d'une "timezone" indique une "datetime" "flottante", qui est une date-heure indépendante de tout fuseau horaire particulier. Des exemples de datetimes flottantes pourraient être une alarme de réveil que vous paramétrez pour sonner à 8h00, ou un jour de travail ordinaire comme 9h00-17h00.
une alarme de réveil que vous paramétrez pour sonner à 8h00, ou un jour de travail ordinaire comme 9h00-17h00.


=== Analyse Date et heure===
=== Analyse Date et heure===
Pour toutes les propriétés date et heure (comme définies dans leurs spécifications respective microformats), les règles suivantes s'appliquent en plus de celles (et dans certains cas les remplacent) des règles de modèles de parsage de classe value vues au-dessus.
Pour toutes les propriétés date et heure (comme définies dans leurs spécifications respectives microformats), les règles suivantes s'appliquent en plus de celles (et dans certains cas les remplacent) des règles de modèles de parsage de classe value vues au-dessus.


Quand un élément "value" est trouvé, parsez une valeur à partir de l'élément comme suit :  
Quand un élément "value" est trouvé, parsez une valeur à partir de l'élément comme suit :  
* if the element is an <code>img</code> or <code>area</code> element, then use the element's <code>alt</code> attribute value.
* si l'élément est un élément <code>img</code> ou un élément <code>area</code>, utiliser alors la valeur d'attribut <code>alt</code> de l'élément.
* if the element is an <code>abbr</code> element, then use the element's <code>title</code> attribute value.
* si l'élément est un élément <code>abbr</code>, utiliser alors la valeur d'attribut <code>title</code> de l'élément.
* for any other element, use its inner-text.
* pour tout autre élément, utiliser son texte à l'intérieur.
* if the value has both a specific ISO8601 date and a specific time, use those and stop looking for "value" elements.
* si la valeur a à la fois une date spécifiée ISO8601 et une heure spécifique, utilisez ceux-ci et arrêtez de chercher des éléments "value".
* if the value has *only* a specific date, specifically, fits the following ISO8601 date patterns (i.e. as documented in the [http://en.wikipedia.org/wiki/ISO_8601 Wikipedia summary of ISO8601])
* si la valeur a *seulement* une date spécifique, spécifiquement, correspondant aux modèles de dates suivants ISO8601 (c.a.d. tels que documentés dans le [http://en.wikipedia.org/wiki/ISO_8601 résumé Wikipedia de ISO8601])
** YYYY-MM-DD
** AAAA-MM-JJ
** YYYY-DDD
** AAAA-JJJ
** then use that as the date value. For the purposes of the value class pattern, the hyphens "-" separating the year, month, day and/or ordinal day are required.
** alors utiliser cela comme la valeur de date. Pour les besoins du modèle de classe value, les tirets "-" séparant les années, mois, jour et/ou jour ordinal sont requis.
** ignore any further "value" elements that specify the date.
** ignorer tous les éléments complémentaires "value" qui spécifient la date.
* if the value has *only* a specific time (with or without timezone), parse it for a time value as follows
* si la valeur a *seulement* une heure spécifique (avec ou sans fuseau horaire), parsez la pour une valeur time qui puisse correspondre à tout ce qui suit :
** HH:MM:SS-XX:YY
** HH:MM:SS-XX:YY
** HH:MM:SS+XX:YY
** HH:MM:SS+XX:YY
Line 159: Line 159:
** HH:MMZ
** HH:MMZ
** HH:MM
** HH:MM
** HH is the 24 hour "hours" in the time, from 00 to 24, with optional leading 0 for values less than 10.
** HH sont les "heures" en 24 heures dans le temps, de 00 à 24, avec un 0 optionnel placé devant pour les valeurs inférieures à 10.
** MM are the minutes from 00 to 59
** MM sont les minutes de 00 à 59
** SS are the optional seconds from 00 to 59 (60 for a leap second). If omitted, infer 00.
** SS sont les secondes optionnelles de 00 à 59 (60 pour une seconde). Si omis, inférez 00 secondes.
** XX is the time zone hours offset, from 00 to 12
** XX est le décalage horaire du fuseau, de 00 à 12, avec un 0 en tête optionnel pour les valeurs inférieures à 10
** YY is the time zone minutes offset, from 00 to 59, though in practice only 00, 15, 30, 45 minute offsets are used in global timezones.
** YY est le décalage en minutes du fuseau horaire, de 00 à 59, même si en pratique ne sont utilisés que des décalages de 00, 15, 30, 45 minutes dans les fuseaux horaires globaux.
** Z is the literal 'Z' to indicate GMT.
** Z est le 'Z' littéral pour indiquer GMT.
** For the purposes of the value class pattern, the colons ":" separating the hour, minutes, seconds are required.  
** Pour les besoins du modèle de classe value, les deux points ":" séparant heure, minutes et secondes sont requis.
** However the colons ":" separating the hours and minutes of any timezone offset are ''optional'' and discouraged in order to make it less likely that a timezone offset will be confused for a time.
** Néanmoins les deux points ":" séparant les heures et minutes de tout décalage horaire sont "optionnels" et non recommandés afin de faire en sorte qu'une indication de fuseau horaire ne soit pas confondue avec un horaire.
** (NOTE: consider a case insensitive { }"am"|{ }"a.m." suffix to treat an HH value of 12 as 00, or a case-insensitive { }"pm"|{ }"p.m." suffix to add 12 to HH value less than 12 - per [http://en.wikipedia.org/wiki/12-hour_clock Wikipedia article on the 12 hour clock])
** Un suffixe non sensible à la casse { }"am"|{ }"a.m." pour traiter une valeur HH value de 12 comme 00, ou un suffixe non sensible à la casse { }"pm"|{ }"p.m."pour ajouter 12 à une valeur HH inférieure à 12 - selon [http://en.wikipedia.org/wiki/12-hour_clock l'article de Wikipedia sur l'horloge de 12 heures]. Note : [[X2V]] a implémenté cela.
** ignore any further "value" elements that specify the time.
*** HH:MM:SSam
* if the value has *only* a specific timezone, parse it as follows
*** HH:MM:SSpm
*** HH:MMam
*** HH:MMpm
*** HHam
*** HHpm
*** où "am" et "pm" veulent dire "am ou a.m." et "pm or p.m."
*** quand MM est omis, inférer 00 minutes.
** ignorez tous les autres éléments "value" qui spécifient l'heure.
* si la valeur a *seulement* une date-heure spécifique, ou une valeur de zone horaire qui corresponde à n'importe quelle valeur suivante :
** -XX:YY
** -XX:YY
** +XX:YY
** +XX:YY
** -XXYY
** -XXYY
** +XXYY
** +XXYY
** -XX
** +XX
** Z
** Z
** ignore any further "value" elements that specify the timezone.
** XX est le décalage en heures du fuseau horaire, de 00 à 12 avec un 0 optionnel en avant pour les valeurs inférieures à 10.
** YY est le décalage en minutes de la zone horaire, de 00 à 59, bien qu'en pratique seuls les décalages de 00, 15, 30, 45 minutes soient utilisés dans les zones horaires globales.
** Z est le 'Z' littéral pour indiquer GMT.
** ignorez tous les autres éléments "value" qui spécifient la timezone.


If by parsing the "value" element(s), at least a specific date has been found, then the "value" is overall valid, and the parser assembles the overall datetime value by concatenating the specific date, "T" and specific time (if time was specified, with 00 seconds implied if no seconds are provided), and specific timezone (if timezone and a specific time was specified).
Si en parsant les éléments "value", au moins une date spécifique est trouvée, alors la "value" est par dessus-tout valide, et le parseur assemble la valeur datetime en concaténant la date spécifique, "T" et l'horaire spécifique (si l'heure a été spécifiée, avec 00 secondes implicite si aucune seconde n'est fournie), et une timezone spécifique (si la timezone et l'horaire spécifique ont été spécifiés).
* YYYY-MM-DD - no time specified
* AAAA-MM-JJ - aucun horaire spécifié
* YYYY-MM-DDTHH:MM:SS - time specified but no timezone. This is a floating time.
* AAAA-MM-JJTHH:MM:SS - heure spécifiée mais pas de timezone. C'est une heure flottante.
* YYYY-MM-DDTHH:MM:SS-XXYY or
* AAAA-MM-JJTHH:MM:SS-XXYY ou
* YYYY-MM-DDTHH:MM:SSZ or
* AAAA-MM-JJTHH:MM:SSZ ou
* YYYY-MM-DDTHH:MM:SS+XXYY - both time and timezone were specified.
* AAAA-MM-JJTHH:MM:SS+XXYY - à la fois l'heure et la timezone ont été spécifiées
 
=== détails spécifiques des formats ===
Ce qui suit sont des détails spécifiques de format et des optimisations qui font usage du modèle-classe-value.
 
;<span style="font-size:smaller">URL raccourci pour cette section </span>
:http://tr.im/vcpfso (à localiser)
 
==== hCalendar date dtend implicite ====
Généralement, les événements qui démarrent et finissent le même jour n'affichent seulement la date de l'événement qu'une fois (cela fait sens selon le [[principles-fr|principe]]) DRY  (exemples du vrai monde : [http://upcoming.yahoo.com/event/3010807/ Upcoming], ... plus d'exemples avec des URLs aiderait pour être minutieux). 
 
Par conséquent ce serait pratique si nous pouvions sous-tendre une date dtend d'événement [[hcalendar-fr|hCalendar]] à partir de sa date "dtstart" si et seulement si l'horaire (et en option la timezone) était spécifiée pour son "dtend", par ex. :
 
<source lang=html4strict>
<span class="vevent">
La <span class="summary">soirée</span> aura lieu le
<span class="dtstart">
  <span class="value">2009-06-26</span>, à partir de
  <span class="value">19:00</span></span> jusqu'à 
<span class="dtend"><span class="value">22:00</span></span>.
</span>
</source>
 
Pour simplifier cela aux auteurs, les processeurs hCalendar pourraient traiter la spécification juste avec l'heure selon les règles de valeur du modèle de classe value, et de ce fait éliminer le besoin d'un span "value" dans le span "dtend" :
 
<source lang=html4strict>
<span class="vevent">
La <span class="summary">soirée</span> aura lieu le 
<span class="dtstart">
  <span class="value">2009-06-26</span>, à partir de
  <span class="value">19:00</span></span> jusqu'à 
<span class="dtend">22:00</span>.
</span>
</source>
 
Le convertisseurs hCalendar vers iCalendar devraient produire le fragment iCalendard suivant (en tant que partie d'un fichier .ics) provenant de l'un ou l'autre des deux exemples au-dessus :
 
<source lang=text>
BEGIN:VEVENT
SUMMARY:party
DTSTART:20090626T190000
DTEND:20090626T220000
END:VEVENT
</source>
 
Note : [[X2V-fr|X2V]] a implémenté la date dtend implicite à partir de dtstart.
 
Exemples "dans jungle":
* http://microformats.org/wiki/events/2009-08-12-nyc-workshop (exemple du vrai monde, mais sur ce wiki).
 
==== générateurs iCalendar ====
les implémentations microformats qui consomment  [[hcalendar-fr|hCalendar]] et génèrent iCalendar doivent en outre :
# retirer tous les tirets "-" de séparation dans la date.
# retirer tous séparateurs deux points ":" dans l'horaire.
# ajouter un jour complet à toutes les valeurs de propriété <code>dtend</code> hCalendar (manquant d'un horaire spécifié) (inclusion date) afin de générer une valeur de propriété<code>DTEND</code> iCalendar (date excluse)  avec le même sens, selon la résolution de la [[dtend-issue-fr|problématique-dtend]].
# exécuter une formule mathématique +/- datetime sur toute valeur timezone , et produire une valeur effective UTC finissant par "Z".
 
==== hAtom date updated implicite ====
De la même façon, dans les billets de blog qui indiquent à la fois quand ils sont "publiés" et "mis à jour", la date n'est généralement affichée qu'une fois, généralement "publiée" (les exemples du vrai monde aideraient pour plus de minutie).
 
Par conséquent, ce serait pratique si nous pouvions sous-tendre une date d'entrée "updated" [[hatom-fr|hAtom]] à partir de sa date "published" si et seulement si l'horaire (et en option la timezone) était spécifiée pour son "updated", par ex. pour un billet de blog qui est mis à jour le même jour :
 
<source lang=html4strict>
<span class="hentry">
<span class="entry-summary">exemple de petit billet de blog</span>
publié le <span class="published">
  <span class="value">2009-08-01</span> à <span class="value">12:06</span></span>
et mis à jour à <span class="updated"><span class="value">12:10</span></span>.
</span>
</source>
 
Pour simplifier cela aux auteurs, les processeurs hAtom pourraient traiter la spécification horaire selon les règles de valeurs des date et time du modèle de classe value, et par conséquent éliminer le besoin d'un span "value" dans le span "updated"
 
<source lang=html4strict>
<span class="hentry">
<span class="entry-summary">exemple de petit billet de blog</span>
publié le <span class="published">
  <span class="value">2009-08-01</span> à <span class="value">12:06</span></span>
et mis à jour à <span class="updated">12:10</span>.
</span>
</source>
 
==== générateurs Atom ====
les implémentations microformats qui consomment [[hatom-fr|hAtom]] et génèrent Atom DOIVENT en outre :
* normaliser toutes les valeurs date et datetime à la [[RFC3339-fr|RFC3339]].


=== dérivation et tests ===
=== dérivation et tests ===
The handling of date and time values in the value class pattern was originally [[value-excerption-pattern-brainstorming#date_and_time_separation|brainstormed on the value-excerption-pattern-brainstorming]] page and derived from that analysis and feedback. For the curious, historical details may be found there, along with additional thoughts for extension.
Cette section est <em>informative</em>.
 
La gestion des valeurs date et heure dans le modèle de classe value a été intialement [[value-excerption-pattern-brainstorming#date_and_time_separation|brainstormée sur la page the value-excerption-pattern-brainstorming]] et dérivée de cette analyse et des feedbacks. Pour les curieux, les détails historiques peuvent être trouvés ici, avec quelques idées supplémentaires pour extension.
 
Voir [[value-class-date-time-tests]] pour les tests de cas.
 
==Parsage de valeur à partir d'un attribut <code>title</code> ==
Le nom de classe <code>value-title</code> permet au diffuseur d'indiquer la valeur de donnée pour une propriété parente contenue dans l'attribut <code>title</code> d'un élément, plutôt que dans le texte à l'intérieur.
 
Ceci peut être utilisé pour fournir un synonyme dans le contenu, ou utilisé pour publier tranquillement des formes alternatives d'inforamtion pour un parsage microformats, sans affecter la consommation de contenu. Poua la sécurisation des archives papier, l'utilisation d'un coffre-fort ignifuge data pour les sauvegardes voir http://www.infosafe.fr ou d'une armoire fortes ignifuges pour les registres est requise par les normes ISO.
 
Par exemple, vous pouvez utiliser une localisation avec des dates :
 
<source lang=html4strict>
<p>C'était
<span class='dtstart'>
  <span class='value-title' title='2008'>l'année dernière</span>
</span>
  que je commençais à réaliser que mon addiction à la crème de marron coûterait si cher à ce pays.
</p>
</source>


Date and time separation and concatenation tests are available: [[value-excerption-dt-separation-test]]
Les règles de parsage pour <code>value-title</code> sont les mêmes que pour <code>value</code> above, avec le changement suivant :  
 
* Là où une propriété microformats a un élément enfant avec le nom de classe <code>value-title</code>, le contenu de l'attribut <code>title</code> de cet élément doit être parsé, plutôt que la portion de l'élément qui devrait être parsée pour un nom de classe de <code>value</code>.
 
===Utilisation de <code>value-title</code> pour publier des données-machines===
 
L'usage initial de <code>value-title</code> est utilisé pour publier des formes alternatives, parsables de valeurs de propriétés dans un contexte visible sans l'utilisation de l'élément <code>abbr</code> dont la sémantique supporte déjà l'interprétation de l'attribut "title' comme une forme plus étendue, plus précise du contenu.
 
L'expérience a montré qu'il y a des cas dans les microformats où un certain nombre d'auteurs veulent inclure une valeur précise et parsable pour une propriété mais ne veulent pas qu'elle soit visible sur leurs pages, même sous forme d'info-bulle.
 
Par exemple, les datetimes complètes [[ISO8601-fr|ISO8601]] peuvent prêter à confusion pour les lecteurs de la page (comme une infobulle ou au moment d'être lues à voix haute par un lecteur-écran), et les valeurs énumérées telles que la sous-propriété <code>type</code> de la propriété <code>tel</code> de hCard utilise des termes US-anglais, qui ne font pas partie des pages dans toute autre langue.
 
Parce que ces deux scénarios se sont avérés être des obstacles pour un certain nombre de diffuseurs, dans ces cas, et ces cas seulement, il existe une extension approfondie de l'extraction de value. Cette extension permet aussi la forme parsable de la propriété à publier 'en silence' immédiatement adjacente au contenu respectif visible en local.
 
 
Voici un exemple, avec l'usage obligatoire d'un premier élément enfant avec le nom de classe <code>value-title</code>:
 
<source lang=html4strict>
<p class='tel' lang='fr-fr'>
  <span class='type'>
    <span class='value-title' title='cell'> </span>
      mobile
    </span>
  <span class='value'>+33 7773 000 000</span>
</p>
</source>
 
La valeur <samp>cell</samp> est parsée pour la sous-propriété 'type', mais <samp>mobile</samp> est présenté à l'utilisateur.
 
Dans le cas de dates :
 
<source lang=html4strict>
<p class='dtstart'>
  <span class='value-title' title='2009-03-14T16:28-0600'> </span>
  14 mars 2009, vers quatre heures et demi
</p>
</source>
 
Un parseur microformats lira le format datehoraire ISO8601 <samp>2009-03-14T16:28-0600</samp>, mais les utilisateurs ne verront que <samp>14 mars 2009, vers quatre heures et demi</samp>. Les tests ont montré que le date-heure ISO8601 du dessus n'est exposé en aucun cas à l'utilisateur.


==Parser une valeur provenant d'un attribut <code>title</code> ==
==Parser une valeur provenant d'un attribut <code>title</code> ==
The <code>value-title</code> class name allows the publisher to indicate the data value for a parent property is contained in the <code>title</code> attribute of an element, rather than the inner-text.
Le nom de classe <code>value-title</code> permet à l'auteur d'indiquer la donnée value pour une propriété parent contenue dans l'attribut <code>title</code> d'un élément, plutôt que dans le texte à l'intérieur.


This can be used to provide a synonym within content, or used to quietly publish alternate forms of information for microformats parsing, without affecting the consumption of content.
Ceci peut s'utiliser pour fournir un synonyme dans le contenu, ou utilisé pour publier tranquillement des formes alternatives d'information pour le parsage de microformats, sans impacter sur la consommation du contenu.
 
For example, you can use casual localization with dates:


Par exemple, vous pouvez utiliser des localisations ponctuelles avec des dates :
<source lang=html4strict>
<source lang=html4strict>
<p>Ce fût   
<p>Ce fût   
Line 207: Line 361:
Les règles de parsage pour <code>value-title</code> sont les mêmes que celles pour <code>value</code> au-dessus, avec le changement qui suit :
Les règles de parsage pour <code>value-title</code> sont les mêmes que celles pour <code>value</code> au-dessus, avec le changement qui suit :


* Where a microformats property has a child element with class name of <code>value-title</code>, the content of the <code>title</code> attribute of that element must be parsed, rather than the portion of the element that would be parsed for a class name of <code>value</code>.
* Là où une propriété microformats a un élément enfant avec le nom de classe de <code>value-title</code>, le contenu de l'attribut <code>title</code> de cet élément doit être parsé, plutôt que la portion de l'élément qui devrait être parsé pour un nom de classe de <code>value</code>.


===Utiliser <code>value-title</code> pour publier des données-machines===
===Utiliser <code>value-title</code> pour publier des données-machines===


The initial usage of <code>value-title</code> is used to publish alternate, parsable forms of property values in a visible context without the use of the <code>abbr</code> element whose semantics already support interpretation of the 'title' attribute as an expanded, more precise form of the content.  
L'usage initial de <code>value-title</code> est utilisé pour publier des formes alternatives, parsables des valeurs de propriétés dans un contexte visible sans l'utilisation de l'élément <code>abbr</code> dont la sémantique supporte déjà l'interprétation de l'attribut 'title' comme une forme plus étendue, plus précise du contenu.


Experience has found that there are some cases in microformats where a number of publishers want to include a precisely accurate and parsable value for a property but do not want it to be visible in their page, even as a tooltip.
L'expérience a montré qu'il existe quelques cas dans les microformats où un certain nombre d'auteurs veulent inclure une valeur précise et parsable pour une propriété mais ne veulent pas qu'elle soit visible dans leurs pages, ni même sous forme de petite bulle.


For example, full [[ISO8601]] datetimes may be confusing to readers of the page (as a tooltip or when read aloud by a screen reader), and enumerated values such as the <code>type</code> subproperty of hCard's <code>tel</code> property use US-English terms, which are not part of pages in any other language.
Par exemple le datetimes complet [[ISO-8601-fr|ISO-8601]] peut être confus pour les lecteurs de la page (que ce soit sous forme de bulle ou quand c'est lu par un lecteur écran), et les valeurs énumérées telles que la sous-propriété <code>type</code> de la propriété <code>tel</code> de la hCard utilise des termes US-English, qui ne font pas partie de pages dans toute autre langue.


Since both of those scenarios have shown to be obstacles for a number of publishers, for these cases, and these alone, there exists a further extension of value-excerption. This extension allows the parsable form of the property to be published ‘silently’ immediately adjacent with the respective local visible content.
Le fait que ces scénarios se sont avérés être des obstacles pour un bon nombre d'auteurs, pour ces cas, et ceux-ci seulement, il existe une extension approfondie de l'extraction de valeur. Cette extension permet une forme parsable de la propriété pour être publiée 'en silence' et immédiatement adjacente avec le contenu visible local y afférent.


Here is an example, with the required use of a first child element with class name <code>value-title</code>:
Voici un exemple, avec l'usage requis d'un premier élément enfant avec le nom de classe <code>value-title</code> :


<source lang=html4strict>
<source lang=html4strict>
Line 247: Line 401:
===Parsage donnée-machine <code>value-title</code>===
===Parsage donnée-machine <code>value-title</code>===


Browsers collapse the <code>value-title</code> span down to a width of <code>0</code>, effectively providing no visual rendering, whilst keeping the element in the DOM. With no physical dimensions, there is no ‘hover’ state, so no tooltip is revealed. Furthermore, the empty element is not passed to assistive technology layers such as VoiceOver. Screen readers do not read the contents of the title attribute of an empty <code>span</code> element.
Les navigateurs échouent sur le <code>value-title</code> réduit à une largeur de span égale à <code>0</code>, en ne fournissant en fait aucun rendu visuel, tout en conservant l'élément dans le DOM. Sans dimensions physiques, il n'y a pas d'état 'hover', ainsi aucune infobulle n'est révélée. En outre, l'élément vide n'est pas passé aux couches de technologie assistives telles que VoiceOver. Les lecteurs écrans ne lisent pas les contenus de l'attribut title d'un élément vide <code>span</code>.


We conducted [[value-excerption-value-title-test|thorough testing]] of these parsing behaviors to ensure accessibility.
Nous avons mené des [[value-excerption-value-title-test|tests approfondis]] de ces comportements de parsage pour assurer l'accessibilité.


''Note: Whilst the <code>value-title</code> element is more gracefully written without whitespace inner-text (or as self-closing <code>&lt;foo /></code> element in XHTML), current tools such as WYSIWYG editors and HTML-Tidy will erroneously discard such elements, resulting in parsable data being thrown away by some tools. As such, <code>&lt;span class='value-title'> &lt;/span></code>, including a single whitespace character between the opening and closing tag, is the required pattern for authors, at this time.''
''Note : Bien que l'élément <code>value-title</code> soit plus élégant à écrire sans texte à l'intérieur avec espace blanc (ou comme un élément  <code>&lt;foo /></code> auto-fermé en XHTML), les outils actuels tels que les éditeurs WYSIWYG et HTML-Tidy se débarasseront par erreur de tels éléments, aboutissant à une donné parsable se faisant rejeter par quelques outils. Aussi, <code>&lt;span class='value-title'> &lt;/span></code>, comprenant un caractère unique espace-blanc entre la balise d'ouverture et de fermeture, est à cette heure le modèle requis pour les auteurs.''


Parsing this final <code>value-title</code> extension imposes some stricter restrictions on usage. These restrictions exist to reduce the impact of <abbr title="Don't Repeat Yourself">DRY</abbr> violations, reduce the opportunity for sites to spoof data, and encourage best practice for maintaining both forms of data accurately.
Parser cette extension finale <code>value-title</code> impose quelques restrictions plus strictes sur l'usage. Ces restrictions existent pour réduire l'impact des violations de <abbr title="Don't Repeat Yourself">DRY</abbr>, pour réduire l'opportunité des sites à absorber les données, et pour encourager la bonne pratique de maintenir convenabelement ces deux formes de données.


Where an element with class <code>value-title</code> is to be parsed as data for a property, and that element also contains no non-whitespace content (hereafter referred to as ‘empty’), the following rules apply:
Là où un élément avec la classe <code>value-title</code> doit être parsé comme donnée pour une propriété, et que cet élément ne contienne aussi aucun contenu sans-espace-blanc (ici considéré en référence comme 'vide'), les règles suivantes s'appliquent :  


* The ‘empty’ value-title element must be the '''first, non-whitespace child''' of the property element. That is, it should follow immediately after the property is declared, before the human-readable form, and without any additional nesting.
* L'élément ‘vide’ value-title doit être le '''premier enfant sans espace-blanc''' de l'élément propriété. Ce qui veut dire qu'il devrait suivre imméidatement après la propriété déclarée, avant la forme lisibile-par-les-humains, et sans aucune autre imbrication supplémentaire.
* The ‘empty’ value-title element can only be used for specific properties. Microformat specifications must explicitly state which properties may be used with this extension of the value-class-pattern.
* L'élément 'vide' value-title ne peut seulement être utilisé que pour des propriétés spécifiques. Les spécifications des microformats doivent explicitement déclarer quelles propriétés peuvent être utilisées avec cette extension du modèle-classe-value.
* Where an ‘empty’ value-title element is to be used as the single property value, it must be the ''only'' such <code>value</code> content. That is, the first instance of a conforming <code>value-title</code> element overrides all other <code>value</code> and <code>value-title</code> siblings and/or cousins.
* Là où un élément 'vide' value-title doit être utilisé comme propriété unique de value, il doit être le ''seul'' comme contenu <code>value</code>. Ce qui veut dire, la première instance d'un élément conforme <code>value-title</code> surpasse toutes les autres <code>value</code> et <code>value-title</code> soeurs et/ou cousines.
* Tools written to perform Conformance Testing and/or Validation of microformats ''should'' attempt to compare the machine-data and human legible forms of the property data, and advise authors if the forms do not match.
* Les outils écrits pour passer les Tests de Conformité et/ou Validation de Microformats ''devraient'' essayer de comparer les formes données-machines et visible-par-les humains des données de propriété, et conseiller les auteurs si les formes ne concordent pas.


=== Utilisation limitée de value-title ===
=== Utilisation limitée de value-title ===
Due to the fact that the value-title pattern hides some amount of data which tends to be a machine-specific duplicate of data that is provided in the human readable content, there are two microformats [[principles-fr|principes]] being compromised: '''visibility''' and '''<abbr title="Don't Repeat Yourself">DRY</abbr>'''. Thus the applicability of this pattern is deliberately restricted to properties that have demonstrated through experience a need for it, with no known better alternative.
Du fait que le modèle value-title cache quelque quantité de donnée qui tend à être un duplicata spécifique-machine de donnée fournie dans le contenu lisibile par les humains, il y a deux [[principles-fr|principes]] microformats qui doivent être compromis : '''visibilité''' et '''<abbr title="Don't Repeat Yourself">DRY</abbr>'''. Par conséquent, l'applicabilité de ce modèle est délibérément restreinte aux propriétés qui ont démontré à travers l'expérience un besoin de ce modèle, sans aucune autre alternative meilleure connnue.
 
En général, les auteurs devraient :
 
# Tout d'abord, essayer de spécifier directement les valeurs de propriété microformats dans la ligne (le plus visible, pas de duplication),
# Puis considérer d'utiliser le modèle de classe value
## Comprenant plusieurs éléments de 'value' pour les propriétés date et time
# et puis seulement si ces méthodes sont insuffisantes, considérer le modèle value-title.


In general authors should:
Ce document post-date toutes les autres spécifications microformats, parce qu'elles peuvent ne pas indiquer à cette heure quelles propriétés permettent l'usage de ce modèle. Dans l'intervalle, '''seuls''' les types de propriétés suivantes devraient autoriser le modèle value-title.


# First, try to directly specify microformats property values inline (the most visible, no duplication),
* valeurs date, datetime, timezone et duration ISO8601
# Then consider using the value-class pattern
* Valeurs énumérées (tlles que les sous-propriétés 'type' tel/email/adr de la hCard)
## Including multiple value elements for date and time properties
* Les coordonnées (comme les propriétés 'latitude' et 'longitude' de [[geo-fr|geo]])
# and then only if those methods are insufficient, consider the value-title pattern.
* Les propriétés des numéros de téléphone (par ex. la propriété 'tel' de la hCard)


This document post-dates other microformat specifications, such that they may not yet indicate which properties permit use of this pattern. In the interim, '''only''' the following types of properties should allow the value-title pattern.
La page [[machine-data]] a de la documentation sur quelques-unes des propriétés de quelques spécifications pour lesquelles l'expérience a montré le besoin de solution comme le modèle value-title.


* ISO8601 date, datetime, timezone, and duration values
Il existe quelques exemples simples de références et tests pour ce modèle sur [[value-class-pattern-tests]].
* Enumerated values (such as the hCard tel/email/adr 'type' subproperties)
* Co-ordinates (such as the [[geo]] 'latitude' and 'longitude' properties)
* Telephone number properties (e.g. the hCard 'tel' property)


The [[machine-data]] page has documentation of some of the properties of some specs which experience has shown need a solution like the value-title pattern.
Pour un futur usage, les ''auteurs de spécification'' peuvent hériter de l'usage de <code>value-title</code> par l'utilisation des formats de date et heures ISO8601, ou réutilisation d'autres microformats, mais les spécifications devraient éviter d'introduire de nouvelles structures de données qui dépendent ou encouragent ce modèle. Les nouvelles spécifications sont elles-mêmes attendues pour adhérer aux principes fondateurs de donnée visible et <abbr>DRY</abbr>.


There are some simple reference examples and tests for this pattern on [[value-class-pattern-tests]].
== Cas de Test ==
Voir [[value-class-pattern-tests]].


In future use, ''specification authors'' may inherit use of <code>value-title</code> by use of ISO8601 date and time formats, or reuse of other microformats, but specifications should _avoid_ introducing new data structures that depend on or encourage this pattern. New specifications are themselves expected to adhere to the principals of visibile data and <abbr>DRY</abbr>.


=== <abbr title='Foire aux Questions'>FAQ</abbr>===
== <abbr title='Foire aux Questions'>FAQ</abbr>==
This section is '''informative'''.
Cette section est '''informative'''.


Frequently asked questions about the value-class-pattern. Once this section grows too big, we'll make a separate wiki page (like [[value-class-faq]]).
Les questions souvent posées sur le modèle-classe-value. Une fois que cette section sera trop grosse, nous la migrerons sur une page wiki séparée (comme [[value-class-faq-fr]]).


<div class='discussion'>
<div class='discussion'>
* '''Why use an 'empty' element? Why not embed data in the class attribute?'''
* '''Pourquoi utiliser un élément 'vide' ? Pourquoi ne pas embarquer la donnée dans l'attribut de classe ?'''
** The class attribute is inappropriate for embedded data values, as per the HTML4 specification, which states <code>class</code> is for ‘general purposing processing’, which is defined as ‘e.g. for identifying fields when extracting data from HTML pages into a database, translating HTML documents into other formats, etc.. ‘General purpose processing’ does not extend to data itself. Furthermore, this method avoids inventing a new string pattern for embedding data.
** L'attribut de classe est inapproprié pour les valeurs de données embarquées, selon la spécification HTML4, qui établit que <code>class</code> est pour le ‘general purposing processing’, qui est défini comme ‘par ex. pour identifier des champs au moment d'extrire la donnée des pages provenant du HTML dans une base de données, traduire des documents HTML dans d'autres formats, etc.'. ‘General purpose processing’ ne s'étend pas à la donnée elle-même. En outre, cette méthode évite d'inventer une nouveau modèle de chaîne pour embarquer de la donnée.
* '''Why use an 'empty' element? Why not make up a new attribute, like ‘data’?'''
* '''Pourquoi utiliser un élément 'empty' ? Pourquoi ne pas produire un nouvel attribut, comme 'data' ?'''
** Microformats exist and function in valid HTML4 and XHTML1. Those are the current standards for web development, and microformats exist for use ''now''. In the future, perhaps future revisions of HTML will offer up another solution. For now, this method has been tested against browsers, and creates a consistant document structure (where machine-form and human-form data are siblings).
** Les microformats existent et fonctionnent en HTML4 et XHTML1 valide. Ceux-ci sont les standards actuels pour le développement web, et les microformats existent pour une utilisation ''maintenant''. A l'avenir, peut-être que les futures révisions du HTML offriront une autre solution. A cette heure, cette méthode a été testé dans les navigateurs, et crée une structure de document cohérente (où les données formats-machines et lisibles-par-les-humains sont soeurs).
* '''The <code>title</code> attribute should only be used for content!'''
* '''L'attribut <code>title</code> ne devrait être utilisé que pour du contenu !'''
** The <code>title</code> attribute _is_ used for content and is read by microformats parsers. This exists for cases where data cannot be parsed with sufficient precision from just the commonly published, visible information. This pattern allows both forms of content to be included, whilst keeping it invisible to human consumers.
** L'attribut <code>title</code> _est_ utilisé pour le contenu et se fait lire par les parseurs de microformats. Ceci existe pour les cas où la donnée ne peut pas être parsée avec suffisamment de précision provenant de ce que est communément publié, l'information visible. Ce modèle permet d'inclure les deux formes de contenu, tout en le maintenant invisible pour les consommateurs humains.
</div>
</div>


You can also refer to the general [[faq|Microformats FAQ]] and [[principles]].
Vous pouvez aussi vous référer aux [[faq-fr|FAQ Microformats]] générales et aux [[principles-fr|principes]].


== Exemples dans la jungle ==
== Exemples dans la jungle ==
Cette section est '''informative'''.
Cette section est '''informative'''.


The following sites and pages have started marking up content with the value-class-pattern, and are thus good places to go for examples with real world content to test with implementations (i.e. parsers). If you use the value-class-pattern in your content, feel free to add it to the '''top''' of this list. Once the list grows too big, we'll make a separate wiki page (like [[value-class-examples-in-wild]]).
Les sites et pages suivants ont démarré par baliser le contenu avec le modèle de classe-value, et ce sont par conséquent de bons endroits pour aller voir des exemples de contenu du vrai monde pour tester les implémentations (par ex. les parseurs). Si vous utiliser le modèle-classe-value dans votre contenu, sentez-vous libre de l'ajouter '''en haut''' de cette liste. Une fois que la liste sera trop grosse, nous produirons une page wiki séparée (comme [[value-class-examples-in-wild]]).
<!--
<!--


     add new items to the TOP of this list
     ajoutez de nouveaux items en HAUT de cette liste


-->
-->
* [http://georgebrock.com/ George Brocklehurst's activity stream] and [http://blog.georgebrock.com/ blog] use "value-title" for hAtom <code>published</code> property
* [http://visitmix.com/labs/oomph/2.0/tests/test.html Test Harness For Oomph] Cette page utilise toute une gamme de différents patterns pour à la fois hCard et hCalendar, en utilisant à la fois value et value-title, la plupart dérivée de l'application ci-dessus.
* [http://ben-ward.co.uk/ Ben Ward's home page] uses:
* Le [http://georgebrock.com/ flux d'activité de George Brocklehurst] et son [http://blog.georgebrock.com/ blog] utilisent "value-title" pour la propriété <code>published</code> de hAtom
** "value-title" for hCard <code>bday</code> property
* [http://ben-ward.co.uk/ La page personnelle de Ben Ward] utilise :
** "value-title" for hAtom <code>updated</code> property
** "value-title" pour la propriété <code>bday</code> de hCard
* [http://microformats.org/ microformats.org] uses:
** "value-title" pour la propriété <code>updated</code> de hAtom
** "value-title" for hAtom <code>updated</code> property in [[http://microformats.org/ microformats.org blog postss]]]
* [http://microformats.org/ microformats.org] utilise :
** date and time value separation for hCalendar <code>dtstart</code> property in [[events|microformats.org recent and upcoming events wiki page]]
** "value-title" pour la propriété <code>updated</code> de hAtom dans [[http://microformats.org/ microformats.org les billets du blog]]]
** séparation des values date et time pour la propriété <code>dtstart</code> de hCalendar dans [[events|la page wiki microformats.org des événements récents et à venir]]


''Add your site/page(s) that use the value-class-pattern here, along with a brief description of what value-class-pattern features you use, with which microformat(s) and which of its/their properties.''
''Ajoutez vos site/page(s) qui utilisent le modèle-classe-value ici, avec une brève description des fonctionnalités du modèle-classe-value que vous utilisez, avec quel(s) microformat(s) et quelle(s) propriétés.''


== Implémentations ==
== Implémentations ==
Line 324: Line 483:
Cette section est '''informative'''.
Cette section est '''informative'''.


The following implementations have been developed which either generate or parse value-class-pattern property values. If you have an value-class-pattern implementation, feel free to add it to the '''top''' of this list. Once the list grows too big, we'll make a separate wiki page (like [[value-class-implementations]]).
Les implémentations suivantes ont été développées pour soit générér ou parser les valeurs de propriété du modèle-classe-value. Si vous avez une implémentation du modèle-classe-value, sentez-vous libre de l'ajouter en '''haut''' de cette liste. Une fois que la liste sera trop grosse, nous produirons une page wiki séparée (comme [[value-class-implementations]]).
<!--
<!--


     add new items to the TOP of this list
     ajouter de nouveaux items en HAUT de cette liste


-->
-->
* [[Operator-fr|Operator]] has *some* implementation of the value-class-pattern according to Michael Kaply, but precisely how much is implemented, for which properties (property types) and which microformats is not currently known.
* [[Oomph]] Version 2 passe [[value-class-pattern-tests#Date_and_time_values|les tests des valeurs de date et heure]] et c'est une implémentation minutieuse du value-class-pattern.
* ... add your implementation(s) that parse or generate the value-class-pattern here, along with which features you support (hopefully all!) and note any limitations if any.
* [[X2V]] v0.9.3 et suivantes :
** implemente [[#Date_and_time_values|Date and time values parsing]], y compris les valeurs horaires am/pm
*** passe par conséquent  [[value-class-pattern-tests#Date_and_time_values|les tests de cas des valeurs de Date et heure]].
** implémente [[#hCalendar_date_implicite_dtend|hCalendar date dtend implicite]]
* [[Operator-fr|Operator]] a *quelque* implémentation du modèle-classe-value selon Michael Kaply, mais plus précisément savoir à quel degré c'est implémenté, pour quelles propriétés (types de propriétés) et quels microformats n'est actuellement pas connu.
* [[Optimus]] v0.8 et suivante implémente <code>value-title</code> comme [http://twitter.com/DmitryBaranovsk/status/1891253248 annoncé par Dmitry Baranovskiy].
* ... ajoutez vos implémentations qui parsent ou génèrent le modèle-classe-calue ici, avec les fonctionnalités que vous supportez (nous l'espérons toutes !) et notez toutes les limites s'il y en a.
 
== Articles ==
Les articles et <span id="Blog_Posts">billets de blog</span> discutant du value class pattern, les plus récents en premier.
Quand cette section deviendra trop grosse, créez une page séparée comme ceci : [[value-class-pattern-articles]]
* <span class="hentry"><span class="published">2009-08-25</span> <span class="entry-summary">MIX Online: <span class="entry-title">[http://visitmix.com/Articles/The-Value-Class-Pattern The Value Class Pattern]</span></span> par <span class="author vcard"><span class="fn">Jeremy Keith</span></span></span>
* [http://ablognotlimited.com/s/106 Getting Semantic With Microformats, Part 8: Value Class Pattern] -- Un écrit très minutieux d'Emily Lewis sur le value class pattern
* [http://adactio.com/journal/1579/ 2009-05-17 Adactio: Microformation]
* [http://forabeautifulweb.com/blog/about/value_class_pattern/ For A Beautiful Web: Value Class Pattern]
* [http://microformats.org/blog/2009/05/12/value-class-pattern/ 2009-05-12 microformats.org: Value Class Pattern]
 


==Pages en Rapport==
==Pages en Rapport==
Cette section est '''informative'''.
Cette section est '''informative'''.
 
* [[value-class-pattern-tests]]
* [[value-excerption-pattern-issues]]
* [[value-excerption-pattern-issues]]
* [[hcard#Value_excerpting|hCard: Value Excepting]]
* [[hcard-fr#Extraction_de_Valeur|hCard : Extraction de Valeur]]
* [[value-excerption-pattern-brainstorming]]
* [[value-excerption-pattern-brainstorming]]
* [[machine-data|Machine Data in Microformats]]
* [[machine-data-fr|Machine Data in Microformats]]
 
== Références ==
Cette section est  '''informative'''.
* [http://www.useit.com/alertbox/9608.html Jakob Nielsen: International Web Usability]

Latest revision as of 16:34, 18 July 2020


Le modèle de classe "value" provient de l'extraction de valeur dans la hCard.

Les auteurs pensent que le modèle-de-classe-value est désormais complet et prêt à l'emploi pour le balisage. Les implémenteurs sont encouragés à mettre leurs sites à jour et fournir un feedback. Remarque, le comportement précis du parsage pourrait être modifié en réponse aux feedbacks des implémenteurs, mais les méthodes sont stables. Vous devriez suivre cette page pour les mises à jour.

Voir aussi, l'annonce sur le blog (à traduire).

Editeurs
Ben Ward
Tantek Çelik
URL raccourcie
http://tr.im/ClasseValue
Traduction en cours
Christophe Ducamp

Parfois, seule une partie d'un élément de contenu doit être utilisée comme la valeur d'une propriété d'un microformat. Ceci peut arriver quand une propriété a des sous-propriétés optionnelles, telles que tel: type et tel: value dans la hCard. D'autres fois, la structure la plus appropriée pour une propriété peut inclure d'autre contenu.

A ces fins, le nom spécial de classe value est utilisé pour marquer l'extraction pertinente de la donnée provenant d'un élément de contenu plus grand.

Exemples Simples

Voici le marquage pour un numéro de téléphone de domicile :

fragment vCard :

TEL;TYPE=HOME:+1.415.555.1212

fragment hCard :

<span class="tel">
  <span class="type">Home</span>:
  <span class="value">+1.415.555.1212</span>
</span>

Dans ce cas, la value de tel est +1.415.555.1212, et non pas Home: +1.415.555.1212.

Parfois, la valeur pour une propriété microformats doit être découpée en plusieurs morceaux dans le contenu de l'élément représentant cette propriété. Plusieurs éléments avec un nom de classe "value" (les éléments value) peuvent être utilisés pour extraire et concaténer ces morceaux en une valeur unique pour les propriétés microformats qui attendent des chaînes simples ou des valeurs tel.

Un autre exemple, cette fois-ci utilisant un numéro de téléphone localisée (France) :

<span class="tel">
  <span class="type">Home</span>:
  <span class="value">+33</span> (0) <span class="value">1 42 31 23 23</span>
</span>

Dans ce cas, la data valide pour le numéro de téléphone est +33142312323, mais la façon dont le numéro de téléphone est présenté en France inclura le (0), pour un appel local. Ce qui veut dire, qu'à partir de n'importe où dans le monde vous pouvez composer +441423123123, ou à partir de la France vous pouvez composer 0142312323. La publication locale communément utilisée interfère avec la donnée, parce que composer +330142312323 est un numéro invalide.

Dans le marquage, deux classes value ciblent la partie de la chaîne du numéro de téléphone qui produit un numéro international valide, tout en permettant une présentation conventionnelle.

Un autre exemple, ajouter un nom de lieu à des coordonnées geo :

<p>Je flâne dans Montmartre rue Junot
  <span class="geo">
      48° 53' 16.3206", 2° 20' 5.9712"
      (<span class="value">48.887867;2.3349922</span>)
  </span>
</p>


Alors que la chaîne complète est un point geo, c'est seulement les coordonnées encodées en décimales qui doivent être consommées par un analyseur de microformats, ainsi la classe value l'isole de la forme en degrés, que l'auteur a inclus pour plus de complétude.

Analyse Fondamentale

  1. L'exemple de classe value ne s'applique uniquement qu'aux propriétés qui sont de simples chaînes, des valeurs énumérées, des numéros de téléphone et des dates-heures. L'exemple de classe value n'affecte pas l'analyse des propriétés de type email, URL, URI, UID.
  2. Là où un élément avec un tel nom de propriété de classe microformat a un descendant avec un nom de classe value (un élément "value"), les parseurs devraient utiliser la portion suivante de cet élément :
    1. si l'élément value est un élément img ou un élément area, utiliser alors la valeur d'attribut du alt de l'élément.
    2. si l'élément value est un élément abbr, utiliser alors la valeur d'attribut du title de l'élément.
    3. pour tout autre élément, utiliser son texte à l'intérieur.
  3. Là où il y a plusieurs descendants d'une propriété avec un nom de classe de value (plusieurs éléments value)
    1. si la propriété microformats attend une chaîne simple, une valeur énumérée ou un numéro de téléphone, alors les valeurs extraites des éléments value devraient être concaténées sans insérer de caractères supplémentaires ou d'espace-blanc.
    2. si la propriété microformats attend une valeur datetime, voir la section Analyse Date et heure.
  4. Les descendants avec la classe value ne doivent pas être analysées plus profondément qu'à un niveau. Ce qui veut dire, là où il y a un élément foo avec la classe value

qui a un descendant bar avec la classe value, le contenu de foo est pris comme la value. L'imbrication d'éléments supplémentaires avec la classe value ne peut pas être utilisé pour isoler plus en profondeur une value de propriété.

par ex.

 <p class="description">
  <span class="value">
    <em class="value">Puppies Rule!</em>
    <strong>But kittens are better!</strong>
 </span>
</p>

Dans cet exemple, description a un enfant ‘value’, et cet enfant a une ‘valuepetitenfant. Néanmoins, l'analyse des classes value s'arrête au premier niveau, ainsi la data pour description est : <em class="value">Puppies Rule!</em><strong>But kittens are better!</strong>, pas simplement Puppies Rule!.

Valeurs Date et heure

Quelques propriétés microformats attendent une valeur datetime ISO8601, par ex. hCalendar dtstart et dtend ou hAtom published.

Les auteurs peuvent utiliser le modèle de classe value pour spécifier séparément la date et l'heure, qui sont alors combinés pour spécifier une valeur unique datetime.

Exemple : cette propriété hCalendar 'dtstart' avec des éléments 'value' :

<p>La rencontre "afterwork" aura lieu 
    <span class="dtstart">
        <abbr class="value" title="2009-05-19">ce Mardi</abbr> 
     à <span class="value">19:30</span>
    </span>
</p>

Produit la valeur 'dtstart' suivante :

et les convertisseurs iCalendar produisent le DTSTART suivant :


DTSTART:20090519T193000

L'absence d'une "timezone" indique une "datetime" "flottante", qui est une date-heure indépendante de tout fuseau horaire particulier. Des exemples de datetimes flottantes pourraient être une alarme de réveil que vous paramétrez pour sonner à 8h00, ou un jour de travail ordinaire comme 9h00-17h00.

Analyse Date et heure

Pour toutes les propriétés date et heure (comme définies dans leurs spécifications respectives microformats), les règles suivantes s'appliquent en plus de celles (et dans certains cas les remplacent) des règles de modèles de parsage de classe value vues au-dessus.

Quand un élément "value" est trouvé, parsez une valeur à partir de l'élément comme suit :

  • si l'élément est un élément img ou un élément area, utiliser alors la valeur d'attribut alt de l'élément.
  • si l'élément est un élément abbr, utiliser alors la valeur d'attribut title de l'élément.
  • pour tout autre élément, utiliser son texte à l'intérieur.
  • si la valeur a à la fois une date spécifiée ISO8601 et une heure spécifique, utilisez ceux-ci et arrêtez de chercher des éléments "value".
  • si la valeur a *seulement* une date spécifique, spécifiquement, correspondant aux modèles de dates suivants ISO8601 (c.a.d. tels que documentés dans le résumé Wikipedia de ISO8601)
    • AAAA-MM-JJ
    • AAAA-JJJ
    • alors utiliser cela comme la valeur de date. Pour les besoins du modèle de classe value, les tirets "-" séparant les années, mois, jour et/ou jour ordinal sont requis.
    • ignorer tous les éléments complémentaires "value" qui spécifient la date.
  • si la valeur a *seulement* une heure spécifique (avec ou sans fuseau horaire), parsez la pour une valeur time qui puisse correspondre à tout ce qui suit :
    • HH:MM:SS-XX:YY
    • HH:MM:SS+XX:YY
    • HH:MM:SS-XXYY
    • HH:MM:SS+XXYY
    • HH:MM:SSZ
    • HH:MM:SS
    • HH:MM-XX:YY
    • HH:MM+XX:YY
    • HH:MM-XXYY
    • HH:MM+XXYY
    • HH:MMZ
    • HH:MM
    • HH sont les "heures" en 24 heures dans le temps, de 00 à 24, avec un 0 optionnel placé devant pour les valeurs inférieures à 10.
    • MM sont les minutes de 00 à 59
    • SS sont les secondes optionnelles de 00 à 59 (60 pour une seconde). Si omis, inférez 00 secondes.
    • XX est le décalage horaire du fuseau, de 00 à 12, avec un 0 en tête optionnel pour les valeurs inférieures à 10
    • YY est le décalage en minutes du fuseau horaire, de 00 à 59, même si en pratique ne sont utilisés que des décalages de 00, 15, 30, 45 minutes dans les fuseaux horaires globaux.
    • Z est le 'Z' littéral pour indiquer GMT.
    • Pour les besoins du modèle de classe value, les deux points ":" séparant heure, minutes et secondes sont requis.
    • Néanmoins les deux points ":" séparant les heures et minutes de tout décalage horaire sont "optionnels" et non recommandés afin de faire en sorte qu'une indication de fuseau horaire ne soit pas confondue avec un horaire.
    • Un suffixe non sensible à la casse { }"am"|{ }"a.m." pour traiter une valeur HH value de 12 comme 00, ou un suffixe non sensible à la casse { }"pm"|{ }"p.m."pour ajouter 12 à une valeur HH inférieure à 12 - selon l'article de Wikipedia sur l'horloge de 12 heures. Note : X2V a implémenté cela.
      • HH:MM:SSam
      • HH:MM:SSpm
      • HH:MMam
      • HH:MMpm
      • HHam
      • HHpm
      • où "am" et "pm" veulent dire "am ou a.m." et "pm or p.m."
      • quand MM est omis, inférer 00 minutes.
    • ignorez tous les autres éléments "value" qui spécifient l'heure.
  • si la valeur a *seulement* une date-heure spécifique, ou une valeur de zone horaire qui corresponde à n'importe quelle valeur suivante :
    • -XX:YY
    • +XX:YY
    • -XXYY
    • +XXYY
    • -XX
    • +XX
    • Z
    • XX est le décalage en heures du fuseau horaire, de 00 à 12 avec un 0 optionnel en avant pour les valeurs inférieures à 10.
    • YY est le décalage en minutes de la zone horaire, de 00 à 59, bien qu'en pratique seuls les décalages de 00, 15, 30, 45 minutes soient utilisés dans les zones horaires globales.
    • Z est le 'Z' littéral pour indiquer GMT.
    • ignorez tous les autres éléments "value" qui spécifient la timezone.

Si en parsant les éléments "value", au moins une date spécifique est trouvée, alors la "value" est par dessus-tout valide, et le parseur assemble la valeur datetime en concaténant la date spécifique, "T" et l'horaire spécifique (si l'heure a été spécifiée, avec 00 secondes implicite si aucune seconde n'est fournie), et une timezone spécifique (si la timezone et l'horaire spécifique ont été spécifiés).

  • AAAA-MM-JJ - aucun horaire spécifié
  • AAAA-MM-JJTHH:MM:SS - heure spécifiée mais pas de timezone. C'est une heure flottante.
  • AAAA-MM-JJTHH:MM:SS-XXYY ou
  • AAAA-MM-JJTHH:MM:SSZ ou
  • AAAA-MM-JJTHH:MM:SS+XXYY - à la fois l'heure et la timezone ont été spécifiées

détails spécifiques des formats

Ce qui suit sont des détails spécifiques de format et des optimisations qui font usage du modèle-classe-value.

URL raccourci pour cette section
http://tr.im/vcpfso (à localiser)

hCalendar date dtend implicite

Généralement, les événements qui démarrent et finissent le même jour n'affichent seulement la date de l'événement qu'une fois (cela fait sens selon le principe) DRY (exemples du vrai monde : Upcoming, ... plus d'exemples avec des URLs aiderait pour être minutieux).

Par conséquent ce serait pratique si nous pouvions sous-tendre une date dtend d'événement hCalendar à partir de sa date "dtstart" si et seulement si l'horaire (et en option la timezone) était spécifiée pour son "dtend", par ex. :

<span class="vevent">
 La <span class="summary">soirée</span> aura lieu le 
 <span class="dtstart">
  <span class="value">2009-06-26</span>, à partir de 
  <span class="value">19:00</span></span> jusqu'à  
 <span class="dtend"><span class="value">22:00</span></span>.
</span>

Pour simplifier cela aux auteurs, les processeurs hCalendar pourraient traiter la spécification juste avec l'heure selon les règles de valeur du modèle de classe value, et de ce fait éliminer le besoin d'un span "value" dans le span "dtend" :

<span class="vevent">
 La <span class="summary">soirée</span> aura lieu le  
 <span class="dtstart">
  <span class="value">2009-06-26</span>, à partir de 
  <span class="value">19:00</span></span> jusqu'à  
 <span class="dtend">22:00</span>.
</span>

Le convertisseurs hCalendar vers iCalendar devraient produire le fragment iCalendard suivant (en tant que partie d'un fichier .ics) provenant de l'un ou l'autre des deux exemples au-dessus :

BEGIN:VEVENT
SUMMARY:party
DTSTART:20090626T190000
DTEND:20090626T220000
END:VEVENT

Note : X2V a implémenté la date dtend implicite à partir de dtstart.

Exemples "dans jungle":

générateurs iCalendar

les implémentations microformats qui consomment hCalendar et génèrent iCalendar doivent en outre :

  1. retirer tous les tirets "-" de séparation dans la date.
  2. retirer tous séparateurs deux points ":" dans l'horaire.
  3. ajouter un jour complet à toutes les valeurs de propriété dtend hCalendar (manquant d'un horaire spécifié) (inclusion date) afin de générer une valeur de propriétéDTEND iCalendar (date excluse) avec le même sens, selon la résolution de la problématique-dtend.
  4. exécuter une formule mathématique +/- datetime sur toute valeur timezone , et produire une valeur effective UTC finissant par "Z".

hAtom date updated implicite

De la même façon, dans les billets de blog qui indiquent à la fois quand ils sont "publiés" et "mis à jour", la date n'est généralement affichée qu'une fois, généralement "publiée" (les exemples du vrai monde aideraient pour plus de minutie).

Par conséquent, ce serait pratique si nous pouvions sous-tendre une date d'entrée "updated" hAtom à partir de sa date "published" si et seulement si l'horaire (et en option la timezone) était spécifiée pour son "updated", par ex. pour un billet de blog qui est mis à jour le même jour :

<span class="hentry">
 <span class="entry-summary">exemple de petit billet de blog</span>
 publié le <span class="published">
  <span class="value">2009-08-01</span> à <span class="value">12:06</span></span>
 et mis à jour à <span class="updated"><span class="value">12:10</span></span>.
</span>

Pour simplifier cela aux auteurs, les processeurs hAtom pourraient traiter la spécification horaire selon les règles de valeurs des date et time du modèle de classe value, et par conséquent éliminer le besoin d'un span "value" dans le span "updated"

<span class="hentry">
 <span class="entry-summary">exemple de petit billet de blog</span>
 publié le <span class="published">
  <span class="value">2009-08-01</span> à <span class="value">12:06</span></span>
 et mis à jour à <span class="updated">12:10</span>.
</span>

générateurs Atom

les implémentations microformats qui consomment hAtom et génèrent Atom DOIVENT en outre :

  • normaliser toutes les valeurs date et datetime à la RFC3339.

dérivation et tests

Cette section est informative.

La gestion des valeurs date et heure dans le modèle de classe value a été intialement brainstormée sur la page the value-excerption-pattern-brainstorming et dérivée de cette analyse et des feedbacks. Pour les curieux, les détails historiques peuvent être trouvés ici, avec quelques idées supplémentaires pour extension.

Voir value-class-date-time-tests pour les tests de cas.

Parsage de valeur à partir d'un attribut title

Le nom de classe value-title permet au diffuseur d'indiquer la valeur de donnée pour une propriété parente contenue dans l'attribut title d'un élément, plutôt que dans le texte à l'intérieur.

Ceci peut être utilisé pour fournir un synonyme dans le contenu, ou utilisé pour publier tranquillement des formes alternatives d'inforamtion pour un parsage microformats, sans affecter la consommation de contenu. Poua la sécurisation des archives papier, l'utilisation d'un coffre-fort ignifuge data pour les sauvegardes voir http://www.infosafe.fr ou d'une armoire fortes ignifuges pour les registres est requise par les normes ISO.

Par exemple, vous pouvez utiliser une localisation avec des dates :

<p>C'était 
 <span class='dtstart'>
  <span class='value-title' title='2008'>l'année dernière</span>
 </span>
  que je commençais à réaliser que mon addiction à la crème de marron coûterait si cher à ce pays.
</p>

Les règles de parsage pour value-title sont les mêmes que pour value above, avec le changement suivant :

  • Là où une propriété microformats a un élément enfant avec le nom de classe value-title, le contenu de l'attribut title de cet élément doit être parsé, plutôt que la portion de l'élément qui devrait être parsée pour un nom de classe de value.

Utilisation de value-title pour publier des données-machines

L'usage initial de value-title est utilisé pour publier des formes alternatives, parsables de valeurs de propriétés dans un contexte visible sans l'utilisation de l'élément abbr dont la sémantique supporte déjà l'interprétation de l'attribut "title' comme une forme plus étendue, plus précise du contenu.

L'expérience a montré qu'il y a des cas dans les microformats où un certain nombre d'auteurs veulent inclure une valeur précise et parsable pour une propriété mais ne veulent pas qu'elle soit visible sur leurs pages, même sous forme d'info-bulle.

Par exemple, les datetimes complètes ISO8601 peuvent prêter à confusion pour les lecteurs de la page (comme une infobulle ou au moment d'être lues à voix haute par un lecteur-écran), et les valeurs énumérées telles que la sous-propriété type de la propriété tel de hCard utilise des termes US-anglais, qui ne font pas partie des pages dans toute autre langue.

Parce que ces deux scénarios se sont avérés être des obstacles pour un certain nombre de diffuseurs, dans ces cas, et ces cas seulement, il existe une extension approfondie de l'extraction de value. Cette extension permet aussi la forme parsable de la propriété à publier 'en silence' immédiatement adjacente au contenu respectif visible en local.


Voici un exemple, avec l'usage obligatoire d'un premier élément enfant avec le nom de classe value-title:

<p class='tel' lang='fr-fr'>
  <span class='type'>
    <span class='value-title' title='cell'> </span>
      mobile
    </span>
  <span class='value'>+33 7773 000 000</span>
</p>

La valeur cell est parsée pour la sous-propriété 'type', mais mobile est présenté à l'utilisateur.

Dans le cas de dates :

<p class='dtstart'>
  <span class='value-title' title='2009-03-14T16:28-0600'> </span>
  14 mars 2009, vers quatre heures et demi
</p>

Un parseur microformats lira le format datehoraire ISO8601 2009-03-14T16:28-0600, mais les utilisateurs ne verront que 14 mars 2009, vers quatre heures et demi. Les tests ont montré que le date-heure ISO8601 du dessus n'est exposé en aucun cas à l'utilisateur.

Parser une valeur provenant d'un attribut title

Le nom de classe value-title permet à l'auteur d'indiquer la donnée value pour une propriété parent contenue dans l'attribut title d'un élément, plutôt que dans le texte à l'intérieur.

Ceci peut s'utiliser pour fournir un synonyme dans le contenu, ou utilisé pour publier tranquillement des formes alternatives d'information pour le parsage de microformats, sans impacter sur la consommation du contenu.

Par exemple, vous pouvez utiliser des localisations ponctuelles avec des dates :

<p>Ce fût  
 <span class='dtstart'>
  <span class='value-title' title='2008'>l'année dernière</span>
 </span>
  que je pris conscience que mon addiction au tabac pourrait coûter très cher à la Sécurité Sociale.
</p>

Les règles de parsage pour value-title sont les mêmes que celles pour value au-dessus, avec le changement qui suit :

  • Là où une propriété microformats a un élément enfant avec le nom de classe de value-title, le contenu de l'attribut title de cet élément doit être parsé, plutôt que la portion de l'élément qui devrait être parsé pour un nom de classe de value.

Utiliser value-title pour publier des données-machines

L'usage initial de value-title est utilisé pour publier des formes alternatives, parsables des valeurs de propriétés dans un contexte visible sans l'utilisation de l'élément abbr dont la sémantique supporte déjà l'interprétation de l'attribut 'title' comme une forme plus étendue, plus précise du contenu.

L'expérience a montré qu'il existe quelques cas dans les microformats où un certain nombre d'auteurs veulent inclure une valeur précise et parsable pour une propriété mais ne veulent pas qu'elle soit visible dans leurs pages, ni même sous forme de petite bulle.

Par exemple le datetimes complet ISO-8601 peut être confus pour les lecteurs de la page (que ce soit sous forme de bulle ou quand c'est lu par un lecteur écran), et les valeurs énumérées telles que la sous-propriété type de la propriété tel de la hCard utilise des termes US-English, qui ne font pas partie de pages dans toute autre langue.

Le fait que ces scénarios se sont avérés être des obstacles pour un bon nombre d'auteurs, pour ces cas, et ceux-ci seulement, il existe une extension approfondie de l'extraction de valeur. Cette extension permet une forme parsable de la propriété pour être publiée 'en silence' et immédiatement adjacente avec le contenu visible local y afférent.

Voici un exemple, avec l'usage requis d'un premier élément enfant avec le nom de classe value-title :

<p class='tel' lang='fr-fr'>
  <span class='type'>
    <span class='value-title' title='cell'> </span>
      mobile
    </span>
  <span class='value'>+33 647 730 000</span>
</p>

La valeur cell est parsée pour la sous-propriété 'type', mais mobile est présenté à l'utilisateur.

Dans le cas de dates :

<p class='dtstart'>
  <span class='value-title' title='2009-06-12T09:28-0600'> </span>
  le 12 juin 2009, aux alentours de 9h30
</p>

Un analyseur de microformats lira le format datetime ISO8601 2009-06-12T09:28-0600, mais les utilisateurs ne verront que le 12 juin 2009, aux alentours de 9h30. Le test a montré que la datetime ISO8601 au-dessus n'est pas du tout présentée à quelque utilisateur.

Parsage donnée-machine value-title

Les navigateurs échouent sur le value-title réduit à une largeur de span égale à 0, en ne fournissant en fait aucun rendu visuel, tout en conservant l'élément dans le DOM. Sans dimensions physiques, il n'y a pas d'état 'hover', ainsi aucune infobulle n'est révélée. En outre, l'élément vide n'est pas passé aux couches de technologie assistives telles que VoiceOver. Les lecteurs écrans ne lisent pas les contenus de l'attribut title d'un élément vide span.

Nous avons mené des tests approfondis de ces comportements de parsage pour assurer l'accessibilité.

Note : Bien que l'élément value-title soit plus élégant à écrire sans texte à l'intérieur avec espace blanc (ou comme un élément <foo /> auto-fermé en XHTML), les outils actuels tels que les éditeurs WYSIWYG et HTML-Tidy se débarasseront par erreur de tels éléments, aboutissant à une donné parsable se faisant rejeter par quelques outils. Aussi, <span class='value-title'> </span>, comprenant un caractère unique espace-blanc entre la balise d'ouverture et de fermeture, est à cette heure le modèle requis pour les auteurs.

Parser cette extension finale value-title impose quelques restrictions plus strictes sur l'usage. Ces restrictions existent pour réduire l'impact des violations de DRY, pour réduire l'opportunité des sites à absorber les données, et pour encourager la bonne pratique de maintenir convenabelement ces deux formes de données.

Là où un élément avec la classe value-title doit être parsé comme donnée pour une propriété, et que cet élément ne contienne aussi aucun contenu sans-espace-blanc (ici considéré en référence comme 'vide'), les règles suivantes s'appliquent :

  • L'élément ‘vide’ value-title doit être le premier enfant sans espace-blanc de l'élément propriété. Ce qui veut dire qu'il devrait suivre imméidatement après la propriété déclarée, avant la forme lisibile-par-les-humains, et sans aucune autre imbrication supplémentaire.
  • L'élément 'vide' value-title ne peut seulement être utilisé que pour des propriétés spécifiques. Les spécifications des microformats doivent explicitement déclarer quelles propriétés peuvent être utilisées avec cette extension du modèle-classe-value.
  • Là où un élément 'vide' value-title doit être utilisé comme propriété unique de value, il doit être le seul comme contenu value. Ce qui veut dire, la première instance d'un élément conforme value-title surpasse toutes les autres value et value-title soeurs et/ou cousines.
  • Les outils écrits pour passer les Tests de Conformité et/ou Validation de Microformats devraient essayer de comparer les formes données-machines et visible-par-les humains des données de propriété, et conseiller les auteurs si les formes ne concordent pas.

Utilisation limitée de value-title

Du fait que le modèle value-title cache quelque quantité de donnée qui tend à être un duplicata spécifique-machine de donnée fournie dans le contenu lisibile par les humains, il y a deux principes microformats qui doivent être compromis : visibilité et DRY. Par conséquent, l'applicabilité de ce modèle est délibérément restreinte aux propriétés qui ont démontré à travers l'expérience un besoin de ce modèle, sans aucune autre alternative meilleure connnue.

En général, les auteurs devraient :

  1. Tout d'abord, essayer de spécifier directement les valeurs de propriété microformats dans la ligne (le plus visible, pas de duplication),
  2. Puis considérer d'utiliser le modèle de classe value
    1. Comprenant plusieurs éléments de 'value' pour les propriétés date et time
  3. et puis seulement si ces méthodes sont insuffisantes, considérer le modèle value-title.

Ce document post-date toutes les autres spécifications microformats, parce qu'elles peuvent ne pas indiquer à cette heure quelles propriétés permettent l'usage de ce modèle. Dans l'intervalle, seuls les types de propriétés suivantes devraient autoriser le modèle value-title.

  • valeurs date, datetime, timezone et duration ISO8601
  • Valeurs énumérées (tlles que les sous-propriétés 'type' tel/email/adr de la hCard)
  • Les coordonnées (comme les propriétés 'latitude' et 'longitude' de geo)
  • Les propriétés des numéros de téléphone (par ex. la propriété 'tel' de la hCard)

La page machine-data a de la documentation sur quelques-unes des propriétés de quelques spécifications pour lesquelles l'expérience a montré le besoin de solution comme le modèle value-title.

Il existe quelques exemples simples de références et tests pour ce modèle sur value-class-pattern-tests.

Pour un futur usage, les auteurs de spécification peuvent hériter de l'usage de value-title par l'utilisation des formats de date et heures ISO8601, ou réutilisation d'autres microformats, mais les spécifications devraient éviter d'introduire de nouvelles structures de données qui dépendent ou encouragent ce modèle. Les nouvelles spécifications sont elles-mêmes attendues pour adhérer aux principes fondateurs de donnée visible et DRY.

Cas de Test

Voir value-class-pattern-tests.


FAQ

Cette section est informative.

Les questions souvent posées sur le modèle-classe-value. Une fois que cette section sera trop grosse, nous la migrerons sur une page wiki séparée (comme value-class-faq-fr).

  • Pourquoi utiliser un élément 'vide' ? Pourquoi ne pas embarquer la donnée dans l'attribut de classe ?
    • L'attribut de classe est inapproprié pour les valeurs de données embarquées, selon la spécification HTML4, qui établit que class est pour le ‘general purposing processing’, qui est défini comme ‘par ex. pour identifier des champs au moment d'extrire la donnée des pages provenant du HTML dans une base de données, traduire des documents HTML dans d'autres formats, etc.'. ‘General purpose processing’ ne s'étend pas à la donnée elle-même. En outre, cette méthode évite d'inventer une nouveau modèle de chaîne pour embarquer de la donnée.
  • Pourquoi utiliser un élément 'empty' ? Pourquoi ne pas produire un nouvel attribut, comme 'data' ?
    • Les microformats existent et fonctionnent en HTML4 et XHTML1 valide. Ceux-ci sont les standards actuels pour le développement web, et les microformats existent pour une utilisation maintenant. A l'avenir, peut-être que les futures révisions du HTML offriront une autre solution. A cette heure, cette méthode a été testé dans les navigateurs, et crée une structure de document cohérente (où les données formats-machines et lisibles-par-les-humains sont soeurs).
  • L'attribut title ne devrait être utilisé que pour du contenu !
    • L'attribut title _est_ utilisé pour le contenu et se fait lire par les parseurs de microformats. Ceci existe pour les cas où la donnée ne peut pas être parsée avec suffisamment de précision provenant de ce que est communément publié, l'information visible. Ce modèle permet d'inclure les deux formes de contenu, tout en le maintenant invisible pour les consommateurs humains.

Vous pouvez aussi vous référer aux FAQ Microformats générales et aux principes.

Exemples dans la jungle

Cette section est informative.

Les sites et pages suivants ont démarré par baliser le contenu avec le modèle de classe-value, et ce sont par conséquent de bons endroits pour aller voir des exemples de contenu du vrai monde pour tester les implémentations (par ex. les parseurs). Si vous utiliser le modèle-classe-value dans votre contenu, sentez-vous libre de l'ajouter en haut de cette liste. Une fois que la liste sera trop grosse, nous produirons une page wiki séparée (comme value-class-examples-in-wild).

Ajoutez vos site/page(s) qui utilisent le modèle-classe-value ici, avec une brève description des fonctionnalités du modèle-classe-value que vous utilisez, avec quel(s) microformat(s) et quelle(s) propriétés.

Implémentations

Cette section est informative.

Les implémentations suivantes ont été développées pour soit générér ou parser les valeurs de propriété du modèle-classe-value. Si vous avez une implémentation du modèle-classe-value, sentez-vous libre de l'ajouter en haut de cette liste. Une fois que la liste sera trop grosse, nous produirons une page wiki séparée (comme value-class-implementations).

Articles

Les articles et billets de blog discutant du value class pattern, les plus récents en premier. Quand cette section deviendra trop grosse, créez une page séparée comme ceci : value-class-pattern-articles


Pages en Rapport

Cette section est informative.

Références

Cette section est informative.