include-pattern-fr: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
m (typo)
m (Replace <entry-title> with {{DISPLAYTITLE:}})
 
(18 intermediate revisions by 8 users not shown)
Line 1: Line 1:
<h1> include pattern </h1>
{{DISPLAYTITLE: include pattern }}


Initialement développée en tant que section du [[resume-brainstorming]], il est devenu clair à partir de l'expérience véritable de la syntaxe des microformats avec des sites du vrai monde, que plusieurs microformats (par ex. [[hresume-fr|hResume]], [[hreview-fr|hReview]], [[hatom-fr|hAtom]] etc.) avait besoin d'un mécanimse pour inclure une portion de données d'une page dans une autre aire d'une page. Cette page documente ce modèle pour réutilisation dans ces microformats et n'importe quel autre qui aura besoin d'utiliser cette fonctionnalité.
Initialement développé en tant que section du [[resume-brainstorming-fr|resume-brainstorming]], l'include-pattern est un mécanisme pour inclure une portion de données dans une autre aire de la même page. Ce qui suit est de la documentation pour réutilisation du modèle dans d'autres microformats, et pour que les éditeurs travaillent avec.


; Auteur: Tantek Çelik
; Auteurs
: Tantek Çelik
: Ben Ward


; Traduction en cours : [[Christophe Ducamp]]
; Traduction
: [[User:ChristopheDucamp|Christophe Ducamp]]


__TOC__
== historique ==
[[hresume-fr|hResume]] avait besoin de la capacité d'inclure un nom provenant d'une hCard dans le haut d'un curriculum vitae — les détails de contact de la personne — à l'intérieur des hCards séparées utilisées dans l'historique d'emploi de la même personne. Répéter l'information de nom n'aurait pas correspondu aux techniques de publication existantes utilisées dans les résumés et Curriculum Vitæ, ç'aurait été peu commode pour les auteurs et énervants pour les clients. L'include-pattern est un mécanisme pour référencer les données provenant de la même page, pour éviter la répétition, ou pour ''toute'' information dupliquée.


== étendue ==
L'include-pattern est strictement limité au cadre de la page en cours. Il ne peut pas être utilisé pour inclure du contenu provenant d'autres URLs.


== Contexte ==
== référence rapide ==
L'include-pattern est un mécanisme pour inclure le contenu provenant d'un microformat à l'intérieur d'un autre microformat ailleurs dans le même document, en utilisant les hyperliens (recommandé) ou OBJECT. Par exemple :


