<?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>Renoir Boulanger &#187; Accessibilité</title>
	<atom:link href="http://renoirboulanger.com/blog/tag/accessibilite/feed/" rel="self" type="application/rss+xml" />
	<link>http://renoirboulanger.com</link>
	<description>Un geek social et Linuxien de nature</description>
	<lastBuildDate>Sun, 29 Apr 2012 20:29:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>devLAB Montréal c&#8217;est maintenant parti!</title>
		<link>http://renoirboulanger.com/blog/2011/02/devlab-montreal-cest-maintenant-parti/</link>
		<comments>http://renoirboulanger.com/blog/2011/02/devlab-montreal-cest-maintenant-parti/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 21:04:31 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[GeekNight]]></category>
		<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[evenements]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Projets]]></category>
		<category><![CDATA[virtualisation]]></category>
		<category><![CDATA[Vulgarisation]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=2416</guid>
		<description><![CDATA[devLAB Montréal c&#8217;est maintenant parti!
Geek by *recycledwax on deviantART
Je l&#8217;avait annoncé. Nous avons particié a des événements, joints d&#8217;autres. Maintenant, depuis Janvier 2011, à tous les mercredis, nous vous invitons a vous joindre a nos rencontres. Donc,depuis cinq semaines maintenant nous hébergeons au public nos ateliers de travail qu&#8217;on appelait nos GeekNights maintenant surnommé devLAB.
Comment devLAB a commencé?
Tout [...]]]></description>
			<content:encoded><![CDATA[<a href='http://renoirboulanger.com/blog/2011/02/devlab-montreal-cest-maintenant-parti/' class='retweet '  style='display:block;margin:10px 0px;' >devLAB Montréal c&#8217;est maintenant parti!</a><div style="float: right; margin: 0px 0px 5px 5px; background: #e4eae4padding;"><img class="alignleft size-full wp-image-2434" style="border: none;" title="Geek_by_recycledwax_on_DeviantArt" src="http://renoirboulanger.com/wp-content/uploads/2011/01/Geek_by_recycledwax_on_DeviantArt.png" border="0" alt="Geek by recycledwax on DeviantArt" width="321" height="414" /><br />
<a href="http://www.deviantart.com/deviation/91362367/">Geek</a> by *<a class="u" href="http://recycledwax.deviantart.com/">recycledwax</a> on <a href="http://www.deviantart.com">deviant</a><a href="http://www.deviantart.com">ART</a></div>
<p>Je l&#8217;avait <a href="http://renoirboulanger.com/blog/2010/03/introduction-de-notre-nouveau-projet-evenement-intitule-devlab/">annoncé</a>. Nous avons <a href="http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/">particié a des événements</a>, <a title="WordCamp WordPress developper_meetup()" href="http://wordcampmontreal.org/">joints</a> <a title="ConFoo Web Techno Conference" href="http://renoirboulanger.com/blog/2010/09/lancement-de-lannee-2011-pour-la-conference-confoo/">d&#8217;autres</a>. Maintenant, depuis Janvier 2011, <strong>à tous les mercredis</strong>, nous vous invitons a vous joindre a nos rencontres. Donc,depuis cinq semaines maintenant nous hébergeons au public nos ateliers de travail qu&#8217;on appelait nos <a title="Quelques billets qui parlent de ces soirées de GeekNights" href="http://renoirboulanger.com/blog/category/geeknight/">GeekNights</a> maintenant surnommé <a href="http://devlabmtl.org">devLAB</a>.</p>
<h3>Comment devLAB a commencé?</h3>
<p>Tout a commencé en 2006. Le besoin est né après plusieurs mois à discuter de technologie a deux (avec <a href="http://etiennelachance.com">Etienne</a>) a prendre une bière au 3Brasseurs et de parler de binaire, netmask&#8230; vous savez, des trucs de Geeks. Nous avons joins notre  vieil ami <a href="http://stephanchampagne.com/">Stephan</a> et nous avons officialisé le pacte que nous avons tenu de 2006-2009. Une fois par semaine tous les Mercredis soir nous suivions ce concept:</p>
<ol>
<li>Se rencontrer peu importe la charge de travail au bureau</li>
<li>Faire avancer une idée</li>
<li>Utiliser quelque chose qu&#8217;on a jamais utilisé avant</li>
<li>Pratiquer les méthodologies pour prendre les plis qu&#8217;on ne pouvait pas toujours prendre au bureau</li>
</ol>
<p>Parfois nous en faisions des CodeFests qui duraient une fin de semaine complète. D&#8217;autres fois nous invitions des amis a jouer avec nous sur des sujets divers.</p>
<p><span id="more-2416"></span></p>
<h3>Quelques sujets que nous avons couverts</h3>
<p>Nous discutions d&#8217;a peu près tout ce qui nous tentait. Parfois nous étions inspirés par ce que nous faisions au bureau, d&#8217;autres fois, des amis venaient nous montrer leus trucs qui les &#8220;faisaient tripper&#8221;  (!)</p>
<p>Entre autres&#8230;</p>
<ol>
<li>Le Test Driven Development avec Visual Studio</li>
<li>Environnement généré en Javascript avec ExtJS</li>
<li>Des processus d&#8217;auto installation avec CentOS 5 (Kick start)</li>
<li>Monter un serveur SMTP avec Debian Etch et Exim connecté avec un backend MySQL</li>
<li>Faire des routines de déploiement en XML avec Apache Ant</li>
<li>Monter une librairie de <a title="Script bash pour transférer une base de donnée MySQL d’un serveur à l’autre" href="http://renoirboulanger.com/blog/2010/02/script-bash-pour-transferer-une-base-de-donnee-mysql-dun-serveur-a-lautre/">migration de base de donnée d&#8217;un serveur a l&#8217;autre</a></li>
<li><a href="http://renoirboulanger.com/blog/2009/09/une-vm-linux-qui-sert-au-developpement-php-5-3-avec-eclipse-partie-i/">Monter un &#8220;Une VM Linux qui sert au développement&#8221; et utiliser un tunnel X pour afficher localement ce qui est exécuté dans la VM</a></li>
<li><a title="Installer une Machine Virtuelle Linux roulant dans VMware Fusion sous Mac OS X" href="http://renoirboulanger.com/blog/2010/07/installer-une-machine-virtuelle-linux-roulant-dans-vmware-fusion-sous-mac-os-x/">Monter une sandbox&#8230;  sous Mac OS X</a></li>
<li>Un projet de gestion de parc informatique</li>
<li>Un projet de gestion de menu utilisant le &#8220;<a href="http://webprod.hc-sc.gc.ca/cnf-fce/index-fra.jsp">Fichier canadien sur les éléments nutrritifs</a>&#8220;</li>
<li>&#8230; et plusieurs autres.</li>
</ol>
<h3>Pourquoi avons nous lancé un <em>autre</em> événement a Montréal</h3>
<p>Étant donné qu&#8217;aucun événement a Montréal n&#8217;avait ce type de concept, nous l&#8217;avons ouverts au public. Surtout que les gens autour de nous aimaient  l&#8217;idée de nos rencontres.</p>
<p>Notre objectif est clair:</p>
<blockquote><p>devLAB est  une occasion de partager avec d&#8217;autres passsionnés en faisant des rencontres hebdomadaires de travail ou on &#8220;met la main à la pâte&#8221;.</p></blockquote>
<p>Parceque ce qu&#8217;on veut depuis toujours c&#8217;est un endroit ou essayer des trucs. Peu importe la techno. Des chose qu&#8217;on peut pas nécessairement faire au bureau, ou chez soi. C&#8217;est de se donner une occasion d&#8217;améliorer ses capacités.</p>
<h3>Evocatio : L&#8217;oeuf ou la Poule?</h3>
<p>Pour les gens qui se le demandent. Evocatio a commencé A CAUSE des GeekNights.</p>
<p>Pas le contraire.</p>
<p>En fait, nous sommes ouverts a l&#8217;aide pour en faire une entité a part entière.</p>
<h3>La direction de devLAB</h3>
<p>&#8230; notre manifeste, en quelque sorte. Pas nécessairement officiel mais va comme suit:</p>
<ol>
<li>Rencontre tous les mercredis 18h30-22h00</li>
<li>Avancer un projet de logiciel Libre</li>
<li>Ne pas se coincer qu&#8217;a une seule technologie ou langage de programmation</li>
<li>Travailler en équipe (code pairing) pour apprendre des interventions de son pair</li>
<li>Ajouter des facteurs d&#8217;inconnus coté technologique</li>
<li>Tout le monde est là pour apprendre et jouer a la technologie</li>
<li>But non lucratif. Aucune entreprise ne peut être promu par devLAB. Le contraire n&#8217;est pas interdit par contre.</li>
<li>Bilinguisme from the ground up (Except that my blog is for a french only audience. sorry)</li>
</ol>
<h3>C&#8217;est quand?</h3>
<p>CE Mercredi, ou le prochain!</p>
<p>Le détail des annonces sur <a href="http://techentreprise.com/Montreal/users/renoirb">Techentreprise</a> (voir le lien devLAB Montréal), Twitter via <a href="http://twitter.com/devLABMtl">@devLABmtl</a> et  dans le <a href="http://www.facebook.com/home.php?sk=group_191829357497601">groupe Facebook</a>.  Vous pouvez aussi être fan de la <a href="http://www.facebook.com/devlabmtl">Page Facebook</a>.</p>
<p>Vous pouvez aussi  <a href="http://devlabmtl.org/">devlabmtl.org</a> et qui n&#8217;est pas aussi à jour mais qui le sera éventuellement. <img src='http://renoirboulanger.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Vous voulez vous joindre a nous? Pas de problème! Si vous avez des questions vous pouvez envoyer un courriel a <strong>info A dev LAB mtl POINT org</strong></p>
<p>Au plaisir de vous y croiser.</p>
]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2011/02/devlab-montreal-cest-maintenant-parti/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Plugin MODx pour générer automatiquement les balises ABBR et autres pour chaque page</title>
		<link>http://renoirboulanger.com/blog/2010/02/plugin-modx-pour-generer-automatiquement-les-balises-abbr-et-autres-pour-chaque-page/</link>
		<comments>http://renoirboulanger.com/blog/2010/02/plugin-modx-pour-generer-automatiquement-les-balises-abbr-et-autres-pour-chaque-page/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 14:49:14 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[modx]]></category>
		<category><![CDATA[p52]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=1850</guid>
		<description><![CDATA[Plugin MODx pour générer automatiquement les balises ABBR et autres pour chaque page
Il s&#8217;agit d&#8217;un plugin que j&#8217;ai fait, en PHP 4 il y a deux ans pour MODx 0.9.6.3, pour un site web et je pense qu&#8217;il vaut la peine que je partage le code avec la communauté.
Le plugin sert a entourer des mots [...]]]></description>
			<content:encoded><![CDATA[<a href='http://renoirboulanger.com/blog/2010/02/plugin-modx-pour-generer-automatiquement-les-balises-abbr-et-autres-pour-chaque-page/' class='retweet '  style='display:block;margin:10px 0px;' >Plugin MODx pour générer automatiquement les balises ABBR et autres pour chaque page</a><div style="width:230px;float:right;"><img src="http://renoirboulanger.com/wp-content/uploads/2010/01/modx_logo.png" alt="" title="MODx" width="230" height="64" style="border:none;float:right;margin-top:10px;margin-right:10px;" /></div>
<p>Il s&#8217;agit d&#8217;un plugin que j&#8217;ai fait, en <abbr title="PHP Hypertext Pre-Processor Languagte version 4." lang="en">PHP 4</abbr> il y a deux ans pour <a href="http://modxcms.com/download/">MODx 0.9.6.3</a>, pour un site web et je pense qu&#8217;il vaut la peine que je partage le code avec la communauté.</p>
<p>Le plugin sert a entourer des mots définis dans un fichier <abbr title="Coma Separated Values." lang="en">CSV</abbr> (séparé par des virgules) dans le contenu qui est retourné par le CMS. </p>
<p>&nbsp;</p>
<h3>LA SITUATION</h3>
<p>Lorsque je travaillait sur ce site web, mon employeur et mon collègue nous étions donné comme objectif de paufiner l&#8217;<a href="http://www.google.ca/search?hl=fr&#038;safe=off&#038;client=firefox-a&#038;rls=org.mozilla:en-US:official&#038;hs=8Lp&#038;defl=fr&#038;q=define:Ergonomie&#038;ei=6PF0S7SiDcH08QbV2tnzCQ&#038;sa=X&#038;oi=glossary_definition&#038;ct=title&#038;ved=0CAcQkAE">Ergonomie</a> et l&#8217;<a href="http://www.google.ca/search?hl=fr&#038;safe=off&#038;client=firefox-a&#038;rls=org.mozilla:en-US:official&#038;hs=GhU&#038;defl=fr&#038;q=define:Accessibilit%C3%A9&#038;ei=A_J0S6LQBNDj8QaLp6z0CQ&#038;sa=X&#038;oi=glossary_definition&#038;ct=title&#038;ved=0CAcQkAE">Accessibilité</a> du contenu. Ce qui est dommage c&#8217;est qu&#8217;il n&#8217;a jamais été évalué par <a href="http://www.accessibiliteweb.com/">AccessibilitéWeb</a>. J&#8217;ai pourtant reçu la formation pour évaluer les sites&#8230; mais je préfère, personnellement, programmer des applications.</p>
<p>&nbsp;</p>
<p><span id="more-1850"></span></p>
<h3>LES CRITÈRES QUE CE PLUGIN REMPLIT</h3>
<p>Lors de la réalisation du site je n&#8217;ai pas noté les points d&#8217;évaluation du <abbr title="Web Content Accessibility Guidelines version 1." lang="en">WCAG 1.0</abbr> que cet utilitaire remplit, mais en gros, d&#8217;un point de vue <em>utilisabilité</em> :</p>
<ul>
<li>L&#8217;édimestre n&#8217;a pas a écrire à la main les balises ABBR, DFN, et ACRONYM, le plugin le fait tout seul;</li>
<li>La liste est dans un fichier statique, ce qui rend facile, pour l&#8217;édimestre, d&#8217;ajouter de nouvelles définitions;</li>
<li>Pouvoir automatiser le remplacement des abréviations dans des balises valides;</li>
</ul>
<p>Cette liste ne parle pas des critères d&#8217;évaluations mais si vous voulez en savoir plus au sujet de l&#8217;Accessibilité; je vous recommande chaudement de visiter la «<a href="http://accessibiliteweb.org/bdc/directives/documents-reference/">Base de conaissances</a>» de la fondation <a href="http://accessibiliteweb.org/">AccessibilitéWeb.org</a> qui a fait un IMMENSE EFFORT de vulgariation et de collaboration a l&#8217;élaboration du <abbr title="Web Content Accessibility Guidelines version 2." lang="en">WCAG 2.0</abbr> et de sa version française.</p>
<p>&nbsp;</p>
<h3>EXEMPLE</h3>
<p>Plutôt que d&#8217;écrire des paragraphes pour expliquer comment fonctionne le plugin, je vous propose de voir par un exemple</p>
<p>Le document <tt><abbr title="Coma Separated Values." lang="en">CSV</abbr></tt> a plusieurs lignes similaires à&#8230;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">fr;dfn;FAQ;Foire Aux Questions</pre></td></tr></table></div>

<p>Avec le contenu de la page il remplacera les occurences dans le document HTML généré (même après la cache):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">(...) venez lire &lt;strong&gt;la FAQ&lt;/strong&gt; (...)</pre></td></tr></table></div>

<p>En le transformant ainsi&#8230;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">(...) venez lire &lt;strong&gt;la &lt;dfn title=&quot;Foire Aux Questions&quot;&gt;FAQ&lt;/dfn&gt;&lt;/strong&gt; (...)</pre></td></tr></table></div>

<p>Le plugin est configuré pour faire cette transformation pour tout les mots définis dans le CSV au moment du rendu de la page chez le client (trigger MODx &#8220;<tt>OnWebPagePrerender</tt>&#8220;) ce qui évite d&#8217;avoir des définitions empilés.</p>
<p>&nbsp;</p>
<h3>UTILISER LE PLUGIN</h3>
<div style="background-color:#FFEEEE;border:1px solid #666600;color:#660000;margin:20px;padding:20px 30px;text-align:center;">
<h4>Avertissement!<br />
</h4>
<p>Le plugin a été fait à l&#8217;époque de <a href="http://modxcms.com/download/">MODx 0.9.6.x</a> (regardez tout au bas). Il risque de bien fonctionner dans cette version mais n&#8217;est pas assuré de fonctionner dans la version stable présente. Vous aurez été avertis!</p>
<p>Si vous voulez que j&#8217;en fasse une adaptation, <a href="http://renoirboulanger.com/2010/02/plugin-modx-pour-generer-automatiquement-les-balises-abbr-et-autres-pour-chaque-page/#vote"><strong>laissez une note a ce billet</strong></a>!.</p>
</div>
<p>On ne peut s&#8217;attendre à simplement installer le plugin et que tout fonctionne. Voici les prérequis pour pouvoir utiliser le plugin</p>
<ul>
<li>Au niveau 0 (enfant de la racine dans MODx) il y ait un répertoire servant à spécifier la langue de ses enfants.</li>
<li><a href="http://renoirboulanger.com/wp-content/uploads/2010/02/ContentAbbrGenerator/ContentAbbrGenerator.txt"><strong>ContentAbbrGenerator</strong></a> (le plugin en question)<br />
Un plugin de base qui était fourni avec la version 0.9.6.x qui fournit le numéro ID de la page parent absolu</li>
<li>Il faut 2 Snippet de code (fonctions PHP spécifique a MODx) pour utiliser mon plugin
<ul>
<li><a href="http://renoirboulanger.com/wp-content/uploads/2010/02/ContentAbbrGenerator/Lang.txt">Lang</a><br />
Sert, justement a aller chercher le ID de la page ci-haut mentionnée.</li>
<li><a href="http://renoirboulanger.com/wp-content/uploads/2010/02/ContentAbbrGenerator/UltimateParent.txt">UltimateParent</a><br />
Un plugin de base qui était fourni avec la version 0.9.6.x qui fournit le numéro ID de la page parent absolu</li>
</ul>
</li>
<li><a href="http://renoirboulanger.com/wp-content/uploads/2010/02/ContentAbbrGenerator/abbreviations.txt">abbreviations.txt</a><br />
Le fichier CSV qui contient les valeurs pour le remplacement des balises. Le contenu de ce fichier peut être une page dans MODx (si <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">mod_rewrite</a> est activé) mais il doit être définitivement être disponible à l&#8217;adresse fournie dans le Snippet <a href="http://renoirboulanger.com/wp-content/uploads/2010/02/ContentAbbrGenerator/ContentAbbrGenerator.txt">ContentAbbrGenerator</a> définie par la variable de plugin &#8220;<tt>cagPluginAttrOverrideFileLoc</tt>&#8220;</li>
</ul>
<p>&nbsp;</p>
<h3>TÉLÉCHARGER ET INSTALLER</h3>
<p>Suivre les instructions dans chaque fichier de l&#8217;<strong><a href="http://renoirboulanger.com/wp-content/uploads/2010/02/ContentAbbrGenerator.tar.gz">Archive</a></strong></p>
<p>&nbsp;</p>
<h3>SOURCES ET  <em>CRÉDITS</em></h3>
<p>J&#8217;ai pris soin dans le code de laisser les notes des auteurs qui m&#8217;ont inspiré avec les pages qui parlent de ce que j&#8217;ai utilisé pour produire le plugin. Je n&#8217;ai rien inventé en soi, j&#8217;ai simplement produit un plugin pour remplir le besoin que j&#8217;avait</p>
<p>&nbsp;</p>
<h3>NOTE</h3>
<p>Vous avez le droit et la liberté d&#8217;utiliser le code que je rend disponible pour téléchargement car je n&#8217;ai pas mise sous licence. Considérez-le comme un don</p>
<p>&nbsp;</p>
<h3><a name="vote"></a>A VOS COMMENTAIRES&#8230;</h3>
<p>J&#8217;ai déjà considéré commencer a modifier ce plugin pour le rendre fonctionnel dans WordPress mais j&#8217;ai d&#8217;autres priorités. Alors, si vous avez un intérêt à ce que je produise un plugin pour WordPress ou MODx (pour la version courrante) laissez moi un commentaire!</p>
]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2010/02/plugin-modx-pour-generer-automatiquement-les-balises-abbr-et-autres-pour-chaque-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manipulation des liens extérieurs et les popup pour améliorer l&#8217;Accessibilité</title>
		<link>http://renoirboulanger.com/blog/2009/08/manipulation-des-liens-exterieurs-et-les-popup-pour-ameliorer-laccessibilite/</link>
		<comments>http://renoirboulanger.com/blog/2009/08/manipulation-des-liens-exterieurs-et-les-popup-pour-ameliorer-laccessibilite/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 21:36:29 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=766</guid>
		<description><![CDATA[Manipulation des liens extérieurs et les popup pour améliorer l&#8217;AccessibilitéEn rédigeant Accessibilité et les liens externes j&#8217;ai réalisé qu&#8217;il y aurait trop de matière pour être lue dans un simple billet. Alors j&#8217;ai décidé d&#8217;aller plus en profondeur et de le documenter.
Cet article explique une méthode simple pour transformer tout les liens d&#8217;une page qui [...]]]></description>
			<content:encoded><![CDATA[<a href='http://renoirboulanger.com/blog/2009/08/manipulation-des-liens-exterieurs-et-les-popup-pour-ameliorer-laccessibilite/' class='retweet '  style='display:block;margin:10px 0px;' >Manipulation des liens extérieurs et les popup pour améliorer l&#8217;Accessibilité</a><p>En rédigeant <a href="http://renoirboulanger.com/blog/2009/08/accessibilite-et-les-liens-externes/"><em>Accessibilité et les liens externes</em></a> j&#8217;ai réalisé qu&#8217;il y aurait trop de matière pour être lue dans un simple billet. Alors j&#8217;ai décidé d&#8217;aller plus en profondeur et de le documenter.</p>
<p>Cet article explique une méthode simple pour transformer tout les liens d&#8217;une page qui vont à l&#8217;extérieur du site courrant en ajoutant un icône approprié et la note disant qu&#8217;une fenêtre s&#8217;ouvrira</p>
<p><span id="more-766"></span></p>
<p>&nbsp;</p>
<h3>Les méthodes généralement utilisés</h3>
<p>Actuellement, il existe plusieurs manières de faire. Sauf qu&#8217;elles demandent souvent de le faire à la main pour <em>chaque lien</em> et ca peut être lourd.</p>
<p>Surtout pour la rédaction qui se fout un peu de faire du <em>html propre</em></p>
<p>&nbsp;</p>
<h3>Comment faire un pop-up</h3>
<p>Voici quelques manières&#8230; rien d&#8217;extravagant.</p>
<div>
<ul>
<li><strong>Méthode target</strong>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;somelink.php&quot; target=&quot;_blank&quot;&gt;Link text&lt;/a&gt;</pre></td></tr></table></div>

<p>Mais le problème c&#8217;est que l&#8217;attribut <tt>target=""</tt> est maintenant obselete. Donc <strong>on ne devrait pas l&#8217;utiliser</strong></p>
</li>
<li><strong>Méthode href javascript window.open</strong>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;javascript:window.open('http://renoirboulanger.com/','mywindow','width=400,height=200')&quot;&gt;Link text&lt;/a&gt;</pre></td></tr></table></div>

<p> Fonctionnerait bien. Mais du point de vue SEO et Crawling&#8230; on complique la tâche et ne devrait pas etre utilisé car l&#8217;attribut <tt>href=""</tt> est fait pour avoir le URL.<br />Elle n&#8217;est pas recommandée parceque la balise est altérée de son usage natuel: faire un lien et que l&#8217;attribut <tt>href</tt> dise QUOI lier.</p>
</li>
<li><strong>Méthode onClick</strong>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;somelink.php&quot; onclick=&quot;window.open('http://renoirboulanger.com/','mywindow','width=400,height=200')&quot;&gt;Link text&lt;/a&gt;</pre></td></tr></table></div>

<p>Est une bonne méthode mais <strong>pas facile a expliquer pour l&#8217;équipe de rédaction.</strong></p>
</li>
</ul>
</div>
<p>Ces méthodes font bel et bien le travail mais certaines d&#8217;entre elles (je ne les ai pas toutes listés) sont sémantiquement invalides&#8230; et donne un <a rel="nofollow" href="http://en.wikipedia.org/wiki/Tag_soup">du tagsoup</a></p>
<p>&nbsp;</p>
<h3>Règles pour les liens extérieurs</h3>
<ul>
<li>Une balise html doit être utilisée pour son usage</li>
<li>Le <em>markup</em> doit être le plus simple possible pour éviter les erreurs d&#8217;entrée de l&#8217;édimestre.</li>
<li>On ne peut pas utiliser le <tt>CSS</tt> pour ajouter les icones<br />
<strong>Note</strong>: Parceque les <em>Lecteurs d&#8217;écran</em> (aveugles) &#8220;lisent&#8221; le texte et non pas ce qui a été modifié via <tt>CSS</tt>.</li>
<li>On ne peut pas utiliser de Javascript invalide<br />
<strong>Note</strong>: Si on y va via le DOM, avec les manipulations valide, ca passe bien: bref on évite <tt>innerHTML</tt> et on se fie aux <a href="http://www.w3.org/DOM/">Spécifications du DOM</a></li>
</ul>
<p>D&#8217;autres règles pourraient être mentionnées. Mais le message peut bien se résumer ainsi.</p>
<blockquote><p><strong>En <tt>HTML</tt>, on doit utiliser les balises pour l&#8217;usage qu&#8217;elles sont destinés à faire.</strong></p></blockquote>
<p>&#8230; il ne reste pas tant d&#8217;options. La <a href="#mamethode">méthode que j&#8217;ai élaboré répond a toutes ces conditions</a>.</p>
<p>&nbsp;</p>
<h3>Les <em>autres</em> choses que le lien doit faire</h3>
<p>Dans les lignes guides de l&#8217;accessibilité du web (et en ergonomie/utilisabilité) on mentionne</p>
<blockquote><p>Qu&#8217;on doit avoir un indice qu&#8217;un lien est destiné à ouvrir <em>une page extérieure</em> et/ou <em>un popup</em></p></blockquote>
<p>Source: ma mémoire&#8230; j&#8217;ai pas trouvé de lien référence. Si vous en trouvez, faites <a href="/me-joindre/">moi signe</a></p>
<p>ça veut donc dire qu&#8217;en plus de faire le lien en tant que tel, il faut ajouter une <em>image</em> dans le lien qui va annoncer le popup&#8230; Ouf!</p>
<p>&nbsp;</p>
<h3>Ce qu&#8217;il faudrait&#8230;</h3>
<p>En gros, il faudrait, que pour chaque lien&#8230;</p>
<ul>
<li>Avertir qu&#8217;il y a un lien externe dans un icône image ajouté automatiquement</li>
<li>Placer l&#8217;icone avec la bonne balise et ne pas utiliser le <tt>CSS</tt>.</li>
<li>Avoir un <tt>alt=""</tt> pour l&#8217;image (icône) car sinon c&#8217;est du <em>html invalide</em> en plus qu&#8217;il servirait a avertir</li>
<li>Que le <tt>alt=""</tt> soit dans la langue utilisée dans le site</li>
<li>Que le lien soit utilisable <em>SANS JAVASCRIPT</em> donc, on oublie le <tt>href="javascript..."</tt><br />
<strong>Note</strong>: C&#8217;est une approche qui veut que l&#8217;on puise &#8220;<em>dégrader élégamment</em>&#8221; le code dans la &#8220;<em>pire des situations</em>&#8220;</li>
</ul>
<p>&nbsp;</p>
<h3><a name="mamethode"></a>la Manière idéale</h3>
<p>Il s&#8217;agit d&#8217;une méthode que j&#8217;ai élaborée avec un ancien collègue que l&#8217;on surnomme (alias) <em>Reynold Kirby</em> pour être valide avec toutes les règles ci-haut mentionnés.</p>
<ul>
<li>Lister tout les liens externes qui commencent par <tt>http://</tt>;</li>
<li>Éliminer de la liste les domaines qu&#8217;on ne veut pas qui se fassent transformer;</li>
<li>Créer, via le <tt>DOM</tt>, une image AVEC le bon <tt>alt=""</tt>;</li>
<li>Ajouter un attribut <tt>rel="popup"</tt> pour le handler de popup;</li>
<li>Ajouter, finalement, le handler <tt>onclick=""</tt>.</li>
</ul>
<h4>La &#8220;pogne&#8221;</h4>
<p>On va utiliser le <tt>onclick=""</tt>, mais généré automatiquement via Javascript. Car de toute façon il est ridicule de s&#8217;interdire d&#8217;utiliser javascipt. Dans ce contexte, ce serait donc acceptable. Et toujours mieux que de faire <tt>target="_blank"</tt> et/ou de demander aux édimestres de <em>faire chaque lien à bras</em> (!!)
</p>
<h4>Le code</h4>
<p>Simplement ajouter ce bout de code Javascript aux autres scripts du site.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> strPopUpWarning <span style="color: #339933;">=</span> <span style="color: #3366CC;">'Lien sur un site externe qui va ouvrir dans une nouvelle fenetre.'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> addImageAtExternalLinks<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> anchorList <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> anchorList.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #006600; font-style: italic;">/**
    * Remarquez les indexOf()... remplacez renoirboulanger 
    * par votre propre nom de domaine... addthis a été ajouté 
    * au cas ou vous avez un service du genre
    **/</span> 
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>anchorList<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">href</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">''</span> <span style="color: #339933;">&amp;&amp;</span>
    anchorList<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">href</span>.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'renoirboulanger'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">&amp;&amp;</span>
    anchorList<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">href</span>.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'javascript'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">&amp;&amp;</span>
    anchorList<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">href</span>.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'addthis'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #003366; font-weight: bold;">var</span> elContainer <span style="color: #339933;">=</span> anchorList<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      <span style="color: #003366; font-weight: bold;">var</span> createdEl <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      createdEl.<span style="color: #660066;">alt</span> <span style="color: #339933;">=</span> strPopUpWarning<span style="color: #339933;">;</span>
      createdEl.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'/icones/extlink.gif'</span><span style="color: #339933;">;</span>
      elContainer.<span style="color: #660066;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'rel'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'popup'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      elContainer.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>createdEl<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      elContainer.<span style="color: #660066;">onclick</span> <span style="color: #339933;">=</span> dopopup<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009966; font-style: italic;">/* Ensuite... l'appel */</span>
addImageAtExternalLinks<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">/**
 * Fonctions pour les popup
 *
 * Permet de crere un popup en faisant un lien
 * &lt;a href=&quot;http://www.othersite.com/url/&quot; /&gt;text (usage normal)
 * Mais creer des liens popup au besoin selon des specifites que l'on veut. Donc, un
 *  lien comme ceux ci  genereront...)
 *   &lt;a href=&quot;http://www.othersite.com/url/&quot; rel=&quot;popup&quot; /&gt;text et aussi
 *   &lt;a href=&quot;http://www.othersite.com/url/&quot; rel=&quot;popup standard 800 600&quot; /&gt;text
 *     (un popup de 800x600 avec toolbars)
 *   &lt;a href=&quot;http://www.othersite.com/url/&quot; rel=&quot;popup console 800 600&quot; /&gt;text
 *     (un popup de 800x600 mais sans toolbars)
 *   &lt;a href=&quot;http://www.othersite.com/url/&quot; rel=&quot;popup fullscreen&quot; /&gt;text (un popup plein ecran)
 *
 * En plus, ce qui a ete ajoute est la possibilite (avec addImageAtExternalLinks();) de scanner toutes les
 * href de la page courrante qui ne sont pas interieurs (ou acceptes) et d'y ajouter une image qui dit que c'est
 * un popup (via le DOM) et qui annonce que ca va ouvrir un site exterieur... bref qui prendrait
 *
 * @author Renoir Boulanger &lt;lunique @renoirboulanger.com&gt;
 * @author Reynold Kirby (alias) &lt;reynold .kirby@gmail.com&gt;
 **/</span>
<span style="color: #003366; font-weight: bold;">function</span> dopopup<span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #006600; font-style: italic;">// Source: http://www.accessify.com/features/tutorials/the-perfect-popup/</span>
  <span style="color: #006600; font-style: italic;">//set defaults - if nothing in rel attrib, these will be used</span>
  <span style="color: #003366; font-weight: bold;">var</span> t <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;standard&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #003366; font-weight: bold;">var</span> w <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
  <span style="color: #003366; font-weight: bold;">var</span> h <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">//look for parameters</span>
  attribs <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">rel</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot; &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>attribs<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">!=</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>t <span style="color: #339933;">=</span> attribs<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>attribs<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">!=</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>w <span style="color: #339933;">=</span> attribs<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>attribs<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">!=</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>h <span style="color: #339933;">=</span> attribs<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">//call the popup script</span>
  popUpWin<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">href</span><span style="color: #339933;">,</span>t<span style="color: #339933;">,</span>w<span style="color: #339933;">,</span>h<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">//cancel the default link action if pop-up activated</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">event</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    window.<span style="color: #660066;">event</span>.<span style="color: #660066;">returnValue</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    window.<span style="color: #660066;">event</span>.<span style="color: #660066;">cancelBubble</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    e.<span style="color: #660066;">stopPropagation</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    e.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> popUpWin<span style="color: #009900;">&#40;</span>url<span style="color: #339933;">,</span> type<span style="color: #339933;">,</span> strWidth<span style="color: #339933;">,</span> strHeight<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  closeWin<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #006600; font-style: italic;">//calls function to close pop-up if already open,</span>
  <span style="color: #006600; font-style: italic;">//to ensure it's re-opened every time, retainining focus</span>
  type <span style="color: #339933;">=</span> type.<span style="color: #660066;">toLowerCase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>type <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;fullscreen&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    strWidth <span style="color: #339933;">=</span> screen.<span style="color: #660066;">availWidth</span><span style="color: #339933;">;</span>
    strHeight <span style="color: #339933;">=</span> screen.<span style="color: #660066;">availHeight</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #003366; font-weight: bold;">var</span> tools<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>type <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;standard&quot;</span><span style="color: #009900;">&#41;</span>
  tools <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;resizable,toolbar=yes,location=yes,scrollbars=yes,menubar=yes,width=&quot;</span><span style="color: #339933;">+</span>strWidth<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;,height=&quot;</span><span style="color: #339933;">+</span>strHeight<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;,top=0,left=0&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>type <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;console&quot;</span> <span style="color: #339933;">||</span> type <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;fullscreen&quot;</span><span style="color: #009900;">&#41;</span>
    tools <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;resizable,toolbar=no,location=no,scrollbars=no,width=&quot;</span><span style="color: #339933;">+</span>strWidth<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;,height=&quot;</span><span style="color: #339933;">+</span>strHeight<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;,left=0,top=0&quot;</span><span style="color: #339933;">;</span>
  newWindow <span style="color: #339933;">=</span> window.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>url<span style="color: #339933;">,</span> <span style="color: #3366CC;">'newWin'</span><span style="color: #339933;">,</span> tools<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  newWindow.<span style="color: #000066;">focus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #003366; font-weight: bold;">var</span> newWindow <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> closeWin<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>newWindow <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>newWindow.<span style="color: #660066;">closed</span><span style="color: #009900;">&#41;</span>
      newWindow.<span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">&lt;/</span>reynold<span style="color: #339933;">&gt;&lt;/</span>lunique<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>
</p>
]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2009/08/manipulation-des-liens-exterieurs-et-les-popup-pour-ameliorer-laccessibilite/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Accessibilité et les liens externes</title>
		<link>http://renoirboulanger.com/blog/2009/08/accessibilite-et-les-liens-externes/</link>
		<comments>http://renoirboulanger.com/blog/2009/08/accessibilite-et-les-liens-externes/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 22:28:01 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Techniques]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=778</guid>
		<description><![CDATA[Accessibilité et les liens externesIl existe plusieurs normes en accessibilité du web qui demande des choses qu&#8217;on ne prend pas nécessairement le temps de faire.
Soit que c&#8217;est pas manque de temps, trop de choses à penser, ou on n&#8217;y pense simplement pas.
Dans cet article j&#8217;exprime mon opinion sur l&#8217;importance (du point de vue utilisabilité) des [...]]]></description>
			<content:encoded><![CDATA[<a href='http://renoirboulanger.com/blog/2009/08/accessibilite-et-les-liens-externes/' class='retweet '  style='display:block;margin:10px 0px;' >Accessibilité et les liens externes</a><p>Il existe plusieurs normes en accessibilité du web qui demande des choses qu&#8217;on ne prend pas nécessairement le temps de faire.</p>
<p>Soit que c&#8217;est pas manque de temps, trop de choses à penser, ou on n&#8217;y pense simplement pas.</p>
<p>Dans cet article j&#8217;exprime mon opinion sur l&#8217;importance (du point de vue utilisabilité) des icones de liens extérieurs. <del>Plus tard je montrerai une méthode pour automatiser</del> <ins>[EDIT 2009-08-23] J&#8217;ai documenté comment faire dans <a href="http://renoirboulanger.com/blog/2009/08/manipulation-des-liens-exterieurs-et-les-popup-pour-ameliorer-laccessibilite">Manipulation des liens extérieurs et les popup pour améliorer l&#8217;Accessibilité</a>.</ins></p>
<p><span id="more-778"></span></p>
<p>Le problème que j&#8217;ai voulu me pencher consiste avec la <a href="http://www.accessibiliteweb.org/bdc/directives/theme/comprehension#pc13_1">règle qui suit</a> :</p>
<blockquote><p><strong>2.4.4 (niveau A)</strong><br />
Destination d&#8217;un lien :<br />
La destination d&#8217;un lien peut Être déterminée à partir du libellé (label=&#8221;") du lien ou du libellé et du contexte de ce lien déterminable par programmation, sauf pour un lien dont la destination serait ambigüe pour l&#8217;ensemble des utilisateur.</p></blockquote>
<p>Ce qui implique qu&#8217;on doit ajouter à la main une icône qui annonce le «popup» et si c&#8217;est un lien extérieur.</p>
<p>&nbsp;</p>
<h2>Pourquoi ne pas automatiser ce qui est automatisable?</h2>
<p>Lorsqu&#8217;on doit manuellement, faire l&#8217;option popup quand on édite un site et le faire à bras pour chacun.</p>
<p>Parfois, en programmant on finit par se demander&#8230;  &#8220;<em><strong>L&#8217;informatique au service de l&#8217;homme</strong></em>&#8221; (ou le contraire?)</p>
<p>&nbsp;</p>
<h2>L&#8217;objectif</h2>
<p>Alors, j&#8217;ai décidé de trouver une manière d&#8217;automatiser?</p>
<ul>
<li>de prendre une balise standard

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;http://www.somesite.com/action/handler&quot;&gt;Link&lt;/a&gt;</pre></td></tr></table></div>

</li>
<li>d&#8217;ajouter de l&#8217;image icône qui annonce que c&#8217;est un (lien externe + popup)</li>
<li>d&#8217;instaurer le <tt>alt=""</tt> de l&#8217;image</li>
<li>de transformer le lien en popup&#8230;

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;http://www.somesite.com/action/handler&quot;&gt;Link&lt;img src=&quot;/icons/external_link.png&quot; alt=&quot;Avertissement: Ce lien ouvre dans une fenêtre externe car il ne fait pas partie du présent site&quot; width=&quot;10&quot; height=&quot;10&quot; class=&quot;popuphreficon&quot; /&gt;&lt;/a&gt;</pre></td></tr></table></div>

</li>
</ul>
<p>&#8230; tout ça en Javascript qui manipule le <tt>DOM</tt> d&#8217;une manière valide&#8230; et qui suit les normes d&#8217;<strong>Accessibilité du web</strong> !!</p>
]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2009/08/accessibilite-et-les-liens-externes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

