<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Les intégristes &#187; Accessibilité</title>
	<atom:link href="http://www.lesintegristes.net/categorie/accessibilite/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lesintegristes.net</link>
	<description></description>
	<lastBuildDate>Wed, 25 Aug 2010 21:21:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Introduction à WAI ARIA (traduction)</title>
		<link>http://www.lesintegristes.net/2008/12/09/introduction-a-wai-aria-traduction/</link>
		<comments>http://www.lesintegristes.net/2008/12/09/introduction-a-wai-aria-traduction/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 10:39:40 +0000</pubDate>
		<dc:creator>Pierre Bertet</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ARIA]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/?p=399</guid>
		<description><![CDATA[
Grégoire Dierendonck

L&#8217;article qui suit est la traduction de l&#8217;article &#171;&#160;Introduction to WAI ARIA&#171;&#160;, publié par Gez Lemon sur Dev Opera, le site d&#8217;Opera Software destiné aux développeurs.
Gez Lemon est un expert reconnu de l&#8217;accessibilité web. Il est membre du WaSP ( Accessibility Task Force ) et travaille pour The Paciello Group, entreprise de conseil spécialisée dans l&#8217;accessibilité web.
Cette traduction, comme l&#8217;article original, est placée sous licence Creative Commons by-nc-sa 2.5.

Cet article est destiné à des personnes ne connaissant pas ARIA. Vous devriez avoir une bonne connaissance du langage HTML et des problèmes que peuvent rencontrer les&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;font-size:10px;"><img src="http://www.lesintegristes.net/wp-content/uploads/2008/12/illu-aria4.jpg" alt="Illustration par Grégoire Dierendonck" title="" width="380" height="435" /><br />
<a style="margin-left:10px;text-decoration:none;" href="http://www.troispongdesign.fr/"><em>Grégoire Dierendonck</em></a></p>
<div class="preamble">
<p>L&#8217;article qui suit est la traduction de l&#8217;article &laquo;&nbsp;<a href="http://dev.opera.com/articles/view/introduction-to-wai-aria/">Introduction to WAI ARIA</a>&laquo;&nbsp;, publié par <a href="http://juicystudio.com/">Gez Lemon</a> sur <a href="http://dev.opera.com/">Dev Opera</a>, le site d&#8217;Opera Software destiné aux développeurs.</p>
<p>Gez Lemon est un expert reconnu de l&#8217;accessibilité web. Il est membre du <a href="http://www.webstandards.org/"><abbr title="The Web Standards Project">WaSP</abbr></a> ( <a href="http://www.webstandards.org/action/atf/">Accessibility Task Force</a> ) et travaille pour <a href="http://www.paciellogroup.com/">The Paciello Group</a>, entreprise de conseil spécialisée dans l&#8217;accessibilité web.</p>
<p>Cette traduction, comme l&#8217;article original, est placée sous licence <a href="http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr">Creative Commons by-nc-sa 2.5</a>.</p>
</div>
<p>Cet article est destiné à des personnes ne connaissant pas ARIA. Vous devriez avoir une bonne connaissance du langage HTML et des problèmes que peuvent rencontrer les personnes handicapées sur le web. Connaître quelques application web &laquo;&nbsp;riches&nbsp;&raquo; (RIA) d&#8217;un point de vue utilisateur serait un plus.</p>
<p>Après avoir lu cet article, vous comprendrez à quoi sert ARIA, comment l&#8217;intégrer à vos sites, et comment l&#8217;utiliser dès immédiatement et même sur le plus simple des sites pour le rendre plus accessible.</p>
<h2>Introduction</h2>
<p>Le langage HTML (HyperText Markup Language) n&#8217;a pas été conçu pour créer des applications web. Le nombre de contrôles (bouton, case à cocher, etc.) qu&#8217;il propose est limité, et il est basé sur une communication client / serveur séquentielle. Les développeurs d&#8217;applications web ont contourné ces limitations en créant leurs propres widgets (contrôles graphiques) associés à Javascript pour leur ajouter le comportement désiré.</p>
<p>Malheureusement, les techniques utilisées pour outrepasser ces limitations ne sont absolument pas accessibles. Bien que ces widgets ressemblent à ceux d&#8217;une application bureau classique comme la représentation d&#8217;une arborescence (tree view), le rôle (ce que le widget fait), l&#8217;état (sa configuration, comme &laquo;&nbsp;checked&nbsp;&raquo; pour une case à cocher), et d&#8217;autres informations importantes ne sont pas disponibles pour les technologies d&#8217;assistance (comme les lecteurs d&#8217;écran). Ce serait comme styler une ligne de texte pour qu&#8217;elle ressemble à un titre, sans utiliser un élément définissant un titre (h1 à h6). Le texte ressemble à un titre, mais les technologies d&#8217;assistance n&#8217;ont pas accès à cette information.</p>
<p>Les mises à jour sont souvent mal perçues par les personnes utilisant une technologie d&#8217;assistance. Ces outils s&#8217;attendent à ce que le contenu change lors d&#8217;un événement de navigation &laquo;&nbsp;classique&nbsp;&raquo;, comme un clic sur un lien ou un envoi de formulaire. Les applications web utilisent des techniques comme <abbr title="Asynchronous JavaScript and XML">AJAX</abbr> pour mettre à jour le contenu en arrière plan, ce qui peut passer inaperçu pour les technologies d&#8217;assistance. Si elles sont tout de même informées de ces mises à jour, l&#8217;utilisateur n&#8217;est pas pour autant informé que le contenu à été mis à jour, et n&#8217;a aucun moyen de localiser la zone mise à jour.</p>
<p><a href="http://www.w3.org/WAI/intro/aria"><abbr title="Web Accessibility Initiative">WAI</abbr>-<abbr title="Accessible Rich Internet Applications">ARIA</abbr></a> est une spécification qui propose la possibilité de définir une description des rôles, des états et des propriétés pour les widgets personnalisés, de manière à ce qu&#8217;ils soient reconnaissables et utilisables par les utilisateurs de technologies d&#8217;assistance. WAI-ARIA propose également un système permettant de s&#8217;assurer qu&#8217;un utilisateur de technologie d&#8217;assistance est informé des mises à jour de l&#8217;application.</p>
<h2>Petit historique du langage HTML</h2>
<p>Le langage HTML a été conçu pour être un système hypertexte, permettant de structurer et de partager des documents liés entre eux. Les premiers brouillons de la spécification HTML définissaient des balises comme des titres, des paragraphes, des listes, ou des ancres, pour ajouter une structure à des documents texte. La <a href="http://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt">première proposition d&#8217;une spécification HTML</a> par l&#8217;<abbr title="Internet Engineering Task Force">IETF</abbr> incluait l&#8217;élément <code>img</code>, permettant d&#8217;ajouter des images à l&#8217;intérieur du document. La première spécification formelle fût <a href="http://tools.ietf.org/html/rfc1866">HTML 2</a>, basée sur les premiers brouillons de HTML. Cette spécification a défini les formulaires, ainsi que quelques composants d&#8217;interface permettant de créer des zones éditables, des boutons, des cases à cocher, des boutons radio, et des menus déroulants. Le petit ensemble de de contrôles définis dans HTML 2 n&#8217;a quasiment pas changé jusqu&#8217;à <a href="http://www.w3.org/TR/html401/">HTML 4.01</a>, que nous utilisons actuellement.</p>
<p>Le modèle de communication de HTML est basé sur un modèle client / serveur : le client envoie des requêtes et reçoit des réponses ; Le serveur web attend les requêtes, les traite, puis renvoie une réponse au client. Puisque HTML ne définit pas de gestion de comportement, la communication est séquentielle : le client demande une page au serveur, le serveur traite la requête et renvoie une page au client.</p>
<h2>Applications web</h2>
<p>Les applications web essaient d&#8217;imiter les applications bureau classiques, mais ces applications web sont elles-mêmes exécutées à l&#8217;intérieur d&#8217;une application bureau : le navigateur. Il existe deux différences fondamentales entre HTML, avec son modèle de communication, et une application de bureau traditionnelle :</p>
<ul>
<li>Les applications de bureau possèdent une couche de comportement qui ne repose pas sur des requêtes serveur.</li>
<li>Les applications de bureau possèdent un nombre bien plus élevé de widgets.</li>
</ul>
<h2>Reproduction d&#8217;applications bureau</h2>
<h3>Requêtes serveur en arrière plan</h3>
<p>Pour simuler les applications bureau classiques, les applications web utilisent Javascript pour la partie comportement. Javascript peut par exemple être utilisé pour ouvrir et refermer un élément de menu lorsque l&#8217;utilisateur intéragit avec l&#8217;élément. Des données doivent parfois être récupérées sur le serveur : l&#8217;application peut par exemple récupérer des enregistrement dans une base de données pour mettre à jour des informations sur la page. Lorsque l&#8217;application doit interagir avec le serveur, des techniques comme AJAX ou un élément IFrame masqué sont utilisés pour communiquer de manière transparente avec le serveur.</p>
<h3>Reproduire des composants riches (widgets)</h3>
<p>Puisque HTML propose très peu de widgets (ndt : dans la suite de l&#8217;article, ce mot sera souvent utilisé pour désigner les contrôles d&#8217;interface), il est parfois nécessaire de créer des composants plus complexes pour une application web, comme une case à cocher proposant trois états, ou un bouton glissant (slider). Ces composants sont habituellement créés en utilisant des éléments graphiques couplés à Javascript pour qu&#8217;ils ressemblent et se comportent comme des composants natifs.</p>
<p><img src="http://dev.opera.com/articles/view/introduction-to-wai-aria/tristate.gif" alt="Trois cases à cocher : non cochée, cochée, et à moitié cochée" width="228" height="171" /></p>
<p>Figure 1 — Une boîte de dialogue avec une case à cocher proposant trois états.</p>
<p><img src="http://dev.opera.com/articles/view/introduction-to-wai-aria/slider.gif" alt="Un bouton glissant proposant d'indiquer la qualité d'un service" width="358" height="65" /></p>
<p>Figure 2 — Un bouton glissant (slider) pouvant être utilisé pour indiquer la qualité d&#8217;un service.</p>
<h2>Problèmes d&#8217;accessibilité avec la reproduction de composants natifs</h2>
<p>Visuellement, créer des contrôles riches et effectuer des requêtes serveur en arrière plan permet de créer une meilleure expérience utilisateur. Malheureusement, ces techniques posent de graves problèmes d&#8217;accessibilité pour les utilisateurs de technologies d&#8217;assistance, comme les lecteurs d&#8217;écran.</p>
<ul>
<li>Les composants créés de cette manière sont rarement accessibles au clavier.</li>
<li>Le rôle d&#8217;un composant, &laquo;&nbsp;ce qu&#8217;il fait&nbsp;&raquo;, n&#8217;est pas accessible aux technologies d&#8217;assistance.</li>
<li>Les états et propriétés d&#8217;un composant ne sont pas accessibles aux technologies d&#8217;assistance.</li>
<li>Les mises à jour ne sont pas signalées aux technologies d&#8217;assistance.</li>
</ul>
<h2>WAI-ARIA à la rescousse</h2>
<p>Tous les problèmes listés ci-dessus sont résolus par la specification <strong>WAI-ARIA</strong> (qui sera abrégée <strong>ARIA</strong> jusqu&#8217;à la fin de cet article) : <strong>W</strong>eb <strong>A</strong>ccessibility <strong>I</strong>nitiative’s <strong>A</strong>ccessible <strong>R</strong>ich <strong>I</strong>nternet <strong>A</strong>pplications. ARIA est une technologie <em>positive</em> : plutôt que de dire aux développeurs ce qu&#8217;ils ne peuvent pas faire, elle leur propose simplement de créer des applications web riches. ARIA est de plus une technologie très facile à implémenter.</p>
<h2>Navigation au clavier</h2>
<p>En plus de proposer une alternative aux éléments non-textuels, permettre d&#8217;interagir avec les contrôles d&#8217;interface à l&#8217;aide du clavier fait partie du minimum à mettre en place pour rendre un système plus accessible. Un développeur sensibilisé à l&#8217;accessibilité devrait réaliser des widgets dont les éléments permettent de recevoir le focus, tout comme le fait par défaut un élément <code>input</code> de type <code>image</code> (<code>&lt;input type="image" ...&gt;</code>). Malheureusement, la plupart des widgets ne sont pas réalisés de cette manière : ils utilisent plutôt des éléments comme <code>img</code>, ou peuvent être composés de plusieurs éléments placés dans un conteneur <code>div</code> qui ne reçoit pas le focus.</p>
<p>L&#8217;attribut <code>tabindex</code> est arrivé avec HTML4, utilisable sur les éléments suivants : <code>a</code>, <code>area</code>, <code>button</code>, <code>input</code>, <code>object</code>, <code>select</code>, et <code>textarea</code>. Cet attribut accepte un nombre positif compris entre <code>0</code> et <code>32767</code>. La navigation commence avec les éléments ayant la plus petite valeur <code>tabindex</code>, et se poursuit jusqu&#8217;à l&#8217;élément ayant la valeur la plus élevée. Les éléments ayant pour valeur <code>0</code> sont visités dans leur ordre naturel d&#8217;apparition dans le code. Si le document a une structure logique, l&#8217;attribut <code>tabindex</code> n&#8217;est pas requis car les éléments d&#8217;interface sont naturellement définis dans l&#8217;ordre de tabulation.</p>
<p>ARIA <a href="http://www.w3.org/TR/wai-aria/#tabindex">étend l&#8217;attribut tabindex</a>, lui permettant d&#8217;être utilisé sur tous les éléments visibles. ARIA autorise également l&#8217;utilisation d&#8217;une valeur négative pour les éléments ne devant pas être proposés à la navigation au clavier, mais pouvant recevoir le focus par programmation. Bien que la valeur d&#8217;un attribut tabindex négatif n&#8217;aie pas d&#8217;importance (l&#8217;élément ne pourra jamais recevoir le focus au clavier), la valeur -1 est couramment utilisée lorsqu&#8217;un élément ne doit pas recevoir le focus au clavier, mais uniquement par programmation.<br />
Par exemple, vous pourriez réaliser un menu dont l&#8217;élément conteneur est accessible à l&#8217;aide de la tabulation clavier, mais pas les éléments qu&#8217;il contient. Ces éléments peuvent alors être programmés pour être parcourus à l&#8217;aide des touches fléchées du clavier. Ainsi, les utilisateur n&#8217;ont pas à utiliser la touche tabulation sur chacun des éléments du menu, ce qui leur permet de mieux accéder au document. C&#8217;est vrai pour tous les widgets ayant une série de composants nécessitant un accès au clavier, comme la représentation d&#8217;une arborescence.</p>
<h3>Ajouter un élément à l&#8217;ordre naturel des tabulations</h3>
<p>L&#8217;exemple suivant affecte la valeur <code>0</code> à l&#8217;attribut <code>tabindex</code> pour placer l&#8217;élément <code>div</code> dans l&#8217;ordre des tabulations, ce qui permettra  d&#8217;y accéder à l&#8217;aide de la navigation clavier.</p>
<pre><code>&lt;div tabindex="0"&gt;
...
&lt;/div&gt;</code></pre>
<h3>Tabindex négatif</h3>
<p>L&#8217;exemple suivant utilise un <code>tabindex</code> d&#8217;une valeur négative, cet élément pourra alors recevoir le focus par programmation.</p>
<pre><code>&lt;div id="progaccess" tabindex="-1"&gt;
...
&lt;/div&gt;</code></pre>
<p>Dans cet exemple, l&#8217;élément <code>div</code> n&#8217;est pas placé dans l&#8217;ordre des tabulations, mais possède un attribut <code>tabindex</code> d&#8217;une valeur de <code>-1</code>. Le script qui suit sélectionne l&#8217;élément précédemment défini et utilise la méthode <code>focus()</code> pour activer le focus sur cet élément.</p>
<pre><code>var objDiv = document.getElementById('progaccess');

// Focus on the element
objDiv.focus();</code></pre>
<h2>Que suis-je ?</h2>
<p>ARIA propose l&#8217;<a href="http://www.w3.org/TR/wai-aria/#Using_intro">attribut <code>role</code></a> pour définir les widgets, comme un bouton glissant (slider), ou définir la structure de la page, comme un menu. Un problème majeur des applications web est que n&#8217;importe quel élément peut être utilisé pour créer un widget. Les éléments HTML possèdent déjà des rôles prédéfinis. Le rôle d&#8217;un élément est &laquo;&nbsp;ce qu&#8217;il fait&nbsp;&raquo; &#8211; le rôle qu&#8217;il a dans la structure. Par exemple, le rôle des titres est bien compris par les technologies d&#8217;assistances. Lorsque des widgets sont réalisés à partir d&#8217;éléments existants, le rôle d&#8217;un élément est ce que la technologie d&#8217;assistance définit plutôt que ce qu&#8217;il représente visuellement en tant que widget. Par exemple, si le visuel d&#8217;un slider est créé en utilisant un élément <code>img</code> avec un texte alternatif approprié, un lecteur d&#8217;écran pourrait annoncer le contrôle comme ceci : &laquo;&nbsp;Image d&#8217;un slider&nbsp;&raquo;, plutôt que quelque chose de plus intéressant, comme &laquo;&nbsp;Bouton glissant, 16 pour cents&nbsp;&raquo;.</p>
<p><img src="http://dev.opera.com/articles/view/introduction-to-wai-aria/thumb.gif" alt="Image d'un bouton glissant (slider)" width="166" height="81" /></p>
<p>Figure 3 — L&#8217;image d&#8217;un bouton glissant (slider) classique.</p>
<p>Le rôle donné par l&#8217;attribut <code>role</code> prend le pas sur le rôle natif de l&#8217;élément. Dans l&#8217;exemple suivant, un élément <code>input</code> possède un attribut <code>role</code> dont la valeur est <code>slider</code> (nous verrons d&#8217;autres propriétés ARIA plus loin dans cet article) — le rôle indiqué à la technologie d&#8217;assistance est <code>slider</code> (bouton glissant), plutôt que <code>input</code> (entrée utilisateur).</p>
<pre><code>&lt;input type="image" src="thumb.gif"
alt="Effectiveness"
role="slider"
aria-valuemin="0"
aria-valuemax="100"
aria-valuenow="42"
aria-valuetext="42 percent"
aria-labelledby="leffective"&gt;</code></pre>
<p>Lorsque le focus est placé sur cet élément, un utilisateur de lecteur d&#8217;écran comprend ce que fait ce widget. La spécification ARIA propose une <a href="http://www.w3.org/TR/wai-aria/#roles">liste de rôles</a>.</p>
<h3>Rôle des sections du document (document landmark roles)</h3>
<p>Les rôles que nous venons de voir permettent de décrire des widgets, mais il existe également des rôles permettant de décrire la structure du document. Les <a href="http://www.w3.org/TR/wai-aria/#roleattribute_inherits">document landmarks</a> (ou description des zones) sont un sous-ensemble des rôles classiques permettant aux utilisateurs de lecteurs d&#8217;écran de comprendre le rôle d&#8217;une zone pour mieux s&#8217;orienter dans le document.</p>
<p><img src="http://dev.opera.com/articles/view/introduction-to-wai-aria/pagestructure.gif" alt="Structure de la page" width="179" height="256" /></p>
<p>Figure 4 — Une page classique avec une bannière, une barre latérale et une zone de contenu principale.</p>
<p>ARIA définit les rôles de document landmarks (zones du document) suivants :</p>
<dl>
<dt><code>article</code></dt>
<dd>Contenu ayant du sens par lui-même, comme un article ou un commentaire de blog, un message sur un forum, etc.</dd>
<dt><code>banner</code></dt>
<dd>Contenu à propos du site, comme le titre de la page ou le logo.</dd>
<dt><code>complementary</code></dt>
<dd>Permet éventuellement de définir une partie du contenu principal, mais est plus approprié pour du contenu séparé : la météo sur un portail web par exemple.</dd>
<dt><code>contentinfo</code></dt>
<dd>Contenu dépendant d&#8217;un autre, comme des notes de bas de page, un copyright, un lien vers la déclaration de confidentialité, un lien vers les paramètres de l&#8217;application, etc.</dd>
<dt><code>main</code></dt>
<dd>Contenu directement lié ou englobant le contenu central du document.</dd>
<dt><code>navigation</code></dt>
<dd>Contient des liens pour naviguer dans ou en dehors du document.</dd>
<dt><code>search</code></dt>
<dd>Cette section contient un formulaire de recherche permettant de chercher sur le site.</dd>
</dl>
<p>Les exemples suivants utilisent les rôles banner, navigation et main pour définir la structure de la page visible sur la figure 4.</p>
<pre><code>&lt;div role="banner"&gt;
...
&lt;/div&gt;
&lt;div role="navigation"&gt;
...
&lt;/div&gt;
&lt;div role="main"&gt;
...
&lt;/div&gt;</code></pre>
<h2>États et propriétés d&#8217;ARIA</h2>
<p>Les <a href="http://www.w3.org/TR/wai-aria/#introstates">états (states) et propriétés (properties)</a> d&#8217;ARIA permettent de décrire des informations supplémentaires sur les widgets et de les mettre à la disposition des technologies d&#8217;assistance, afin d&#8217;aider l&#8217;utilisateur à comprendre comment intéragir avec le widget. L&#8217;état définit une configuration ou une information unique sur un objet. Par exemple, la propriété <code>aria-checked</code> possède trois valeurs pour définir ses états : <code>true</code>, <code>false</code> et <code>mixed</code>.</p>
<p>Dans l&#8217;exemple du bouton glissant vu un peu plus haut, nous avons inclus différentes propriétés que nous allons voir ci-dessous, aidant à décrire un widget à une technologie d&#8217;assistance.</p>
<dl>
<dt><code>aria-valuemin</code></dt>
<dd>Stocke la valeur minimale qu&#8217;un bouton glissant peut avoir.</dd>
<dt><code>aria-valuemax</code></dt>
<dd>Stocke la valeur maximale qu&#8217;il peut avoir.</dd>
<dt><code>aria-valuenow</code></dt>
<dd>Stocke la valeur actuelle.</dd>
<dt><code>aria-valuetext</code></dt>
<dd>Stocke du texte lisible permettant à l&#8217;utilisateur de comprendre le contexte. <code>"30 dollars"</code>, par exemple.</dd>
<dt><code>aria-labelledby</code></dt>
<dd>Stocke l&#8217;identifiant (attribut id) d&#8217;un élément contenant une description appropriée du widget.</dd>
</dl>
<p>Certaines propriétés peuvent être modifiées par programmation. Dans l&#8217;exemple suivant, les propriétés <code>arial-valuenow</code> et <code>arial-valuetext</code> de notre widget de bouton glissant sont mises à jour lorsque le bouton change de position :</p>
<pre><code>// Définit les valeurs des propriétés ARIA
// lorsque le bouton change de position
objThumb.setAttribute('aria-valuenow', iValue);
objThumb.setAttribute('aria-valuetext', iValue + ' %');</code></pre>
<p>Ajouter des rôles et attributs ARIA ne sera pas valide HTML 4.01 ou XHTML1.0, mais rassurez-vous, ARIA ne fait qu&#8217;ajouter des informations importantes à des spécifications écrites depuis un bon moment maintenant. Des travaux sont en cours pour <a href="http://www.w3.org/WAI/PF/adaptable/StatesAndProperties-20051106.html">définir une DTD pouvant être utilisée avec du XML modulaire</a>, comme XHTML1.1. La spécification ARIA fournit une <a href="http://www.w3.org/TR/wai-aria/#supported">liste complète des états et propriétés</a> permettant de définir des widgets accessibles.</p>
<h2>Les &laquo;&nbsp;Live Regions&nbsp;&raquo; (zones mises à jour)</h2>
<p>Les Live Regions permettent à certains éléments du document d&#8217;annoncer qu&#8217;ils ont été mis à jour, sans que l&#8217;utilisateur ne soit dérangé dans son activité. Cela signifie que les utilisateurs vont pouvoir être informés des mises à jour sans modifier leur position dans le contenu. Par exemple, une application de chat pourrait signaler une réponse de la personne avec qui l&#8217;utilisateur est en train de discuter, sans être déplacé en-dehors du champ permettant d&#8217;envoyer un nouveau message à la personne.</p>
<h3>aria-live</h3>
<p>Pour un utilisateur de lecteur d&#8217;écran, il est très difficile de comprendre ce qui a été mis à jour sur une page. ARIA propose la propriété <code>aria-live</code>, dont la valeur indique l&#8217;importance des mises à jour de la région. Voici les différents niveaux d&#8217;alerte pouvant être utilisés avec la propriété <code>aria-live</code> :</p>
<dl>
<dt><code>off</code></dt>
<dd>
<p>Il s&#8217;agit de la valeur par défaut, indiquant que la zone ne sera pas mise à jour.</p>
<pre><code>&lt;ul aria-live="off"&gt;</code></pre>
</dd>
<dt><code>polite</code></dt>
<dd>
<p>C&#8217;est une notification normale, le comportement généralement attendu d&#8217;une Live Region. La valeur polite indique qu&#8217;il n&#8217;est pas nécessaire d&#8217;y répondre tant que l&#8217;utilisateur n&#8217;a pas terminé ce qu&#8217;il est actuellement en train de faire.</p>
<pre><code>&lt;ul aria-live="polite"&gt;</code></pre>
</dd>
<dt><code>assertive</code></dt>
<dd>
<p>Ce niveau d&#8217;alerte est plus élevé que la normale, mais n&#8217;interrompt pas nécessairement l&#8217;utilisateur.</p>
<pre><code>&lt;ul aria-live="assertive"&gt;</code></pre>
</dd>
<dt><code>rude</code></dt>
<dd>
<p>Cette valeur est la plus élevée, et interrompt l&#8217;utilisateur pour lui notifier la mise à jour. Il peut s&#8217;en trouver désorienté, et peut empêcher l&#8217;utilisateur de reprendre la tâche qu&#8217;il effectuait. Elle ne devrait être utilisée qu&#8217;en cas d&#8217;absolue nécessité.</p>
<pre><code>&lt;ul aria-live="rude"&gt;</code></pre>
</dd>
</dl>
<p>Quelques autres propriétés peuvent être utilisées lorsqu&#8217;une Live Region est créée, en voici la liste.</p>
<h3>La propriété <code>aria-atomic</code></h3>
<p><code>aria-atomic</code> est une propriété optionnelle des Live Regions pouvant prendre comme valeur <code>true</code> ou <code>false</code> (par défaut si la propriété n&#8217;est pas définie).</p>
<p>Lorsque la zone est mis à jour, la propriété <code>aria-atomic</code> permet à la technologie d&#8217;assistance de savoir si elle doit décrire à l&#8217;utilisateur la zone entière ou seulement la partie ayant été mise à jour. Si cette propriété est définie à <code>true</code>, la technologie d&#8217;assistance devrait décrire complètement la zone. Si sa valeur est <code>false</code>, seule la partie mise à jour devrait être annoncée.</p>
<p>Dans l&#8217;exemple suivant, tous les éléments de la liste non-ordonnée seront annoncés à l&#8217;utilisateur, à moins qu&#8217;un de ces éléments ne surcharge la propriété <code>aria-atomic</code>.</p>
<pre><code>&lt;ul aria-atomic="true"
aria-live="polite"&gt;</code></pre>
<h3>La propriété <code>aria-busy</code></h3>
<p><code>aria-busy</code> est une propriété optionnelle des Live Regions pouvant prendre comme valeur <code>true</code> ou <code>false</code> (par défaut si la propriété n&#8217;est pas définie). Si plusieurs parties d&#8217;une Live Region ont besoin d&#8217;être chargées avant que la mise à jour ne soit annoncée à l&#8217;utilisateur, la propriété <code>aria-busy</code> peut être définie à <code>true</code> jusqu&#8217;à ce que la dernière partie soit chargée, puis à <code>false</code> lorsque la mise à jour est complètement terminée. Cette propriété empêche les technologies d&#8217;assistance d&#8217;annoncer un changement avant qu&#8217;une mise à jour ne soit complétée.</p>
<pre><code>&lt;ul aria-atomic="true"
aria-busy="true"
aria-live="polite"&gt;</code></pre>
<h3>La propriété <code>aria-channel</code></h3>
<p><code>aria-channel</code> est une propriété optionnelle des Live Regions pouvant prendre comme valeur <code>main</code> (par défaut si la propriété n&#8217;est pas définie) ou <code>notify</code>. Les canaux (channels) ont trait au matériel disponible sur le système de l&#8217;utilisateur, comme un synthétiseur vocal ou une <a href="http://fr.wikipedia.org/wiki/Plage_braille">plage Braille</a> (ndt: lien ajouté). Si un seul canal est disponible, <code>main</code> et <code>notify</code> utiliseront tous deux le même canal. Le canal <code>notify</code> a une priorité plus élevée que le canal <code>main</code>.</p>
<pre><code>&lt;ul aria-atomic="true"
aria-channel="notify"
aria-live="polite"&gt;</code></pre>
<h3>La propriété <code>aria-relevant</code></h3>
<p><code>aria-revelant</code> est une propriété optionnelle des Live Regions indiquant quels types de changements sont considérés comme significatifs à l&#8217;intérieur d&#8217;une zone (ajout d&#8217;un élément, suppression d&#8217;un élément et modification de texte). Cette propriété accepte une ou plusieurs des valeurs suivantes, séparées par des espaces :</p>
<dl>
<dt><code>additions</code></dt>
<dd>Des noeuds sont ajoutés au DOM à l&#8217;intérieur de la zone.</dd>
<dt><code>removals</code></dt>
<dd>Des noeuds sont supprimés du DOM à l&#8217;intérieur de la zone.</dd>
<dt><code>text</code></dt>
<dd>Du texte est ajouté ou supprimé du DOM (modification de texte).</dd>
<dt><code>all</code></dt>
<dd>Toutes les valeurs définies précédemment (additions, removals, text) s&#8217;appliquent à la zone.</dd>
</dl>
<p>En l&#8217;absence de la propriété <code>aria-revelant</code>, le comportement par défaut considère que les modifications significatives sont les modifications de texte et les ajouts de noeuds (<code>aria-revelant="text additions"</code>). L&#8217;exemple suivant n&#8217;annoncera des changements que si des noeuds sont ajoutés à la région. Si des modifications de texte surviennent ou que des noeuds sont supprimés, l&#8217;utilisateur n&#8217;en sera pas averti.</p>
<pre><code>&lt;ul aria-relevant="additions"
aria-atomic="true"
aria-live="polite"&gt;</code></pre>
<h2>Quand pourrons nous utiliser ARIA ?</h2>
<p>L&#8217;utilisation d&#8217;ARIA ne présente aucun inconvénient, vous pouvez l&#8217;utiliser dès à présent. Les quatre principaux navigateurs du marché ont commencé ou prévoient de supporter ARIA. Opera 9.5 et Firefox 1.5+ disposent déjà d&#8217;un support ARIA. Internet Explorer 8 beta supporte ARIA, et l&#8217;équipe de développement de Webkit, le moteur libre utilisé par Safari (ndt: et Google Chrome), a annoncé que l&#8217;intégration d&#8217;ARIA avait commencé.</p>
<p>ARIA est également en train d&#8217;être largement adopté par les technologies d&#8217;assistance. JAWS 7.1+, Window-Eyes 5.5+, NVDA, Zoomtext 9+, et d&#8217;autres offrent déjà un support basique d&#8217;ARIA, et ce n&#8217;est qu&#8217;un début.</p>
<h2>Soyez parmi les premiers à l&#8217;utiliser</h2>
<p>Puisque nous venons de voir que l&#8217;utilisation d&#8217;ARIA ne provoque aucun effet de bord et que le support est déjà présent, il n&#8217;y a rien à perdre à l&#8217;utiliser dès maintenant, et beaucoup à gagner. Même si votre site web est le plus simple du monde, vous pouvez y inclure des document landmarks (rôles des sections) pour aider l&#8217;utilisateur à mieux naviguer et à s&#8217;orienter à l&#8217;intérieur du contenu.</p>
<h3>Utilisez les rôles de section (document landmark roles)</h3>
<p>Sur mon site web personnel, j&#8217;ai utilisé les rôles de zones <code>main</code>, <code>navigation</code>, <code>search</code>, et <code>secondary</code>. Prenons la structure suivante.</p>
<pre><code>&lt;div id="ads"&gt;
...
&lt;/div&gt;
&lt;div id="nav"&gt;
&lt;form id="searchform" ...&gt;
...
&lt;/form&gt;
...
&lt;/div&gt;
&lt;div id="content"&gt;
...
&lt;/div&gt;</code></pre>
<p>Nous pourrions écrire l&#8217;attribut <code>role</code> pour nos document landmarks directement dans le code HTML :</p>
<pre><code>&lt;div id="ads" role="banner"&gt;
...
&lt;/div&gt;
&lt;div id="nav" role="navigation"&gt;
&lt;form id="searchform" role="search" ...&gt;
...
&lt;/form&gt;
...
&lt;/div&gt;
&lt;div id="content" role="main"&gt;
...
&lt;/div&gt;</code></pre>
<p>Alternativement, puisque les pages sont structurées de manière à pouvoir être stylées avec CSS, la page a des chances d&#8217;être structurée à l&#8217;aide d&#8217;attributs id pouvant être passés à une fonction Javascript. L&#8217;exemple suivant est une fonction Javascript simple acceptant l&#8217;attribut <code>id</code> d&#8217;un élément et une valeur de <code>role</code>, lui permettant de définir l&#8217;attribut <code>role</code> de l&#8217;élément correspondant.</p>
<pre><code>function addARIARole(strID, strRole)
{
// Find the element to add a role property to
var objElement = document.getElementById(strID);

if (objElement)
{
// Add the role property to the element
objElement.setAttribute('role', strRole);
}
}</code></pre>
<p>La fonction peut alors être appelée en passant en paramètre l&#8217;attribut <code>id</code> de la section et son rôle dans le document. Considérez la structure de document ci-dessous : nous pourrions utiliser cette fonction Javascript pour insérer un attribut <code>role</code>, plutôt que de l&#8217;écrire dans le code HTML.</p>
<pre><code>function setupARIA()
{
// Add ARIA roles to the document
addARIARole('content', 'main');
addARIARole('nav', 'navigation');
addARIARole('searchform', 'search');
addARIARole('ads', 'banner');
}

window.onload = setupARIA;</code></pre>
<h3>Indiquer les champs requis</h3>
<p>Si certains de vos formulaires contiennent des champs requis, vous pouvez utiliser la propriété <code>aria-required</code>. Cette propriété indique qu&#8217;une entrée utilisateur est requise pour envoyer le formulaire. L&#8217;exemple suivant ajoute la propriété <code>aria-required</code> à un élément <code>input</code> classique.</p>
<pre><code>&lt;label for="contactname"&gt;Name&lt;/label&gt;
&lt;input type="text"
id="contactname"
name="contactname"
size="30"
aria-required="true"&gt;</code></pre>
<p>Le système de blog WordPress a déjà commencé à utiliser l&#8217;attribut <code>aria-required</code> pour les champs requis du formulaire d&#8217;envoi de commentaire.</p>
<h3>Ajouter d&#8217;autres propriétés pertinentes</h3>
<p>Beaucoup de propriétés ARIA peuvent être utilisées sur des sites web très simples, comme <code>aria-labelledby</code> et <code>aria-describedby</code>. La propriété <code>aria-labelledby</code> pointe sur un ou plusieurs éléments considérés comme le libellé de l&#8217;élément, tandis que l&#8217;attribut <code>aria-describedby</code> pointe sur un ou plusieurs éléments considérés comme la description de l&#8217;élément.</p>
<pre><code>&lt;h2 id="limg"&gt;Paragliding&lt;/h2&gt;
&lt;p id="dimg"&gt;
A long description of our paragliding trip ...
&lt;/p&gt;

&lt;div&gt;
&lt;img src="takeoff.png"
alt="Getting ready to take off"
aria-labelledby="limg"
aria-describedby="dimg"&gt;
&lt;/div&gt;</code></pre>
<h3>Priorité des attributs HTML</h3>
<p>Les attributs ARIA ont la priorité sur le code HTML de base. C&#8217;est à dire que si <code>aria-labelledby</code> est utilisé parallèlement à <code>&lt;label for=""&gt;</code>, seul l&#8217;attribut <code>aria-labelledby</code> sera pris en compte. L&#8217;élément <code>label</code> est toujours encouragé pour les anciens navigateurs ne supportant pas ARIA. Une technique simple pour éviter les conflits est d&#8217;utiliser l&#8217;attribut <code>aria-labelledby</code> pour faire référence à l&#8217;élément<br />
<code>label</code>, ce qui permet d&#8217;être sûr que le libellé est lisible, quel que soit le support d&#8217;ARIA.</p>
<pre><code>&lt;label id="lblef" for="effectiveness"&gt;Effectiveness&lt;/label&gt;

&lt;input type="image"
role="slider"
id="effectiveness"
aria-labelledby="lblef"
...&gt;</code></pre>
<p>Parcourez la <a href="http://www.w3.org/TR/wai-aria/#supported">liste complète des états et propriétés</a> pour en apprendre plus sur la manière dont ARIA peut vous aider à rendre votre contenu plus accessible.</p>
<h2>Ensemble, maintenant</h2>
<p>HTML n&#8217;a pas été conçu dans le but de créer des applications web, mais les développeurs les ont créées en dessinant leurs propres widgets, et en leur ajoutant des comportements avec Javascript. Le problème est que le rôle, l&#8217;état et les propriétés des widgets et du contenu mis à jour sur ces pages n&#8217;est pas correctement transmis aux technologies d&#8217;assistance. La spécification ARIA résoud ce problème en permettant aux développeurs de décrire précisément leurs éléments d&#8217;interface, leur structure de document, et les zones de la page qui seront modifiées.<br />
Que vous développiez une application web complète avec de nombreux wigets et mises à jour dynamiques, ou le plus simple des sites web, vous pouvez commencer à utiliser ARIA dès maintenant pour vos utilisateurs handicapés.</p>
<h2>Pour en savoir plus</h2>
<ul>
<li><a href="http://www.w3.org/TR/wai-aria-practices/">Bonnes pratiques WAI-ARIA</a></li>
<li><a href="http://www.marcozehe.de/2008/02/29/easy-aria-tip-1-using-aria-required/">Utiliser <code>aria-required</code></a></li>
<li><a href="http://www.marcozehe.de/2008/03/23/easy-aria-tip-2-aria-labelledby-and-aria-describedby/">Utiliser <code>aria-labelledby</code> et <code>aria-describedby</code></a></li>
<li><a href="http://www.marcozehe.de/2008/07/16/easy-aria-tip-3-aria-invalid-and-role-alert/">Utiliser <code>aria-invalid</code> et <code>role</code> <code>alert</code></a></li>
<li><a href="http://www.paciellogroup.com/blog/?p=53">Exemple de case à cocher à trois états<br />
</a></li>
<li><a href="http://www.paciellogroup.com/blog/?p=68">Un exemple de bouton glissant (slider) avec ARIA</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/12/09/introduction-a-wai-aria-traduction/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Accessibilité VS référencement : quelles méthodes pour (ré-)concilier les deux ?</title>
		<link>http://www.lesintegristes.net/2008/11/27/accessibilite-vs-referencement-quelles-methodes-pour-re-concilier-les-deux/</link>
		<comments>http://www.lesintegristes.net/2008/11/27/accessibilite-vs-referencement-quelles-methodes-pour-re-concilier-les-deux/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 14:40:21 +0000</pubDate>
		<dc:creator>Eric Le Bihan</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Référencement]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/?p=357</guid>
		<description><![CDATA[Après avoir lu sur de nombreux sites traitant de la question du référencement des pages web par les moteurs de recherches que le javascript était néfaste au référencement dans la mesure où les robots ne peuvent lire le contenu pertinent qui serait généré par javascript, ce langage serait-il devenu l’arme ultime des référenceurs, dans une utilisation à contrario ?
Alors que les intégrateurs, développeurs, webmasters et au sens le plus large, les créateurs de sites web échangent sur la meilleure façon d’utiliser javascript pour maintenir un site accessible, les professionnels du référencement n’hésitent pas à conseiller à leurs clients de&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>Après avoir lu sur de nombreux sites traitant de la question du référencement des pages web par les moteurs de recherches que le javascript était néfaste au référencement dans la mesure où les robots ne peuvent lire le contenu pertinent qui serait généré par javascript, ce langage serait-il devenu l’arme ultime des référenceurs, dans une utilisation à contrario ?</p>
<p>Alors que les intégrateurs, développeurs, webmasters et au sens le plus large, les créateurs de sites web échangent sur la meilleure façon d’utiliser javascript pour maintenir un site accessible, les professionnels du référencement n’hésitent pas à conseiller à leurs clients de <em>faire des liens en javascript</em> ou à générer des parties de leur code html via javascript de manière à ne pas référencer certaines pages ou certaines parties de leur contenu dans le but de favoriser des pages au profit d&#8217;autres. Les robots n’étant pas  à l’heure actuelle en mesure de comprendre et donc d’interpréter le javascript, les liens JS ne seront pas suivis et le contenu généré ne sera pas pris en compte. J&#8217;ai également lu dernièrement que les robots seraient (je mets cette information au conditionnel) en mesure de décrypter les url dans le code javascript et donc de suivre ces liens comme des liens html, ce qui oblige actuellement les référenceurs à adopter des méthodes de cryptages &#8211; dans la limite de ce qu&#8217;il est possible de faire en javascript &#8211; pour leurs url !</p>
<p>Cette pratique loin d’être confidentielle se répand comme une traînée de poudre sur les sites de e-commerce français où les liens <code class="prettyprint">&lt;a href="link"&gt;</code> sont remplacés par des  <code class="prettyprint">&lt;span onclick="fonction()"&gt;</code>. (L’exemple le plus flagrant en est donné sur la page d&#8217;accueil du site de vente en ligne <em>rueducommerce.fr</em> sur laquelle pratiquement aucun lien de type <code class="prettyprint">&lt;a href="link"&gt;</code> n’est présent.)</p>
<p>Pour bien comprendre ce que ça implique, il faut d’une part rappeler que cette pratique va totalement à l’encontre des règles d’accessibilité les plus élémentaires :</p>
<p>En effet toute personne ayant javascript désactivé pour une raison ou pour une autre ne pourra pas afficher la page liée. Les personnes ayant javascript activé ne pourront pas utiliser le clic milieu de leur souris ou l’option <em>ouvrir un nouvel onglet</em> de leur menu contextuel. Ce procédé restreint donc les possibilités de l’utilisateur qu’il ait ou pas javascript activé dans son navigateur. Il est important de rappeler que la conception de pages avec le langage html répond à des normes : <em>les standards du web</em>, dont les recommandations sont rédigés par le W3C, organisme qui supervise le développement des standards du web, et pour que ces pages puissent fonctionner de façon satisfaisante dans les principaux navigateurs du marché, ces recommandations ou règles doivent être suivies. Il est également important de rappeler que de nombreuses applications et extensions, notamment celles de Firefox sont basées sur ce socle commun qu&#8217;il est primordial de respecter, faute de quoi l&#8217;utilisateur s&#8217;en trouve obligatoirement lésé.</p>
<p>Lisons ce qu’il est dit dans la documentation du groupe <abbr title="Web Accessibility Initiative">WAI</abbr> du W3C, référence majeure pour l’accessibilité des sites web :</p>
<p><strong><abbr title="Web Content Accessibility Guideline">WCAG</abbr> 1.0  (version par lagrange.net)</strong></p>
<blockquote cite="http://www.la-grange.net/w3c/wcag1/wai-pageauth.html#gl-new-technologies"><p>Guideline 6. S’assurer que les pages qui contiennent de nouvelles technologies se transforment de façon élégante.</p>
<p>6.3 S&#8217;assurer que les pages soient visibles lorsque les scripts, les applets ou autres artefacts programmables sont désactivés ou non supportés. Lorsque ce n&#8217;est pas possible, fournissez une information équivalente sur une page alternative. [Priorité 1]<br />
Par exemple, assurez vous que les liens qui activent les scripts fonctionnent même lorsque ces derniers sont désactivés ou non supportés (par ex. Il ne faut pas utiliser &laquo;&nbsp;javascript:&nbsp;&raquo; comme cible des liens).</p></blockquote>
<p><strong>W3C : Techniques pour les règles d&#8217;accessibilité du contenu Web 1.0 (version par lagrange.net)</strong></p>
<blockquote cite="http://www.la-grange.net/w3c/WAI-WEBCONTENT-TECHS/#scripts"><p>4.12.1 Scripts de transformation</p>
<p>Les développeurs de contenu doivent s&#8217;assurer que les pages sont accessibles avec les scripts désactivés ou dans des navigateurs qui ne supportent pas les scripts.</p>
<p>* Eviter la création de contenu à la volée par le client. Si un navigateur d&#8217;utilisateur ne gère pas les scripts, aucun contenu ne sera généré ou affiché. Cependant, Ceci est différent lorsqu&#8217;il s&#8217;agit d&#8217;afficher ou de cacher un contenu déjà existant en utilisant une combinaison de feuilles de style et de scripting ; S&#8217;il n&#8217;y a pas de scripts, le contenu sera tout de même affiché. Cela ne s&#8217;applique pas aux pages générées à la volée par le serveur et distribuées au client.<br />
* Eviter la création de liens qui utilisent &laquo;&nbsp;javascript&nbsp;&raquo; pour l&#8217;URI. Si un utilisateur n&#8217;utilise pas les scripts, il sera alors incapable d&#8217;utiliser le lien car le navigateur ne pourra créé le lien.</p></blockquote>
<p>Que recommande Google à ce sujet ?</p>
<p><strong>Google (Centre d’aide Webmasters/propriétaires de sites web)</strong></p>
<blockquote><p>Si votre site contient du texte ou des liens cachés, il risque d&#8217;être considéré comme peu fiable, car il présente aux moteurs de recherche un contenu différent de celui destiné aux visiteurs […]</p></blockquote>
<blockquote cite=" http://www.google.com/support/webmasters/bin/answer.py?answer=66353&amp;hl=fr"><p>[…] Si votre site contient du texte et des liens cachés conçus pour induire les moteurs de rechercher en erreur, votre site peut être retiré de l&#8217;index Google et ne plus être affiché dans les pages de résultats de recherche. Lorsque vous évaluez votre site afin de vérifier s&#8217;il contient du texte ou des liens cachés, recherchez tout ce qui n&#8217;est pas facilement affichable par les visiteurs. Existe-t-il du texte ou des liens accessibles uniquement aux moteurs de recherche et non aux visiteurs ? […]</p></blockquote>
<blockquote cite="http://www.google.com/support/webmasters/bin/answer.py?answer=66355&amp;ctx=sibling"><p>[…] Lorsque Googlebot indexe une page contenant un script JavaScript, il ne peut pas suivre ou indexer les liens cachés dans le script lui-même. L&#8217;utilisation d&#8217;un script JavaScript est une pratique Web totalement légitime. Toutefois, son utilisation dans le but de tromper les moteurs de recherche ne l&#8217;est pas. […]</p></blockquote>
<p>Pour résumer, il n’est pas interdit d’utiliser des liens javascript dans la mesure où la page présentée aux moteurs de recherche est la même que celle présentée aux utilisateurs. Ce qui n’est pas le cas dans la mesure où les robots ne pouvant lire javascript considèrent que les liens n’existent pas et ne référencent pas la page liée…</p>
<p>Devons-nous considérer que puisque le nombre des visiteurs sans javascript est faible, il n’est plus utile de se préoccuper de faire du javascript non-intrusif ? Comment se maintenir dans un secteur où toutes les méthodes même les plus contestables sont utilisées pour maintenir un taux de visites important sur son site ? Est-il possible de rester concurrentiel en utilisant les bonnes pratiques et en maintenant un site accessible, sans pour autant négliger la partie référencement ?</p>
<p>Pour continuer la réflexion quelques liens utiles :</p>
<ul>
<li><a href="http://www.google.com/support/webmasters/bin/answer.py?hl=fr&amp;answer=35769">Support Google : Conseils aux webmasters</a></li>
<li><a href="http://www.pompage.net/pompe/accesibilitemoteursderecherche/">Vous aimez l’accessibilité ? Les moteurs de recherche aussi !</a></li>
<li><a href="http://www.wizishop.com/blog/les-dossiers-du-e-commerce/accessibilite-et-e-commerce-interets.html">Accessibilité et e-commerce : Pourquoi rendre son site accessible ?</a></li>
<li><a href="http://webyboom.canalblog.com/archives/2008/08/28/10378459.html">Target condamné pour l&#8217;inaccessibilité de son site aux non-voyants</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/11/27/accessibilite-vs-referencement-quelles-methodes-pour-re-concilier-les-deux/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Les formulaires d&#8217;inscription doivent disparaître (traduction)</title>
		<link>http://www.lesintegristes.net/2008/03/25/les-formulaires-d-inscription-doivent-disparaitre-traduction/</link>
		<comments>http://www.lesintegristes.net/2008/03/25/les-formulaires-d-inscription-doivent-disparaitre-traduction/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 09:46:51 +0000</pubDate>
		<dc:creator>Pierre Bertet</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[Ergonomie]]></category>
		<category><![CDATA[Traduction]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/2008/03/25/traduction-les-formulaires-denregistrement-devraient-disparaitre-sign-up-forms-must-die/</guid>
		<description><![CDATA[Voici la traduction d&#8217;un article publié sur A List Apart par Luke Wroblewski, dont le titre original est &#171; Sign Up Forms Must Die &#187;.
Il y est question de différentes solutions regroupées sous l&#8217;appellation &#171;&#160;engagement progressif&#160;&#187;, permettant à vos visiteurs de comprendre et d&#8217;utiliser votre service avant (ou pendant) l&#8217;inscription, en évitant autant que possible le classique et indigeste formulaire d&#8217;inscription.
Les formulaires d&#8217;inscription doivent disparaître
Nous sommes heureux de vous présenter un extrait du chapitre 13 du prochain livre de Luke Wroblewski : Web Form Design: Filling in the Blanks (Rosenfeld Media, 2008). — Ed.
Je vais simplement&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>Voici la traduction d&#8217;un article publié sur <a href="http://www.alistapart.com/">A List Apart</a> par <a href="http://www.lukew.com/">Luke Wroblewski</a>, dont le titre original est &laquo; <a href="http://www.alistapart.com/articles/signupforms">Sign Up Forms Must Die</a> &raquo;.</p>
<p>Il y est question de différentes solutions regroupées sous l&#8217;appellation &laquo;&nbsp;engagement progressif&nbsp;&raquo;, permettant à vos visiteurs de comprendre et d&#8217;utiliser votre service avant (ou pendant) l&#8217;inscription, en évitant autant que possible le classique et indigeste formulaire d&#8217;inscription.</p>
<h3>Les formulaires d&#8217;inscription doivent disparaître</h3>
<p><em>Nous sommes heureux de vous présenter un extrait du chapitre 13 du prochain livre de Luke Wroblewski : <a href="http://www.rosenfeldmedia.com/books/webforms/"><cite>Web Form Design: Filling in the Blanks</cite></a> (Rosenfeld Media, 2008). — Ed.</em></p>
<p>Je vais simplement dire ceci : les formulaires d&#8217;inscription doivent mourir. Dans l&#8217;introduction de ce livre, je décris le processus de découverte ou de recommandation d&#8217;un service web. Vous arrivez sur le site, empressé d&#8217;essayer ce nouveau service, et que trouvez-vous en guise d&#8217;accueil ? Un formulaire d&#8217;inscription.</p>
<p>Nous pouvons faire mieux. En fait, je pense que l&#8217;on peut amener des personnes à utiliser un service web en leur expliquant comment il fonctionne, et pourquoi ils devraient l&#8217;utiliser. Je pense également que nous pouvons y parvenir sans leur faire remplir un formulaire dès la première étape.</p>
<p>Mais avant d&#8217;aborder le potentiel de l&#8217;engagement progressif (la route vers un enregistrement &laquo;&nbsp;imperceptible&nbsp;&raquo;), regardons comment fonctionne le processus d&#8217;engagement classique pour un service en ligne. 2007 fut une grande année pour la vidéo en ligne. Nous pouvons supposer que nombre de personnes se connectent aujourd&#8217;hui pour publier une de leurs vidéos. Peut-être ont-ils entendu que <a href="http://video.google.com/">Google Video</a> était un bon service pour y parvenir. Dès l&#8217;arrivée sur le site, ils trouvent un lien pour partager leurs vidéos, et que se passe-t-il ensuite ? Le formulaire illustré sur la figure 13.1. apparaît.</p>
<p><img src="http://www.lesintegristes.net/wp-content/uploads/2008/03/13-1.gif" alt="Les utilisateurs potentiels doivent remplir un formulaire d'enregistrement avant de commencer à utiliser Google Video." /><br />
Figure 13.1<br />
Un formulaire d&#8217;enregistrement accueille les nouveaux clients de Google Vidéo.</p>
<p>Vous devez leur donner votre adresse email, choisir un mot de passe, indiquer votre nom, votre adresse, déchiffrer cet étrange mot, accepter les conditions d&#8217;utilisation et enfin, vous verrez ce qu&#8217;il y a après ce formulaire.</p>
<p>Contrastons maintenant cette approche avec celle d&#8217;un autre service vidéo en ligne : <a href="http://jumpcut.com/">Jumpcut</a>. Sur la page d&#8217;accueil, les actions principales sont &laquo;&nbsp;Make a movie&nbsp;&raquo; (Créer un film) et &laquo;&nbsp;Try a demo&nbsp;&raquo; (Démonstration), comme illustré sur la figure 13.2 (Ndt : la page a changé : un bouton &laquo;&nbsp;Register&nbsp;&raquo; -Créer un compte-, dirigeant sur l&#8217;identification ou la création d&#8217;un compte Yahoo, a pris place au centre de la page&#8230;). Jumpcut vous explique immédiatement comment fonctionne leur service, et en quoi il peut vous intéresser. Allons-y.</p>
<p>Sélectionner &laquo;&nbsp;Make a movie&nbsp;&raquo; (Créer un film) affichera un simple champ permettant saisir le titre de votre vidéo, et quelques options que vous pouvez utiliser pour envoyer les différents fichiers utilisés pour la création de votre vidéo. Choisir &laquo;&nbsp;Upload&nbsp;&raquo; (Téléchargement) dans cette liste vous permettra d&#8217;ajouter des images, du son et de la vidéo depuis votre ordinateur. Ceci fait, vous êtes dirigé vers l&#8217;outil de création vidéo en ligne de Jumpcut. Vous pouvez modifier votre vidéo, ajouter des styles, coordonner vos sons, vidéos, images, etc.</p>
<p><img src="http://www.lesintegristes.net/wp-content/uploads/2008/03/13-2_jumpcut_home.jpg" alt="Jumpcut encourage les utilisateurs à créer un film dans leur navigateur." /><br />
<img src="http://www.lesintegristes.net/wp-content/uploads/2008/03/13-2_jumpcut_step3.jpg" alt="Jumpcut, étape 3 : Choisir un style pour votre film." /><br />
Figure 13.2<br />
Le processus d&#8217;ajout de vidéo à Jumpcut vous présente le service que propose le site : l&#8217;édition vidéo en ligne.</p>
<p>Jusqu&#8217;à présent, aucun formulaire. Ce n&#8217;est qu&#8217;au moment où vous voudrez publier ou partager votre film que Jumpcut vous demandera votre nom et votre email, ainsi vous et les autres utilisateurs pourrez accéder au film que vous venez de créer. A travers ce processus, vous avez vu ce que permettait de faire Jumpcut, et cela sans avoir à passer par un formulaire d&#8217;inscription. Il s&#8217;agit d&#8217;un engagement progressif.</p>
<p>Voyons un autre exemple. <a href="http://www.geni.com/">Geni</a> est un service web permettant à quiconque de créer un arbre généalogique et de le partager avec ses amis ou sa famille. Quelle est la première chose que les clients potentiels doivent faire en arrivant sur Geni ? Remplir un formulaire d&#8217;inscription ? Non, ils créent un arbre généalogique. Après tout, c&#8217;est ce pourquoi Geni est fait.</p>
<p>La page d&#8217;accueil de Geni (Figure 13.3) indique clairement ce que propose le site. On commence par créer une famille en entrant son nom et son adresse email. Ensuite, vous pouvez entrer vos parents, leurs frères et sœurs ou les vôtres, et en quelques instants, vous obtenez un petit arbre généalogique. Pendant ce temps, Geni vous a envoyé un email contenant votre nom d&#8217;utilisateur et votre mot de passe : vous pourrez ainsi revenir sur votre arbre généalogique quand vous le désirerez.</p>
<p><img src="http://www.lesintegristes.net/wp-content/uploads/2008/03/13-3_geni1.gif" alt="Page d'accueil de Geni : créer un arbre généalogique." /><br />
<img src="http://www.lesintegristes.net/wp-content/uploads/2008/03/13-3_geni2.gif" alt="Geni: Ajouter vos parents à votre arbre généalogique." /><br />
Figure 13.3<br />
La création d&#8217;un arbre généalogique sur Geni ne contient pas de formulaire d&#8217;enregistrement explicite et informe immédiatement les utilisateurs.</p>
<p>Encore une fois, au travers du processus d&#8217;engagement progressif, vous avez appris ce que proposait un service web, et ceci sans inscription explicite vous obligeant à fournir une certaine quantité d&#8217;informations. Dans le cas de Geni, l&#8217;approche de l&#8217;engagement progressif leur a donné cinq millions d&#8217;utilisateurs en cinq mois. Pas mal.</p>
<p>Un autre exemple d&#8217;engagement progressif nous est proposé par <a href="http://www.tripit.com/">TripIt</a> : ce service web propose aux utilisateurs d&#8217;assembler un itinéraire de voyage complet, comprenant la météo et les feuilles de route, en utilisant uniquement leurs emails de confirmations de vols, d&#8217;hôtels et de location de voiture.<br />
La première étape pour commencer à utiliser ce service est d&#8217;envoyer à TripIt un email de confirmation d&#8217;un voyage passé ou à venir. TripIt vous renverra un email vous permettant d&#8217;accéder à un itinéraire de voyage personnel créé automatiquement (Figure 13.4).</p>
<p><img src="http://www.lesintegristes.net/wp-content/uploads/2008/03/13-4_tripit1.gif" alt="TripIt: La page d'accueil vous explique rapidement comment fonctionne le service et vous encourage à l'utiliser." /><br />
<img src="http://www.lesintegristes.net/wp-content/uploads/2008/03/13-4_tripit2.gif" alt="TripIt: Commencez par envoyer à TripIt votre projet de voyage." /><br />
Figure 13.4<br />
Pour commencer à utiliser TripIt, il faut lui renvoyer ses emails de confirmation, et pas s&#8217;inscrire en utilisant un formulaire.</p>
<p>Encore une fois, la première étape pour utiliser TripIt n&#8217;est pas de s&#8217;inscrire en passant par un formulaire. A la place, vous découvrez le service tout en l&#8217;utilisant. TripIt récupère votre nom et votre email à l&#8217;aide des emails que vous renvoyez au service. Ensuite, si vous voulez modifier votre nom, votre email, ou créer un mot de passe pour accéder au site, vous pouvez le faire. Il y a de grandes chances pour que vous le fassiez, maintenant que vous savez en quoi consiste ce service et ce qu&#8217;il peut vous apporter.</p>
<p>En étudiant si l&#8217;engagement progressif peut être utilisé sur votre service web, il est important de penser à la façon dont une série d&#8217;interactions pourrait expliquer à vos clients potentiels comment ils peuvent utiliser le service et ce qu&#8217;il peut leur apporter. L&#8217;engagement progressif ne consiste pas simplement à répartir les champs de votre formulaire d&#8217;inscription en plusieurs pages séparées.</p>
<p>Je salue volontiers la tentative de <a href="http://www.fidelity.com/myplan">Fidelity’s myplan</a> de simplifier leur formulaire de planification de placements financiers (Figure 13.5), mais je ne suis pas sûr que séparer leurs différents champs de saisies en plusieurs pages sous forme de curseurs glissants soit le meilleur moyen d&#8217;atteindre leur but, qui est d&#8217;expliquer aux visiteurs ce que Fidelity peut faire pour eux.</p>
<p><img src="http://www.lesintegristes.net/wp-content/uploads/2008/03/13-5_forms_fidelity_wizard1.gif" alt="Fidelity: Quel âge avez-vous ?" /><br />
<img src="http://www.lesintegristes.net/wp-content/uploads/2008/03/13-5_forms_fidelity_wizard2.gif" alt="Fidelity: Quel est votre style d'investissement ? (l'utilisateur positionne le curseur sur la barre indiquant le niveau de sécurité des placements.)" /><br />
Figure 13.5<br />
Le formulaire de Fidelity’s myplan divise une série de champs de saisie en plusieurs curseurs glissants, présentés l&#8217;un après l&#8217;autre.</p>
<h4><strong>Bonnes pratiques</strong></h4>
<ul>
<li>En étudiant la première expérience d&#8217;un utilisateur sur votre site web, pensez à la manière dont vous pouvez éviter l&#8217;utilisation d&#8217;un formulaire d&#8217;inscription en faveur d&#8217;un engagement progressif.</li>
<li>Si vous optez pour une solution d&#8217;engagement progressif, assurez-vous qu&#8217;elle apporte à vos clients potentiels des informations sur le fonctionnement de votre service, et ce qu&#8217;il peut leur apporter.</li>
<li>Si vous choisissez d&#8217;auto-générer les comptes de vos clients potentiels, assurez-vous qu&#8217;ils disposent d&#8217;un moyen clair d&#8217;accéder à leur compte. Il y a des chances pour que les utilisateurs ignorent ou ne voient pas votre email confirmation indiquant la création de leur compte, et qu&#8217;ils ne sachent pas exactement s&#8217;ils ont un compte ou pas.</li>
<li>Evitez les solutions d&#8217;engagement progressif qui répartissent simplement les différents champs de votre formulaire d&#8217;inscription sur plusieurs pages. Il y a de fortes chances que cela en réduise l&#8217;efficacité, sans pour autant l&#8217;alléger.</li>
</ul>
<p>Translated with the permission of <a href="http://www.alistapart.com/">A List Apart Magazine</a> and the author[s].”</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/03/25/les-formulaires-d-inscription-doivent-disparaitre-traduction/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>La vie des intégrateurs Chapitre I : Les intégrateurs sont-ils des développeurs ou des webdesigners&#160;?</title>
		<link>http://www.lesintegristes.net/2008/03/02/la-vie-des-integrateurs-chapitre-i-les-integrateurs-sont-ils-des-developpeurs-ou-des-webdesigner/</link>
		<comments>http://www.lesintegristes.net/2008/03/02/la-vie-des-integrateurs-chapitre-i-les-integrateurs-sont-ils-des-developpeurs-ou-des-webdesigner/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 16:26:30 +0000</pubDate>
		<dc:creator>Eric Le Bihan</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Ergonomie]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Intégration]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Référencement]]></category>
		<category><![CDATA[Sémantique]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/2008/03/02/la-vie-des-integrateurs-chapitre-i-les-integrateurs-sont-ils-des-developpeurs-ou-des-webdesigner/</guid>
		<description><![CDATA[La question peut paraître incongrue, mais bien que ce métier commence à être reconnu (qui d&#8217;autre connait aussi bien les subtilités d&#8217;interprétation de navigateurs comme IE6 qui malgré son grand age continue à être utilisé par 40% des internautes français ?), ses représentants sont souvent ballotés d&#8217;un service à l&#8217;autre, développeurs frustrés pour certains, webdesigners en panne de créativité pour d&#8217;autres, il est difficile pour ces deux corps de métiers que sont le webdesign graphique et le développement informatique, de croire que ce métier auquel aucune école ne forme soit un choix délibéré. Pourtant quel autre métier prépare autant aux&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>La question peut paraître incongrue, mais bien que ce métier commence à être reconnu (qui d&#8217;autre connait aussi bien les subtilités d&#8217;interprétation de navigateurs comme IE6 qui malgré son grand age continue à être utilisé par 40% des internautes français ?), ses représentants sont souvent ballotés d&#8217;un service à l&#8217;autre, développeurs frustrés pour certains, webdesigners en panne de créativité pour d&#8217;autres, il est difficile pour ces deux corps de métiers que sont le webdesign graphique et le développement informatique, de croire que ce métier auquel aucune école ne forme soit un choix délibéré. Pourtant quel autre métier prépare autant aux métiers de chef de projets, référenceur, ergonome ou expert es-accessibilité ? Aucun !</p>
<p>En effet loin d&#8217;être de simples exécutants, les intégrateurs sont souvent détenteurs d&#8217;un savoir et de compétences polyvalentes, car il faut bien l&#8217;avouer, ceux qui auparavant étaient regroupés sous le vocable fourre-tout de <em>webmaster</em> sont souvent des passionnés du web pour ne pas dire des accros ne comptant pas leurs heures de netsurfing afin de saisir toutes les subtilités qu&#8217;il est nécessaire de posséder pour arriver à concevoir le site parfait&#8230;</p>
<p>Prenez un intégrateur, immergez-le dans une entreprise pourvu d&#8217;un service webdesign et d&#8217;un service informatique, hésitez sur l&#8217;endroit où le placer  Informatique ? non webdesign ! non informatique ! non webdesign ! non informatique ! Bref ! Demandez lui de recruter quelques-uns de ces pairs (lui seul est en mesure de les reconnaitre). Voilà votre pôle intégration constitué.</p>
<p>Maintenant il s&#8217;agit de faire sa place&#8230; XHTML strict, accessibilité, ergonomie, javascript non intrusif, il vous sera difficile au départ de comprendre son langage. Il manie des concepts dont vous comprenez mal l&#8217;intérêt. Il paraît se compliquer la vie et opter délibérément pour des choix à l&#8217;exact opposé des votres, Ces modèles : Eric Meyer, Jakob Nielsen, Dean Edwards, Dave Shea sont des parfaits inconnus pour vous ! Vous n&#8217;avez pas de leçon à recevoir de ces nouveaux venus, vous vous en êtes bien passé jusque là !!! Pourvu que vous lui accordiez un peu d&#8217;attention, vous verrez assez rapidement que « l&#8217;intégrateur » cette bête curieuse va rapidement vous faciliter la vie.</p>
<p>Plus sérieusement : qu&#8217;est-ce qu&#8217;un intégrateur ? Quel est son rôle ?  Quelle doit être sa place ?</p>
<p>L&#8217;intégrateur maîtrise le code html ou xhtml, les styles en cascade (CSS) et a de bonnes notions de Javascript. Avec ces trois langages il est en mesure de vous construire une interface qui tient la route. En effet c&#8217;est lui qui va permettre de structurer les données dans la page web, chaque balise html ayant une utilité bien spécifique, il va donner de l&#8217;importance à la valeur sémantique de chacune. &lt;h1&gt; pour les titres, &lt;p&gt; pour les paragraphes, &lt;ul&gt;&lt;li&gt; pour les listes non ordonnées, etc..; la liste est très longue mais sachez qu&#8217;il existe 91 balises html et que toutes ont une utilité bien particulière.</p>
<p>Vous l&#8217;aurez compris l&#8217;intégrateur attache plus d&#8217;importance au sens de chacune de ces balise qu&#8217;à ces qualités graphiques. Les styles CSS étant spécifiquement dédiés à cette utilité depuis que les fabricants de navigateurs ont eu la bonne idée, mais un peu tardive il faut bien le dire, d&#8217; y implémenter les CSS. Il reste encore du boulot néanmoins, rendez-vous compte par vous même : <a HREF="http://www.webdevout.net/browser-support-css">compatibilité des css dans les navigateurs</a>.</p>
<p>Une fois qu&#8217;il a structuré sa page, ajouté les styles pour rendre la page plus agréable, il ne lui reste plus qu&#8217;à ajouter quelques comportements qui devront être non-intrusif (ça veut dire que sans JS ça marche quand même ! Magique, non ?). Effectivement l&#8217;intégrateur a toujours une petite pensée pour les minorités : ceux qui n&#8217;ont pas flash, qui n&#8217;ont pas javascript, qui ont de petits écrans, des vieux navigateurs (enfin pas aussi vieux qu&#8217;IE6 , j&#8217;espère), de mauvais yeux, des mouvements peu surs, des connexions lentes,  bref nous tous quoi ! :-)</p>
<p>Ce dernier point s&#8217;appelle l&#8217;accessibilité et sans pousser le bouchon trop loin, un zeste d&#8217;accessibilité dans un site ce sont des internautes en plus qui n&#8217;auraient certainement pas pu  y naviguer&#8230;</p>
<p>Je ne parlerais pas d&#8217;ergonomie, ni de référencement, ni même d&#8217;interopérabilité    parce que vous l&#8217;avez déjà compris un intégrateur ce n&#8217;est ni un développeur ni un webdesigner graphique, c&#8217;est bien autre chose ! Et le jour où une entreprise aura enfin compris ce qu&#8217;est la maitrise et la puissance de l&#8217;intégration, et bien ce jour là le web lui appartiendra ! (non je déconne là, vous emballez pas !) Enfin ce que je voulais dire c&#8217;est qu&#8217;intégrateur, c&#8217;est un métier !</p>
<p>Bon bah voilà, c&#8217;est dit. J&#8217;ai fini. <span STYLE="font-size: 11px">vous aussi vous faites ce métier ? ah ouais ?</span> <span STYLE="font-size: 10px">Bon on n&#8217;est pas seuls alors&#8230; </span><span STYLE="font-size: 9px">Et autrement ça se passe comment, vous ? Ah ouais ?</span> <span STYLE="font-size: 8px">Vous voulez pas nous en parler ? Dans les commentaires ?</span> <span STYLE="font-size: 7px">Ouais&#8230; parfait &#8230;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/03/02/la-vie-des-integrateurs-chapitre-i-les-integrateurs-sont-ils-des-developpeurs-ou-des-webdesigner/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Les pop-ups sont morts</title>
		<link>http://www.lesintegristes.net/2008/01/29/les-pop-ups-sont-morts/</link>
		<comments>http://www.lesintegristes.net/2008/01/29/les-pop-ups-sont-morts/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 00:17:34 +0000</pubDate>
		<dc:creator>Eric Le Bihan</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Ergonomie]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.lesintegristes.net/2008/01/29/les-pop-ups-sont-morts/</guid>
		<description><![CDATA[Certaines pratiques ont la vie dure… La navigation par pop-up  à l’intérieur d’un site en est une des plus tenaces.
Pourquoi utiliser des pop-up ?
Le raisonnement que j’entends souvent est : « le contenu n’est pas assez important pour une nouvelle page ». Ce raisonnement  aussitôt contredit par des demandes de pop-up de 650px sur 800 px … Pourquoi tant d’acharnement ??!!
Bien sur je ne parle  pas des pop-up non sollicitées qui ne méritent même pas qu’on s’y arrête ne serait-ce qu’un instant, les navigateurs tels que Firefox ou Opéra, nous en débarassent sans que nous ne nous&#160;[&#8230;]]]></description>
			<content:encoded><![CDATA[<p>Certaines pratiques ont la vie dure… La navigation par pop-up  à l’intérieur d’un site en est une des plus tenaces.</p>
<h3>Pourquoi utiliser des pop-up ?</h3>
<p>Le raisonnement que j’entends souvent est : « le contenu n’est pas assez important pour une nouvelle page ». Ce raisonnement  aussitôt contredit par des demandes de pop-up de 650px sur 800 px … Pourquoi tant d’acharnement ??!!</p>
<p>Bien sur je ne parle  pas des pop-up non sollicitées qui ne méritent même pas qu’on s’y arrête ne serait-ce qu’un instant, les navigateurs tels que Firefox ou Opéra, nous en débarassent sans que nous ne nous en rendions même compte.</p>
<p>Alors que la plupart des  sites a abandonné cette habitude d’un autre temps, certains résistent encore  et toujours bien que les arguments contre l’utilisation de ces petites  fenêtres ne manquent pas :</p>
<h3>Ergonomie :</h3>
<ol>
<li>Les utilisateurs en navigant sur leur site préféré ne  s’attendent pas à ce que les liens sur lesquels ils cliquent ouvrent une autre  fenêtre.</li>
<li>Une pop-up peut passer en dessous de la fenêtre  principale si on clique malencontreusement sur cette dernière.</li>
<li>Si une pop-up est ouverte et se trouve sous la fenêtre  principale toutes les pages ouvertes dans la popup (si elle n’est pas nommée ou  porte le même nom dans toutes les fonctions d’ouverture de la popup) demeureront invisibles pour l’internaute qui croira se trouver en présence de liens  non-fonctionnels.</li>
</ol>
<h3>Accessibilité :</h3>
<ol>
<li>L&#8217;ouverture d&#8217;une pop up perturbe  la navigation notamment pour les personnes qui utilisent des aides  techniques pour naviguer. En règle générale, l&#8217;ouverture d&#8217;une nouvelle fenêtre  est déstabilisant pour les personnes aveugles.<br />
Il est de plus impossible de revenir à la page précédente par l&#8217;historique du navigateur.</li>
<li> Une popup est  ouverte par une fonction javascript, sans js la popup ne s’ouvre pas à moins  qu’on prenne le soin d’avoir recours à cette technique (ce qui est loin d’être  le cas, le plus souvent) :</li>
</ol>
<p><code class="prettyprint">        &lt;a href="page.htm" onclick="window.open(this.href); return false;"&gt; </code></p>
<p><em>Il existe d’autres solutions beaucoup plus sympa pour  afficher des informations sans changer de page à l’aide de javascripts  non-intrusifs (il suffit de regarder les scripts et plugins proposés par des  bibliothèques comme <a href="http://fr.wikipedia.org/wiki/JQuery" title="Information sur la bibliothèque javascript jQuery" target="_blank">jQuery </a>ou <a href="http://wiki.script.aculo.us/scriptaculous/" title="Informations sur labibliothèque javascript sciptaculous" target="_blank">script.aculo.us</a>) </em></p>
<h3>Crédibilité :</h3>
<ol>
<li>les pop-up nuisent à l&#8217;image du site qui les utilise et  donnent une impression générale d’amateurisme.</li>
<li>Les pop-up sont dans la plupart des cas associées à de la pub et  bénéficient de moins d’attention de la part des internautes.</li>
</ol>
<h3>Contraintes des navigateurs :</h3>
<p>Dans les navigateurs modernes, et ceci pour éviter les  abus, il n’est plus possible d’intervenir sur les propriétés des popup  (emplacement, redimensionnement, déplacement, etc.)</p>
<p>Conclusion : on ne devrait plus se poser la question, <strong style="font-size: 14px">les popup, c’est NON !</strong></p>
<p>Quelques liens pour poursuivre cette réflexion :</p>
<ul>
<li>The  Jarrett-Zetie Rules of Pop- ups : <a href="http://www.ergologique.com/actualites/actus.php?id_actu=123">http://www.ergologique.com/actualites/actus.php?id_actu=123</a></li>
<li>Interview Jakob Nielsen sur JDN :  <a href="http://www.journaldunet.com/itws/it_nielsen.shtml">http://www.journaldunet.com/itws/it_nielsen.shtml</a></li>
<li>Créer des popup intelligentes : <a href="http://openweb.eu.org/articles/popup/">http://openweb.eu.org/articles/popup/</a></li>
<li>Lazy, stupid and evil design : <a href="http://www.guardian.co.uk/technology/2005/jun/23/columnists.comment">http://www.guardian.co.uk/technology/2005/jun/23/columnists.comment</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lesintegristes.net/2008/01/29/les-pop-ups-sont-morts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