Dans le [[hresume-fr|hResume]], nous avons eu besoin de la capacité d'inclure le nom extrait de la hCard en haut du CV pour une personne à l'intérieur de ses hCards dans le milieu du CV qui représentait chacun de ses hCards de job (titre du job, nom de l'organisation, adresse, etc.) et de ce fait avons développé la [http://microformats.org/wiki/resume-brainstorming#hCard_reference_via_object référence hCard via technique objet].
<source lang=html4strict><a class="include" href="#auteur" title="Jean Levin"></a></source>
<source lang=html4strict><object class="include" data="#auteur"></object></source>


== nom de classe "include" ==
Dans les specs qui citent include-pattern, soit l'un des deux morceaux de code au-dessus amèneront le parseur de microformat à remplacer l'élément A ou OBJECT avec le nom de classe "include" par le fragment de contenu avec l'ID "auteur". Des exemples complets suivent.


Afin de rendre ça plus explicite (aider vers une compatibilité à venir pour les parseurs), nous ajoutons le nom de classe "include" sur l'élément objet pour indiquer que cet objet fait référence à un sous-arbre qui devrait être inclus dans sa place par les parseurs de microformats.
== en général==


'''Proposition 1 :''' autouriser l'usage de <nowiki><a href class="include"></nowiki> comme un mécanimse secondaire include-pattern, du fait que quelques navigateurs gèrent mal l'objet include-pattern.  Voir [[include-pattern-feedback]] pour les détails.
Pour référencer des includes, utilisez l'élément include avec le nom de classe "include" et un identifiant de document fragment. Le contenu à inclure devrait avoir un réglage d'attribut ID, et sur ID soit référencé à partir de l'attribut HREF ou DATA au point d'inclusion.


== exemple inclusion objet  ==
L'élément include avec le nom de classe "include" indique une référence vers un sous-arbre ailleurs dans le document qui doit être incluse dans-la-place par les parseurs de microformats. Ce qui veut dire que l'élément avec la classe "include" est _remplacé_ dans le DOM par le sous-arbre référencé.


Voici un exemple d'une [[hcard-fr|hCard]] quevous pourriez avoir en haut d'une page, montrée ici comme une hCard verbeuse pour les besoins de l'illustration que la référence peut être vers un sous-arbre, pas simplement un noeud texte :
Pour éviter les boucles infinies, si un class="include" fait référence à lui-même ou à un ancêtre dans l'analyse de l'arbre, alors il est ignoré et n'a pas d'effet sur le parseur.


<pre><nowiki>
Selon l'[[include-pattern-fr#étendue|étendue]], l'attribut OBJECT 'data' et l'attribut hyperlien 'href' DOIVENT être des références ID locales quand ils sont utilisés comme des instances d'include-pattern. Les références externes (exigeant une application client pour charger une ressource externe) ne sont pas supportées par cette méthode.
 
Il y a deux éléments HTML disponibles pour référencer des includes, hyperlien/Ancre et OBJECT. Ils sont documentés ci-dessous.
 
Ces méthodes d'indirection de propriété via un élément hyperlien peuvent s'appliquer à n'importe lesquelles/toutes les propriétés dans les microformats fondés sur les classes, mais ne devraient être uniquement utilisées là où un microformat déclare explicitement que l'include-pattern est une dépendance. Par exemple, [[xoxo-fr|XOXO]] ne référence pas l'include-pattern à cette heure, aussi les sous-arbres ne peuvent pas être inclus en référence dans XOXO. [[hresume-fr|hResume]] et [[hreview-fr|hReview]] référencent vraiment l'include-pattern.
 
=== Hyperlen ===
 
Le moyen recommandé pour référencer includes dans les microformats est d'utiliser un hyperlien.
 
==== Exemple hyperlien ====
 
Voici une [[hcard-fr|hCard]] provenant du début d'un C.V., montrée ici sous une hCard verbeuse.
 
<source lang=html4strict>
<span class="vcard">
<span class="vcard">
<span class="fn n" id="j">
<span class="fn n" id="jean-hcard-nom">
   <span class="given-name">Jean</span> <span class="family-name">Levine</span>
   <span class="given-name">Jean</span> <span class="family-name">Levine</span>
  </span>
  </span>
<span class="org">SimplyHired</span>
<span class="title">Microformat Brainstormer</span>
</span>
</span>
</nowiki></pre>  
</source>


Quelque part ailleurs sur la page, vous pourriez avoir une autre hCard qui réutiliserait ce contenu "fn n" à partir de la première hCard :  
Ailleurs sur la page, une seconde hCard réutilise le contenu "fn n" tiré de la première hCard :


<pre><nowiki>
<source lang=html4strict>
<span class="vcard">
<span class="vcard">
  <object data="#j" class="include"></object>
  <a href="#jean-hcard-nom" class="include" title="Jean Levine"></a>
  <span class="org">SimplyHired</span>
  <span class="org">SimplyHired</span>
  <span class="title">Microformat Brainstormer</span>
  <span class="title">Microformat Brainstormer</span>
</span>
</span>
</nowiki></pre>  
</source>
 
Notez que le manque de contenu dans l'élément <code>a</code> avec <code>class="include"</code> est délibéré, car il renvoie vers l'exigence de design provenant du [[hresume-fr|hResume]] de ne pas avoir à répéter <em>quelque</em> information de nom avec chaque entrée de job. L'attribut <code>title</code> est utilisé pour aider les agents-utilisateurs qui désirent étiqueter l'hyperlien en dehors de son élément dans la ligne.


De ce fait un parseur microformat traiterait le code ci-dessus comme suit, avec l'inclusion d'objet remplacée complètement par le sous-arbre qu'il référence :


<pre><nowiki>
Un parseur microformat doit traiter la seconde hCard comme suit, avec l'élément hyperlien include complètement remplacé (y compris le texte-à-l'intérieur) par le sous-arbre qui était référencé :
 
