<?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>La Case de l&#039;Oncle Tom &#187; Accessibilité</title>
	<atom:link href="http://case.oncle-tom.net/categorie/web/accessibilite/feed/" rel="self" type="application/rss+xml" />
	<link>http://case.oncle-tom.net</link>
	<description>Développement Web, bonnes pratiques et performances</description>
	<lastBuildDate>Sun, 25 Dec 2011 19:33:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="search"
           href="http://case.oncle-tom.net/opensearch"
           type="application/opensearchdescription+xml"
           title="Content Search" />		<item>
		<title>Paris Web 2011 : transversalité</title>
		<link>http://case.oncle-tom.net/2011/paris-web-2011-transversalite/</link>
		<comments>http://case.oncle-tom.net/2011/paris-web-2011-transversalite/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 09:34:07 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[Travail 2.0]]></category>
		<category><![CDATA[accessibilité]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[conférence]]></category>
		<category><![CDATA[humanité]]></category>
		<category><![CDATA[kiss]]></category>
		<category><![CDATA[paris]]></category>
		<category><![CDATA[parisweb]]></category>
		<category><![CDATA[typographie]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=18460</guid>
		<description><![CDATA[<a href="http://paris-web.fr/2011/">Paris Web 2011</a>, 3 jours de conférences et d'ateliers dont le fil rouge était la <em>simplicité</em>. L'occasion de revenir sur les moments marquants et ce qui m'a plu dans cette 6<sup>ème</sup> édition.]]></description>
			<content:encoded><![CDATA[<p>Une année s&#8217;est déjà écoulée depuis <a href="http://paris-web.fr">Paris Web</a> 2010. À mon retour de cette précédente édition, je l&#8217;avais même qualifiée d&#8217;<a title="Paris Web 2010 : l’âge de raison" href="http://case.oncle-tom.net/2010/paris-web-2010-age-de-raison/">âge de raison</a>. Petit à petit, année après année, les conférences Paris Web en sont arrivées à 2 sessions simultanées, 500 inscrits, 60 orateurs, de la traduction en langue des signes française et même de la <a href="http://fr.wikipedia.org/wiki/V%C3%A9lotypie">vélotypie</a> pour une retranscription écrite en direct.</p>
<p>Pour ma part, c&#8217;est la <strong>quatrième année consécutive</strong> où je m&#8217;y rends … et où on accepte de me voir déblatérer des sujets de plus en plus bizarre. Qu&#8217;y ai-je vu cette année ?</p>
<p><a href="http://media.oncle-tom.net/images/2011/10/shot_1318684180740.jpg"><img class="aligncenter size-medium wp-image-18461" title="Legalize Table" src="http://media.oncle-tom.net/images/2011/10/shot_1318684180740-300x300.jpg" alt="Legalize Table" width="300" height="300" /></a></p>
<h3><span id="more-18460"></span>Gloire au petit amphitéâtre</h3>
<p>Les double sessions sont apparues à l&#8217;origine avec une orientation décideur/technique. Aujourd&#8217;hui j&#8217;y vois davantage une découpe <strong>atypique</strong>/<strong>grand public</strong> puisque dans la pratique, la distinction se fait sur la contenance de l&#8217;amphithéâtre.</p>
<p>Dans ce petit amphi, on a décortiqué <strong>la base de notre travail</strong> : <a href="http://www.paris-web.fr/2011/conferences/la-science-au-service-du-design.php">l&#8217;impact du webdesign dans les neurosciences</a> et vu <a href="http://www.paris-web.fr/2011/conferences/un-navigateur-comment-ca-marche.php">comment fonctionnait un navigateur</a>, d&#8217;une requête <acronym title="HyperText Transfer Protocol">HTTP</acronym> au rendu de l&#8217;interface.<br />
Subtilement, en deux heures, on a pu se rendre compte qu&#8217;un changement de code hexadécimal dans un fichier <acronym title="Cascading Style Sheets">CSS</acronym> transitait au travers de plusieurs milliers de ligne de code au sein de votre navigateur Web … mais surtout, traversait 7 zones différentes du cerveau pour provoquer une … <strong>sensation</strong>.</p>
<p>Sensation. Mot qui navigue lui aussi au travers de l&#8217;<strong>accessibilité</strong>, de l&#8217;<strong>ergonomie</strong> ou plus généralement, d&#8217;<strong>UX</strong> (expérience utilisateur).</p>
<h3>De la technique au management</h3>
<p>Le public a eu du mal à retenir un rire sarcastique, moi compris, lorsqu&#8217;<a href="http://www.paris-web.fr/2011/conferences/l-accessibilite-vue-dun-grand-compte-et-comment-la-loi-de-2005-a-change-nos-facons-de-travaille.php">Arthur Rigaud de Voyages-SNCF.com a débuté sa présentation sur l&#8217;accessibilité</a>. Malin, il a préféré utiliser <em>grand compte</em> pour éviter la désertion de la salle ?</p>
<p>Toujours est-il qu&#8217;on a vite oublié les sarcasmes devant l&#8217;ampleur de la mission : 70 sites Internet, 450 sites Intranet et 1 mission commune, les rendre accessible. Tous ne le seront pas à la date buttoir mais l&#8217;explication dans leur démarche mérite attention.</p>
<p>En effet, classiquement, un expert accessibilité a été missionné pour aider les différentes équipes à rendre leurs sites accessibles. Grand bien leur en a pris, car ça s&#8217;est soldé par un échec. L&#8217;ampleur et la dureté de sa mission a certainement contribué à l&#8217;intégrisme de son application, <em>excluant</em> cette personne de tous les projets.</p>
<p>Une <strong>approche tranversale</strong> a ensuite été adoptée : communication dans les lieux communs (machine à café, affichages de communication interne), formations au personnel et surtout, une responsabilisation de différents postes, du développeur au chef de projet en passant par les graphistes.</p>
<p>De la brutalité isolée à la douce transversalité.</p>
<h3>Du public au grand public</h3>
<p>On ne parle pas de <em>backend</em> à Paris Web par contre on y parle <em>Open Data</em> !</p>
<p>David &laquo;&nbsp;Nippon&nbsp;&raquo; Larlet et Olivier Thereau ont présenté à la fois un <a href="http://www.paris-web.fr/2011/conferences/lopendata-une-evolution-culturelle-politique-et-technique.php">panorama d&#8217;Open Data au travers des cultures</a>, et <a href="http://www.paris-web.fr/2011/conferences/les-donnees-ouvertes-et-liees-linked-open-data-pour-les-allergiques-au-rdf.php">comment la BBC s&#8217;y prenait pour utiliser Open Data avec leurs contenus et ceux issus de communautés spécialisées</a>.</p>
<p><strong>Open Data</strong> est le gros <em>buzzword</em> pour lequel le retour sur visibilité reste faible, en partie à cause du manque d&#8217;accompagnement, des coûts de développement et de maintenance (ben quoi, c&#8217;est de l&#8217;informatique et du temps de cerveau piqué à TF1) … et pourra-t&#8217;on constater, du manque d&#8217;outillage.</p>
<p>Y&#8217;a du maille pour mailler les données, car le Web sémantique c&#8217;est bien beau, mais lier des fichiers <acronym title="Portable Document Format">PDF</acronym> entre eux, c&#8217;est priver un diabétique de son insuline en le gavant de chamallow (OK ? © Pablo).</p>
<h3>L&#8217;atelier des bonnes idées</h3>
<p>Samedi fût un peu plus difficile : réveil tardif suite à la retombée de pression de la veille et d&#8217;un épuisement lié au manque de sommeil. Bref, j&#8217;ai préféré rogner sur le premier atelier pour réserver mon attention au reste de la journée.</p>
<p>Après un énième café, la journée débute sur un sujet de <a href="http://www.paris-web.fr/2011/ateliers/typography-for-programmers.php">typographie adressée aux développeurs</a>. Le sujet couvrait les aspects de ce qu&#8217;on devait connaître mais après les 2 excellentes conférences de l&#8217;an dernier (<a href="http://www.paris-web.fr/2010/programme/macrotypographie-page-web.php">macrotypographie de la page Web</a> et <a href="http://www.paris-web.fr/2010/programme/la-typographie-comme-outil-de-design.php">typographie comme outil de design</a>), dur dur. On repartait en tous cas avec l&#8217;idée essentielle : <strong>d&#8217;abord le contenu, ensuite le design</strong>. Couplé avec <em>Mobile First</em> et l&#8217;accessibilité, le lien n&#8217;en est que plus évident.</p>
<p>Songeant de plus en plus régulièrement à publier ce blog sous forme de contenu versionné avec git (<em>geek</em>), je pensais naïvement que ce serait le sujet de l&#8217;atelier <a href="http://www.paris-web.fr/2011/ateliers/creation-et-partages-darchives-web-personnelles.php">Création et partage d&#8217;archives Web personnelles</a>. La bonne surprise c&#8217;est qu&#8217;il y fût surtout question de créer des archives distribuées pour éviter les liens morts sur nos propres blogs : chaque lien externe est indexé en local pour s&#8217;y substituer en cas de disparition de la page cible respective. Ce sera à suivre sur le projet <a href="http://owark.org/">Owark</a>.</p>
<p>Et le meilleur pour la fin : <a href="http://www.paris-web.fr/2011/ateliers/planification-ou-iteration-specialisation-ou-heterogeneite-transmission-orale-ou-ecrite-deux-jeux-po.php">deux jeux sur l&#8217;itération et la communication de Pablo Pernot</a>. J&#8217;avais déjà entendu parler du <a href="http://marshmallowchallenge.com/">Marshmallow Challenge</a> et ce fût l&#8217;occasion de l&#8217;expérimenter. Tout le monde (ou presque) a eu le réflexe de construire la tour la plus haute possible … et de <strong>se planter au dernier moment</strong>. Comme dans nos projets informatiques en fin de compte. Livraisons itératives vs. grosse livraison finale (qui fait mal).</p>
<p>Puis de tester la communication écrite (nos belles specs et cahiers des charges) vs. la communication orale. Cette dernière a donné de meilleurs résultats, en permettant d&#8217;ajuster en fonction du <em>feedback</em>. Ça m&#8217;a donné à réfléchir sur la <strong>capitalisation technique</strong> : travailler à 2 en même temps, pour qu&#8217;un formalise par écrit semble plus efficace qu&#8217;une seule personne, réfléchissant et écrivant. Et de constater une fois de plus la difficulté à imposer un processus formalisé à des personnes ne se sentant pas en mesure de le faire.</p>
<h3>Des outils aux ressentis</h3>
<p>C&#8217;est avec surprise que je suis reparti sans le <em>boost</em> d&#8217;énergie habituel, et sans le <em>spleen</em> post-évènement. Et de me rendre compte que finalement, j&#8217;ai passé tout mon temps à m&#8217;imprégner des expériences humaines exposées sur scène, ainsi que des conversations pendant les repas, apéritifs et autres diners plus ou moins informels.</p>
<p>J&#8217;y vois trois raisons :</p>
<ol>
<li>l&#8217;expérience <a href="http://sudweb.fr">Sud Web</a> a déjà regonflé le ballon il y a 6 mois ;</li>
<li>en travaillant en indépendant, <strong>je ne subis plus cette pression</strong> du boulot mal fait ou de l&#8217;incompréhension auxquelles Paris Web apporte une grande bouffée d&#8217;air frais ;</li>
<li>je n&#8217;espérais pas révolutionner ma vision des outils pour améliorer radicalement mon quotidien.</li>
</ol>
<p>À vrai dire, ça doit bien être la première année où je me suis fichu éperdument des outils pour me focaliser totalement sur le <strong>comment</strong> et le <strong>pourquoi</strong>. Pourquoi ça foire ? Comment des hommes et femmes font réussir un projet ?</p>
<h3>Et ma conférence ?</h3>
<p>J&#8217;y reviens dans un prochain article pour apporter à la fois une explication à mes <em>slides</em> et aussi des éléments complémentaires.</p>
<p>D&#8217;ici là, <strong>tous mes remerciements</strong> à l&#8217;organisation impeccable de l&#8217;évènement (notamment sur l&#8217;arrivée des orateurs), à l&#8217;excellente soirée communautaire au <a href="http://www.lecomptoirgeneral.com/">Comptoir Général</a> et aux personnes avec qui j&#8217;ai pu échanger, que ça soit sur ma coupe de cheveux ou sur nos vies respectives.</p>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2011/paris-web-2011-transversalite/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Paris Web 2010 : l&#8217;âge de raison</title>
		<link>http://case.oncle-tom.net/2010/paris-web-2010-age-de-raison/</link>
		<comments>http://case.oncle-tom.net/2010/paris-web-2010-age-de-raison/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 16:25:22 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[a11y]]></category>
		<category><![CDATA[accessibilité]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[grilles]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[parisweb]]></category>
		<category><![CDATA[qualité]]></category>
		<category><![CDATA[typographie]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[ux]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[yahoo]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=17772</guid>
		<description><![CDATA[Paris Web, rien que d'y penser j'ai déjà envie d'y retourner. Condensé de l'édition 2010, où l'on parlera de typographie, d'innovation, d'architecture, d'outils et d'expérience utilisateur.
Paris Web, c'est LE cycle de conférence sur le webdesign, la qualité et l'accessibilité en France.]]></description>
			<content:encoded><![CDATA[<p><a href="http://paris-web.fr/">Paris Web</a>. Déjà 2 semaines que cet évènement est passé. 1 an à attendre à chaque fois : ça fait long mais au final, l&#8217;attente passe vite. Plus on se rapproche de la prochaine édition, plus le temps file.</p>
<p>Cette année, j&#8217;ai décidé de participer à toutes les conférences qui ne sont pas au cœur de mon activité quotidienne, au sens <em>production</em>. En gros, j&#8217;ai voulu laisser tomber tous les <em>buzzwords</em> et me concentrer sur des compétences et connaissances périphériques à activité. Satisfaire ma curiosité.</p>
<p>Je suis donc arrivé à Paris Web sans avoir regardé le programme, en décidant entre chaque pause le titre de la conférence que j&#8217;allais inscrire sur mon carnet de notes.</p>
<p><a href="http://case.oncle-tom.net/images/2010/09/logotype-paris-web.png"><img class="aligncenter size-medium wp-image-17530" title="Paris-Web" src="http://case.oncle-tom.net/images/2010/09/logotype-paris-web-300x203.png" alt="" width="300" height="203" /></a></p>
<p><span id="more-17772"></span></p>
<h3>L&#8217;ouverture par l&#8217;architecture</h3>
<p>Ce n&#8217;est pas tout à fait vrai : je savais quelle était la <em>première conférence</em> à laquelle j&#8217;allais assister. Graine semée il y a 2 ans, dans le retour en métro de Paris Web 2008. J&#8217;apprenais que <a href="http://arkhi.org/">Fabien Basmaison</a> partait 1 année entière en Chine (ou ailleurs en Asie ?).<br />
Absent de Paris Web 2009, il propose &laquo;&nbsp;<a href="http://www.paris-web.fr/2010/programme/le-web-lespace-public.php">Espace construit et espace virtuel, un retour vers le futur ?</a>&laquo;&nbsp; en guise d&#8217;introduction.</p>
<p>Ou comment ne pas parler de Web mais d&#8217;architecture, de construction et d&#8217;alliage fonctionnel/esthétique.</p>
<p>Il citait d&#8217;ailleurs une phrase que j&#8217;apprécie beaucoup : <q>l&#8217;architecture, c&#8217;est savoir changer d&#8217;échelle, de point de vue</q>. Je me plais à appliquer ce <em>moto</em> au quotidien mais au fond, n&#8217;est-ce pas là une chose essentielle pour toute personne travaillant dans le Web ? Savoir sortir le nez du cambouis, observer ce qui l&#8217;entoure, s&#8217;en inspirer et replonger/changer d&#8217;angle d&#8217;attaque.</p>
<p>L&#8217;architecture, c&#8217;est également <strong>réduire les obstacles</strong> pour obtenir davantage de fluidité, et augmenter le rendement. C&#8217;est la raison d&#8217;être des méthodes agiles, comme <a href="http://www.scrum.org/">scrum</a>. Parce que notre défi, c&#8217;est <a href="http://blog.akei.com/post/1415889011/choisir-son-metier-arreter-de-le-faire-subir">réussir un projet sur une base qui est tout sauf industrialisée</a> (voire industrialisable).</p>
<p>L&#8217;architecture, c&#8217;est <strong>travailler sur un patrimoine</strong>, ensemble, en utilisant l&#8217;existant (cf. <a href="#title-interface">Let&#8217;s Interface!</a>). On ne peut créer un ouvrage sans tenir compte de l&#8217;existant, de l&#8217;environnement ou même de l&#8217;intérêt même du-dit ouvrage. On ne peut décemment pas concevoir un site Web optimisé pour Internet Explorer 6 et une résolution de 1024&#215;748, ce serait juste omettre/nier l&#8217;existence du Web tout entier.</p>
<p>Paris Web est un moment où l&#8217;<strong>on s&#8217;ouvre l&#8217;esprit</strong> : cette conférence était programmée au bon moment, avec le bon intervenant mais surtout avec le bon contenu. Quelque chose qui n&#8217;était pas axée sur le Web. Celui qui replace le Web dans son contexte, celui de l&#8217;inspiration.</p>
<p><strong>Conseil livre</strong> :  de Le Corbusier.</p>
<h3 id="title-interface">Let&#8217;s Interface!</h3>
<p><a href="http://www.wait-till-i.com">Christian Heilmann</a> me fascine littéralement. Il a le don d&#8217;arriver à insuffler ce qu&#8217;il recherche : du fun et de l&#8217;intelligence.<br />
Si je devais résumer cette conférence en une phrase, ça serait la sienne : <q>le Web est un outil, utilisons-le</q>. On ne construit pas pour le Web, on construit <em>avec</em> le Web.</p>
<p>C&#8217;est la transcription parfaite de l&#8217;architecture vers le Web. Tenir compte de l&#8217;existant, des outils, pour construire les siens et arrêter de réinventer la roue.</p>
<p><strong>Les interfaces devraient être des outils faciles à utiliser</strong>, et à comprendre. De l&#8217;accessibilité au sens large en somme.<br />
De quoi insister auprès des clients de ne pas perdre de vue l&#8217;objectif principal ? L&#8217;utilisateur ?</p>
<h3>L&#8217;accessibilité dans une chaîne de production Web</h3>
<p>Quel meilleur moyen de ne pas perdre ses objectifs de vue en effectuant un contrôle qualité, matérialisé par une vérification de l&#8217;accessibilité à <em>toutes</em> les étapes du processus, plutôt qu&#8217;en livraison finale. C&#8217;est le point de vue de <a href="http://twitter.com/dboudreau">Denis Boudreau</a> et de <a href="http://accessibiliteweb.com/">Vincent François</a>.</p>
<p>Pourquoi la fin de chaîne pose problème ? Tout simplement parce qu&#8217;il est (souvent) déjà trop tard, que le coût des modifications en est multiplié mais surtout, c&#8217;est beaucoup plus simple d&#8217;intégrer ça dès le départ.<br />
Si on en revient à l&#8217;architecture, c&#8217;est comme si on mettait des fenêtres à 2 mètres de hauteur et qu&#8217;on se rendait compte à la livraison de la maison que ce n&#8217;est pas accessible car trop en hauteur pour les habitants. Vous vous voyez casser le mur et descendre la fenêtre ?</p>
<p>Leur <a href="http://accessibiliteweb.com/presentations/2010/parisweb/accessibilite-chaine-production/">présentation de l&#8217;accessibilité dans une chaine de production Web</a>, navigable au clavier et à la souris, est équivoque et découpe ces différentes phases au sein du projet :</p>
<ul>
<li>Analyse</li>
<li>Architecture</li>
<li>Ergonomie</li>
<li>Graphisme</li>
<li>Prototypage</li>
<li>Rédaction</li>
<li>Développement</li>
<li>Contrôle qualité</li>
</ul>
<p>Le liant entre ces phases étant la gestion de projet, menée de concert entre la maîtrise d&#8217;oeuvre et la maîtrise d&#8217;ouvrage. Une personne a même très justement souligné qu&#8217;il faudrait ajouter une nouvelle dernière étape, la livraison/maintenance. Pour s&#8217;assurer notamment qu&#8217;à l&#8217;usage, lors de la contribution ou des évolutions de l&#8217;application, l&#8217;accessibilité soit maintenue à niveau.</p>
<p><a href="http://www.flickr.com/photos/nicolas-hoizey/5107972863/"><img class="aligncenter" title="Paris Web Marketing Fail" src="http://farm2.static.flickr.com/1328/5107972863_754420e883.jpg" alt="" width="500" height="333" /></a></p>
<h3>Innover de 9 à 5</h3>
<p>Je m&#8217;intéresse à l&#8217;innovation, pas seulement à la théorie mais également à sa mise en pratique, depuis que je vois passer sous mon nez des projets intéressants mais qui oublient toujours une chose. Les usagers (tiens, on y revient). Un site est réalisé par une entreprise, pour accomplir un but (besoin marketing, nouveau produit ou autre) mais &#8230; la praticité et l&#8217;intérêt de l&#8217;usager, bien souvent, y sont absent ou trop peu représenté.</p>
<p>J&#8217;y reviendrai dans d&#8217;autres articles, par le biais de mes lectures et de mes projets.</p>
<p>Toujours est-il, j&#8217;ai découvert une autre personne de <a href="http://pheromone.ca/">Phéromone</a>, <a href="http://ot.zoy.org/">Olivier Théreaux</a>. Il a présenté de manière méthodique les différents types d&#8217;innovations possibles (<em>business</em>, <em>design</em>, incrémentales, radicales). Leur mélange provoque de l&#8217;efficacité, une amélioration des processus, de nouveaux produits, une découverte de nouveaux besoins et j&#8217;en passe.</p>
<p>Le travail de l&#8217;innovation, ce n&#8217;est pas seulement l&#8217;acquisition de l&#8217;idée : c&#8217;est l<strong>&#8216;art de la faire fructifier</strong>, de la mettre concrètement en oeuvre.<br />
En ce sens, il cite Scott Berkun : <q>les gens ne veulent pas innover, ils veulent avoir innové</q>. N&#8217;avez-vous jamais entendu de client qui vous demandait une application iPhone sans savoir ce qu&#8217;ils voulaient y mettre ? La réponse est dans la citation.</p>
<p>Innover, c&#8217;est <strong>apprendre à échouer</strong>. C&#8217;est admettre que des fautes seront commises et que la réussite se mesure également en terme de ressources : elles doivent être à la mesure des ambitions. L&#8217;amplitude entre les 2 augmente les risques d&#8217;échec.</p>
<p>Olivier soulignait aussi un détail essentiel, qu&#8217;on oublie un peu et qui pourtant caractérise tellement notre métier, notre univers : c&#8217;est la <strong>culture hacker</strong>. <em>Hacker</em> au sens bidouilleur. Celui qui parvient à ses fins en se servant d&#8217;outils à disposition. LE Web est à notre disposition.</p>
<p>Encore une fois, les personnes les plus fascinantes ne sont pas celles qui apportent de nouvelles choses ou qui sont les &laquo;&nbsp;meilleures&nbsp;&raquo;. Mais celles qui apportent un regard différent, de par leur(s) culture(s), leur expérience et leur vécu.</p>
<p><strong>Conseil lecture</strong> :  de Scott Berkun.</p>
<h3>Journey over Destination: creating an effective framework with UX tools</h3>
<p>J&#8217;ai malheureusement été moins attentif sur la conférence de <a href="http://unadorned.org/">Stéphanie Troeth</a> (projet client à régler, à croire que chaque année j&#8217;y coupe pas ;-(). Néanmoins, à la lecture de ses <em>slides</em> pendant sa présentation, une chose m&#8217;avait frappé : tout est clair, limpide et extrêmement synthétique. Sans le son, il y avait de quoi apprendre. C&#8217;est d&#8217;ailleurs comme ça que je me suis aperçu que la méthode employée lors de mon atelier technique (<a href="http://case.oncle-tom.net/2010/paris-web-industrialiser-integration-html/">dont vous pouvez lire l&#8217;annonce </a>; le détail et résumé arrivent) était en fait de l&#8217;<em>interactive design</em>.</p>
<p>L&#8217;expérience utilisateur repose avant tout sur la conception, du site, de l&#8217;outil ou de je ne sais quoi (le concept s&#8217;applique à tout, pas seulement au Web). Encore une fois, l&#8217;<strong>agilité du processus</strong>, la fragmentation des tâches et les contraintes (limites de temps, de fonctionnalités etc.) sont un élément essentiel à la qualité du résultat final.</p>
<p>L&#8217;exemple le plus parlant est celui du curseur : tirer d&#8217;un côté enlève du poids à l&#8217;extrême opposé. De même que parmi la trinité temps, argent, fonctionnalité, on ne peut en conserver que 2. Lesquels choisiriez-vous au moment d&#8217;acter un choix ? Que diraient vos clients ?</p>
<p>Notre conversation en <em>off</em> m&#8217;a confirmé mon intuition : sa présentation représente des mois de réfléxion, au fil de l&#8217;eau. Tiens, ce n&#8217;est pas justement le concept de l&#8217;innovation ? <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><a href="http://www.flickr.com/photos/mauriz/5107657136/"><img class="aligncenter" title="Amphithéâtre IBM à Paris Web" src="http://farm2.static.flickr.com/1139/5107657136_4c4de67512.jpg" alt="" width="500" height="333" /></a></p>
<h3>La typographie comme outil de design</h3>
<p>Encore un petit nouveau à Paris Web : <a href="http://www.davidrault.com/">David Rault</a>. Encore un globetrotter, à croire que ça va devenir un élément déterminant sur le CV <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>La typographie, de mémoire, est un sujet qui a été peu abordé à Paris Web, en tous cas pas lors de conférences. Je m&#8217;y connaissais assez peu et le moins que je puisse en dire, c&#8217;est que je suis resté le regard rivé sur la scène, à noter avec délectation cet enseignement, fort souvent un choix par défaut. <q>On va utiliser quelle typo ? Oh bof, de l&#8217;Arial ou du Verdana</q>.</p>
<p>Quelques explications sur la classification typographique, et hop, tout devient plus clair quant aux termes serif, sans-serif, linéales, humanes, garaldes, romaines etc. Je ne paraphraserai pas cette classification.</p>
<p>En revanche, retour à l&#8217;architecture, c&#8217;est tout le <strong>bagage culturel</strong> que les polices de caractères véhiculent. Sans oublier leur base historique et sociale. Je n&#8217;imaginais pas utiliser sur un ordinateur une police datant du XVI<sup>ème</sup> siècle, considérée comme parfaite.</p>
<p>En considérant que le Web, c&#8217;est 95% de typographie (ce que l&#8217;on lit), ce n&#8217;est clairement pas le choix banal que l&#8217;on a l&#8217;habitude de faire, ou de subir. Je rajoute cette notion aux indispensables à réunir pour réussir un projet, par le biais de la communication écrite.</p>
<p><strong>Conseil lecture</strong> : de David Rault.</p>
<h3>La macrotypographie de la page Web</h3>
<p>On reste dans l&#8217;univers de la communication visuelle avec <a href="http://lasoeurkaramazov.net/">Anne-Sophie Fradier</a>. L&#8217;occasion d&#8217;ailleurs de me rendre compte que j&#8217;avais déjà lu son blog auparavant, et que je le découvre juste maintenant, à l&#8217;occasion de la rédaction de cet article <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  Le Web est petit et on se connait plus facilement en avatar en fin de compte.</p>
<p>Macrotypographie vous dites ? Il s&#8217;agit de concevoir la typographie au niveau du paragraphe, de la page, par le biais de grilles, de colonnes, leur ratio etc. C&#8217;est forcément une personne bien puisque les grilles, elle adore et en mange au petit-déjeuner mais surtout, a eu une réponse extra à ma question (oui j&#8217;ai posé beaucoup de questions, je sais <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) : <q>les grilles apportent-elles une contrainte qui brident la créativité ?</q><br />
Réponse : non, bien au contraire, <strong>il faut des contraintes pour développer la créativité</strong>. Elles agissent comme un guide.</p>
<p>Le rapport permanent du livre au Web était très intéressant. On a tendance à opposer print au Web, moi le premier &#8230; et finalement, elle considère que la page Web se rapproche du <em>volumen</em> (les rouleaux de papier, utilisé pour la Torah notamment).<br />
Plus amusant encore, tout ce qui concerne la typographie a déjà été inventé &#8230; par les moines. Enluminures, marges, blocs de lecture etc.</p>
<p>Un <strong>regard rafraîchissant</strong> de plus sur la manière de concevoir et d&#8217;architecturer nos contenus, nos sites et nos applications.</p>
<p><strong>Conseil lecture</strong> : de Josef Muller-Brockmann.</p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/nicolas-hoizey/5108562588/"><img class="  " title="La croix au rouge français" src="http://farm2.static.flickr.com/1153/5108562588_7a9d7e59d8.jpg" alt="" width="500" height="333" /></a><p class="wp-caption-text">La crois au rouge français</p></div>
<h3>Conclusion</h3>
<p>Alors, pourquoi avoir titré mon article l&#8217;âge de la raison ? Parce qu&#8217;en plus de partager notre amour du Web, les intervenants de Paris Web, les organisateurs, mais aussi les participants, ont réussi à démontrer qu&#8217;on n&#8217;était plus que dans la diffusion d&#8217;informations à coup de slides.<br />
Non, on était dans la <strong>création</strong>.</p>
<p>L&#8217;âge de la raison parce que finalement, le fond de <strong>cette édition était basé sur les réflexions</strong>. Qui sommes-nous ? Comment valoriser nos compétences ? Comment dialoguer avec le client ? Comment dire que la qualité ce n&#8217;est pas une option (pas la nôtre) ? Comment faire un site Web standard et un site Web mobile en un seul développement ?</p>
<p>L&#8217;âge de la raison car les <strong>processus </strong>de création et les <strong>enjeux métier</strong> étaient au centre des réflexion. Et qu&#8217;on n&#8217;a d&#8217;ailleurs toujours pas une réponse claire. L&#8217;argumentation va s&#8217;étoffer avec le temps, je n&#8217;en doute pas.</p>
<p>Je remercie chaleureusement les organisateurs d&#8217;avoir si bien <strong>réussi </strong>la programmation. Cette matinée typographie est un vent de fraîcheur qu&#8217;il faut continuer à pousser, pour aborder le <em>webdesign</em> d&#8217;un angle peu pratiqué jusqu&#8217;à présent.<br />
L&#8217;expérience de la <a href="http://fr.wikipedia.org/wiki/V%C3%A9lotypie">vélotypie </a>et de la traduction simultanée (et les 2 en même temps) était excellente. Je découvrais l&#8217;effervescence d&#8217;un organisateur des RMLL se demandant comment mettre en place un tel système.</p>
<p>Je terminerai malgré tout par quelques critiques, car on peut toujours progresser :</p>
<ul>
<li>HTML5 c&#8217;est sympa, il faut aller vers du concret, au-delà des balises section, header etc. La démo de Paul Rouget cassait la baraque car elle <strong>apportait ce qu&#8217;il manquait</strong> jusque là : la concrétisation au-delà du <em>slide</em> ;</li>
<li>le <strong>mobile </strong>a quasiment disparu de la programmation alors que l&#8217;an dernier, on sentait que c&#8217;était le sujet de toutes les interrogations</li>
<li>les conférences sur le <strong>contenu</strong>, leur rédaction me font trop souvent penser à des cours de référencement naturel de bas étage (je suis dur, j&#8217;assume)</li>
</ul>
<p>Encore une fois, rendez-vous de pris pour l&#8217;année prochaine, à savoir en 2011 &#8230; à moins qu&#8217;un <strong>Sud Web</strong> se glisse entre temps dans le calendrier ? <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><strong>Remarque</strong> : j&#8217;oublie plein de choses, plein de personnes (Ryan, toute la <em>famille</em> avec Frank, N1k0 etc.) &#8230; dur dur de tout caser en 1 billet ;-(</p>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2010/paris-web-2010-age-de-raison/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Paris-Web 2008 : au nom du webdesign, de la qualité et des standards</title>
		<link>http://case.oncle-tom.net/2008/paris-web-2008-webdesign-qualite-standards/</link>
		<comments>http://case.oncle-tom.net/2008/paris-web-2008-webdesign-qualite-standards/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 06:00:13 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[bonnes pratiques]]></category>
		<category><![CDATA[ergonomie]]></category>
		<category><![CDATA[logiciels libres]]></category>
		<category><![CDATA[paris]]></category>
		<category><![CDATA[parisweb]]></category>
		<category><![CDATA[performances]]></category>
		<category><![CDATA[pw2008]]></category>
		<category><![CDATA[qualité]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1203</guid>
		<description><![CDATA[J&#8217;ai enfin pu assister à mon premier Paris-Web à Paris du 13 au 15 novembres 2008 inclus. C&#8217;était bien, très bien mais que dis-je : excellent ! J&#8217;ai rarement eu aussi peu envie de rentrer chez moi après cette multitude de rencontres dans un état d&#8217;esprit des plus respectueux. Y&#8217;a même pas de troll pendant [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1204" title="Badge Paris-Web 2008" src="http://case.oncle-tom.net/images/2008/11/badge-paris-web-2008.jpg" alt="" width="327" height="500" /></p>
<p>J&#8217;ai <em>enfin</em> pu assister à mon premier <a href="http://www.paris-web.fr/">Paris-Web</a> à Paris du 13 au 15 novembres 2008 inclus. C&#8217;était bien, très bien mais que dis-je : excellent ! J&#8217;ai rarement eu aussi peu envie de rentrer chez moi après cette multitude de rencontres dans un état d&#8217;esprit des plus respectueux.</p>
<p>Y&#8217;a même pas de troll pendant la conférence <em>Internet Explorer 8</em>, c&#8217;est dire.</p>
<p><span id="more-1203"></span></p>
<h3>Les conférences en quelques mots</h3>
<p>Les <a href="http://www.paris-web.fr/2008/-programme-">conférences de Paris-Web 2008</a> étaient réparties du jeudi au vendredi. Je souhaitais intituler cette partie &laquo;&nbsp;mes conférences préférées&nbsp;&raquo; mais en faisant le décompte, j&#8217;en citerais au moins 75% :</p>
<ul>
<li><a href="http://www.slideshare.net/elirene/sp-parisweb2008-20081113-presentation/">Qualité et accessibilité Web : vers l’amélioration continue</a></li>
<li><a href="http://www.slideshare.net/cheilmann/working-in-the-now-presentation">Travailler dans le présent</a></li>
<li><strong>Accessibilité, des volontaires ?</strong></li>
<li>Internationalisation</li>
<li><strong>La mode se démode, le &lt;style&gt; jamais</strong></li>
<li>Identité 2.0 et Web sémantique</li>
<li>IE8 et les standards du Web</li>
<li><strong>Performances côté client</strong></li>
</ul>
<div class="wp-caption aligncenter" style="width: 344px"><a class="tt-flickr tt-flickr-Medium" title="Stéphane Deschamps" href="http://www.flickr.com/photos/the-jedi/3034676683/"><img src="http://farm4.static.flickr.com/3237/3034676683_5eedcfdbb4.jpg" alt="Stéphane Deschamps" width="334" height="500" /></a><p class="wp-caption-text">Stéphane Deschamps</p></div>
<p>Ce qu&#8217;il faut retenir c&#8217;est que désormais, nous sommes dans une époque où nombre d&#8217;outils sont à notre disposition. Il faut <strong>maximiser l&#8217;utilisation d&#8217;outils déjà existants</strong> et s&#8217;en servir pour bâtir nos applications, interfaces et présentations.</p>
<p>Il faut également qu&#8217;on en finisse avec notre approche trop technique et intégriste de travailleurs du Web : <strong>le client se fiche éperdument de la techno employée</strong> ou de la fonctionnalité en elle-même. Ce qui compte c&#8217;est ce qu&#8217;elle apporte ainsi que le résultat final.<br />
Bien entendu, si la solution employée tient compte des performances et est facile à mettre en œuvre, c&#8217;en n&#8217;est que mieux.</p>
<p>Élie me faisait la remarque : <strong>il faut vendre de la qualité et pas de l&#8217;accessibilité</strong>. Il faut vendre un site qui rassure et guide le client. Si le site n&#8217;est déjà pas adapté aux individus sans déficiences, à quoi bon s&#8217;acharner à le rendre accessible ?<br />
Mieux vaut beaucoup de sites accessibles à 60% qu&#8217;une infime proportion de sites accessibles à 99%.</p>
<p>Bon nombre de conseils sur l&#8217;optimisation des sites Web étaient déjà cités dans l&#8217;excellentissime <a href="http://case.oncle-tom.net/2008/07/15/high-performance-web-sites/">livre High Performances Websites</a>. L&#8217;équipe <em>Exceptional Performance</em> de Yahoo! s&#8217;est toutefois penchée à fond sur l&#8217;optimisation des images.<br />
J&#8217;y reviendrai d&#8217;ailleurs car j&#8217;ai découvert <em>pngnq</em> et <em>pngcrush</em>. Ces 2 programmes sont d&#8217;une utilité redoutable pour compresser et optimiser vos <acronym title="Portable Network Graphics">PNG</acronym>, notamment pour faciliter la transparence <acronym title="Internet Explorer 6">IE6</acronym> sans douleur.</p>
<div class="wp-caption aligncenter" style="width: 348px"><a class="tt-flickr tt-flickr-Medium" title="Chris Wilson" href="http://www.flickr.com/photos/the-jedi/3043455147/"><img src="http://farm4.static.flickr.com/3135/3043455147_016c2baa1d.jpg" alt="Chris Wilson" width="338" height="500" /></a><p class="wp-caption-text">Chris Wilson</p></div>
<p>On terminera également avec une perspective du futur.<br />
Daniel Glazman a fait un show exceptionnel sur les <strong>nouveautés de CSS3</strong> avec tout plein de bonnes choses. J&#8217;ai vraiment hâte qu&#8217;on puisse jouer avec &#8230; peut-être dans pas si longtemps que ça vu que les navigateurs intègrent ces nouveautés par anticipation.</p>
<p>De son côté, Chris Wilson (qui faisait déjà partie de l&#8217;équipe de développement de Mozaïc) a abordé les standards et Internet Explorer 8. En toute honnêteté, j&#8217;admire la bravoure de cet homme &laquo;&nbsp;seul&nbsp;&raquo; face à une assemblée pro-standards qui passe sa journée à jeter des cailloux sur Internet Explorer.<br />
Pour avoir un peu discuté avec lui après coup, il représente une chance exceptionnelle d&#8217;enfin avoir Internet Explorer au niveau des autres navigateurs.</p>
<p>Si fonctionnellement je me fiche éperdument du navigateur puisque je ne l&#8217;utiliserai plus, le monde a tout à gagner à avoir <strong>un navigateur de plus à respecter les standards</strong>.<br />
Bon courage à Chris car ça ne doit pas être évident tous les jours pour lui. Je n&#8217;ose pas imaginer les montages qu&#8217;il a dû déplacer pour imposer ce choix du respect.</p>
<h3>Du côté des ateliers</h3>
<p>Le samedi c&#8217;était ateliers : 2 sessions le matin et 2 l&#8217;après-midi. Je me suis d&#8217;ailleurs vite retrouvé avec des choix cornéliens puisque pour chaque horaire, il y avait 5 sujets qui se faisaient concurrence.</p>
<p>J&#8217;ai pour ma part assisté à :</p>
<ul>
<li><a href="http://www.paris-web.fr/2008/-samedi-15-novembre-technique-#hcalendar-Paris-Web_2008-15_novembre_2008-atelier-redaction_et_referencement_naturel">Rédaction Web et référencement naturel</a></li>
<li><a href="http://www.paris-web.fr/2008/-samedi-15-novembre-technique-#hcalendar-Paris-Web_2008-15_novembre_2008-atelier-validation_formulaires">Validation avancée des formulaires</a></li>
<li><a href="http://www.paris-web.fr/2008/-samedi-15-novembre-technique-#hcalendar-Paris-Web_2008-15_novembre_2008-atelier-frameworks_CSS">Développement efficace avec les <span lang="en">frameworks <acronym title="Cascading Style Sheet"><acronym title="Cascading Style Sheets">CSS</acronym></acronym></span></a></li>
<li><a href="http://www.paris-web.fr/2008/-samedi-15-novembre-technique-#hcalendar-Paris-Web_2008-15_novembre_2008-atelier-rdf_vs_microformats"><acronym title="Resource Description Framework" lang="en"><acronym title="Resource Description Framework">RDF</acronym></acronym>a <abbr class="discret" title="versus" lang="en">vs</abbr> Microformats</a></li>
</ul>
<p>La <strong>rédaction Web était intéressante</strong> même si je n&#8217;ai pas appris grand chose et j&#8217;en profitais pour terminer mes <em>slides</em>. Vous retrouverez tout le contenu de cette présentation dans le livre <a href="http://case.oncle-tom.net/2008/01/08/ecrit-web-traitement-information-sur-internet/">l&#8217;écrit Web</a>.</p>
<p>La <strong>validation avancée des formulaires partait d&#8217;un bon principe</strong> mais s&#8217;enfonçait inutilement dans certaines parties. À mon avis, expliquer chaque fonction (y compris celles du <acronym title="Document Object Model">DOM</acronym>) était une perte de temps.<br />
Conseil : charger ses slides ne rend pas pour autant l&#8217;information digeste. C&#8217;est pas un document Word.<br />
C&#8217;était néanmoins intéressant pour le raisonnement et la satisfaction de mettre en place son propre validateur. Toutefois en production autant utiliser de l&#8217;existant. Il y a des <em>plugins</em> pour tous les bons frameworks JavaScript qui se respectent.</p>
<p>Je passe sur l&#8217;atelier des <strong>frameworks <acronym title="Cascading Style Sheets">CSS</acronym></strong> puisque je l&#8217;animais. J&#8217;y reviendrai dans un prochain article pour appuyer ma présentation et fournir des explications à ceux qui n&#8217;ont pas pu y assister.<br />
J&#8217;étais en revanche étonné qu&#8217;ils soient si peu connus. J&#8217;ai par contre été enchanté de les voir cités à plusieurs reprises dans mes conférences préférées <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Rien à redire sur <strong>RDFa vs. Microformats</strong> même si on aurait pu éjecter les microformats rapidements et plonger encore plus loin dans la pratique de RDFa. Ça sera prétexte à une suite plus technique l&#8217;an prochain <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div class="wp-caption aligncenter" style="width: 510px"><a class="tt-flickr tt-flickr-Medium" title="Amélie Boucher" href="http://www.flickr.com/photos/the-jedi/3035518848/"><img src="http://farm4.static.flickr.com/3175/3035518848_5670eddbfa.jpg" alt="Amélie Boucher" width="500" height="334" /></a><p class="wp-caption-text">La sublime Amélie Boucher</p></div>
<h3>Sans oublier les gens !</h3>
<p>Paris-Web c&#8217;est aussi l&#8217;occasion de <a href="http://www.biologeek.com/2008/11/paris-web-2008-retours-chaud/">rencontrer la moitié de son aggrégateur</a> et de ses <em>followers</em> Twitter <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Et Dieu sait s&#8217;il y avait tout un tas de pointures du Web à notre disposition dans une ambiance exceptionnellement cordiale :</p>
<ul>
<li>Sophie Major, big boss du Yahoo! Developer Network</li>
<li><a href="http://www.stubbornella.org/">Nicole Sullivan</a>, de l&#8217;équipe Yahoo! <em>Exceptional Performance</em></li>
<li><a href="http://www.wait-till-i.com/">Christian Heilmann</a> et son incroyable bonne humeur pragmatique ; je suis fan !</li>
<li><a href="http://glazman.org">Daniel Glazman</a>, du <acronym title="Cascading Style Sheets">CSS</acronym> Working Group ; franc, direct et j&#8217;aime ça</li>
<li>Sans oublier pêle-mêle <a href="http://www.sutekidane.net/">Than</a>, <a href="http://www.tentatives-accessibles.eu">Sébastien Delorme</a>, <a href="http://blog.webatou.info/">Monique</a>, <a href="http://www.jeuxdemaux.com/">La Lène</a>, <a href="http://www.ergolab.net">Amélie Boucher</a>, <a href="http://redisdead.net">Hellgy</a>, <a href="http://goetter.fr">Raphaël Goetter</a>, <a href="http://openweb.eu.org/">Fabrice Bonny</a>, <a href="http://www.netvibes.com/znarf">François Hodierne</a>, <a href="http://xavier.borderie.net/blog/">Xavier Borderie</a> &#8230; et en oubliant très certainement plein d&#8217;autres :&#8217;(</li>
<li>Et d&#8217;excellentes découvertes : <a href="http://hanblog.info/blog/">Anthony Ricaud</a>, <a href="http://blog.virgule.info/">Mathieu Pillard</a> et toute l&#8217;<strong>équipe Paris-Web</strong> !</li>
</ul>
<div class="wp-caption aligncenter" style="width: 510px"><a class="tt-flickr tt-flickr-Medium" title="Table ronde du jeudi" href="http://www.flickr.com/photos/the-jedi/3034679191/"><img src="http://farm4.static.flickr.com/3270/3034679191_d551c06a85.jpg" alt="Table ronde du jeudi" width="500" height="334" /></a><p class="wp-caption-text">La brochette des meilleurs !</p></div>
<h3>Conclusion</h3>
<p>Bref, <strong>Paris-Web c&#8217;est bien</strong>. Tellement bien que l&#8217;attente de l&#8217;édition 2009 me paraît déjà insoutenable !</p>
<p>Je ne regrette au final qu&#8217;une chose : 3 jours ça paraît long mais ça passe teeeeeeeeeeeeellement vite en compagnie de personnes de qualité avec un programme chargé.<br />
J&#8217;ai essayé de discuter avec un maximum de personnes, que je connaissais ou pas, mais des fois c&#8217;est très insuffisant.</p>
<p>Les tables rondes étaient également exceptionnelles &#8230; désolé ça frise le billet sponsorisé mais il est difficile de ne pas déborder d&#8217;enthousiasme après un tel évènement.</p>
<p>C&#8217;est l&#8217;<strong>effet Paris-Web</strong>. Rendez-vous est pris.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="François Yergeau nous parle d'internationalisation" href="http://www.flickr.com/photos/the-jedi/3039040472/"><img class="aligncenter" src="http://farm4.static.flickr.com/3020/3039040472_65bfdecfbd.jpg" alt="François Yergeau nous parle d'internationalisation" width="500" height="334" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/paris-web-2008-webdesign-qualite-standards/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>L&#8217;annuaire Service-Public (r)évolue !</title>
		<link>http://case.oncle-tom.net/2008/annuaire-service-public-evolue/</link>
		<comments>http://case.oncle-tom.net/2008/annuaire-service-public-evolue/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 05:00:55 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[critique]]></category>
		<category><![CDATA[redirection]]></category>
		<category><![CDATA[utilisabilité]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1192</guid>
		<description><![CDATA[Je suis tombé nez à nez sur l&#8217;annuaire des sites Internet publics la semaine dernière en cherchant l&#8217;adresse de la CPAM de Gironde. Il se trouve que la page de cette dite organisation était affublée d&#8217;un message explicite &#8230; ou en fait pas vraiment. Ou comment un message partant d&#8217;un bon sentiment peut ruiner une [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1200" title="Logo Service-public.fr" src="http://case.oncle-tom.net/images/2008/11/service_public.jpg" alt="" width="228" height="51" /></p>
<p>Je suis tombé nez à nez sur l&#8217;<a href="http://lessites.service-public.fr/">annuaire des sites Internet publics</a> la semaine dernière en cherchant l&#8217;adresse de la <acronym title="Caisse Primaire d\'Assurance Maladie">CPAM</acronym> de Gironde. Il se trouve que <a title="CPAM de Gironde sur l'annuaire des sites Internet publics" href="http://lessites.service-public.fr/cgi-bin/annusite/annusite.fcgi/loc7?lang=fr&amp;orga=11712">la page de cette dite organisation</a> était affublée d&#8217;un message explicite &#8230; ou en fait pas vraiment.</p>
<p>Ou comment un message partant d&#8217;<strong>un bon sentiment peut ruiner une navigation</strong>.</p>
<p><span id="more-1192"></span></p>
<h3>Manque de clarté du message</h3>
<p>Voici la disposition de l&#8217;alerte une fois sur la fiche de l&#8217;organisation recherchée :</p>
<div id="attachment_1193" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-1193" title="Message d'alerte de Service-public.fr" src="http://case.oncle-tom.net/images/2008/10/cpam-gironde-service-public.png" alt="Message d'alerte de Service-public.fr" width="500" height="352" /><p class="wp-caption-text">Message d&#39;alerte de Service-public.fr</p></div>
<p>On est sur du simple et direct : message puis information recherchée.</p>
<p>Le problème c&#8217;est qu&#8217;on est confronté à plusieurs messages :</p>
<ul>
<li><cite>la partie locale de l&#8217;annuaire va fermer.</cite><br />
Suis-je sur la partie locale ? Je proviens d&#8217;une recherche Google et franchement, je n&#8217;en sais rien. Un petit &laquo;&nbsp;locaux&nbsp;&raquo; en rouge aurait tendance à me le faire croire.<br />
Résultat des courses : j&#8217;ai eu besoin de chercher à vérifier si j&#8217;étais concerné par le message.</li>
<li><cite>Elle est remplacée par l&#8217;annuaire de l&#8217;administration / services locaux.</cite><br />
Le premier message vraiment utile est là : cette partie va être remplacée et j&#8217;ai un lien d&#8217;accès à la nouvelle ressource.</li>
<li><strong>Les mises à jour ne sont plus effectuées.</strong><br />
Donc si je comprends bien, je suis en train de consulter des données sans aucune garantie qu&#8217;elles soient encore fiables. Autant dire que je n&#8217;ai qu&#8217;un seul intérêt : me rendre sur le site de remplacement.<br />
Un effort cognitif de plus.</li>
<li><strong>Un message d&#8217;information pour les administrations locales.</strong><br />
Est-ce ce message concerne l&#8217;utilisateur lambda ? Pas vraiment. Surcharge de texte inutile sauf s&#8217;il n&#8217;y a aucun autre moyen d&#8217;avertir ces fameuses administrations locales de mettre à jour leurs procédures.</li>
</ul>
<p>L&#8217;information principale se retrouve noyée dans la masse et laisse à penser qu&#8217;on n&#8217;aura pas les informations souhaitées sur la page courante.</p>
<p>Alors soit, cliquons sur le <a href="http://lannuaire.service-public.fr/navigation/accueil_sl.html">seul lien de rechange que l&#8217;on ait</a>.</p>
<h3>Perte de l&#8217;information et de la navigation</h3>
<p>Je pense qu&#8217;en terme de perte d&#8217;information de substitution, <em>on ne peut pas faire pire</em> (sauf à avoir un lien cassé).</p>
<p>En effet, alors que j&#8217;étais sur une page d&#8217;information très précise, je reviens au point de départ : l&#8217;échelle nationale sans aucun repère.<br />
En clair :</p>
<ul>
<li><em>j&#8217;ai perdu l&#8217;information</em> dont j&#8217;étais en possession</li>
<li><em>je dois à nouveau la retrouver</em> dans une disposition différente de l&#8217;origine</li>
</ul>
<p>La bonne chose à faire serait de taper à nouveau ma recherche (<em><acronym title="Caisse Primaire d\'Assurance Maladie">CPAM</acronym> gironde</em>) dans le champ de saisie mais préférant la facilité, j&#8217;use de la carte de France et clique sur la région Aquitaine.</p>
<p>Enfer et damnation, je dois retrouver la <acronym title="Caisse Primaire d\'Assurance Maladie">CPAM</acronym> dans une liste à 5 niveaux de défilement. 2 solutions :</p>
<ul>
<li>cliquer sur un département : l&#8217;affichage de la longue liste se retrouve filtré au département en question. À nouveau recherche de l&#8217;information.</li>
<li>scanner la page pour y trouver ce que je veux. Heureusement que l&#8217;occurence <acronym title="Caisse Primaire d\'Assurance Maladie">CPAM</acronym> est affichée, ce qui m&#8217;évite d&#8217;avoir à tout lire.</li>
</ul>
<p>Et comme si je n&#8217;avais pas assez cherché, je me retrouve confronté à un choix difficile : choisir parmi 8 liens hypertexte au même libellé. Jugez-en par vous-même :</p>
<div id="attachment_1194" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-1194" title="Quel lien choisir ?" src="http://case.oncle-tom.net/images/2008/10/liste-cpam-gironde.png" alt="Quel lien choisir ?" width="500" height="255" /><p class="wp-caption-text">Quel lien choisir ?</p></div>
<p>Le pifomètre m&#8217;a fait cliquer sur le premier des 8 liens et coup de bol &#8230; c&#8217;est bon.</p>
<p>J&#8217;ai désormais l&#8217;information souhaitée &#8230; différente de la page initiale sur le futur-ex annuaire local de Service-public.fr. Mais après combien de manipulations et de réflexion ?</p>
<h3>Conclusion</h3>
<p>Trop de manipulations c&#8217;est certain. Résumons les erreurs principales :</p>
<ul>
<li>présentation d&#8217;un message peu clair</li>
<li>renvoi vers une page détruisant l&#8217;information en notre possession</li>
<li>obligation de rechercher à nouveau l&#8217;information en notre possession</li>
</ul>
<p>Cela aurait pu être évité par l&#8217;un de ces 2 moyens :</p>
<ul>
<li><strong>redirection automatique permanente.</strong><br />
On ne voit pas de message, on tombe directement sur une information à jour et on ne perd pas un seul instant. La meilleure solution et de loin.</li>
<li><strong>afficher un message plus clair avec un hyperlien direct vers la ressource de remplacement.</strong><br />
C&#8217;est un chouilla moins bien mais si on tient vraiment à faire passer un message, c&#8217;est très bien.</li>
</ul>
<p>Avec la méthode présentée, on a un peu l&#8217;impression de faire le boulot à la place des mainteneurs du site. Est-ce vraiment si pratique ?</p>
<p><strong>L&#8217;accessibilité passe aussi par une présentation réduisant les efforts cognitifs</strong>. Et ça ne vaut pas que pour des personnes handicapées, ça vaut également pour des utilisateurs peu avertis du Web, pour votre référencement mais aussi pour le simple respect de votre clientèle.</p>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/annuaire-service-public-evolue/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuration optimale, délire maximal</title>
		<link>http://case.oncle-tom.net/2008/configuration-optimale-delire-maximal/</link>
		<comments>http://case.oncle-tom.net/2008/configuration-optimale-delire-maximal/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 05:00:19 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[carton rouge]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[critique]]></category>
		<category><![CDATA[ooshop]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[twitter]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1159</guid>
		<description><![CDATA[Hier Sébastien Delorme s&#8217;est fendu d&#8217;un petit twit qui m&#8217;a fait sourire sur le site de vente en ligne Ooshop. Cependant après réflexion, je me suis dis que c&#8217;était particulièrement grave. En 2008 on vous demande encore de venir en smoking sur un site Web et qui plus est, avec des recommandations liées à des [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1162" title="Site optimisé pour ..." src="http://case.oncle-tom.net/images/2008/10/site-optimise-pour.png" alt="" width="500" height="58" /></p>
<p>Hier <a href="http://www.tentatives-accessibles.eu/">Sébastien Delorme</a> s&#8217;est <a href="http://twitter.com/sebcbien/statuses/948211570">fendu d&#8217;un petit twit</a> qui m&#8217;a fait sourire sur le site de vente en ligne <a href="http://ooshop.fr">Ooshop</a>. Cependant après réflexion, je me suis dis que c&#8217;était particulièrement grave.</p>
<p>En 2008 on vous demande encore de venir en smoking sur un site Web et qui plus est, avec des recommandations liées à des logiciels <span style="text-decoration: line-through;">périmés, à savoir Internet Explorer 6 et Firefox 1.5</span> à jour (<a href="http://case.oncle-tom.net/2008/10/07/configuration-optimale-delire-maximal/#comment-27861">le site a été mis à jour suite à cet article</a>).</p>
<p>Entrevue d&#8217;une configuration optimale tout sauf accessible et acceptable.</p>
<p><span id="more-1159"></span></p>
<p>Avant toute chose, prenez connaissance de cette <a title="la configuration optimale selon Ooshop" href="http://www.ooshop.com/Content/FR/PreHome/Conf.html">fameuse configuration optimale</a>. Y&#8217;aurait de quoi écrire une thèse dessus.</p>
<h3>Navigateur optimal</h3>
<blockquote><p>Ooshop recommande d&#8217;utiliser               la résolution d&#8217;écran suivante : 1024&#215;768.</p>
<p>Ooshop recommande pour une navigation optimale d&#8217;utiliser les navigateurs               suivants :</p>
<p><strong>Pour PC :</strong><br />
Internet Explorer 6 &#8211; <a class="ooshop11BUgreen1" href="http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/EN-US/ie6setup.exe">Télécharger</a><br />
Firefox 1.5 &#8211; <a class="ooshop11BUgreen1" href="http://www.mozilla-europe.org/fr/products/firefox/">Télécharger</a></p>
<p><strong>Pour Mac :</strong><br />
Firefox 1.5 &#8211; <a class="ooshop11BUgreen1" href="http://www.mozilla-europe.org/fr/products/firefox/">Télécharger</a><br />
Safari 2.0.3 &#8211; Ce navigateur est installé par defaut par               Apple</p>
<p>Les navigateurs Konqueror, Opéra, Avant Browser ne sont pas               encore entièrement compatibles sur notre site.</p></blockquote>
<p>Tout est critiquable mais je suis joueur.</p>
<p><strong>La résolution optimale, je pense qu&#8217;à peu près tout le monde s&#8217;en fiche</strong> :</p>
<ul>
<li>ceux qui ont la bonne résolution n&#8217;en auront que faire (et je les comprends)</li>
<li>ceux qui n&#8217;ont pas la bonne &#8230; et bien ils s&#8217;en apercevront et surtout, que peuvent-ils faire ?</li>
</ul>
<p>Combien de personnes ont diminué leur résolution pour cause de problème de vision ? Vont-ils augmenter la résolution uniquement parce que ça a été voulu sur ce site Web ? C&#8217;est un peu comme si en allant au supermarché on regardait la taille de votre coffre de voiture en refoulant tous les possesseurs de Smart.<br />
<strong>Personne ne le fera, faut arrêter de rêver</strong>. Et surtout si les personnes ne savent pas régler leur résolution (tant et si bien que ça leur parle).</p>
<p>Plusieurs cas de figure :</p>
<ul>
<li>si on a vraiment besoin de ces 1024, on s&#8217;arrange pour placer au moins la navigation principale dans la partie qui sera toujours visible sans avoir à scroller horizontalement</li>
<li>ou alors on opte pour un <a href="http://css.alsacreations.com/Tutoriels-et-articles-divers/Faire-un-site-pour-toutes-les-resolutions">site à largeur variable, fluide ou élastique</a></li>
</ul>
<p>Et pour le navigateur ? J&#8217;ai un PC mais je ne comprends pas, je ne peux pas avoir Internet Explorer 6 dessus. Ah je suis sous Linux ? Je comprends pas pourquoi je ne me sens pas concerné.<br />
Hé les gars : faut faire la différence entre Windows (système verrouillé par conception) et <a href="http://fr.wikipedia.org/wiki/Compatible_PC">PC</a> (architecture basée sur x86, dont les Mac feraient même partie aujourd&#8217;hui si on reste large).</p>
<p>Et à côté de ça on me cite Konqueror, un des navigateurs avec les plus faibles part de marché (et compatible Linux uniquement). Y&#8217;a franchement de quoi se marrer.</p>
<p><strong>Solution</strong> : virer ce bout de texte et opter pour un code compatible avec des navigateurs modernes, d&#8217;Internet Explorer 7 à Safari en passant par Firefox.</p>
<h3>Configuration optimale</h3>
<p>J&#8217;adore ce genre de pots-pourris façon Internet de la bulle Internet des années 2000. Et vas-y qu&#8217;y a du <em>simple pixel gif</em> et que je te parle de ce qu&#8217;il faut configurer sans image aucune (ben ouais, c&#8217;est pas optimisé les images).</p>
<p>La configuration des cookies est tellement bien expliquée, à tel point qu&#8217;on te dit :</p>
<ul>
<li>que ça ne fait «que» mémoriser des informations</li>
<li>que ça ne permet pas de lire des informations sur le disque dur (à moitié vrai, les cookies c&#8217;est pas sur le disque ?)</li>
<li>mais qu&#8217;à côté de ça, ça permet de créer une base de données sur les visiteurs (c&#8217;est beau la transparence ceci dit)</li>
<li>et surtout le plus fun, que les <strong>cookies sont gérés automatiquement</strong> par les sites de commerce électronique</li>
</ul>
<p>Alors 2 possibilités :</p>
<ul>
<li>Ooshop n&#8217;est pas un site de commerce électronique, ce qui explique la procédure de configuration des cookies expliquées juste en-dessous</li>
<li>Ooshop se fiche éperdument de la tête de ses visiteurs et compte sur leur aptitude à ne pas lire cette même pas (et là ils ont raison, personne ne la lit/lira/a lu)</li>
</ul>
<p>Mon conseil : <strong>vérifier que les cookies sont activés sur le navigateur</strong>. C&#8217;est pas comme si on pouvait le faire de manière automatique mais presque &#8230; En cas d&#8217;erreur, lui présenter en image les manipulations à effectuer sur son navigateur.<br />
À quoi bon parler de la configuration d&#8217;Internet Explorer si on utilise Konqueror &#8230;</p>
<p>Je passe également le volet sur le <acronym title="Secure Sockets Layer">SSL</acronym>. Quand on vient faire des courses, c&#8217;est certainement pas pour prendre des cours de crypto. J&#8217;entends déjà mon médecin m&#8217;expliquer que les données sur ma carte Vitale sont accessibles car non protégées lors d&#8217;une visite médicale.<br />
<a href="http://fr.wikipedia.org/wiki/Carte_Vitale#Big_Brother_Awards">Ah non pardon, ça c&#8217;est vrai</a>.</p>
<h3>Conclusion</h3>
<p>Au lieu de s&#8217;évertuer à pondre une pleine page en <em>popup</em> pour expliquer comment paramétrer un navigateur dans un language peu compréhensible, il faudrait glisser du <em>il faut</em> à <em>nous allons</em>.<br />
Oui, <strong>optimiser au lieu d&#8217;expliquer</strong> comment optimiser son navigateur pour un site donné.</p>
<p>Imaginez qu&#8217;on doive paramétrer son butineur favori/imposé pour chaque site.<br />
C&#8217;est le reflet d&#8217;une mauvaise conception ou d&#8217;un vice assumé.</p>
<p>Je n&#8217;aurais qu&#8217;une chose à dire, le slogan d&#8217;Ooshop, il est parfait !</p>
<div id="attachment_1161" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-1161" title="Ooshop, la vie optimisée" src="http://case.oncle-tom.net/images/2008/10/ooshop-vie-optimise.png" alt="Je te le fais pas dire" width="500" height="54" /><p class="wp-caption-text">Je te le fais pas dire ...</p></div>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/configuration-optimale-delire-maximal/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>colorblind-applet : des filtres pour daltonien sous Linux</title>
		<link>http://case.oncle-tom.net/2008/colorblind-applet-des-filtres-pour-daltonien-sous-linux/</link>
		<comments>http://case.oncle-tom.net/2008/colorblind-applet-des-filtres-pour-daltonien-sous-linux/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 05:00:25 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[applet]]></category>
		<category><![CDATA[color oracle]]></category>
		<category><![CDATA[colorblind-applet]]></category>
		<category><![CDATA[daltonisme]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gnome-mag]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[logiciels libres]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1038</guid>
		<description><![CDATA[J&#8217;ai découvert totalement par hasard un jeu de filtres pour daltonien fonctionnant sur l&#8217;environnement de bureau Gnome. Son petit nom ? colorblind-applet. Il est livré en standard sous Debian et plus péniblement, sous Ubuntu. Cette dernière distribution englobe pourtant Gnome Magnifier (paquet gnome-mag), le projet père mais allez savoir pourquoi, sans l&#8217;applet pour daltonien. Petit [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1056" title="Colorblind-applet" src="http://case.oncle-tom.net/images/2008/08/colorblind-applet-credits.png" alt="" width="360" height="282" /></p>
<p>J&#8217;ai découvert totalement par hasard un jeu de filtres pour daltonien fonctionnant sur l&#8217;environnement de bureau Gnome. Son petit nom ? <strong>colorblind-applet</strong>.<br />
Il est livré en standard sous Debian et <a title="installer colorblind-applet sous Ubuntu" href="http://news.softpedia.com/news/How-To-Install-the-Colorblind-Applet-on-GNOME-91323.shtml">plus péniblement, sous Ubuntu</a>. Cette dernière distribution englobe pourtant Gnome Magnifier (paquet <em>gnome-mag</em>), le projet père mais allez savoir pourquoi, sans l&#8217;applet pour daltonien.</p>
<p>Petit tour du propriétaire et mise en application dans le cas du développement Web.</p>
<p><span id="more-1038"></span></p>
<h3>Présentation rapide du daltonisme</h3>
<p>Se mettre dans la peau d&#8217;un daltonien, ou voir à travers ses yeux, est une chose difficile. Comment imaginer le rendu des couleurs ? Et surtout, comment l&#8217;imaginer en fonction du daltonisme ?<br />
Il faut savoir qu&#8217;il existe plusieurs variations de cette anomalie de perception de couleurs :</p>
<ul>
<li><strong>mauvaise perception</strong> du rouge</li>
<li><strong>pas de perception</strong> du rouge</li>
<li>mauvaise perception du vert</li>
<li>pas de perception du vert</li>
<li>mauvaise perception du bleu</li>
<li>pas de perception du bleu</li>
</ul>
<p>À cela s&#8217;ajoutent également des combinaisons possibles entre ces différentes variantes. Pour plus d&#8217;informations, je vous invite à consulter l&#8217;<a href="http://fr.wikipedia.org/wiki/Daltonisme">article sur le daltonisme sur Wikipédia</a>.<br />
Et pour votre gouverne, <strong>être daltonien ne signifie pas être handicapé</strong>. Les personnes atteintes de cette anomalie (environ 8% des hommes en France, même pas 1% de femmes) ne peuvent donc pas être reconnues comme telles.</p>
<div class="wp-caption aligncenter" style="width: 210px"><img title="Chiffre 37, invisible pour les personnes atteintes de protanopie" src="http://upload.wikimedia.org/wikipedia/commons/5/55/Colorblind3.png" alt="Chiffre 37, invisible pour les personnes atteintes de protanopie" width="200" height="200" /><p class="wp-caption-text">Chiffre 37, invisible pour les personnes atteintes de protanopie</p></div>
<p>Pour savoir savoir si on est daltonien, il suffit de regarder les images des <a href="http://daltonien.free.fr/daltonien/article.php3?id_article=6">planches du test d&#8217;Ishihara</a>. Peut-être la &laquo;&nbsp;mauvaise&nbsp;&raquo; nouvelle du jour ?</p>
<h3>Présentation de colorblind-applet</h3>
<p>Mais alors, que vient faire <em>colorblind-applet</em> dans tout ça ?<br />
Cet applet pour <a href="http://gnome.org">Gnome</a> est un &laquo;&nbsp;simple&nbsp;&raquo; filtre de visualisation. En clair, il altère la colorimétrie de votre écran pour l&#8217;afficher comme si vous étiez daltonien.<br />
Jusqu&#8217;à présent j&#8217;utilisais <a href="http://colororacle.cartography.ch/">Color Oracle</a> puisque <a title="présentation de Color Oracle sur Ergophile" href="http://www.ergophile.com/2008/02/13/le-daltonisme-vu-par-color-oracle/">présenté avec conviction sur Ergophile</a>.</p>
<p><em>colorblind-applet</em> me convient toutefois davantage pour les raisons suivantes :</p>
<ul>
<li>il peut se piloter entièrement via des <strong>raccourcis clavier</strong> (activation, désactivation, navigation entre les filtres)</li>
<li>son <strong>utilisation est persistante</strong> : il reste actif tant qu&#8217;on ne le désactive pas (Color Oracle enlève le filtre au moindre clic de mémoire)</li>
<li>il demande <strong>peu de ressources machine</strong>, intégration directe dans Gnome oblige (Color Oracle est en Java)</li>
</ul>
<p>En clair je résumerais comme suit :</p>
<ul>
<li>vous êtes sous Linux et plus particulièrement dans un bureau à base de GTK ? Utilisez <em>colorblind-applet</em></li>
<li>dans les autres cas, utilisez <em>Color Oracle</em> (compatible Linux, MacOS X et Windows)</li>
</ul>
<div id="attachment_1055" class="wp-caption aligncenter" style="width: 508px"><img class="size-full wp-image-1055" title="Colorblind-applet : contrôles" src="http://case.oncle-tom.net/images/2008/08/colorblind-applet-controls.png" alt="Colorblind-applet : contrôles" width="498" height="437" /><p class="wp-caption-text">Colorblind-applet : contrôles</p></div>
<h3>colorblind-applet en action</h3>
<p>Puisqu&#8217;une image vaut davantage qu&#8217;un long discours (trop tard me direz-vous <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ), voici une série d&#8217;images présentant mon bureau de travail ainsi qu&#8217;un navigateur Web ouvert sur la page de <a href="http://planete-accessibilite.com/">Planète Accessibilité</a>.</p>
<div id="attachment_1058" class="wp-caption aligncenter" style="width: 310px"><a href="http://case.oncle-tom.net/images/2008/08/original.jpg"><img class="size-medium wp-image-1058" title="Capture d'écran d'origine" src="http://case.oncle-tom.net/images/2008/08/original-300x187.jpg" alt="Capture d'écran d'origine" width="300" height="187" /></a><p class="wp-caption-text">Capture d&#39;écran d&#39;origine</p></div>
<div id="attachment_1059" class="wp-caption aligncenter" style="width: 310px"><a href="http://case.oncle-tom.net/images/2008/08/selective-green-desaturation.jpg"><img class="size-medium wp-image-1059" title="Filtre réglé sur &quot;Selective Green Desaturation&quot;" src="http://case.oncle-tom.net/images/2008/08/selective-green-desaturation-300x187.jpg" alt="Filtre réglé sur &quot;Selective Green Desaturation&quot;" width="300" height="187" /></a><p class="wp-caption-text">Filtre réglé sur &quot;Selective Green Desaturation&quot;</p></div>
<div id="attachment_1057" class="wp-caption aligncenter" style="width: 310px"><a href="http://case.oncle-tom.net/images/2008/08/negative-hue-shift.jpg"><img class="size-medium wp-image-1057" title="Filtre réglé sur &quot;Negative Hue Shift&quot;" src="http://case.oncle-tom.net/images/2008/08/negative-hue-shift-300x187.jpg" alt="Filtre réglé sur &quot;Negative Hue Shift&quot;" width="300" height="187" /></a><p class="wp-caption-text">Filtre réglé sur &quot;Negative Hue Shift&quot;</p></div>
<p><strong> Plusieurs choses à noter</strong> :</p>
<ul>
<li>les teintes blanches sont épargnées</li>
<li>les autres couleurs changent en revanche du tout au tout en fonction du type de daltonisme</li>
<li>jouer sur les couleurs n&#8217;est pas suffisant pour faire passer un message aux utilisateurs</li>
<li>ça ne doit pas être évident de parcourir le Web et ses multiples couleurs tous les jours : la désaturation de vert pique particulièrement les yeux</li>
<li>et par extension, il me paraît très difficile de produire une charte graphique convenant à tous les types de daltonisme</li>
</ul>
<p>Je serais curieux d&#8217;avoir des retours de personnes ayant déjà eu à travailler avec cette déficience, les bonnes pratiques de conception et tout autre conseil avisé.</p>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/colorblind-applet-des-filtres-pour-daltonien-sous-linux/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Menu déroulant en rollover semi-accessible avec jQuery</title>
		<link>http://case.oncle-tom.net/2008/menu-deroulant-accessible-en-rollover-avec-jquery/</link>
		<comments>http://case.oncle-tom.net/2008/menu-deroulant-accessible-en-rollover-avec-jquery/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 05:00:50 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[bonne pratique]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ergonomie]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[logiciels libres]]></category>
		<category><![CDATA[rollover]]></category>
		<category><![CDATA[xhtml]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=919</guid>
		<description><![CDATA[Joie : je fais maintenant partie de Planète Accessibilité en plus de Planet Libre. C&#8217;est l&#8217;occasion pour ce premier article dédié d&#8217;allier à la fois logiciels libres et accessibilité pour le plus grand bien du Web Le but de cette explication sera de développer la méthode et le raisonnement pour mettre en place un menu [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center"><img class="aligncenter size-full wp-image-834" title="Logo jQuery" src="http://case.oncle-tom.net/images/2007/12/jquery-logo.png" alt="Logo jQuery" width="117" height="32" /></p>
<p>Joie : je fais maintenant partie de <a href="http://planete-accessibilite.com/">Planète Accessibilité</a> en plus de <a href="http://www.planet-libre.org/">Planet Libre</a>. C&#8217;est l&#8217;occasion pour ce premier article dédié d&#8217;allier à la fois logiciels libres et accessibilité pour le plus grand bien du Web <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Le but de cette explication sera de <strong>développer la méthode et le raisonnement</strong> pour mettre en place un menu en rollover accessible. La difficulté tient essentiellement au fait que tout élément masqué par le biais des <acronym title="Cascading Style Sheets">CSS</acronym> est masqué pour de nombreux clients Web.</p>
<p>Nous verrons aussi pourquoi il est <strong>important de dissocier la présentation et les artifices graphiques</strong> grâce à une dégradation propre du JavaScript. Nous utiliserons pour cela <a href="http://jquery.com">jQuery</a>, <a href="http://case.oncle-tom.net/tag/jquery/">ma librairie JavaScript favorite</a>.<br />
<span id="more-919"></span></p>
<h3>Buts et objectifs de l&#8217;exercice</h3>
<p>J&#8217;ai eu besoin d&#8217;appliquer cette technique sur le site <a href="http://www.emunova.net">Emu Nova</a>. Je souhaitais plusieurs choses :</p>
<ul>
<li>disposer d&#8217;un menu en rollover en haut de page (facilite la navigation sur toutes les pages)</li>
<li>placer le contenu avant les menus dans le flux <acronym title="HyperText Markup Language">HTML</acronym> de la page (améliore le référencement)</li>
<li>une navigation possible sans JavaScript (pour cause de bug ou autre)</li>
</ul>
<p>Autrement dis, j&#8217;ai besoin d&#8217;un <strong>contenu en fin de flux mais visible avant tout le reste</strong>. J&#8217;ai opté pour la solution JavaScript pour éviter un positionnement absolu pénible à gérer (pour cause de conteneur centré) mais aussi pour respecter le <a href="http://code.google.com/p/blueprintcss/">colonnage de Blueprint</a> (puis toutes façons j&#8217;ai raison <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> )</p>
<p>En une image, cela se résume ainsi :</p>
<p style="text-align:center"><a href="http://case.oncle-tom.net/images/2008/06/emunova-menu-accessible.png"><img class="aligncenter size-medium wp-image-920" title="Tentative de menu accessible" src="http://case.oncle-tom.net/images/2008/06/emunova-menu-accessible-150x300.png" alt="Tentative de menu accessible" width="150" height="300" /></a></p>
<p>Nous allons aborder les 3 phases de ce tracé de flèche :</p>
<ol>
<li>la construction du menu (la zone verte)</li>
<li>le déplacement du contenu (la flèche)</li>
<li>la construction de notre nouveau menu (la zone bleue)</li>
</ol>
<h3>Étape 1 : construire le menu en <acronym title="HyperText Markup Language">HTML</acronym></h3>
<p>C&#8217;est l&#8217;étape essentielle. De sa structure dépend le reste de l&#8217;application. On doit <strong>d&#8217;abord penser à présenter le contenu de manière dégradée</strong>. C&#8217;est ainsi que le verront les utilisateur et c&#8217;est important de penser d&#8217;abord au pire des cas avant de mettre en place les paillettes et les artifices.</p>
<p style="text-align:center"><img class="aligncenter size-full wp-image-921" title="Menu accessible (Étape 1)" src="http://case.oncle-tom.net/images/2008/06/menu-accessible-etape-1.png" alt="Menu accessible (Étape 1)" width="427" height="178" /></p>
<p>Cette structure est représentée ainsi en <acronym title="HyperText Markup Language">HTML</acronym> :</p>
<pre><code class="html">&lt;div id="contenu-secondaire"&gt;
  &lt;ul id="navigation"&gt;
    &lt;li class="first column span-6"&gt;
      &lt;h2&gt;Actualités&lt;/h2&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href="..."&gt;Actualités&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="..."&gt;Newsletter&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="..."&gt;Flux <acronym title="Really Simple Syndication">RSS</acronym>&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="..."&gt;Twitter&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="..."&gt;Réactions à chaud&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li class="column span-6"&gt;
      &lt;h2&gt;Émulation&lt;/h2&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href="..."&gt;Émulation&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="..."&gt;Tutoriaux&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="..."&gt;Foire aux Questions&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;</code></pre>
<p>Cette version est volontairement tronquée pour faciliter sa lecture.<br />
L&#8217;idée générale de tout ça c&#8217;est de transporter directement la liste <code>#navigation</code> en dehors de son conteneur, <code>#extra-content</code>. C&#8217;est en effet plus rapide et plus performant de transporter une partie du <acronym title="Document Object Model">DOM</acronym> dans un autre endroit que de la recréer séquentiellement.</p>
<p>Ça aura également l&#8217;avantage de limiter au maximum le travail à effectuer en JavaScript par derrière. On notera que jusqu&#8217;à présent, on n&#8217;a pas encore touché à jQuery.</p>
<p>Avec cette structure, on peut dores et déjà deviner que les &lt;ul&gt; de second niveau seront masqués et affichés à la demande.</p>
<h3>Étape 2 : préparer le menu <acronym title="HyperText Markup Language">HTML</acronym></h3>
<p>La deuxième reste assez simple : on transporte <code>#navigation</code> dans son nouveau conteneur (déjà existant) : <code>#welcome-bar.</code></p>
<p>Pour éviter tout aléas graphique, l&#8217;idéal est de masquer tout ce qu&#8217;on ne veut pas voir maintenant. Nous rentrons maintenant dans la partie pure JavaScript.</p>
<p style="text-align:center"><img class="aligncenter size-full wp-image-922" title="Menu accessible (Étape 2)" src="http://case.oncle-tom.net/images/2008/06/menu-accessible-etape-2.png" alt="Menu accessible (Étape 2)" width="304" height="72" /></p>
<p>Pour atteindre ce résultat, on pourrait envisager le code suivant :</p>
<pre><code class="javascript">(function($){
  $(function(){
    /*
     * Étape 2 : préparation du menu
     */
    $('#navigation &gt; li &gt; ul').hide();
    $('#navigation').appendTo('#welcome-bar');
  });
})(jQuery);</code></pre>
<p>En soi, ce n&#8217;est pas excessif du tout :</p>
<ol>
<li>on masque tous les sous-menus</li>
<li>on transporte le contenu de #navigation dans #welcome-bar</li>
</ol>
<p>Tout le travail se situait dans la réflexion il faut croire <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>Étape 3 : assigner les évènements</h3>
<p>Maintenant le plus dur c&#8217;est de donner vie à tout ça. C&#8217;est bien beau d&#8217;avoir des menus mais encore faut-il les animer. Là encore nous avons plusieurs contraintes à subir :</p>
<ul>
<li>les <strong>titres doivent être cliquables</strong>. Certaines personnes cliqueront en effet avant de réaliser qu&#8217;il y a un menu déroulant. Par principe, on prendre le premier lien de la liste et on l&#8217;assignera au titre correspondant ;</li>
<li>le <strong>menu doit se dérouler lors du survol du titre</strong> &#8230;</li>
<li>mais il ne doit pas se masquer tant qu&#8217;on n&#8217;a pas quitté le titre NI la liste déroulante</li>
</ul>
<p>La difficulté tient à ces 2 dernières contraintes. On pourrait tout d&#8217;abord penser à l&#8217;utilisation des évènements <code>mouseover</code> et <code>mouseout</code> MAIS, parce qu&#8217;il y a bien un mais, <code>mouseout</code> est un peu capricieux.</p>
<p>Si on imagine un <code>mouseover</code> directement sur <code>li.column</code>, le problème c&#8217;est que survoler un élément comme <em>Actualités</em> ou <em>Newsletter</em> activera le <code>mouseover</code> de ces derniers &#8230; et désactivera, un temps minime certes, le survol de <code>li.column</code>. Autrement dit le menu se repliera alors qu&#8217;on tentera de l&#8217;utiliser.</p>
<p>Heureusement pour nous, jQuery a introduit les évènements <code>mouseenter</code> et <code>mouseleave</code> (présents dans Internet Explorer depuis des lustres, c&#8217;est bien le seul avantage de cette atrocité) depuis la <a title="Notes de version de jQuery 1.2.2" href="http://docs.jquery.com/Release:jQuery_1.2">version 1.2.2</a>. Ces évènements correspondent exactement à ce que l&#8217;on souhaite : maintenir une zone survolée malgré le survol de ses enfants.<br />
Tout est histoire de couches <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p style="text-align:center"><img class="aligncenter size-full wp-image-923" title="Menu accessible (Étape 3)" src="http://case.oncle-tom.net/images/2008/06/menu-accessible-etape-3.png" alt="Menu accessible (Étape 3)" width="301" height="180" /></p>
<p>Côté code, ça se complique :</p>
<pre><code class="javascript">(function($){
  $(function(){
    /*
     * Étape 3 : assignation des évènements et transformation
     */
    $('#navigation &gt; li')
      .each(function(){
        var title = $('h2:first', this);
        var href = $('a:first', this).clone();
        href.text(title.text()).wrapInner('&lt;span&gt;&lt;/span&gt;');
        title.html(href);
       })
      .find('h2 &gt; a').bind('mouseenter', function(){
        $(this).parents('li.column').find('&gt; ul').slideDown('fast');
      }).end()
      .bind('mouseleave', function(){
        $('&gt; ul', this).slideUp();
      });
  });
})(jQuery);</code></pre>
<p>Plusieurs remarques sur ce code :</p>
<ul>
<li>j&#8217;utilise les <strong>chaînes de jQuery</strong> pour gagner du temps et reparcourir des tableaux déjà connus (le sélecteur n&#8217;est pas réexécuté)</li>
<li>j&#8217;utilise également la <strong>méthode end()</strong> pour revenir au précédent état du sélecteur. Très pratique pour naviguer dans un jeu d&#8217;éléments et gagner en performances</li>
</ul>
<p>Et pour les explications :</p>
<ol>
<li>Pour chaque élément de liste
<ol>
<li>on met de côté le titre de la liste</li>
<li>on clone le premier élément du sous-menu</li>
<li>on modifie le libellé du lien du clone</li>
<li>on remplace le titre par le code <acronym title="HyperText Markup Language">HTML</acronym> du clone</li>
</ol>
</li>
<li>Pour ces liens hypertextes nouvellement créés (plus faciles à styler sans <acronym title="JavaScript">JS</acronym> au rollover), on leur demande de déplier le sous-menu voisin</li>
<li>Ce sous-menu ne sera replié que lorsqu&#8217;on quittera le li.column</li>
</ol>
<h3>Conclusion</h3>
<p>La <strong>mise en œuvre de ce menu est relativement aisée</strong> et surtout, suffisamment souple pour que vous puissiez l&#8217;adapter à vos besoins.<br />
Dans tous les cas on remarquera que les clés de la réussite sont :</p>
<ul>
<li>un <strong>code <acronym title="HyperText Markup Language">HTML</acronym> propre</strong> (facile les sélections <acronym title="JavaScript">JS</acronym> et le stylage <acronym title="Cascading Style Sheets">CSS</acronym>)</li>
<li>une évolution d&#8217;une <strong>base sans artifices vers une interface améliorée</strong> en JavaScript</li>
<li>un <strong>code simple</strong>, facilement maintenable et adaptable</li>
</ul>
<p>Ceci n&#8217;est qu&#8217;un exemple où le JavaScript peut servir à conserver des interfaces accessibles tout en augmentant leur utilisabilité. Qui a dit que le JavaScript c&#8217;était nul ?</p>
<p>Le seul reproche que l&#8217;on peut faire à ce menu accessible c&#8217;est le <em>manque de navigation au clavier</em>. L&#8217;idéal serait de pouvoir naviguer dans le choix des menus entièrement avec les flèches de son clavier.<br />
Rendez-vous dans un autre billet pour ce point ? <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/menu-deroulant-accessible-en-rollover-avec-jquery/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Modifier du HTML à la volée de manière non intrusive</title>
		<link>http://case.oncle-tom.net/2007/modifier-html-non-intrusif/</link>
		<comments>http://case.oncle-tom.net/2007/modifier-html-non-intrusif/#comments</comments>
		<pubDate>Mon, 10 Sep 2007 11:00:55 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[bonnes pratiques]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[xpath]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/2007/09/10/modifier-html-non-intrusif/</guid>
		<description><![CDATA[Lors de la refonte de ce blog, j&#8217;ai concocté un petit script JavaScript (non intrusif bien entendu) affichant et modifiant le contenu d&#8217;un bandeau sous la forme d&#8217;une classe statique reponsant sur jQuery. J&#8217;explique aujourd&#8217;hui comment ces 48 petits lignes de code (en comptant commentaires, sauts de lignes et accolades) fonctionnent, comment il est aisé [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/09/javascript.png" alt="Javascript" /></p>
<p><a href="http://case.oncle-tom.net/2007/07/27/blog-nouveau-look/">Lors de la refonte de ce blog</a>, j&#8217;ai concocté un petit script JavaScript (non intrusif bien entendu) affichant et modifiant le contenu d&#8217;un bandeau sous la forme d&#8217;une classe statique reponsant sur <a href="http://jquery.com/">jQuery</a>. J&#8217;explique aujourd&#8217;hui comment ces 48 petits lignes de code (en comptant commentaires, sauts de lignes et accolades) fonctionnent, comment il est aisé de mettre en place de telles routines de manière intelligente, souple et non intrusive.</p>
<p>Et comme l&#8217;indique le slogan de <cite>jQuery</cite> : <q>Write less, do more</q>.<br />
<span id="more-769"></span></p>
<h3>Le besoin</h3>
<p>Avant de se lancer tête baissée dans le code, <strong>prenons le temps d&#8217;exprimer avec des mots ce que l&#8217;on aimerait faire</strong>.</p>
<p>On souhaite disposer d&#8217;une <strong>liste de liens</strong>. <strong>Lors d&#8217;un clic</strong> sur un lien de cette liste, l&#8217;<strong>encart correspondant doit s&#8217;afficher</strong> pour illustrer davantage son sens. Eventuellement, lorsque l&#8217;on <strong>reclique sur ce même lien</strong>, le visiteur est transporté sur la page en question.</p>
<p>J&#8217;ai grassé les mots importants de ce besoin. Vous le verrez par la suite, ils vont régir le comportement du script.</p>
<h3>La structure <acronym title="HyperText Markup Language">HTML</acronym></h3>
<p>Nous allons donc nous retrouver avec trois grosses parties dans le code :</p>
<ul>
<li><strong>la liste de liens</strong>, une balise <code>ul</code> semble toute indiquée)</li>
<li><strong>une liste de textes correspondants</strong>, il n&#8217;a pas lieu d&#8217;être visible pour l&#8217;utilisateur final concerné par le code</li>
<li>un <strong>bloc conteneur neutre</strong> destiné à recevoir les textes d&#8217;enrichissement de manière visuelle</li>
</ul>
<p>Des mots au code, voici ce que donnerait la structure balisée :</p>
<pre><code class="html">&lt;body&gt;
&lt;!-- (...) --&gt;
	&lt;div id="conteneur_cible"&gt;&lt;/div&gt;
	&lt;!-- (...) --&gt;
	&lt;ul id="liens_etendus"&gt;
		&lt;li&gt;&lt;a href="page1.html" class="page1"&gt;Page 1&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="page2.html" class="page2"&gt;Page 2&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="page3.html" class="page3"&gt;Page 3&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;!-- (...) --&gt;
	&lt;div id="conteneur_source"&gt;
		&lt;h2&gt;Titre&lt;/h2&gt;
		&lt;p&gt;Texte explicatif apportant de la cohérence aux utilisateurs dépourvus de JavaScript et d'interprétation des feuilles de style.&lt;/p&gt;
		&lt;ul&gt;
			&lt;li class="page1"&gt;Texte page 1&lt;/li&gt;
			&lt;li class="page2"&gt;Texte page 2&lt;/li&gt;
			&lt;li class="page3"&gt;Texte page 3&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
&lt;!-- (...) --&gt;
&lt;/body&gt;
</code></pre>
<p><strong>L&#8217;ordre de la structure importe peu</strong> mais dans tous les cas, leur position dans le flux <acronym title="HyperText Markup Language">HTML</acronym> dépend avant tout de leur importance au sein de celui-ci. De manière générale, <strong>il vaut mieux disposer le contenu principal tout en haut du flux et le faire suivre par le contenu secondaire</strong> tels que les menus de navigation et les textes supplémentaires.<br />
Je pense que le code parle de lui-même, posez vos questions en commentaires si jamais il y a besoin d&#8217;explications plus poussées.</p>
<p>Côté <acronym title="HyperText Markup Language">HTML</acronym> tout est réglé avec ceci. <strong>Il ne restera éventuellement que du travail de stylage pour lui donner une apparence plus conviviale</strong>.<br />
Vous remarquerez qu&#8217;il n&#8217;y a aucune mention à du JavaScript à l&#8217;intérieur de ce code et ce sera le cas jusqu&#8217;au bout. C&#8217;est tout l&#8217;intérêt de séparer fond et forme et donc, du <strong>JavaScript non intrusif</strong>.</p>
<h3>Le code Javascript</h3>
<p>J&#8217;ai pris la décision d&#8217;écrire ce code pour <em>jQuery</em> car cette bibliothèque (ou <em>framework</em>) est embarquée dans WordPress et réduit drastiquement la quantité de code à écrire pour produire des résultats.</p>
<p>Dans la pratique, le code va se charger dès que possible (c&#8217;est à dire dès que le <acronym title="Document Object Model"><acronym title="Document Object Model">DOM</acronym></acronym> est prêt) et exécutera une méthode en se servant des paramètres prédéfinis ou passés manuellement à la classe. Le code suivant est structuré et suffisamment commenté pour le comprendre sans trop de difficulté. J&#8217;expliquerai en-dessous sa logique :</p>
<pre><code class="javascript">/*////////////////////////////////////////
// Classe statique 'oncletom_text_grabber'
// # Permet d'afficher un slide d'informations en cliquant sur un lien
// # C'est rigolo et en plus ça sert à quelque chose
// @ parametres (objet, optionnel) : objet de clé:valeur paramétrant le comportement
////////////////////////////////////////*/
function oncletom_text_grabber()
{
	var parametres = arguments.length == 1 &amp;&amp; typeof arguments[0] == 'object' ? arguments[0] : {};
	//Paramétrage de la fonction
	//# permet un lancement de la classe avec un paramétrage par défaut
	parametres.source = typeof parametres.source == 'undefined' ? '#conteneur_source &gt; ul &gt; li' : parametres.source;
	parametres.bindto = typeof parametres.bindto == 'undefined' ? '#liens_etendus a' : parametres.bindto;
	parametres.target = typeof parametres.target == 'undefined' ? '#conteneur_cible' : parametres.target;
	/*////////////////////////////////////////
	// Méthode publique 'ot_text_caller'
	// # Récupère le contenu associé à l'attribut 'rel'
	// # Méthode à appeler sur un évènement
	////////////////////////////////////////*/
	function ot_text_caller()
	{
		//sélection de l'élément à récupérer
		var id = $(this).attr('class');
		//hop ! on vérifie c'est déjà ouvert. Auquel cas le lien redevient cliquable
		if( $( parametres.target ).attr('class') == id )
		{
			return true;
		}
		//on nettoie le contenu de la destination
		$( parametres.target ).empty();
		$( parametres.target ).attr({ 'class' : '' });
		//on remplit la destination avec le bon contenu
		//on le fait en utilisant une expression régulières pour récupérer l'élément voulu
		$( parametres.target ).fadeIn( 'slow' ).append(  $( parametres.source+"."+id ).html() ).toggleClass( id );
		//évite que le lien soit cliqué
		return false;
	}
	//On greffe les différentes méthodes
	$( parametres.bindto ).click( ot_text_caller );
}
//exécution automatique de fonctions au lancement du document
$( oncletom_text_grabber );
//FACULTATIF
//pour assigner une deuxième liste de liens, il suffirait d'écrire le code ci-contre, par exemple :
//tous les paramètres non renseignés prennent la valeur par défaut de la classe
$( function(){ oncletom_text_grabber({ 'target' : '#nouveau_conteneur_cible', 'bindto' : '#exemple_entete ol a[@rel]', 'source' : '#liste_source2' }); } );
</code></pre>
<ol>
<li>Dans un premier temps, je m&#8217;applique toujours à pouvoir <strong>proposer une utilisation de la classe sans avoir à fournir de paramètre lors de son appel</strong>. C&#8217;est un côté pratique qui permet en plus de documenter les différentes options possibles. Ces options correspondent aux différents <a href="http://docs.jquery.com/DOM/Traversing/Selectors">sélecteurs jQuery</a> dont on aura besoin par la suite ;</li>
<li>Dans un deuxième temps, je déclare une méthode interne à la classe. <em>La cascade des accolades</em> fait qu&#8217;elle n&#8217;est accessible que depuis la classe. Cette méthode sera assignée à l&#8217;évènement <code>onclick</code> de tous les éléments concernés par <code>parametre.bindto</code>. En clair, des liens hypertextes. Le <code>this</code> y fait référence.
<ol>
<li>On stocke dans la variable interne <code>id</code> le nom de la classe. En effet, la classe du lien permet de récupérer le bon texte dans el conteneur source (<code>parametre.source</code>),</li>
<li>On vérifie que le conteneur cible ne porte pas le même nom de classe : si oui, on suit le lien, si non, on affiche d&#8217;abord le texte complémentaire (la suite),</li>
<li>Le passage le plus délicat consiste à extraire ce qu&#8217;il faut et le placer où il faut. Heureusement jQuery dispose de deux fonctions magiques : <code>append()</code> et <code>html()</code>. La première rajoute du <acronym title="HyperText Markup Language">HTML</acronym> à la suite du sélecteur tandis que la deuxième extrait le <acronym title="HyperText Markup Language">HTML</acronym> par sélection. Le fonctionnement en chaîne de jQuery permet de réaliser tout ceci en une ligne,</li>
<li>Pourquoi un <code>return false;</code> pour terminer ? Tout simplement pour éviter que le lien hypertexte contenu dans l&#8217;attribut <code>href</code> du lien soit suivi.</li>
</ol>
</li>
<li>Dans un troisième temps, on assigne la méthode déclarée juste avant. A chaque clic de chaque élément, elle sera appelée et surtout, aura accès à tous les paramètres de la classe ;</li>
<li>Enfin, après avoir clôturé la classe, on l&#8217;exécute dès que le <acronym title="Document Object Model">DOM</acronym> est chargé.</li>
</ol>
<h3>Conclusion et résultat</h3>
<p>Pour que ce code soit effectif, il faut bien évidemment l&#8217;insérer à même la page ou bien en appelant un script externe (cette méthode est recommandée justement pour dissocier fond et forme). Il faut aussi penser à inclure jQuery dans votre page sans quoi le compilateur JavaScript va tirer la tête.</p>
<p>Pour résumer, je résume la pensée des <strong>bonnes pratiques du JavaScript non intrusif</strong>, prouvant si besoin en était que JavaScript est loin d&#8217;être le Diable :</p>
<ol>
<li>définir sa structure <acronym title="HyperText Markup Language">HTML</acronym></li>
<li>styler le <acronym title="HyperText Markup Language">HTML</acronym></li>
<li>ajouter le JavaScript en surcouche</li>
</ol>
<p>Ainsi, <strong>on ne pénalise personne</strong> (y compris en cas d&#8217;erreur de programmation), <strong>on conserve un code lisible</strong> tout en <strong>facilitant sa réutilisation</strong> dans un autre document.</p>
]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2007/modifier-html-non-intrusif/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tableau auto-extensible en JavaScript</title>
		<link>http://case.oncle-tom.net/2007/tableau-auto-extensible-en-javascript/</link>
		<comments>http://case.oncle-tom.net/2007/tableau-auto-extensible-en-javascript/#comments</comments>
		<pubDate>Tue, 26 Jun 2007 11:59:32 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[bonne pratique]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[mootools]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/2007/06/26/tableau-auto-extensible-en-javascript/</guid>
		<description><![CDATA[Bon nombre de clients utilisant les sites Internet de mon employeur passent des commandes en saisissant directement les codes articles de leur choix. Ce n&#8217;est pas anodin : pour du réassort de magasin, ils savent exactement ce qu&#8217;ils veulent. Et un beau jour on vient me voir en me disant qu&#8217;ils ne peuvent saisir qu&#8217;un [...]]]></description>
			<content:encoded><![CDATA[<p>Bon nombre de clients utilisant les sites Internet de mon employeur passent des commandes en saisissant directement les codes articles de leur choix. Ce n&#8217;est pas anodin : pour du réassort de magasin, ils savent exactement ce qu&#8217;ils veulent. Et un beau jour on vient me voir en me disant qu&#8217;<cite>ils ne peuvent saisir qu&#8217;un code et une seule quantité à la fois</cite>, qu&#8217;il faudrait changer ça.</p>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/06/articles-autoexpand-mini.png" alt="Ligne article" /></p>
<p>Voici donc mon constat de départ :</p>
<ul>
<li>un client doit pouvoir saisir <em>un seul article</em> s&#8217;il le veut</li>
<li>un client doit pouvoir saisir <em>10 articles</em> s&#8217;il le veut</li>
<li>un client doit pouvoir saisir <em>100 articles</em> s&#8217;il le veut</li>
<li>mais <strong>celui qui n&#8217;en saisit que 10 ne doit pas être gêné par 100 lignes de formulaire à remplir</strong></li>
<li>un <em>débutant</em> doit pouvoir saisir 100 lignes sans avoir de mode d&#8217;emploi sous la main</li>
</ul>
<p>Donc ma solution a été très simple : <strong>je ne mettrai qu&#8217;une ligne</strong>.<br />
<span id="more-680"></span></p>
<h3>L&#8217;idée</h3>
<p>Comment faire pour satisfaire tout le monde, les gros donneurs d&#8217;ordre comme les petits ?<br />
<strong>En faisant en sorte que le formulaire s&#8217;adapte à leur besoin.</strong> Je voulais donc qu&#8217;à chaque ligne complétée s&#8217;en ajoute une autre avant de passer à la validation finale. Place au combo <strong>JavaScript + <acronym title="Document Object Model">DOM</acronym> = Ajax</strong>.</p>
<h3>La version dégradée</h3>
<p>Une <em>bonne pratique de l&#8217;Ajax</em> est de partir du cas particulier : celui où les conditions ne sont pas requises. En clair, une personne qui n&#8217;a pas JavaScript d&#8217;activé ou pas de JavaScript tout court.<br />
Conclusion, j&#8217;ai décidé de générer un tableau en <acronym title="HyperText Markup Language">HTML</acronym> de 10 lignes. 10 est un choix arbitraire, modifiable à tout moment et qui ne doit donc pas gêner la version dynamique en cas de changement (ajout de colonne, ajout de lignes).</p>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/06/articles-autoexpand.png" alt="Tableau auto-extansible dégradé" /></p>
<h3>La version Ajax</h3>
<p>On peut manipuler le document à loisir grâce à JavaScript. <strong>Avec un code propre et ordonné c&#8217;est d&#8217;autant plus simple</strong>. Alors voici la logique à mettre en oeuvre :</p>
<ol>
<li>éliminer toutes les lignes dont on ne veut pas et n&#8217;en garder qu&#8217;une</li>
<li>assigner à chaque champ de formulaire de la ligne (<code>input</code>, <code>select</code>, <code>textarea</code>) une fonction de vérification : si tous les éléments de la ligne sont remplis / cochés et qu&#8217;il n&#8217;y a pas de ligne après, on clonera la ligne</li>
<li>cloner la ligne en la vidant de ses valeurs, en modifiant les noms de champ pour les rendre exploitable après coup</li>
</ol>
<p><strong><br />
Ce qu&#8217;on l&#8217;on veut étant relativement simple, <em>le code doit l&#8217;être également</em></strong> ! Le résultat aussi, la preuve en mouvement.</p>
<div style="text-align:center"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="372" height="188" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://case.oncle-tom.net/images/2007/06/articles-autoexpand.swf" /><embed type="application/x-shockwave-flash" width="372" height="188" src="http://case.oncle-tom.net/images/2007/06/articles-autoexpand.swf"></embed></object></div>
<p>Au final, <strong>50 lignes de JavaScript ont suffit</strong> à transformer un tableau complètement statique en tableau dynamique, s&#8217;adaptant à la demande de n&#8217;importe quel client. Client qui pourra également utiliser le clavier pour davantage d&#8217;efficacité de saisie.</p>
<p>C&#8217;est à dire <strong>exactement ce que l&#8217;on souhaitait au départ</strong>.</p>
<h3>Le code</h3>
<h4>Le tableau <acronym title="HyperText Markup Language">HTML</acronym></h4>
<pre><code class="html">&lt;table cellspacing="0" id="ajout_multi_articles"&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Code article&lt;/th&gt;
      &lt;th&gt;Quantité&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr class="article"&gt;
      &lt;th&gt;&lt;input type="text" name="article[1][ref]" maxlength="10" /&gt;&lt;/th&gt;
      &lt;td&gt;&lt;input type="text" name="article[1][qte]" maxlength="5" size="5" /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="article"&gt;
      &lt;th&gt;&lt;input type="text" name="article[2][ref]" maxlength="10" /&gt;&lt;/th&gt;
      &lt;td&gt;&lt;input type="text" name="article[2][qte]" maxlength="5" size="5" /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="article"&gt;
      &lt;th&gt;&lt;input type="text" name="article[3][ref]" maxlength="10" /&gt;&lt;/th&gt;
      &lt;td&gt;&lt;input type="text" name="article[3][qte]" maxlength="5" size="5" /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="article"&gt;
      &lt;th&gt;&lt;input type="text" name="article[4][ref]" maxlength="10" /&gt;&lt;/th&gt;
      &lt;td&gt;&lt;input type="text" name="article[4][qte]" maxlength="5" size="5" /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="article"&gt;
      &lt;th&gt;&lt;input type="text" name="article[5][ref]" maxlength="10" /&gt;&lt;/th&gt;
      &lt;td&gt;&lt;input type="text" name="article[5][qte]" maxlength="5" size="5" /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="article"&gt;
      &lt;th&gt;&lt;input type="text" name="article[6][ref]" maxlength="10" /&gt;&lt;/th&gt;
      &lt;td&gt;&lt;input type="text" name="article[6][qte]" maxlength="5" size="5" /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="article"&gt;
      &lt;th&gt;&lt;input type="text" name="article[7][ref]" maxlength="10" /&gt;&lt;/th&gt;
      &lt;td&gt;&lt;input type="text" name="article[7][qte]" maxlength="5" size="5" /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="article"&gt;
      &lt;th&gt;&lt;input type="text" name="article[8][ref]" maxlength="10" /&gt;&lt;/th&gt;
      &lt;td&gt;&lt;input type="text" name="article[8][qte]" maxlength="5" size="5" /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="article"&gt;
      &lt;th&gt;&lt;input type="text" name="article[9][ref]" maxlength="10" /&gt;&lt;/th&gt;
      &lt;td&gt;&lt;input type="text" name="article[9][qte]" maxlength="5" size="5" /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="article"&gt;
      &lt;th&gt;&lt;input type="text" name="article[10][ref]" maxlength="10" /&gt;&lt;/th&gt;
      &lt;td&gt;&lt;input type="text" name="article[10][qte]" maxlength="5" size="5" /&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;</code></pre>
<h4>La fonction JavaScript</h4>
<pre><code class="javascript">/**
 * Transforme un tableau multi-lignes en un tableau mono-ligne mais auto-extensible
 * Renomme également les noms de champ en suivant un masque paramétrable ; par défaut article[]
 *
 * @usage articlesMultiRows([{'css_id': ?, 'css_row_class': ?, 'check_inputs': ?}])
 * @param {Object} params Objet contenant (ou pas) les paramètres de contrôle de la classe
 */
function articlesMultiRows(params)
{
  this.row_number = 0;
  /*
   * Extension des paramètres par défaut
   */
  var params = params || {};
  params.css_id = params.css_id || 'ajout_multi_articles';
  params.css_row_class = params.css_row_class || 'article';
  params.check_inputs = params.check_inputs || 'input,select,textarea';
  /**
   * Initialise le tableau de données et accroche les méthodes dynamiques
   */
  this.init = function(){
    //aucun ID détecté, pas la peine de continuer plus loin
    if (!$(params.css_id))
    {
      return false;
    }
    //on récupère les lignes, on enlève la première du tableau et on supprime les autres
    var rows = $(params.css_id).getElements('tr.'+params.css_row_class);
    var row_first = rows.shift();
    rows.removeElements();
    rows = null;
    /*
     * On assigne l'évènement aux champs paramétrés de la ligne
     * On place le focus sur le premier champ
     */
    $ES(params.check_inputs, row_first).addEvent('blur', rowCheck);
    $(row_first).getElement('input').focus();
    row_number = 1;
    /*
     * On écrit un petit message sympathique indiquant le fonctionnement du bazar
     * On le fait via JavaScript car un utilisateur sans <acronym title="JavaScript">JS</acronym> ne pourrait justement pas suivre les infos
     * Il est placé juste avant le tableau
     */
    new Element('p',{
          'class' : 'message'
          }).setHTML("Dès qu'un code article et une quantité sont saisis ci-dessous, &lt;strong&gt;une nouvelle ligne s'ajoute automatiquement&lt;/strong&gt;.&lt;br /&gt;Afin d'accélérer votre saisie, &lt;em&gt;utilisez la touche de tabulation de votre clavier&lt;/em&gt; pour passer d'un champ à l'autre. Vous verrez, c'est facile et surtout efficace !").injectBefore(params.css_id);
  };
  /**
   * Vérifie si la ligne a entièrement été complétée et le cas échéant, déclenche l'ajout de ligne
   */
  this.rowCheck = function(){
    var row = { 'inputs' : 0, 'completed' : 0, 'dom' : $(this).getParent().getParent() };
    $ES(params.check_inputs, row.dom).each(function(input){
      //Un élément de plus ...
      ++row.inputs;
      //... dont on vérifie s'il est bien complété
      switch (input.getTag())
      {
        case 'input':
        case 'textarea':
          if (input.value.clean())
          {
            ++row.completed;
          }
        break;
        case 'select':
          if (input.selectedIndex &gt;= 0 &amp;&amp; input.selectedIndex &lt; input.length)
          {
            ++row.completed;
          }
        break;
      }
    });
    /*
     * Pour insérer une nouvelle ligne, on doit avoir :
     * - autant de champs complétés que de champs existants
     * - aucun élément suivant
     */
    if (row.inputs === row.completed &amp;&amp; !row.dom.getNext())
    {
      rowInsert(row.dom);
    }
  };
  /**
   * Insère une nouvelle ligne en clonant la dernière du tableau et la purgeant de ses valeurs
   *
   * @param {Object} row Noeud <acronym title="Document Object Model">DOM</acronym> correspondant à la ligne à cloner
   */
  this.rowInsert = function( row ){
    //On incrémente le nombre de lignes dispo
    //Ce numéro sert à changer les masques de nom de champ
    ++row_number;
    var row_clone = row.clone();
    //Clonage de la ligne
    $ES('input[type=text],input[type=password],input[type=hidden],textarea', row_clone).setProperty('value', '');
    $ES(params.check_inputs, row_clone).removeEvents('blur'); /* obligé car <acronym title="Internet Explorer 5">IE5</acronym>+ clone aussi les évènements ... alors qu'il ne le devrait pas */
    $ES(params.check_inputs, row_clone).addEvent('blur', rowCheck); /* oui oui, <acronym title="Internet Explorer 5">IE5</acronym>+ ne rassignait pas cet évènement comme il fallait malgré ça */
    //On remplace les noms des champs pour que permettre une utilisation des résultats $_POST
    $ES(params.check_inputs, row_clone).each(function(input){
      input.name = input.name.replace(new RegExp('^'+params.css_row_class+'\[[0-9]+\]'), params.css_row_class+'['+row_number+']');
    });
    //Injection de la ligne, une fois tout le travail terminé
    row_clone.injectAfter(row);
    //Nettoyage, le clonage, ça salit
    row_clone = null;
    row = null;
  };
  /*
   * Initialisation de la classe
   */
  this.init();
}
/*
 * Initialisation du tableau multi-lignes avec les options par défaut
 */
window.addEvent('domready', articlesMultiRows);</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2007/tableau-auto-extensible-en-javascript/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Sites Web : les bonnes pratiques</title>
		<link>http://case.oncle-tom.net/2007/sites-web-les-bonnes-pratiques/</link>
		<comments>http://case.oncle-tom.net/2007/sites-web-les-bonnes-pratiques/#comments</comments>
		<pubDate>Mon, 26 Feb 2007 19:37:35 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[bonnes pratiques]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[livres]]></category>
		<category><![CDATA[opquast]]></category>
		<category><![CDATA[pro]]></category>
		<category><![CDATA[temesis]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/2007/02/26/sites-web-les-bonnes-pratiques/</guid>
		<description><![CDATA[Lorsqu&#8217;on crée son premier site ou bien lorsqu&#8217;on navigue sur Internet, on est loin de se douter de l&#8217;étendue des conventions implicites qui facilitent la vie de tout le monde. Et pourtant, passé l&#8217;apprentissage de la soupe de balises HTML et éventuellement des feuilles de style, il y a tout un tas de règles à [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center"><img id="image475" src="http://case.oncle-tom.net/images/2007/02/sites-web-bonnes-pratiques.jpg" alt="Sites Web : les bonnes pratiques" /></p>
<p>Lorsqu&#8217;on crée son premier site ou bien lorsqu&#8217;on navigue sur Internet, on est loin de se douter de l&#8217;étendue des conventions implicites qui facilitent la vie de tout le monde.<br />
Et pourtant, passé l&#8217;apprentissage de la soupe de balises <acronym title="HyperText Markup Language">HTML</acronym> et éventuellement des feuilles de style, il y a tout un tas de <em>règles à respecter</em> pour rendre la navigation aisée et non bloquante. Car oui, <strong>mal concevoir un site peut en bloquer</strong>, qu&#8217;il s&#8217;agisse de personnes atteintes de déficiences (physiques, mentales) ou pas.<br />
<span id="more-476"></span><br />
Pour se sensibiliser à ces bonnes pratiques de la conception des sites Web, il existe depuis peu le guide <a href="http://www.eyrolles.com/Informatique/Livre/9782212121018/livre-memento-sites-web-les-bonnes-pratiques.php">Sites Web : les bonnes pratiques</a> édité dans la collection <a href="http://www.eyrolles.com/Informatique/Collection/4143/memento.php">Memento</a> d&#8217;<a href="http://www.eyrolles.com/">Eyrolles</a>. Les habitués de l&#8217;initiative <a href="http://fr.opquast.com/">Opquast</a> ne seront pas dépaysés étant donné qu&#8217;il en reprend les quelques <strong>153 bonnes pratiques</strong>.</p>
<p>Mais au final, c&#8217;est quoi une <em>bonne pratique</em> ? Quelques règles que certains appliquent sans se rendre compte alors que d&#8217;autres sont au contraire bien loin de pouvoir ne serait-ce que les imaginer.</p>
<p>Exemples de bonnes pratiques simples que n&#8217;importe qui peut mettre en oeuvre :</p>
<ul>
<li><cite>Le nom du site et/ou le nom de l&#8217;auteur sont indiqués sur chaque page</cite> ;</li>
<li><cite>Le soulignement est réservé aux hyperliens</cite> ;</li>
<li><cite>Le site propose au moins un moyen de contacter l&#8217;auteur et/ou le webmestre</cite>.</li>
</ul>
<p>D&#8217;autres sont plus tordues au premier abord mais totalement justifiée, certaines abordant le délicat sujet de l&#8217;<a href="http://css.alsacreations.com/Accessibilite-du-Web/">accessibilité</a> :</p>
<ul>
<li><cite>Les hyperliens sont visuellement différenciés du reste du contenu</cite> ;</li>
<li><cite>L&#8217;emplacement du menu principal de navigation est identique sur toutes les pages</cite> ;</li>
<li><cite>La navigation reste possible sur l&#8217;ensemble du site en utilisant exclusivement le clavier</cite>.</li>
</ul>
<p>Comme vous pouvez le constater, ça n&#8217;a rien de bien sorcier. C&#8217;est un peu comme dire <cite>bonjour</cite> en se présentant à un inconnu : c&#8217;est le minimum à fournir pour établir une conversation. Lorsqu&#8217;on crée un site Web, c&#8217;est une conversation avec le monde que l&#8217;on établit <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2007/sites-web-les-bonnes-pratiques/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

