include-pattern-fr: Difference between revisions
m (Reverted edit of QpsCuv, changed back to last version by RyanKing) |
m ([fr:sync'd with english version-to be translated]) |
||
Line 1: | Line 1: | ||
<h1> include pattern </h1> | <h1> include pattern </h1> | ||
Initialement | {{TOC-right}} | ||
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 pattern dans d'autres microformats, et pour que les éditeurs travaillent avec. | |||
; | ; Auteurs | ||
: Tantek Çelik | |||
: Ben Ward | |||
; Traduction | |||
: [[User:ChristopheDucamp|Christophe Ducamp]]) | |||
== | == 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. | |||
== | == référence rapide == | ||
L'include-pattern est un mécanisme pour inclure le contenu provenant d'un microfomrat à l'intérieur d'un autre microformat ailleurs dans le même document, en utilisant les hyperliens (recommandé) ou OBJECT. Par exemple : | |||
<pre><nowiki><a class="include" href="#auteur" title="Jean Levin"></a></nowiki></pre> | |||
<pre><nowiki><object class="include" data="#auteur"></object></nowiki></pre> | |||
== | 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'[[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. | |||
<pre><nowiki> | <pre><nowiki> | ||
<span class="vcard"> | <span class="vcard"> | ||
<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> | </nowiki></pre> | ||
Ailleurs sur la page, une seconde hCard réutilise le contenu "fn n" tiré de la première hCard : | |||
<pre><nowiki> | <pre><nowiki> | ||
<span class="vcard"> | <span class="vcard"> | ||
< | <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> | ||
Line 39: | Line 66: | ||
</nowiki></pre> | </nowiki></pre> | ||
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. | |||
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é : | |||
<pre><nowiki> | <pre><nowiki> | ||
<span class="vcard"> | <span class="vcard"> | ||
<span class="fn n" id=" | <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 51: | Line 81: | ||
</nowiki></pre> | </nowiki></pre> | ||
==== notes et problématiques ==== | |||
Note | 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 {{should-fr}} 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. | |||
===== 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'hypermiens 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> | |||
<strong>Hyperliens et onglets dans les navigateurs communs</strong>. As noted in the [http://microformats.org/wiki/include-pattern-feedback include-pattern feedback page], any visible hyperlink used with an <code>href</code> attribute ends up in the browser's tab cycle. This affects all keyboard users (both sighted users that can't/don't operate a mouse, or screen reader users in the extreme case). Even empty hyperlinks receive focus. This can be tested by modifying the code of the original [http://allinthehead.com/demo/include.html a@include test page] to visually follow the tabbing from one hyperlink to the next (using CSS or, for test purposes, subtly changing the <code>href</code>, tabbing through the page, and observing the change in the URL displayed in the browser's status bar). Hyperlinks hidden with CSS <code>display:none</code> do not end up in the browser's tab cycle. | |||
Thus it is recommended that Hyperlink Include Pattern hyperlinks lacking inline content {{should}} be hidden with CSS. As they have no content, this stylistic change has no net effect on the document's content semantics from a user's perspective. | |||
=== 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 Object ==== | |||
Voici la même [[hcard-fr|hCard]] prise au début du résume dans l'exemple précédent. | |||
== | <pre><nowiki> | ||
<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> | |||
</nowiki></pre> | |||
Ailleurs sur la page, une seconde hCard ré-utilise le contenu "fn n" extrait de la première hCard : | |||
<pre><nowiki> | <pre><nowiki> | ||
<span class="vcard"> | <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> | ||
Line 73: | Line 123: | ||
</nowiki></pre> | </nowiki></pre> | ||
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> | <pre><nowiki> | ||
<span class="vcard"> | <span class="vcard"> | ||
<span class="fn n" id=" | <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 91: | Line 135: | ||
</nowiki></pre> | </nowiki></pre> | ||
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. | |||
* Apple's Safari (WebKit-based) browser has some rendering issues with this use of <code>object</code>: You should set a width and height of "0" for the include elements to resolve this ('''version(s) affected needed'''). | |||
* Bugs have been reported in some web browsers (Internet Explorer, Safari, Firefox) that <code>object</code> elements referencing fragments of the same document erroneously cause the browser to make additional HTTP requests ('''version(s) affected needed'''). For scenarios where HTTP requests are a sensitive performance measure, this makes the Object Include Pattern inappropriate. | |||
* Versions of Microsoft Internet Explorer with ActiveX controls disabled will throw a warning prompt upon finding an <code>object</code> element ('''version(s) affected needed'''). | |||
==remerciements == | ==remerciements == | ||
Line 103: | Line 151: | ||
===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 == | ||
Line 114: | Line 160: | ||
==références == | ==références == | ||
=== normatives === | |||
=== | |||
* HTML 4.01 | * HTML 4.01 | ||
===informatives === | ===informatives === | ||
* [[hcard-fr|hCard]] | * [[hcard-fr|hCard]] | ||
* [[hresume-fr|hResume]] | |||
* XHTML 1.0 | |||
==en rapport == | ==en rapport == | ||
{{include-pattern-related-pages-fr}} | {{include-pattern-related-pages-fr}} | ||
* voir aussi les [http://www.technorati.com/cosmos/referer.html blogs discutant de cette page]. |
Revision as of 10:51, 27 January 2008
include pattern
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 pattern 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 microfomrat à 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 DEVRAIT 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'hypermiens 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. As noted in the include-pattern feedback page, any visible hyperlink used with an href
attribute ends up in the browser's tab cycle. This affects all keyboard users (both sighted users that can't/don't operate a mouse, or screen reader users in the extreme case). Even empty hyperlinks receive focus. This can be tested by modifying the code of the original a@include test page to visually follow the tabbing from one hyperlink to the next (using CSS or, for test purposes, subtly changing the href
, tabbing through the page, and observing the change in the URL displayed in the browser's status bar). Hyperlinks hidden with CSS display:none
do not end up in the browser's tab cycle.
Thus it is recommended that Hyperlink Include Pattern hyperlinks lacking inline content SHOULD be hidden with CSS. As they have no content, this stylistic change has no net effect on the document's content semantics from a user's perspective.
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
Voici la même hCard prise au début du résume dans l'exemple précédent.
<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 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.
- Apple's Safari (WebKit-based) browser has some rendering issues with this use of
object
: You should set a width and height of "0" for the include elements to resolve this (version(s) affected needed). - Bugs have been reported in some web browsers (Internet Explorer, Safari, Firefox) that
object
elements referencing fragments of the same document erroneously cause the browser to make additional HTTP requests (version(s) affected needed). For scenarios where HTTP requests are a sensitive performance measure, this makes the Object Include Pattern inappropriate. - Versions of Microsoft Internet Explorer with ActiveX controls disabled will throw a warning prompt upon finding an
object
element (version(s) affected needed).
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
- X2V implémente le include-pattern au moment de parser les hCards et hCalendars pour à la fois object.include et a.include.
références
normatives
- HTML 4.01
informatives
en rapport
- le "include pattern"
- include-pattern exemples dans la jungle - une liste en cours de sites
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!
- include-pattern feedback- réaction générale (à l'opposé des problématiques spécifiques).
- include-pattern problématiques - problématiques spécifiques avec l'include pattern.
- voir aussi les blogs discutant de cette page.