<source lang=html4strict>
<span class="vcard">
<span class="vcard">
  <span class="fn n" id="j">
  <span class="fn n" id="jean-hcard-nom">
   <span class="given-name">Jean</span> <span class="family-name">Levine</span>
   <span class="given-name">Jean</span> <span class="family-name">Levine</span>
  </span>
  </span>
Line 52: Line 79:
  <span class="title">Microformat Brainstormer</span>
  <span class="title">Microformat Brainstormer</span>
</span>
</span>
</nowiki></pre>  
</source>
 
==== notes et problématiques ====
Note : La valeur de l'attribut <code>id</code> dans l'exemple "jean-hcard-nom" a été choisie à des fins de démonstration. Le texte de la valeur n'a pas d'autre sémantique selon l'include-pattern que de connecter la source de l'include vers la destination. Les auteurs {{should-fr}} utiliser de bonnes techniques [[posh-fr|CHIC]] pour choisir les noms <code>id</code> et <code>class</code>.
 
Utiliser l'hyperlien-include-pattern ne provoque pas de problématiques connues dans n'importe quel navigateur, tant que les includes hyperliens sans contenus sont cachés avec CSS. Voir en-dessous pour les détails.
 
Les auteurs DEVRAIENT fournir un texte de contenu ou au moins un texte d'attribut <code>title</code> pour l'hyperlien lui-même. Ceci peut exiger de répéter un petit bout d'information (comme celui du nom d'une personne dans une hCard) ou inclure un texte générique adapté au contexte de la page.


