Abbr design pattern
Objectif
- Utiliser le abbr-design-pattern pour faire que le texte qui soit lisible par un humain soit aussi lisible formellement par une machine
- Eviter d'utiliser abbr-design-pattern pour ré-encoder le texte humain ou pour cacher les données
Comment l'utiliser ?
- entourer le texte convivial-pour-les-humains que vous voulez pour faire qu'il soit lisible par les machines avec
<abbr>
- comme pour le class-design-pattern, ajoutez l'attribut approprié
class
à l'élémentabbr
- ajoutez un attribut
title
à l'élémentabbr
avec les données lisibles par les machines comme la valeur.
Exemple
Le datetime-design-pattern encode formellement les 'dates-horaires' (bien connus pour être non parsables) à l'intérieur d'un élément abbr
.
avant :
La fête aura lieu le 10 à 10 heures.
Après :
La fête aura lieu le <abbr class="dtstart" title="20051010T10:10:10-0100">10 à 10 heures</abbr>.
Présentations alternatives
Remarquez que les prrésentations suivantes sont toutes équivalentes pour un parseur de microformat :
<span class="dtstart">20070501</span> <span class="dtstart">2007-05-01</span> <abbr class="dtstart" title="20070501">1 mai 2007</abbr> <abbr class="dtstart" title="2007-05-01">1° mai 2007</abbr> <abbr class="dtstart" title="20070501">1er mai 2007</abbr>. <abbr class="dtstart" title="20070501">May 1st 2007</abbr>. <abbr class="dtstart" title="20070501">The first of May, 2007</abbr>. <abbr class="dtstart" title="20070501">2007-05-01</abbr>. <abbr class="dtstart" title="20070501">Mardi 1° mai 2007</abbr> <abbr class="dtstart" title="20070501">2007, jour 121</abbr> <abbr class="dtstart" title="20070501">May Day, 2007</abbr> <abbr class="dtstart" title="20070501" lang="FR">1er mai, 2007</abbr> <abbr class="dtstart" title="20070501" lang="ES">1 de mayo, 2007</abbr>
et ce qui suit peut être utilisé, disons, dans une liste, un tableau ou une page, titrée "2007" :
<abbr class="dtstart" title="20070501">1 May</abbr>
Discussion
Cette discussion est rejetée d'ici. Imaginez deux usages possibles pour le abbr-design-pattern :
-
utiliser ABBR pour encoder les données lisibles par les machines autour de données lisibles par des humains
<abbr class="dtstart" title="20051010T10:10:10-0100">le 10 à 10 heures</abbr>
-
Utiliser ABBR pour encoder des données humaines plus formelles autour de quelque chose de moins formel
<abbr class="author" title="Danny Ayers">Danny</abbr>
L'utilisation #1 est encouragée s'il y a un véritable besoin pour cela. L'utilisation de #2 n'est pas recommandée sous le principe Don't Repeat Yourself, parce que : "#2 est un cas de *plus* d'information étant invisiblement présente, nommément, le nom de famille dans ce cas. Si quelqu'un ne veut pas rendre quelque information visible, alors nous ne devrions pas l'encourager à stocker cette information de façon invisible, pour toutes les mêmes raisons que les méta-données invisibles sont en premier lieu mauvaises/futiles".
J'aimerais effacer ça en-dessous, car les points sont couverts au-dessus
- Théoriquement, ceci pourrait être produit avec presque n'importe quel élément HTML. Mais est-ce une bonne idée ? Si ce n'en est pas une, est-ce que abbr est la seule ? DavidJanes
- abbr-design-pattern devrait être évité si possible. RobertBachmann
- pourquoi, ou sous quelles circonstances ? Par exemple, il est tout à fait utile avec les dates-heures. Devrait-il y avoir là d'autres situations potentiellement analogues ? DavidJanes
- Dans des circonstances où le texte dans le titre serait gobbledegook si lu par un lecteur écran. JAWS et d'autres screenreaders utilisent les attributs title provenant de abbr, quand utilisés proprement (comme dans cet exemple provenant du groupe WCAG), pour prononcer les mots qui seraient autrement illisibles ou déroutants. Utiliser des données machines tels que datetime pour un titre est une torsion à la définition du dictionnaire de l'abréviation (contraction par omission ou initialisation, appliquée au mot et non à un niveau sémantique), ceci n'est peut-être pas un gros problème en soi, mais si les lecteurs d'écran sont incapables de transformer le contenu du titre en quelque chose de compréhensible, ceci amènera à des échecs en accessibilité.
<p>Sugar is commonly sold in 5 <abbr title="pound">lb.<abbr> bags.</p> <p>Welcome to the <abbr title="World Wide Web">WWW</abbr>!</p>
Problématiques d'accessibilité
Ironiquement ce pattern bien que lisible machine pour les navigateurs compatibles avec les microformats n'est pas accessible pour les lecteurs d'écran quand il fait référence à une date. par conséquent :
we have a party in <abbr class="dtstart" title="20070312T1700-06"> March 12, 2007 at 5 PM </abbr>
serait lu par Jaws comme
we have a party at Twenty million seventy-thousand three-hundred twelve tee seventeen-hundred dash zero six.
la task force accessibility de webstandards.org recommande :
<span class="dtstart" title="20070312T1700-06"> March 12, 2007 at 5 PM, Central Standard Time </span>
ou
<span class="dtstart"> March 12, 2007 at 5 PM, Central Standard Time <span class="value" title="20070312T1700-06"></span> </span>
voir plus sur abbr-design-pattern-problématiques et [1]