Cette méthode de redireton de propriété hCard via un élément objet peut s'appliquer à n'importe quelle/toutes les propriétés dans les microformats basés sur les classes.
===== accessibilité =====
Les <strong>hyperliens présentés sous une liste extraite.</strong> Deux points de vue là-dessus. Le premier est que l'expérience utilisateur de "Assistive Technology" peuvent (pourraient) être sévèrement dégradés par la présence d'hyperliens qui ne contiennent pas de texte (voir [http://yuiblog.com/blog/2008/01/23/empty-links/ Empty Links and Screen Readers] pour les résultats de tests véritables). Le second est que la première déclaration n'est juste qu'un effet de bord de quelques "Assistive Technologies" extrayant les hyperliens dans un document est les présentant sous une liste, et que de telles technologies / fonctionnalités n'ont pas le droit de faire ainsi, et par conséquent ce n'est pas votre problème de vous en soucier. Voir See [http://joeclark.org/appearances/atmedia2007/#context Joe Clark: When accessibility is not your problem: Headings and links read out of context], en particulier :
<blockquote><p>As writers, we are not authorizing you or Jaws to pull out our link text and remix it. Why don’t you rearrange the sentences, too?</p></blockquote>


Note 1 : '''l'attribut de donnée objet DOIT être un ID local de référence'''. Les références externes (qui devraient exiger une application consommatrice à charger une ressource externe) ne sont actuellement pas supportées par cette méthode.
<strong>Hyperliens et onglets dans les navigateurs communs</strong>. Comme cela est noté dans la [http://microformats.org/wiki/include-pattern-feedback page include-pattern feedback], tout hyperlien visible utilisé avec un attribut <code>href</code> finit dans le cycle de tabulation du browser. Ceci affecte tous les utilisateurs de clavier (à la fois les voyants qui ne peuvent pas opérer une souris, ou les utilisateurs de lecteurs écran dans le cas extrême). Même les hyperliens vides reçoivent de l'attention. Ce peut être testé en modifiant le code de la page [http://allinthehead.com/demo/include.html a@include test] pour suivre visuellement la tabulation d'un hyperlien au suivant (en utilisant ou à des fins de tests, de changer subtilement le <code>href</code>, en tabulant à travers la page, et en observant le changement dans l'URL affiché dans la barre de statut du navigateur). Les hyperliens cachés avec CSS <code>display:none</code> ne parviennent pas dans le cycle de tabulation du navigateur.


Note 2 : Pour éviter les désoredres disgracieux dans Safari, vous devriez inclure la règle de style suivante dans une feuille de style pour la page :
De ce fait, il est recommandé que les hyperliens sur le "Modèle Include Hyperlink" manquant de contenu en ligne {{should-fr}} être caché avec CSS. Du fait qu'ils n'ont pas de contenus, ce changement stylistique n'a pas d'effet net sur le contenu sémantique du document du point de vue d'une perspective utilisateur.
<pre><nowiki>
object.include { width:0; height:0 }
</nowiki></pre>


Note 3 : Pour éviter les boucles infinies, si un class="include" fait référence à lui-même ou à un ancêtre dans l'arbre de parsage, alors il est ignoré et n'a pas d'effet sur le parseur.
=== Object ===


L'include-pattern Object est sémantiquement supérieur à l'"Hyperlink Include" ; il est utilisé pour embarquer du contenu à l'intérieur de la page. L'élément <code>object</code> basé include était l'include original de développement de l'include pattern. Néanmoins il y a de sérieux problèmes de compatibilité navigateur qui peuvent affecter quelques scénarios d'implémentation et de ce fait l'include pattern-hyperlien a été développé et est désormais préféré.


== exemple inclusion hyperlien ==
==== exemple Object ====


D'après la proposition 1 au-dessus, voilà comment vous devriez coder l'exemple de l'inclusion de l'objet au-dessus en utilisant le tag <nowiki><a href></nowiki> tag.
La [[hcard-fr|hCard]] du début d'un résumé décrivant la personne dans le résumé est :


<pre><nowiki>
<source lang=html4strict>
<span class="vcard">
<span class="vcard">
  <a href="#j" class="include"></a>
  <span class="fn n" id="jean-hcard-nom">
  <span class="given-name">Jean</span> <span class="family-name">Levine</span>
</span>
</span>
</source>
 
Ailleurs sur la page, une seconde hCard avec l'information de l'employeur, ré-utilise le contenu "fn n" extrait de la première hCard :
 
<source lang=html4strict>
<span class="vcard">
<object data="#jean-hcard-nom" class="include"></object>
  <span class="org">SimplyHired</span>
  <span class="org">SimplyHired</span>
  <span class="title">Microformat Brainstormer</span>
  <span class="title">Microformat Brainstormer</span>
</span>
</span>
</nowiki></pre>
</source>  
 
Modifications :
# un tag ouvert/fermé au lieu d'un tag objet ouvert/fermé
# attribut href au lieu de attribut data
# ... voilà. seulement 2 modifications.
 


Et simplement comme dans l'exemple d'inclusion d'objet, le résultat final vers le parseur est le même et les même '''Note''' s'appliquent.
Un parseur microformat doit traiter la seconde hCard comme suit, avec l'élément include <code>object</code> remplacé complèteent par le sous-arbre qu'il a référencé :


<pre><nowiki>
<source lang=html4strict>
<span class="vcard">
<span class="vcard">
  <span class="fn n" id="j">
  <span class="fn n" id="jean-hcard-nom">
   <span class="given-name">Jean</span> <span class="family-name">Levine</span>
   <span class="given-name">Jean</span> <span class="family-name">Levine</span>
  </span>
  </span>
Line 94: Line 132:
  <span class="title">Microformat Brainstormer</span>
  <span class="title">Microformat Brainstormer</span>
</span>
</span>
</nowiki></pre>
</source>
 
Cette méthode d'indirection de propriété hCard via un élément object peut s'appliquer à n'importe lesquelles/toutes les propriétés dans les microformats fondés-sur-des-classes.


== Remerciements ==
=== notes et problématiques===
* A la différence du pattern-hyperlien, l'Object Include Pattern n'a pas besoin de quelque recours textuel. Ceci le rend invisible à l'Assistive Technology.
* Le navigateur Safari d'Apple (basé-sur-WebKit) a quelques problèmes de rendu d'affichage avec cet usage de <code>object</code> : Vous devriez régler une largeur et hauteur à "0" pour les éléments include afin de résoudre ça  ('''besoin des version(s) affectées''').
* Des bugs ont été rapportés dans quelques navigateurs web  (Internet Explorer, Safari, Firefox) que les éléments <code>object</code> faisant référence à des fragments du même document amenant le navigateur à faire des requêtes additionnelles HTTP ('''besoin des version(s) affectées'''). Pour les scénarii où les requêtes HTTP sont une mesure de performance sensible, ceci rend le Object Include Pattern inapproprié.
* Les versions de Microsoft Internet Explorer avec les contrôles ActiveX désactivés afficheront un message d'alerte en trouvant un élément <code>object</code> ('''besoin des version(s) affectées''').


Grâce aux discussions et brainstorms avec un paquet de gens : Ryan King, James Levine, l'ensemble de la foule présente à [http://mashupcamp.com/index.cgi?HAtomFinalization la session de travail sur les specifications Microformats] lors du MashupCamp, Brian Suda, Scott Reynen, Drew McLellan.
==remerciements ==
Grâce aux discussions et brainstorms avec un paquet de gens : [http://theryanking.com/ Ryan King], James Levine, l'ensemble de la foule présente à [http://mashupcamp.com/index.cgi?HAtomFinalization la session de travail sur les spécifications Microformats] lors du MashupCamp, [http://suda.co.uk/ Brian Suda], [http://randomchaos.com/ Scott Reynen], [http://allinthehead.com/ Drew McLellan].


== Utilisation des Spécifications ==
==utilisation des spécifications ==
* [[hresume-fr|hResume]]
* [[hresume-fr|hResume]]
* [[hreview-fr|hReview]]
* [[hreview-fr|hReview]]


=== Considération ===
===considération ===
Tous les microformats basés sur des classes DEVRAIENT considérer utiliser et déclarer explicitement normativement le support de l'include-pattern.
* [[hatom-fr|hAtom]]
* [[hatom-fr|hAtom]]
* [[hcalendar-fr|hCalendar]]
* [[hcalendar-fr|hCalendar]]
* [[hcard-fr|hCard]]
* [[hcard-fr|hCard]]


== Implémentations ==
==implémentations ==
* X2V implémente le [[include-pattern-fr|include-pattern]] au moment de parser les [[hcard-fr|hCards]] et [[hcalendar-fr|hCalendars]] pour à la fois object.include et a.include.
* X2V implémente le [[include-pattern-fr|include-pattern]] au moment de parser les [[hcard-fr|hCards]] et [[hcalendar-fr|hCalendars]] pour à la fois object.include et a.include.


== Références ==
==références ==
 
=== normatives ===
=== Normative ===
* HTML 4.01
* HTML 4.01
* XHTML 1.0


=== Informative ===
===informatives ===
* [[hcard-fr|hCard]]
* [[hcard-fr|hCard]]
* [[hresume-fr|hResume]]
* XHTML 1.0


=== En rapport ===
==en rapport ==
 
{{include-pattern-related-pages-fr}}
* [http://www.mnot.net/javascript/hinclude.html Introducing HInclude] par Mark Nottingham.
* voir aussi les [http://www.technorati.com/cosmos/referer.html blogs discutant de cette page].
** HInclude est une extension de balisage + une librairie javascript pour inclure des fichiers *externes* à l'intérieur d'un document XHTML.

Latest revision as of 16:28, 18 July 2020


Initialement développé en tant que section du resume-brainstorming, l'include-pattern est un mécanisme pour inclure une portion de données dans une autre aire de la même page. Ce qui suit est de la documentation pour réutilisation du modèle dans d'autres microformats, et pour que les éditeurs travaillent avec.

Auteurs
Tantek Çelik
Ben Ward
Traduction
Christophe Ducamp

historique

hResume avait besoin de la capacité d'inclure un nom provenant d'une hCard dans le haut d'un curriculum vitae — les détails de contact de la personne — à l'intérieur des hCards séparées utilisées dans l'historique d'emploi de la même personne. Répéter l'information de nom n'aurait pas correspondu aux techniques de publication existantes utilisées dans les résumés et Curriculum Vitæ, ç'aurait été peu commode pour les auteurs et énervants pour les clients. L'include-pattern est un mécanisme pour référencer les données provenant de la même page, pour éviter la répétition, ou pour toute information dupliquée.

étendue

L'include-pattern est strictement limité au cadre de la page en cours. Il ne peut pas être utilisé pour inclure du contenu provenant d'autres URLs.

référence rapide

L'include-pattern est un mécanisme pour inclure le contenu provenant d'un microformat à l'intérieur d'un autre microformat ailleurs dans le même document, en utilisant les hyperliens (recommandé) ou OBJECT. Par exemple :

<a class="include" href="#auteur" title="Jean Levin"></a>
<object class="include" data="#auteur"></object>

Dans les specs qui citent include-pattern, soit l'un des deux morceaux de code au-dessus amèneront le parseur de microformat à remplacer l'élément A ou OBJECT avec le nom de classe "include" par le fragment de contenu avec l'ID "auteur". Des exemples complets suivent.

en général

Pour référencer des includes, utilisez l'élément include avec le nom de classe "include" et un identifiant de document fragment. Le contenu à inclure devrait avoir un réglage d'attribut ID, et sur ID soit référencé à partir de l'attribut HREF ou DATA au point d'inclusion.

L'élément include avec le nom de classe "include" indique une référence vers un sous-arbre ailleurs dans le document qui doit être incluse dans-la-place par les parseurs de microformats. Ce qui veut dire que l'élément avec la classe "include" est _remplacé_ dans le DOM par le sous-arbre référencé.

Pour éviter les boucles infinies, si un class="include" fait référence à lui-même ou à un ancêtre dans l'analyse de l'arbre, alors il est ignoré et n'a pas d'effet sur le parseur.

Selon l'étendue, l'attribut OBJECT 'data' et l'attribut hyperlien 'href' DOIVENT être des références ID locales quand ils sont utilisés comme des instances d'include-pattern. Les références externes (exigeant une application client pour charger une ressource externe) ne sont pas supportées par cette méthode.

Il y a deux éléments HTML disponibles pour référencer des includes, hyperlien/Ancre et OBJECT. Ils sont documentés ci-dessous.

Ces méthodes d'indirection de propriété via un élément hyperlien peuvent s'appliquer à n'importe lesquelles/toutes les propriétés dans les microformats fondés sur les classes, mais ne devraient être uniquement utilisées là où un microformat déclare explicitement que l'include-pattern est une dépendance. Par exemple, XOXO ne référence pas l'include-pattern à cette heure, aussi les sous-arbres ne peuvent pas être inclus en référence dans XOXO. hResume et hReview référencent vraiment l'include-pattern.

Hyperlen

Le moyen recommandé pour référencer includes dans les microformats est d'utiliser un hyperlien.

Exemple hyperlien

Voici une hCard provenant du début d'un C.V., montrée ici sous une hCard verbeuse.

<span class="vcard">
<span class="fn n" id="jean-hcard-nom">
  <span class="given-name">Jean</span> <span class="family-name">Levine</span>
 </span>
 <span class="org">SimplyHired</span>
 <span class="title">Microformat Brainstormer</span>
</span>

Ailleurs sur la page, une seconde hCard réutilise le contenu "fn n" tiré de la première hCard :

<span class="vcard">
 <a href="#jean-hcard-nom" class="include" title="Jean Levine"></a>
 <span class="org">SimplyHired</span>
 <span class="title">Microformat Brainstormer</span>
</span>

Notez que le manque de contenu dans l'élément a avec class="include" est délibéré, car il renvoie vers l'exigence de design provenant du hResume de ne pas avoir à répéter quelque information de nom avec chaque entrée de job. L'attribut title est utilisé pour aider les agents-utilisateurs qui désirent étiqueter l'hyperlien en dehors de son élément dans la ligne.


Un parseur microformat doit traiter la seconde hCard comme suit, avec l'élément hyperlien include complètement remplacé (y compris le texte-à-l'intérieur) par le sous-arbre qui était référencé :

<span class="vcard">
 <span class="fn n" id="jean-hcard-nom">
  <span class="given-name">Jean</span> <span class="family-name">Levine</span>
 </span>
 <span class="org">SimplyHired</span>
 <span class="title">Microformat Brainstormer</span>
</span>

notes et problématiques

Note : La valeur de l'attribut id dans l'exemple "jean-hcard-nom" a été choisie à des fins de démonstration. Le texte de la valeur n'a pas d'autre sémantique selon l'include-pattern que de connecter la source de l'include vers la destination. Les auteurs DEVRAIT utiliser de bonnes techniques CHIC pour choisir les noms id et class.

Utiliser l'hyperlien-include-pattern ne provoque pas de problématiques connues dans n'importe quel navigateur, tant que les includes hyperliens sans contenus sont cachés avec CSS. Voir en-dessous pour les détails.

Les auteurs DEVRAIENT fournir un texte de contenu ou au moins un texte d'attribut title pour l'hyperlien lui-même. Ceci peut exiger de répéter un petit bout d'information (comme celui du nom d'une personne dans une hCard) ou inclure un texte générique adapté au contexte de la page.

accessibilité

Les hyperliens présentés sous une liste extraite. Deux points de vue là-dessus. Le premier est que l'expérience utilisateur de "Assistive Technology" peuvent (pourraient) être sévèrement dégradés par la présence d'hyperliens qui ne contiennent pas de texte (voir Empty Links and Screen Readers pour les résultats de tests véritables). Le second est que la première déclaration n'est juste qu'un effet de bord de quelques "Assistive Technologies" extrayant les hyperliens dans un document est les présentant sous une liste, et que de telles technologies / fonctionnalités n'ont pas le droit de faire ainsi, et par conséquent ce n'est pas votre problème de vous en soucier. Voir See Joe Clark: When accessibility is not your problem: Headings and links read out of context, en particulier :

As writers, we are not authorizing you or Jaws to pull out our link text and remix it. Why don’t you rearrange the sentences, too?

Hyperliens et onglets dans les navigateurs communs. Comme cela est noté dans la page include-pattern feedback, tout hyperlien visible utilisé avec un attribut href finit dans le cycle de tabulation du browser. Ceci affecte tous les utilisateurs de clavier (à la fois les voyants qui ne peuvent pas opérer une souris, ou les utilisateurs de lecteurs écran dans le cas extrême). Même les hyperliens vides reçoivent de l'attention. Ce peut être testé en modifiant le code de la page a@include test pour suivre visuellement la tabulation d'un hyperlien au suivant (en utilisant ou à des fins de tests, de changer subtilement le href, en tabulant à travers la page, et en observant le changement dans l'URL affiché dans la barre de statut du navigateur). Les hyperliens cachés avec CSS display:none ne parviennent pas dans le cycle de tabulation du navigateur.

De ce fait, il est recommandé que les hyperliens sur le "Modèle Include Hyperlink" manquant de contenu en ligne DEVRAIT être caché avec CSS. Du fait qu'ils n'ont pas de contenus, ce changement stylistique n'a pas d'effet net sur le contenu sémantique du document du point de vue d'une perspective utilisateur.

Object

L'include-pattern Object est sémantiquement supérieur à l'"Hyperlink Include" ; il est utilisé pour embarquer du contenu à l'intérieur de la page. L'élément object basé include était l'include original de développement de l'include pattern. Néanmoins il y a de sérieux problèmes de compatibilité navigateur qui peuvent affecter quelques scénarios d'implémentation et de ce fait l'include pattern-hyperlien a été développé et est désormais préféré.

exemple Object

La hCard du début d'un résumé décrivant la personne dans le résumé est :

<span class="vcard">
 <span class="fn n" id="jean-hcard-nom">
  <span class="given-name">Jean</span> <span class="family-name">Levine</span>
 </span>
</span>

Ailleurs sur la page, une seconde hCard avec l'information de l'employeur, ré-utilise le contenu "fn n" extrait de la première hCard :

<span class="vcard">
 <object data="#jean-hcard-nom" class="include"></object>
 <span class="org">SimplyHired</span>
 <span class="title">Microformat Brainstormer</span>
</span>

Un parseur microformat doit traiter la seconde hCard comme suit, avec l'élément include object remplacé complèteent par le sous-arbre qu'il a référencé :

<span class="vcard">
 <span class="fn n" id="jean-hcard-nom">
  <span class="given-name">Jean</span> <span class="family-name">Levine</span>
 </span>
 <span class="org">SimplyHired</span>
 <span class="title">Microformat Brainstormer</span>
</span>

Cette méthode d'indirection de propriété hCard via un élément object peut s'appliquer à n'importe lesquelles/toutes les propriétés dans les microformats fondés-sur-des-classes.

notes et problématiques

  • A la différence du pattern-hyperlien, l'Object Include Pattern n'a pas besoin de quelque recours textuel. Ceci le rend invisible à l'Assistive Technology.
  • Le navigateur Safari d'Apple (basé-sur-WebKit) a quelques problèmes de rendu d'affichage avec cet usage de object : Vous devriez régler une largeur et hauteur à "0" pour les éléments include afin de résoudre ça (besoin des version(s) affectées).
  • Des bugs ont été rapportés dans quelques navigateurs web (Internet Explorer, Safari, Firefox) que les éléments object faisant référence à des fragments du même document amenant le navigateur à faire des requêtes additionnelles HTTP (besoin des version(s) affectées). Pour les scénarii où les requêtes HTTP sont une mesure de performance sensible, ceci rend le Object Include Pattern inapproprié.
  • Les versions de Microsoft Internet Explorer avec les contrôles ActiveX désactivés afficheront un message d'alerte en trouvant un élément object (besoin des version(s) affectées).

remerciements

Grâce aux discussions et brainstorms avec un paquet de gens : Ryan King, James Levine, l'ensemble de la foule présente à la session de travail sur les spécifications Microformats lors du MashupCamp, Brian Suda, Scott Reynen, Drew McLellan.

utilisation des spécifications

considération

Tous les microformats basés sur des classes DEVRAIENT considérer utiliser et déclarer explicitement normativement le support de l'include-pattern.

implémentations

références

normatives

  • HTML 4.01

informatives

en rapport

web qui utilisent l'"include pattern".

  • include-pattern FAQ - si vous avez quelque question à propos de "include-pattern", regardez ici

et si vous ne trouvez pas de réponses, ajoutez vos questions!