<?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; Standards du Web</title>
	<atom:link href="http://case.oncle-tom.net/categorie/web/standards-web/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>Industrialiser l&#8217;artisanat de l&#8217;intégration Web, retour sur l&#8217;atelier</title>
		<link>http://case.oncle-tom.net/2010/industrialiser-lartisanat-de-lintegration-web-retour-sur-latelier/</link>
		<comments>http://case.oncle-tom.net/2010/industrialiser-lartisanat-de-lintegration-web-retour-sur-latelier/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 16:35:19 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[atelier]]></category>
		<category><![CDATA[bonnes pratiques]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[interaction design]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[livre blanc]]></category>
		<category><![CDATA[opquast]]></category>
		<category><![CDATA[parisweb]]></category>
		<category><![CDATA[temesis]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=17740</guid>
		<description><![CDATA[Industrialiser l'artisanat ? N'est-ce pas là un sacrilège ? Je partage ma vision et mon retour sur cet atelier. Pratique si vous n'aviez pas eu l'occasion d'y assister. D'ailleurs, il sera possible de contribuer, 2 livrables étant à l'étude.]]></description>
			<content:encoded><![CDATA[<p>De l&#8217;eau a coulé sous les ponts depuis <a href="http://paris-web.fr/">Paris Web</a>, et surtout, depuis que j&#8217;ai animé mon atelier technique intitulé &laquo;&nbsp;Industrialiser l&#8217;artisanat de l&#8217;intégration Web&nbsp;&raquo; (titre amélioré sur une judicieuse remarque de <a href="http://frank.taillandier.free.fr/">Frank Taillandier</a> &#8230; comme quoi on peut être végétarien et avoir de bonnes idées <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ).</p>
<p><span id="more-17740"></span></p>
<h3>La présentation</h3>
<p style="text-align: center;"><iframe src="http://www.slideshare.net/slideshow/embed_code/5459902" width="400" height="337" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br/><br/></p>
<p>J&#8217;ai <strong>complètement changé d&#8217;axe d&#8217;approche</strong> entre l&#8217;appel à proposition de Paris Web et le jour venu. J&#8217;ai retourné le sujet dans tous les sens pour arriver à transmettre le message de la manière la plus adaptée qu&#8217;il soit au public. Parce qu&#8217;il est vraiment <a href="http://thinkvitamin.com/user-science/understanding-your-audience/">essentiel de comprendre votre auditoire</a>.</p>
<p>De ce fait, j&#8217;ai préféré laisser tomber l&#8217;atelier magistral où j&#8217;aurais été le seul à partager. L&#8217;approche choisie fût celle de l&#8217;<a href="http://en.wikipedia.org/wiki/Interaction_design"><em>interaction design</em></a> (IxD) ; notion découverte la veille pendant la conférence de <a href="http://stephanietroeth.com/">Stéphanie Troeth</a>. L&#8217;idée étant de <strong>construire ensemble</strong> le corps de l&#8217;atelier, de produire ensemble la réflexion et d&#8217;en arriver à des conclusions plus rapidement.</p>
<p>Le plus amusant fût qu&#8217;<strong>on arrivait aux mêmes conclusions</strong>, et que les <em>slides </em>suivant la phase de <em>design</em> répondaient aux questions nouvellement créées.</p>
<p>Pour l&#8217;expérience, et le résultat produit, j&#8217;en suis satisfait <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>Déroulement de l&#8217;atelier</h3>
<p>L&#8217;atelier consistait à passer en revue 3 des étapes du développement <em>frontend</em> : l&#8217;intégration <acronym title="HyperText Markup Language">HTML</acronym>, l&#8217;habillage <acronym title="Cascading Style Sheets">CSS</acronym> et les interactions JavaScript. Chaque étape se divisait en 4 composants de travail :</p>
<ul>
<li>Production / réalisation</li>
<li>Organisation / équipe</li>
<li>Documentation</li>
<li>Tests</li>
</ul>
<p>Pour chacun de ces composants, toute personne dans la salle pouvait suggérer une <strong>bonne pratique</strong>, une <strong>mauvaise pratique</strong> ou un <strong>outil</strong>. Cela s&#8217;est matérialisé avec un tableau blanc découpé en 4 zones, dans lesquelles on collait des post-it.</p>
<p>Pour la petite histoire, n&#8217;ayant pas pensé à acheter les post-il avant d&#8217;arriver à Paris, je me suis rabattu sur le premier choix venu, en me basant sur la connaissance du terrain de <a href="http://larlet.fr/">David Larlet</a> : Loisirs &amp; Créations du Bercy Village.</p>
<p>C&#8217;est ainsi que je me retrouvais avec 200 post-it en forme de cœur,  de maison ou de fleur.</p>
<p><img class="aligncenter size-medium wp-image-17834" title="Post-it" src="http://media.oncle-tom.net/images/2010/11/post-it-paris-web-300x179.jpg" alt="" width="300" height="179" /></p>
<p>Un peu de gaieté pour un atelier sérieux et créatif.<br />
D&#8217;ailleurs, parce qu&#8217;on n&#8217;a pas bossé pour rien, et que Paris Web c&#8217;est aussi la création en plus de <em>share the love</em>, voici la carte mentale de notre heure de travail :</p>
<iframe width="600" height="400" frameborder="0" scrolling="no" class="mindmeister-presentation mindmeister-presentation-id-65925228" src="http://www.mindmeister.com/maps/public_map_shell/65925228?width=600&height=400&zoom=0"></iframe>
<h3>Constats</h3>
<p>Mon premier constat, en regardant la carte mentale, c&#8217;est qu&#8217;on a quand même réussi à produire un <strong>bon nombre d&#8217;éléments</strong> en 1 heure, avec un public qui n&#8217;était pas préparé et dans une configuration de salle de classe, remplie de surcroît.<br />
La logistique s&#8217;est organisée d&#8217;elle-même, avec des contributions diverses pour ramasser les post-it, leur circulation et même la modération.</p>
<p>Quant au contenu en lui-même, plusieurs remarques s&#8217;imposent :</p>
<ul>
<li>la très grande majorité des contributions concernaient la <strong>production</strong> (c&#8217;était flagrant, face au tableau)</li>
<li>par extension, il y a peu d&#8217;éléments de documentation et de tests et dans une moindre mesure, peu de travail en équipe/organisationnel (à part les classiques <em>versionning</em>)</li>
<li>en production de <acronym title="Cascading Style Sheets">CSS</acronym> et de JavaScript, le<strong> nombre de mauvaises pratique équivaut ou dépasse les bonnes pratiques</strong></li>
</ul>
<p>En une phrase et une seule : le développement frontend, en tous cas représentatif de la population présente dans la salle, <strong>travaille dans son coin</strong>, avec ses méthodes, peu adaptables à d&#8217;autres cadres.</p>
<h3>Et la suite ?</h3>
<p>Mon avis c&#8217;est que si la production n&#8217;est pas forcément industrialisable au sens où on ne peut que difficilement automatiser la production du code, en revanche on peut <strong>automatiser les tests et la documentation</strong>, voire certains aspects d&#8217;organisation (diffusion automatique des <em>commits</em>, rapports etc.).</p>
<p>Une de mes hypothèses est que si le caractère individuel du travail est si marqué, c&#8217;est que nombre des méthodes, astuces et outils de travail sont basés sur des <strong>avis subjectifs</strong>. Pas étonnant que les réactions sur le mot <em>industrialisation</em> soient si virulentes et chargées d&#8217;émotions.</p>
<p>C&#8217;est une des raisons pour laquelle j&#8217;ai proposé en conclusion d&#8217;<strong>aller au-delà de nos jugements personnels</strong> pour formaliser des bonnes et mauvaises pratiques, que l&#8217;on applique ensuite à son projet si l&#8217;on est concerné. Un mélange des <em><a href="http://www.bbc.co.uk/guidelines/futuremedia/technical/css.shtml">guidelines</a></em><a href="http://www.bbc.co.uk/guidelines/futuremedia/technical/css.shtml"> BBC</a> et des bonnes pratiques <a href="http://www.opquast.com/">Opquast</a> en somme.</p>
<p>Ce que j&#8217;aimerais, c&#8217;est produire 2 livrables :</p>
<ul>
<li>une <em><strong>checklist</strong></em><strong> de bonnes pratiques</strong> de développement <em>frontend</em></li>
<li>un <strong>livre blanc du développement <em>frontend</em></strong>, comprenant en plus le processus de dialogue entre acteurs, pendant les phases projet</li>
</ul>
<p>Ces livrables seront <em>Open Source</em>, libres, gratuits et créés collectivement, parce qu&#8217;on a tous des terrains d&#8217;expertise différents et complémentaires.</p>
<div id="attachment_17833" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-17833" title="Délire de post-it" src="http://media.oncle-tom.net/images/2010/11/post-it-delire-300x179.jpg" alt="" width="300" height="179" /><p class="wp-caption-text">Share the love <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p></div>
<p>Je ne manquerai pas de vous tenir informé des avancées de ces projets, qui me tiennent à coeur.<br />
Je ne saurais que trop remercier les participants, présents lors de l&#8217;atelier Paris Web, ceux qui apporteront leur pierre à l &#8216;édifice (même si ça ne concerne qu&#8217;un changement de virgule dans une phrase) et ceux qui apporteront leur soutien, <a href="http://temesis.com/">Elie Sloïm</a> en tête. Il propose en effet de mettre à disposition la plate-forme Opquast en tant qu&#8217;outil de contribution.</p>
<p>Une idée qu&#8217;elle est bonne.</p>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2010/industrialiser-lartisanat-de-lintegration-web-retour-sur-latelier/feed/</wfw:commentRss>
		<slash:comments>6</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 2010 : industrialiser l&#8217;artisanat de l&#8217;intégration HTML</title>
		<link>http://case.oncle-tom.net/2010/paris-web-industrialiser-integration-html/</link>
		<comments>http://case.oncle-tom.net/2010/paris-web-industrialiser-integration-html/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 09:00:04 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[atelier]]></category>
		<category><![CDATA[blueprint]]></category>
		<category><![CDATA[bonnes pratiques]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[discussion]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[industrialisation]]></category>
		<category><![CDATA[oocss]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[parisweb]]></category>
		<category><![CDATA[performances]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=17526</guid>
		<description><![CDATA[Je présente un nouvel atelier Paris-Web : "industrialiser l'artisanat de l'intégration HTML" le samedi 16 octobre 2010 à Télécom Paris. Présentation de l'atelier, pourquoi j'ai décidé de l'animer et comment il va s'organiser.
Une chose est sure : on va tous réfléchir ensemble !]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai le plaisir d&#8217;animer un atelier technique à <a href="http://www.paris-web.fr">Paris-Web</a> pour la troisième année consécutive. Mon premier atelier, en 2008, traitait des <strong>frameworks <acronym title="Cascading Style Sheets">CSS</acronym></strong> ; et en 2009, des capacités de Gears et d&#8217;HTML5 pour <strong>construire un site Web consultable hors-ligne</strong>.</p>
<p>Je reviens aux sources et à mon grand dada avec l&#8217;<strong>intégration <acronym title="HyperText Markup Language">HTML</acronym></strong> au sens large du terme. J&#8217;ai choisi d&#8217;intituler cet atelier : <a href="http://www.paris-web.fr/2010/programme/industrialiser-lartisanat-de-lintegration-html.php">industrialiser l&#8217;artisanat de l&#8217;intégration <acronym title="HyperText Markup Language">HTML</acronym></a>. Rendez-vous le samedi 16 octobre 2010 à 10h50 dans les locaux de <a href="http://www.telecom-paristech.fr/">Télécom Paris</a> pour en discuter &#8230; et maintenant, pour le préparer et en dessiner les contours.</p>
<p><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" /></p>
<p><span id="more-17526"></span></p>
<h3>Origine de l&#8217;atelier</h3>
<p>Juste après l&#8217;édition 2009 de Paris-Web, je me demandais sur quoi je pourrais parler en conférence ou en atelier. Cette manifestation a le mérite d&#8217;attirer des orateurs de qualité &#8230; et ce n&#8217;est pas évident de monter sur scène en se disant : que pourrais-je apporter au public, qui ne soit pas de la redite et suscite autant d&#8217;intérêt qu&#8217;une <a href="http://stephanietroeth.com/">Stéphanie Troeth</a>, <a href="http://www.la-grange.net/">Karl Dubost</a> ou <a href="http://icant.co.uk/">Christian Heilmann</a>.</p>
<p>Et là j&#8217;ai lu <a href="http://blog.temesis.com/post/2009/12/15/Ma-lettre-a-papa-ParisWeb">la lettre au papa Paris-Web d&#8217;Elie Sloïm</a>. J&#8217;ai de suite pensé à un sujet lié à l&#8217;<strong>intégration <acronym title="HyperText Markup Language">HTML</acronym></strong>. Cette spécialité connaît une effervescence d&#8217;outils depuis 2008 (<em>frameworks</em> <acronym title="Cascading Style Sheets">CSS</acronym>, pré-processeurs <acronym title="Cascading Style Sheets">CSS</acronym> et performances Web) &#8230; pourtant les méthodes de travail restent toujours très liées au développeur, à son tempérament et à ses connaissances d&#8217;outils capables d&#8217;améliorer la productivité. Quelque chose de tout sauf normalisé, industrialisé.</p>
<p>Comme il s&#8217;agit également d&#8217;une pratique ayant du mal à accepter les changements &#8211; je me souviens encore des réticences liées aux <em>frameworks</em>, alors que dans tout langage de programmation ces outils sont perçus comme du pain béni &#8211; je me suis dis qu&#8217;il y avait quelque chose à faire.</p>
<h3>Les axes initiaux de l&#8217;atelier</h3>
<p>En préparant l&#8217;appel à propositions de Paris-Web, j&#8217;avais convenu que cet atelier devrait tenter de répondre aux objectifs suivants :</p>
<ul>
<li>dresser un état de l&#8217;art de l&#8217;intégration <acronym title="HyperText Markup Language">HTML</acronym></li>
<li>offrir une large tribune à l&#8217;audience, notamment en partageant ses  propres retours d&#8217;expérience</li>
<li>déterminer ce dont on dispose et ce dont on manque en terme  d&#8217;outillage</li>
</ul>
<p>Par extension, je souhaitais répondre (au moins) à ces questions :</p>
<ul>
<li>comment bâtir des <acronym title="Cascading Style Sheets">CSS</acronym> indépendantes et réutilisables ?</li>
<li>quand et comment utiliser un préprocesseur <acronym title="Cascading Style Sheets">CSS</acronym> ?</li>
<li>comment dialoguer avec le graphiste ?</li>
<li>comment dialoguer avec le développeur ?</li>
<li>comment détecter les régressions et assurer une qualité de code en  <acronym title="Cascading Style Sheets">CSS</acronym> ?</li>
</ul>
<p>J&#8217;ai également repris l&#8217;historique des précédents Paris-Web pour voir que de précédents ateliers s&#8217;étaient déjà penchés sur la question de la chaine d&#8217;intégration. D&#8217;où mon souhait de ne pas forcément réinventer la roue.</p>
<p>Pour autant, les objectifs tout comme les questions ne sont pas figées dans le marbre. Cet article est également là pour <strong>capter vos avis et vos remarques</strong>, pour ajuster cela avant le jour de l&#8217;atelier.</p>
<h3>Discuter, échanger, et créer</h3>
<p>Enfin, mon évolution personnelle au long de cette année 2010 et certaines paroles de <a href="http://larlet.fr/">David Larlet</a> résonnaient dans ma tête.<br />
Un sujet de cette importance ne peut pas être magistral. Pourquoi ? Parce que tous les intégrateurs rencontrent une <strong>variété de conditions de travail différentes</strong>, et qu&#8217;il serait d&#8217;autant plus difficile d&#8217;obtenir un consensus en prodiguant cet atelier de manière magistrale.</p>
<p>D&#8217;où l&#8217;idée d&#8217;introduire l&#8217;atelier par un <strong>bref résumé de mes retours d&#8217;expérience</strong> sur les <em>frameworks</em> (existants, ou créés pour le besoin), les pré-processeurs <acronym title="Cascading Style Sheets">CSS</acronym>, leur combinaison ainsi que l&#8217;application de la philosophie <a href="http://oocss.org/">Object Oriented <acronym title="Cascading Style Sheets">CSS</acronym></a>. Quelque chose comme 10/15 minutes maximum.</p>
<p>Le reste du temps serait réparti de manière équitable sur chacune des questions, et <strong>animé sous forme de discussion</strong>. Chaque participant répondrait (<em>via</em> des post-it, je les fournirai <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) par 1 ou plusieurs réponses, positives et négatives. En gros, ce qu&#8217;il faut faire, et ce qu&#8217;il ne faut pas faire.</p>
<p>Cette collecte en <em>live</em> des post-it, affichés au tableau, permettrait de dresser une <strong>cartographie des bonnes et mauvaises pratiques</strong>, des actions à mener et dont il faut se méfier.</p>
<p>A défaut de parler d&#8217;une industrialisation vidant l&#8217;intégration <acronym title="HyperText Markup Language">HTML</acronym> de son côté artisanal, on aurait une excellente occasion pour tous se poser ensemble les bonnes questions, et <strong>repartir avec des réponses et des idées pleins la tête</strong>.</p>
<h3>Conclusion</h3>
<p>Bref, si le sujet de l&#8217;intégration <acronym title="HyperText Markup Language">HTML</acronym> vous préoccupe, est au centre de vos intérêts et que vous souhaitez en améliorer sa pratique professionnelle (pour une meilleure reconnaissance de celle-ci ?), je vous invite à la fois à venir à l&#8217;atelier technique du samedi (<a href="http://inscriptions.paris-web.fr/">il reste quelques places ; ça ne coûte que 22€</a>) et à réagir en commentaires. Je ferai mon possible pour adapter l&#8217;animation de l&#8217;atelier à vos problématiques et questionnements.</p>
<p>Cet atelier serait ainsi à l&#8217;image de Paris-Web : une <strong>grande discussion conviviale, constructive et enrichissante</strong>.<br />
L&#8217;idée sera ensuite de concrétiser ces échanges soit par un ensemble de billets de blogs soit, si la matière le permet, en <strong>livre blanc</strong>.</p>
<p>Ne me demandez pas ce que je prévois pour 2011, je n&#8217;en ai aucune idée &#8230; <em>pour l&#8217;instant</em> <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/2010/paris-web-industrialiser-integration-html/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Paris-Web 2009 : le Web en offline avec Gears et HTML 5</title>
		<link>http://case.oncle-tom.net/2009/paris-web-2009-le-web-en-offline-avec-gears-et-html-5/</link>
		<comments>http://case.oncle-tom.net/2009/paris-web-2009-le-web-en-offline-avec-gears-et-html-5/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 10:00:42 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[gears]]></category>
		<category><![CDATA[google gears]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Javascript]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1460</guid>
		<description><![CDATA[Paris-Web c'est chaque année une dose de bonheur en barre pour tous les professionnels du Web : conférences, ateliers et orateurs de qualité. Je rempile cette année en tant que spectateur et orateur, notamment pour un atelier technique présentant Gears, la boîte à outil du Web pour faire du <em>offline</em>.]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1461" title="Paris-Web 2009" src="http://case.oncle-tom.net/images/2009/10/pw2009-400x150-3.gif" alt="Paris-Web 2009" width="300" height="150" /><a href="http://www.paris-web.fr/">Paris-Web</a> est LE rendez-vous Web de l&#8217;année pour tous les professionnels intéressés par le webdesign, la qualité et l&#8217;accessibilité. <a href="http://www.paris-web.fr/2008/">L&#8217;édition 2008</a> (la première à laquelle j&#8217;assistais) m&#8217;a particulièrement plu alors je rempile cette année, à la fois en tant que spectacteur et orateur d&#8217;atelier technique.</p>
<h3><span id="more-1460"></span>Des conférences de choix</h3>
<p>Les thématiques abordées sont une nouvelle fois intéressantes. Si leur titre n&#8217;est pas forcément attirant, la qualité des intervenants fait qu&#8217;à n&#8217;en pas douter, on va encore en prendre plein les yeux : suffit de lire le <a title="Programme de Paris-Web 2009" href="http://www.paris-web.fr/2009/-Programme-">programme</a>.</p>
<p>Parmi celles qui retiennent toute mon attention :</p>
<ul>
<li><strong>Intégrateurs, montez au front !</strong><br />
Notamment parce que j&#8217;ai participé à l&#8217;enquête sur le dialogue entre webdesigner et intégrateur et qu&#8217;il s&#8217;agit d&#8217;une pierre angulaire de la réussite graphique d&#8217;un projet.</li>
<li><strong>Un seul Web</strong><br />
Car l&#8217;an dernier j&#8217;avais été épaté par la présentation des nouveautés CSS3 de <a href="http://www.glazman.org/weblog/">Daniel Glazman</a>.</li>
<li><strong><acronym title="Cascading Style Sheets">CSS</acronym> peut-il être orienté objet ?</strong><br />
Parce que je crois beaucoup aux nouvelles méthodes de réutilisation et de conception <acronym title="Cascading Style Sheets">CSS</acronym> ; cette approche combinée à d&#8217;autres outils <acronym title="Cascading Style Sheets">CSS</acronym> est à mon avis la meilleure qui soit.</li>
<li><strong>CSS3 : Future Style Now</strong><br />
Parce qu&#8217;il est toujours bon de savoir comment utiliser les technos que l&#8217;on utilisera dans pas trop longtemps.</li>
<li><strong>WCAG 2.0, Flash, <acronym title="Portable Document Format">PDF</acronym>, Javascript et les autres sont dans un bateau</strong><br />
Une bonne piqûre de rappel sur l&#8217;accessibilité et les différentes boîtes noires qui sont devenus des standards <em>de facto</em>.</li>
<li><strong>Les nouveaux standards du web et leur implémentation dans les navigateurs modernes</strong><br />
Le titre parle de lui-même <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
<p>C&#8217;est sans compter sur les ateliers techniques où là, je n&#8217;ai pas encore fait mon choix &#8230; la concurrence est rude <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>Atelier technique sur Gears</h3>
<p>Il y a toutefois un atelier où je suis sûr d&#8217;être présent, c&#8217;est celui-ci : <strong>le Web en Offline avec Gears et <acronym title="HyperText Markup Language">HTML</acronym> 5</strong>, à 14h00 pour la digestion <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Et pour cause, je l&#8217;animerai &#8230; enfin, encore faut-il que j&#8217;en termine la présentation. En voici la description officielle :</p>
<blockquote><p><a class="spip_out" href="http://tools.google.com/gears/">Gears</a> est un outil Open Source, majoritairement connu pour permettre à une page Web d’être consultable en étant déconnecté du réseau. Ce plugin pour navigateur Web propose pourtant d’autres briques utiles dans d’autres contextes, notamment les performances et le traitement d’un nombre important de données. C’est un outil unique permettant de créer des applications fonctionnelles hors-ligne et cross-brower sans avoir à recours à du client lourd (type application iPhone).</p>
<p>La présentation se focalisera sur la présentation des composants, des exemples d’utilisation mais aussi sur les contraintes et les choix de stratégie à adopter dans son code pour éviter la création d’usines à gaz.</p>
<p>L’atelier concluera sur l’avenir et <acronym title="HyperText Markup Language">HTML</acronym> 5 dans la mesure où les travaux de Gears sont désormais intégrés à la spécification <acronym title="HyperText Markup Language">HTML</acronym> 5.</p></blockquote>
<p>Mais globalement, l&#8217;atelier s&#8217;articulera autour des points suivants :</p>
<ul>
<li>présentation des modules de Gears</li>
<li>contraintes d&#8217;ergonomie</li>
<li>implications en terme d&#8217;architecture de code</li>
<li>débat ouvert avec l&#8217;assemblée</li>
</ul>
<p>Le choix sera difficile avec en même temps un atelier de David Larlet et Charles McCathieNeville &#8230; où j&#8217;aurais aimé également être présent.</p>
<p>À samedi &#8230; et jeudi et vendredi pour d&#8217;autres <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/2009/paris-web-2009-le-web-en-offline-avec-gears-et-html-5/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Everything You Know About CSS Is Wrong!</title>
		<link>http://case.oncle-tom.net/2009/everything-you-know-about-css-is-wrong/</link>
		<comments>http://case.oncle-tom.net/2009/everything-you-know-about-css-is-wrong/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 06:00:44 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[critique]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[grilles]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[livre]]></category>
		<category><![CDATA[sitepoint]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1287</guid>
		<description><![CDATA[En bon français : &#171;&#160;tout ce que vous savez des CSS est faux !&#160;&#187;. L&#8217;heure n&#8217;est pas à la déprime mais à la lecture de cet ouvrage par le site SitePoint. Il est écrit en anglais par Rachel Andrew et Kevin Yank. Ce titre fortement accrocheur à la limite de l&#8217;injure annonce la couleur : [...]]]></description>
			<content:encoded><![CDATA[<p>En bon français : &laquo;&nbsp;<strong>tout ce que vous savez des <acronym title="Cascading Style Sheets">CSS</acronym> est faux</strong> !&nbsp;&raquo;. L&#8217;heure n&#8217;est pas à la déprime mais à la lecture de cet ouvrage par le site <a href="http://sitepoint.com">SitePoint</a>. Il est écrit en anglais par Rachel Andrew et Kevin Yank.</p>
<p><img class="aligncenter size-medium wp-image-1288" title="Everything You Know About CSS Is Wrong" src="http://case.oncle-tom.net/images/2009/01/everything-you-know-about-css-is-wrong-300x300.jpg" alt="Everything You Know About CSS Is Wrong" width="300" height="300" /></p>
<p>Ce titre fortement accrocheur à la limite de l&#8217;injure annonce la couleur : l&#8217;ouvrage est censé vous expliquer que les techniques employées aujourd&#8217;hui ne sont que du bricolage et qu&#8217;on peut faire la même chose en plus propre et plus simple.</p>
<p>En route pour cette saine lecture &#8230; ou pas.<br />
<span id="more-1287"></span></p>
<h3>Chapitrage</h3>
<p><a href="http://www.sitepoint.com/books/csswrong1/">Everything You Know About <acronym title="Cascading Style Sheets">CSS</acronym> Is Wrong!</a> est découpé en 5 chapitres. Cela représente un volume d&#8217;une petite centaine de pages. En voici la structure :</p>
<ol>
<li>The Problem with <acronym title="Cascading Style Sheets">CSS</acronym></li>
<li><acronym title="Cascading Style Sheets">CSS</acronym> Table Layout</li>
<li><acronym title="Cascading Style Sheets">CSS</acronym> Table Solutions</li>
<li>Considering Older Browsers</li>
<li>The Road Ahead</li>
</ol>
<p>Si vous commencez à flairer le mauvais plan, vous n&#8217;avez pas tout à fait tort.</p>
<h3>display: table-cell au lieu de float/clear/margin</h3>
<p>Tel serait le <em>credo</em> de l&#8217;ouvrage. C&#8217;est en teneur ce qui y est distillé, ni plus ni moins.</p>
<p>Quand on y repense, aujourd&#8217;hui <strong>on utilise vraiment des techniques à la noix</strong> pour positionner les flux, pour imiter des colonnes de taille égale. Tout ça pourquoi ? Parce que le navigateur dominant du marché s&#8217;appelle Internet Explorer 6/7 et ne permet pas d&#8217;utiliser l&#8217;attribut <acronym title="Cascading Style Sheets">CSS</acronym> display: table-cell.<br />
Son utilité ? Donner à l&#8217;élément concerné le comportement d&#8217;un tableau : des cellules de hauteur égale et des colonnes notamment.</p>
<p>Les 2 premiers chapitres sont à ce titre très démonstratifs puisque simplement, on apprend à construire un habillage classique à 2 colonnes avec cette technique. Mais, à mon avis, le chapitre 3 est entièrement à jeter.</p>
<p>Le livre commence en nous expliquant qu&#8217;on utilise des techniques de barbare pour le rendu. Sauf que celles proposées pour palier aux lacunes de cette mise en page en tableaux ne valent pas beaucoup mieux : pas de solution générique possible, simulation de colspan et rowspan laborieuse &#8230; si j&#8217;ai été convaincu par la présentation en grille, je l&#8217;ai en revanche moins été par ces solutions proposées.</p>
<p>Le chapitre 4 explique avec plein de sous-entendus qu&#8217;Internet Explorer 6 et 7 &#8230; ben il faut arrêter. En tous cas pour utiliser le display: table-cell. Je pense que même sans cette technique on avait déjà envie de les balancer mais bon. Ça sera un argument de plus pour prôner cette solution.</p>
<p>Le chapitre 5, <em>The Road Ahead</em>, propose une présentation maintes fois vue et revue de l&#8217;avenir avec CSS3. Ça fait office de piqûre de rappel concernant le module <em>templates</em> et  <em>grille</em> notamment.</p>
<div id="attachment_1289" class="wp-caption aligncenter" style="width: 459px"><a href="http://css.alsacreations.com/xmedia/exemples/display/txt-2cols.png"><img class="size-full wp-image-1289" title="Texte 2 colonnes avec display: table-cell" src="http://case.oncle-tom.net/images/2009/01/txt-2cols.png" alt="Texte 2 colonnes avec display: table-cell" width="449" height="251" /></a><p class="wp-caption-text">Texte 2 colonnes avec display: table-cell</p></div>
<h3>Pourquoi je ne vous recommande pas son achat ?</h3>
<p>Parce qu&#8217;au final on se trouve face à <em>gros article</em> doublé d&#8217;un titre bon pour écouler des exemplaires. Il aurait pu s&#8217;appeler &laquo;&nbsp;<em>comment présenter en grille sans tableaux et sans flottants</em>&nbsp;&raquo; par exemple.</p>
<p>Sans vouloir relancer le fumeux débat du  Web contre les livres, je pense qu&#8217;il y a des articles sur display: table-cell plus courts, moins chers et tout à fait valables (<a href="http://www.digital-web.com/articles/everything_you_know_about_CSS_Is_wrong/">y compris leur article de présentation</a>), notamment sur <a href="http://css.alsacreations.com/Faire-une-mise-en-page-sans-tableaux/Mise-en-page-CSS-avancee-grace-a-la-propriete-display">Alsacréations</a>.<br />
Pour moitié prix, le contenu aurait pu passer. À 30$, j&#8217;en attends davantage &#8230;</p>
<p>Je recommande avec beaucoup plus de ferveur l&#8217;indémodable <a href="http://case.oncle-tom.net/2007/12/11/critique-transcender-css-sublimez-design-web/">Transcender <acronym title="Cascading Style Sheets">CSS</acronym></a> d&#8217;Andy Clarke.</p>
<p>Un dernier point toutefois : je ne suis pas convaincu qu&#8217;un <strong>rendu à l&#8217;identique au pixel près</strong> soit une solution d&#8217;avenir. Il ne faut pas espérer avoir un rendu identique à la maquette ni identique sur tous les naivgateurs (notamment au niveau de la colorimétrie). Je crois davantage à un support de fonctionnalités et des solutions alternatives pour les navigateurs ne supportant pas ces dites-fonctionnalités. De même qu&#8217;on n&#8217;a pas le même rendu de couleurs pour les téléviseurs (y compris HD), il est utopique de vouloir la même chose d&#8217;un site.</p>
<p>Depuis quelques mois je ne recommande plus à mes clients de supporter <acronym title="Internet Explorer 6">IE6</acronym> et ce, malgré ses 20% de parts de marché. Je préfère largement proposer une solution dégradée, toujours fonctionnelle mais moins jolie.<br />
Cette année je refonds le thème de ce blog et je ne compte pas supporter ni <acronym title="Internet Explorer 6">IE6</acronym> ni IE7. Votre adoption d&#8217;autres navigateurs aide mais il faut montrer l&#8217;exemple.</p>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2009/everything-you-know-about-css-is-wrong/feed/</wfw:commentRss>
		<slash:comments>11</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>X-UA-Compatible : danger ou opportunité ?</title>
		<link>http://case.oncle-tom.net/2008/x-ua-compatible-danger-ou-opportunite/</link>
		<comments>http://case.oncle-tom.net/2008/x-ua-compatible-danger-ou-opportunite/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 05:00:42 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[clever age]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[x-ua-compatible]]></category>
		<category><![CDATA[xhtml]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1174</guid>
		<description><![CDATA[Après 10 ans de règne d&#8217;Internet Explorer et un succès d&#8217;adoption en demi-teinte pour son successeur, Internet Explorer 7, Microsoft a fort à faire pour convaincre avec Internet Explorer 8. La firme de Redmond est confrontée à ce fâcheux dilemne : considérer ses clients existants réagir aux pressions exercées par la concurrence, Firefox en tête [...]]]></description>
			<content:encoded><![CDATA[
<p><img class="aligncenter size-full wp-image-1177" title="Logo Internet Explorer 8" src="http://case.oncle-tom.net/images/2008/10/logo-ie8.gif" alt="" width="166" height="58" /></p>
<p>Après 10 ans de règne d&#8217;Internet Explorer et un succès d&#8217;adoption en demi-teinte pour son successeur, Internet Explorer 7, Microsoft a fort à faire pour convaincre avec Internet Explorer 8.<br />
La firme de Redmond est confrontée à ce fâcheux dilemne :</p>
<ul>
<li> considérer ses clients existants</li>
<li> réagir aux pressions exercées par la concurrence, Firefox en tête</li>
</ul>
<p>On peut à ce titre saluer le choix de Microsoft d&#8217;enfin embrasser les standards du Web. La huitième version de son navigateur Web adoptera ainsi par défaut une interprétation respectant ces standards (<acronym title="HyperText Markup Language">HTML</acronym>, <acronym title="eXtensible HyperText Markup Language">XHTML</acronym>, <acronym title="Cascading Style Sheets">CSS</acronym> 2, partiellement <acronym title="Cascading Style Sheets">CSS</acronym> 3).<br />
Ce choix a notamment été facilité par la proposition d&#8217;une nouvelle balise propriétaire : <strong>X-UA-Compatible</strong>.</p>
<p>Solution de facilité ou excellent compromis ?</p>
<p><span id="more-1174"></span></p>
<h3>Internet Explorer 6 : retour de boomerang</h3>
<p>Si les développeurs de sites Web « pour Internet Explorer 6 » ont pu se réjouir d&#8217;un certain laxisme d&#8217;interprétation des standards du Web, ils vont payer dès demain le prix d&#8217;une catastrophe annoncée.<br />
Des milliers (des millions ?) de sites Web et des milliers d&#8217;applications spécifiques reposent ou ont été conçues uniquement pour Internet Explorer 6. Ce navigateur n&#8217;est désormais plus supporté par Microsoft et ce dernier pousse les utilisateurs à adopter au moins Internet Explorer 7. Il faudra cependant disposer de Windows XP et son Service Pack 2 pour en &laquo;&nbsp;profiter&nbsp;&raquo;.</p>
<p>Mais alors, que faire de ses sites et applications vouées à une double obsolescence : la leur et celle de leur navigateur compatible ?</p>
<h3>La solution X-UA-Compatible</h3>
<p>En adoptant par défaut le support des standards avec Internet Explorer 8, Microsoft ne pouvait pas fermer la porte à sa base de clients et d&#8217;utilisateurs.<br />
Au lieu de les flouer et de les ignorer, une nouvelle balise <acronym title="HyperText Markup Language">HTML</acronym> propriétaire pourra être incluse dans l&#8217;entête de toutes les pages <acronym title="HyperText Markup Language">HTML</acronym> : <strong>X-UA-Compatible</strong>.<br />
Cette entête pourra également être renvoyée par le biais d&#8217;une entête <acronym title="HyperText Transfer Protocol">HTTP</acronym> par votre serveur Web favori.<br />
Par &laquo;&nbsp;propriétaire&nbsp;&raquo;, j&#8217;entends que seul Internet Explorer 8 (et peut-être ses successeurs) sera en mesure d&#8217;interpréter la valeur de cette balise. Elle est fort heureusement respectueuse du standard <acronym title="HyperText Markup Language">HTML</acronym> et n&#8217;empêchera donc pas vos pages Web de passer au validateur sans provoquer d&#8217;erreur.</p>
<p>Cette balise a pour effet d&#8217;indiquer à Internet Explorer quel moteur de rendu utiliser. Autrement dit c&#8217;est le site/application Web qui influe sur le comportement schizophrénique du navigateur et en aucun cas l&#8217;utilisateur final.<br />
Si Internet Explorer 8 ne rencontre pas cette balise, il utilisera son moteur de rendu respectueux des standards. Autrement, il basculera dans le mode d&#8217;interprétation correspondant à la version spécifiée, à savoir Internet Explorer 6 ou Internet Explorer 7.</p>
<p>Il faut toutefois avoir en tête que cette bascule n&#8217;affecte pas que l&#8217;interprétation d&#8217;<acronym title="HyperText Markup Language">HTML</acronym> mais aussi celles des <acronym title="Cascading Style Sheets">CSS</acronym> et de JavaScript.<br />
Autrement dit, si vous décidiez un jour d&#8217;enlever la balise <em>X-UA-Compatible</em>, il y a de très fortes chances que vous souscriviez à une grosse couche de recettage fonctionnel, tant du côté <acronym title="Cascading Style Sheets">CSS</acronym> que JavaScript.</p>
<div id="attachment_1176" class="wp-caption aligncenter" style="width: 441px"><img class="size-full wp-image-1176" title="Bouton d'émulation Internet Explorer 7" src="http://case.oncle-tom.net/images/2008/10/emulateie7.png" alt="Bouton d'émulation Internet Explorer 7 ... équivoque ?" width="431" height="122" /><p class="wp-caption-text">Bouton d&#39;émulation Internet Explorer 7 ... équivoque ?</p></div>
<h3>Les options de compatibilité, le casse-tête</h3>
<p>Microsoft propose 3 modes de rendu :</p>
<ol>
<li> <em><acronym title="Internet Explorer">IE</acronym>=7</em> pour forcer tout type de rendu en <em>respect des standards</em> à la sauce IE7 (respect approximatif donc) ;</li>
<li> <em><acronym title="Internet Explorer">IE</acronym>=EmulateIE7</em> pour respecter les standards sauf quand la page est moisie (le fameux <em>mode Quirks</em>). Autrement dit, un Internet Explorer 8 déguisé en IE7 ;</li>
<li> <em><acronym title="Internet Explorer">IE</acronym>=EmulateIE8</em> pour respecter les standards (mais vraiment) sauf quand la page est moisie. Autrement dit un Internet Explorer 8 avec quelques laxismes.</li>
</ol>
<p>Si on compte avec ça la possibilité pour l&#8217;utilisateur de basculer de lui-même vers un mode de rendu &laquo;&nbsp;dégradé&nbsp;&raquo;, difficile de choisir la moindre balise à appliquer.<br />
Le navigateur sera cependant strictement compatible par défaut (pas besoin d&#8217;ajouter la moindre entête ou balise pour cela).</p>
<h3>Quelle stratégie adopter pour ses sites Web ?</h3>
<p>Si la présence de cette balise est en soi une bonne nouvelle, il convient de se poser les <em>bonnes questions</em> : X-UA-Compatible ne doit pas permettre à l&#8217;errance Internet Explorer de se reproduire à nouveau. La facilité ne doit pas être le seul facteur à envisager.<br />
Voici quelques intérêts à utiliser X-UA-Compatible :</p>
<ul>
<li> manque de compétences internes sur <acronym title="HyperText Markup Language">HTML</acronym>/<acronym title="eXtensible HyperText Markup Language">XHTML</acronym> et <acronym title="Cascading Style Sheets">CSS</acronym></li>
<li> besoin rapide d&#8217;adapter l&#8217;existant au nouveau logiciel</li>
<li> parc d&#8217;applications non-maîtrisé ou doté d&#8217;une politique de mise à niveau stricte</li>
<li> pas de budget pour redévelopper le site/application Web</li>
<li> la refonte du site/application aboutira plus tard que le déploiement d&#8217;Internet Explorer 8</li>
</ul>
<p>Vous remarquerez que je n&#8217;aborde en aucun cas la question des nouveaux sites et applications et/ou leur refonte. Ceci pour la simple et bonne raison suivante : X-UA-Compatible est un palliatif à court-terme pour conserver un maximum d&#8217;applications fonctionnelles en attendant leur adoption des standards.</p>
<p>Il y a de très fortes chances que cette balise ne soit plus prise en compte dans la version 9 du navigateur ; tout du moins, je l&#8217;espère fortement.<br />
En clair et pour résumer en 2 lignes :</p>
<ol>
<li> X-UA-Compatible n&#8217;est à utiliser que sur des sites existants, peu conformes aux standards et nécessitant une compatibilité maximale très rapide avec Internet Explorer 8</li>
<li> les refontes doivent impérativement se concentrer sur les standards et agir comme si X-UA-Compatible n&#8217;existait pas</li>
</ol>
<h3>Conclusion : l&#8217;avenir passe par les standards</h3>
<p>Si ce résumé éveille des craintes au plus profond de vous-même, sachez qu&#8217;il n&#8217;est pas trop tard. Comme tout choix logiciel ou matériel, il faut anticiper à moyen et long terme en évitant de s&#8217;enfermer dans une solution totalement fermée.</p>
<p>Les 99% des parts de marché d&#8217;Internet Explorer d&#8217;antan sont la preuve même qu&#8217;on ne peut se reposer sur un taux d&#8217;adoption mais bel et bien sur une base qualitative saine : le Web de demain sera sur vos ordinateurs, vos <acronym title="Personal Digital Assistant">PDA</acronym>, vos téléphones mobiles, vos téléviseurs, vos frigos, vos montres, vos consoles de jeux et même vos murs et tables basses. Dans tous les cas, la garantie que vos sites et applications fonctionnent c&#8217;est le respect des standarts ; les standards du Web, pas ceux définis par Internet Explorer 6.</p>
<p><strong>X-UA-Compatible est une solution à court terme</strong>, en aucun cas une fin en soi ou une garantie de pérennité.</p>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/x-ua-compatible-danger-ou-opportunite/feed/</wfw:commentRss>
		<slash:comments>5</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>Emu Nova 2.1 : coulisses d&#8217;une refonte ergonomique et visuelle</title>
		<link>http://case.oncle-tom.net/2008/emu-nova-21-coulisses-dune-refonte-ergonomique-et-visuelle/</link>
		<comments>http://case.oncle-tom.net/2008/emu-nova-21-coulisses-dune-refonte-ergonomique-et-visuelle/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 05:00:45 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Projets]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[blueprint]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ergonomie]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[logiciels libres]]></category>
		<category><![CDATA[rythme vertical]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[xhtml]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/?p=902</guid>
		<description><![CDATA[Mon premier grand fait d&#8217;armes sur le Web aura été le lancement d&#8217;Emu Nova en octobre 2002. Les grandes lignes du site ont toujours été jeux vidéo rétro, émulation et aide aux utilisateurs. J&#8217;ai ainsi décidé d&#8217;offrir une nouvelle garde-robe à Emu Nova le 1er avril 2008 pour renouveler une interface vieille de 3 ans. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img class="aligncenter size-full wp-image-903" src="http://case.oncle-tom.net/images/2008/04/emunova.gif" alt="Emu Nova" width="186" height="48" /></p>
<p>Mon premier grand fait d&#8217;armes sur le Web aura été le lancement d&#8217;<a href="http://www.emunova.net/">Emu Nova</a> en octobre 2002. Les grandes lignes du site ont toujours été <strong>jeux vidéo rétro</strong>, <strong>émulation</strong> et <strong>aide aux utilisateurs</strong>.<br />
J&#8217;ai ainsi décidé d&#8217;offrir une nouvelle garde-robe à Emu Nova le 1<sup>er</sup> avril 2008 pour <strong>renouveler une interface</strong> vieille de 3 ans. 3 ans où le contenu s&#8217;est accumulé, les menus se sont désordonnés et la navigation s&#8217;est complexifiée.</p>
<p>Aujourd&#8217;hui je vous dévoile les <strong>tenants et aboutissants d&#8217;un travail de réflexion</strong> mené sur plusieurs mois tant en terme d&#8217;ergonomie, d&#8217;accessibilité et de respect des standards du Web.<br />
Où l&#8217;on parlera de jQuery, Blueprint et d&#8217;interface orientée utilisateur.<br />
<span id="more-902"></span></p>
<h3 style="text-align: center;"><a href="http://case.oncle-tom.net/images/2008/04/emunova-2010.png"><img class="aligncenter size-medium wp-image-905" src="http://case.oncle-tom.net/images/2008/04/emunova-2010-227x300.png" alt="Emu Nova : version 2" width="227" height="300" /></a></h3>
<h3>Objectifs de la refonte</h3>
<p>Comme je le disais, la plus grosse critique se tournait vers l&#8217;agencement du site : les menus étaient séparés en 2 et étaient peu visible.</p>
<p>Pire, il y avait tellement de contenu accumulé qu&#8217;au final l&#8217;utilisateur était obligé de scroller au mois une fois pour atteindre le contenu demandé.<br />
J&#8217;ai donc opté pour un <strong>choix radical</strong> : tout reprendre de la feuille blanche et ne tenter de conserver que l&#8217;identité du site au travers de ses couleurs et de son logo.</p>
<p>Plusieurs objectifs ont émergé en griffonnant au fur et à mesure l&#8217;interface sur une feuille de papier :</p>
<ul>
<li>offrir une page d&#8217;accueil qui ne fasse <strong>pas doublon</strong> avec le reste du site</li>
<li>offrir une page d&#8217;accueil <strong>mettant en avant du contenu</strong> pour inciter à visiter le site en profondeur (textes courts, images)</li>
<li>davantage <strong>lier les forums et le site</strong> pour susciter l&#8217;interaction avec l&#8217;internaute</li>
<li>offrir une <strong>interface lisible</strong> dont les contenus sont aisément identifiables sans effort cognitif</li>
<li>offrir du <strong>contenu annexe en pied de page</strong> : je suis désormais intimement convaincu que le pied de page est le meilleur moyen de fidéliser un vagabond curieux qui n&#8217;a pas tiré satisfaction de la première lecture</li>
<li>proposer un site conforme au <strong>standard <acronym title="eXtensible HyperText Markup Language">XHTML</acronym> 1 Strict</strong> en bannissant les mises en forme en tableau, entre autre</li>
</ul>
<p>On le voit, les objectifs de surface sont résolument tournés vers l&#8217;interface utilisateur. Derrière il y avait également des objectifs de simplification et de mutualisation du code avec l&#8217;interface d&#8217;administration.</p>
<h3>Choix technologiques</h3>
<p>Plutôt que de réinventer la roue, j&#8217;ai souhaité utiliser les applications en qui je crois le plus. Je peux compter dessus tout en gagnant du temps. N&#8217;est-ce pas là l&#8217;essentiel ?</p>
<h4>JavaScript : jQuery</h4>
<p>Je suis un féroce utilisateur de <a href="http://jquery.com/">jQuery</a> que j&#8217;adore pour sa <strong>souplesse d&#8217;utilisation</strong> et sa <strong>syntaxe vraiment plaisante</strong>. Elle dépassera, à mon avis, largement le vieillissant couple Prototype/Scriptaculous d&#8217;ici la fin de l&#8217;année 2008.</p>
<p>jQuery sert de base à tout le code JavaScript :</p>
<ul>
<li>altérer l&#8217;interface pour <strong>construire le menu de navigation principal</strong> : sans JavaScript ça marche, avec c&#8217;est encore mieux !</li>
<li>affichage des <strong>messages d&#8217;alertes pour les formulaires incomplets</strong> : pas de popup mais un message inséré à même la page</li>
<li><strong>ouverture des liens externes</strong> dans une nouvelle fenêtre</li>
<li><strong>diaporama de photos</strong> avec Lightbox ; personnalisé pour l&#8217;occasion afin de bénéficier de légendes plus détaillées</li>
</ul>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-904" src="http://case.oncle-tom.net/images/2008/04/emunova-jquery-form.png" alt="Emu Nova : formulaire avec erreur par jQuery" width="500" height="199" /></p>
<p>Il ne reste donc plus en tout et pour tout que 2 popup/alert/confirm obligeant à un affreux et désobligeant clic.</p>
<h4><acronym title="Cascading Style Sheets">CSS</acronym> : Blueprint</h4>
<p><a href="http://code.google.com/p/blueprintcss/">Blueprint</a> est la librairie <acronym title="Cascading Style Sheets">CSS</acronym> la plus proche du Saint-Graal : facile d&#8217;utilisation et très puissante. Mon seul regret à l&#8217;heure actuelle est qu&#8217;elle ne fonctionne qu&#8217;en largeur fixe. Mais dans cette configuration elle joue parfaitement son rôle :</p>
<ul>
<li>construction de colonnes les doigts dans le nez</li>
<li><a href="http://www.biologeek.com/journal/index.php/l-importance-du-rythme-vertical-en-design-css">rythme vertical</a> respecté pour un confort de lecture accru</li>
<li>construction typographique prémachée</li>
<li>correctifs liés à Internet Explorer déjà intégrés</li>
</ul>
<p>Une bonne présentation c&#8217;est une présentation sans contrainte : pas de couleur primaire, pas de difficulté à lire, pas de texte trop petit.</p>
<p>Le premier lecteur qui plisse les yeux c&#8217;est qu&#8217;il aura oublié d&#8217;allumer son écran <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h4>Transparence d&#8217;images : <acronym title="Graphics Interchange Format">GIF</acronym> ou <acronym title="Portable Network Graphics">PNG</acronym> ?</h4>
<p>Quitte à trancher dans le vif, le <strong><acronym title="Graphics Interchange Format">GIF</acronym> a été abandonné au profit du <acronym title="Portable Network Graphics">PNG</acronym></strong> pour le logo.</p>
<p>Pour rappel, si la transparence est possible avec le <acronym title="Graphics Interchange Format">GIF</acronym>, il lui manque la <strong>couche alpha</strong> qui permet de mélanger transparence et couleur. Avec le <acronym title="Portable Network Graphics">PNG</acronym> on peut frimer avec des contours ombrés et des reflets qui fusionnent parfaitement avec le décors.</p>
<p>Alors où est le problème ? Le sempiternel Internet Explorer 6 qui commence même à chauffer les oreilles à Microsoft. À tel point qu&#8217;il souhaite s&#8217;en débarrasser au plus tôt en poussant Internet Explorer 7, y compris pour les non-possesseurs du Service Pack 2 de Windows XP.<br />
La transparence est affichée comme du gris. Magnifique. Sauf en utilisant <a href="http://jquery.khurshid.com/ifixpng.php">jQuery.ifixpng</a>, entre autre.</p>
<h3>Emu Nova : carte de chaleurs, avant et après</h3>
<p style="text-align: center;"><a href="http://case.oncle-tom.net/images/2008/04/emunova-2000vs2100-heatmap.jpg"><img class="aligncenter size-medium wp-image-907" title="Heatmap d\'Emu Nova" src="http://case.oncle-tom.net/images/2008/04/emunova-2000vs2100-heatmap-294x300.jpg" alt="Heatmap d\'Emu Nova" width="294" height="300" /></a></p>
<p>Voici une comparaison des cartes de chaleur à 6 mois d&#8217;intervalle.</p>
<p>On remarque aisément que sur la précédente version les clics sont concentrés, notamment sur la partie haute de la page. Les quelques listes existantes mettent peu en valeur le contenu et de ce fait ne sont pas cliquées.</p>
<p>Sur la nouvelle version les clics semblent <strong>moins concentrés mais touchent globalement toute la page</strong>, exception faite des vignettes en image. Un problème ? Non pas vraiment puisqu&#8217;elles sont rafraîchies toutes les 3 heures ce qui fausse le calcul (qui s&#8217;étale sur 1 journée).</p>
<p>Notez aussi les clics en bas de page : <strong>le pied de page compte</strong>. Qui n&#8217;a pas eu envie qu&#8217;on lui suggère du contenu à lire une fois sa lecture terminée ?</p>
<h3>Conclusion</h3>
<p style="text-align: center;"><a href="http://case.oncle-tom.net/images/2008/04/emunova-2101-homepage.png"><img class="aligncenter size-medium wp-image-906" title="Emu Nova 2.1 : page d\'accueil" src="http://case.oncle-tom.net/images/2008/04/emunova-2101-homepage-203x300.png" alt="Emu Nova 2.1 : page d\'accueil" width="203" height="300" /></a></p>
<p style="text-align: left;">Il n&#8217;est pas aisé de refondre une interface, surtout quand il y a derrière toute une troupe d&#8217;utilisateurs attachés à ses habitudes (ce qu&#8217;on peut comprendre).</p>
<p style="text-align: left;">Si on temporise les différentes phases, voici ce que cela donne :</p>
<ul>
<li>analyse des besoins, ressenti de la situation : plusieurs mois</li>
<li>dessin de la nouvelle interface sur papier : plusieurs jours</li>
<li>intégration <acronym title="HyperText Markup Language">HTML</acronym> : plusieurs heures</li>
<li>refonte du code : plusieurs jours</li>
<li>corrections de bugs : plusieurs heures</li>
<li>premières critiques : quelques minutes</li>
</ul>
<p>Pas étonnant que ma régularité sur ce blog en aie pris un coup <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/emu-nova-21-coulisses-dune-refonte-ergonomique-et-visuelle/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Microformats : comment microformater du contenu déjà existant ?</title>
		<link>http://case.oncle-tom.net/2008/microformats-comment-microformater-du-contenu-deja-existant/</link>
		<comments>http://case.oncle-tom.net/2008/microformats-comment-microformater-du-contenu-deja-existant/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 21:07:42 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[adr]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[clever age]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[hatom]]></category>
		<category><![CDATA[hcalendar]]></category>
		<category><![CDATA[hcard]]></category>
		<category><![CDATA[logiciels libres]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[wikia]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xoxo]]></category>
		<category><![CDATA[yahoo]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/2008/04/03/microformats-comment-microformater-du-contenu-deja-existant/</guid>
		<description><![CDATA[Nous avions dressé un panorama des microformats dans un précédent article intitulé « microformats : republier et donner du sens aux contenus ». Nous avions notamment conclu que leur intégration était rapide, peu coûteuse et surtout bénéfique tant pour le visiteur que pour la visibilité du contenu. Nous nous intéresserons cette fois-ci à une partie [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/07/logo-microformats.gif" alt="Microformats logo" /></p>
<p>Nous avions dressé un panorama des microformats dans un précédent article intitulé « <a href="http://case.oncle-tom.net/2008/01/29/microformats-republier-donner-sens-aux-contenus/">microformats : republier et donner du sens aux contenus</a> ». Nous avions notamment conclu que leur<strong> intégration était rapide, peu coûteuse et surtout bénéfique</strong> tant pour le visiteur que pour la visibilité du contenu.</p>
<p>Nous nous intéresserons cette fois-ci à une partie plus pratique des microformats : leur <strong>intégration</strong>. Toutefois ce rapide apprentissage sera didactique puisque nous apprendrons à identifier visuellement quels contenus d’une page peuvent être microformatés mais aussi comment microformater du code <acronym title="HyperText Markup Language">HTML</acronym> déjà existant.<br />
<span id="more-896"></span></p>
<h3>Des sites déjà microformatés</h3>
<p>Intéressons-nous toutefois à des sites ayant déjà microformaté leurs contenus. Nous pourrons ainsi éveiller notre curiosité et préparer le travail de réflexion de la prochaine étape.</p>
<p><strong><a href="http://maps.google.fr/?q=clever-age&amp;near=paris">Exemple avec Google Maps</a></strong> :</p>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2008/04/microformats-sites-google-maps.jpg" alt="Microformats sur Google Maps" /></p>
<p>Google Maps est un service de recherche cartographique accessible via un simple navigateur Web. Le moteur donne un accès à des recherches de lieux, de calculs d&#8217;itinéraires mais aussi d&#8217;emplacement d&#8217;entreprises.</p>
<p>Le support des microformats sur Google Maps est relativement léger mais suffisant pour être utile.<br />
Contrairement à ce que l&#8217;on aurait pu penser, Google n&#8217;a pas intégré le <a href="http://microformats.org/wiki/geo">microformat geo</a> pour exporter les coordonnées GPS d&#8217;un point. La société s&#8217;est concentrée sur les données personnelles au moyen de deux microformats combinés :</p>
<ul>
<li> <a href="http://microformats.org/wiki/hcard">microformat hCard</a> (correspond à la réunion des encadrés bleu et vert)</li>
<li> <a href="http://microformats.org/wiki/adr">microformat adr</a> (correspond à l&#8217;encadré vert uniquement)</li>
</ul>
<p>Cette combinaison facilite l&#8217;extraction des adresse postales et des entités (individus ou entreprises).</p>
<p><strong><a href="http://upcoming.yahoo.com/search/?loc=paris">Exemple avec Yahoo ! Upcoming</a></strong> :</p>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2008/04/microformats-sites-yahoo-upcoming.jpg" alt="Microformats sur Yahoo! Upcoming" /></p>
<p>Yahoo ! Upcoming est un service gratuit cataloguant tous les évènements à venir par pays, ville, date et même par catégories (cinéma, concerts, expositions etc.).</p>
<p>Le microformat par excellence à adopter était bien évidemment le <a href="http://microformats.org/wiki/hcalendar">microformat hCalendar</a>. Chaque occurence microformatée est représentée par un rectangle vert et peut contenir ces différents attributs, entre autre :</p>
<ul>
<li> date de début de l&#8217;évènement</li>
<li> date de fin de l&#8217;évènement</li>
<li> titre de l&#8217;évènement</li>
<li> description de l&#8217;évènement</li>
<li> le lieu de l&#8217;évènement (sous forme d&#8217;adresse complète ou pas)</li>
<li> une <acronym title="Uniform Resource Locator">URL</acronym> menant à un descriptif plus approfondi de l&#8217;évènement</li>
</ul>
<p>Ce microformatage permet d&#8217;aller au-delà d&#8217;une lecture classique puisque de manière simple, elle permet au visiteur de récupérer les évènements qui l&#8217;intéresse pour les ajouter à son gestionnaire de temps favoris, qu&#8217;il soit logiciel ou en ligne.</p>
<h3>Identifier visuellement les microformats à intégrer</h3>
<p>Identifier des microformats déjà implémenté est assez simple avec les outils adéquats. En revanche pour décider de microformater du contenu, deux outils sont indispensables :</p>
<ul>
<li> la documentation des microformats pour savoir <strong>quoi implémenter</strong></li>
<li> un peu de jugeotte pour savoir <strong>comment implémenter</strong> <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
<p>Avec un peu de pratique et de connaissance des différents microformats, il ne faut pas plus de 5 à 10 minutes pour identifier les contenus microformatables. La difficulté d&#8217;intégration dépendra uniquement de la structure technique affichant les données : plus elle sera complexe, plus le microformatage pourra être long &#8230; au même titre que toute autre modification basique.</p>
<p><strong><a href="http://re.search.wikia.com/search#clever%20age">Exemple avec Wikia Search</a></strong> :</p>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2008/04/microformats-tomicroformat-wikia-search.jpg" alt="Microformats sur Wikia Search" /></p>
<p>Wikia Search est un moteur de recherche lancé au tout début de l&#8217;année 2008 par un des fondateurs de l&#8217;encyclopédie en ligne Wikipédia. Ce moteur en reprend d&#8217;ailleurs le principe du wiki pour contribuer à l&#8217;élaboration et la notation de meilleurs résultats.</p>
<p>Il est d&#8217;ailleurs étonnant de voir qu&#8217;aucun microformat ne soit présent malgré de tels objectifs. La capture d&#8217;écran ci-dessus découpe la page en 3 zones microformatables distinctes :</p>
<ol>
<li> le lien sur logo aurait pu se voir agrémenter d&#8217;un <a href="http://microformats.org/wiki/rel-home">rel-home</a> pour signifier un retour vers la page d&#8217;accueil ;</li>
<li> les résultats auraient pu quant à eux embarquer :
<ul>
<li> le <a href="http://microformats.org/wiki/hatom">microformat hAtom</a> pour faciliter la syndication de contenu et l&#8217;extraction des résultats.</li>
<li> le <a href="http://microformats.org/wiki/hreview">microformat hReview</a> ou <a href="http://microformats.org/wiki/vote-links">VoteLinks</a> sur les encadrés orangés identifiant les zones de votes.</li>
</ul>
</li>
<li> enfin le <a href="http://microformats.org/wiki/hcard">microformat hCard</a> aurait été le bienvenu sur la liste des résultats correspond à des personnes.</li>
</ol>
<p>On peut constater que plus il y a d&#8217;emplacement représentant des contenus différents sur une page, plus on a de chances qu&#8217;un microformat corresponde.</p>
<p><strong><a href="http://www.clever-age.com/">Exemple avec Clever Age</a></strong> :</p>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2008/04/microformats-tomicroformat-cleverage.jpg" alt="Microformats sur Clever Age" /></p>
<p>J&#8217;ai dénombré pas moins de 5 zones pouvant accueillir des microformats :</p>
<ol>
<li> les dernières actualités pourraient utiliser le <a href="http://microformats.org/wiki/hatom">microformat hAtom</a>. Un flux <acronym title="Really Simple Syndication">RSS</acronym> est déjà disponible sur la page mais ce serait offrir un chemin de traverse pour les visiteurs et les moteurs d&#8217;indexation ;</li>
<li> le <a href="http://microformats.org/wiki/hcalendar">microformat hCalendar</a> aiderait à la réutilisation des données dans les gestionnaires de temps. Imaginez un chef d&#8217;entreprise affairé désireux de transmettre à ses collaborateurs une ressource contenant toutes les informations de leur future formation : peu d&#8217;effort et un gain de communication ;</li>
<li> ajouter facilement Clever Age dans votre carnet de contacts et de prestataires serait également facilité si le <a href="http://microformats.org/wiki/hcard">microformat hCard</a> redistribuait le nom et les moyens de contact de la société ;</li>
<li> en complément au moyen de contact, l&#8217;emplacement géographique des agences serait à portée de clic avec le <a href="http://microformats.org/wiki/geo">microformat geo</a>. Après tout, Google Maps proposera peut-être un jour d&#8217;importer des <acronym title="Uniform Resource Locator">URL</acronym> microformatée en plus des fichiers KMZ (Google Earth) <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ;</li>
<li> enfin, le microformatage de la dernière partie dépend de ce qu&#8217;on aimerait redistribuer :
<ul>
<li> le <a href="http://microformats.org/wiki/hatom">microformat hAtom</a> pour offrir 3 flux de syndication mais le peu d&#8217;éléments (2 à chaque fois) tende à infirmer la pertinence de ce microformat dans le cas présent ;</li>
<li> le <a href="http://microformats.org/wiki/xoxo">microformat XOXO</a> est adapté à décrire des types de contenus embarqués dans une page ; ici des flux <acronym title="Really Simple Syndication">RSS</acronym>. Il serait à placer sur chaque lien pointant vers les flux <acronym title="Really Simple Syndication">RSS</acronym> ;</li>
<li> le <a href="http://microformats.org/wiki/xfolk">microformat Xfolk</a> est adapté aux collections d&#8217;<acronym title="Uniform Resource Locator">URL</acronym> plus communément appelés « favoris » ou « marque-pages »</li>
</ul>
</li>
</ol>
<p>Avec ce dernier exemple, nous venons de voir que le microformatage était facilement adaptable à un site Web de société. Dans ce cas précis, il y a énormément de contenu republiable mais pas systématiquement de manière pertinente.</p>
<h3>Intégrer les microformats dans du (X)<acronym title="HyperText Markup Language">HTML</acronym></h3>
<p>Les précédents exemples, sur de l&#8217;existant et ce qui pourrait exister, avaient pour but de former notre esprit à reconnaitre des zones susceptibles d&#8217;être microformatées.</p>
<p>La difficulté de l&#8217;exercice est d&#8217;ajouter du balisage sans altérer la présentation actuelle. Je traiterai du site de Clever Age dont nous avons parlé précédemment.</p>
<p><strong>Microformater des données d&#8217;entités</strong></p>
<p>Voici le code de départ, repris tel quel :</p>
<pre><code>Clever Age - Siège social : 01.53.34.66.10</code></pre>
<p>Comme nous avons pu le voir, la gestion d&#8217;identités passe par le <a href="http://microformats.org/wiki/hcard">microformat hCard</a> :</p>
<pre><code>&lt;span class="vcard"&gt;
&lt;span class="fn org"&gt;Clever Age&lt;/span&gt; - Siège social : &lt;span class="tel"&gt;&lt;span class="value"&gt;01.53.34.66.10&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;</code></pre>
<p>La balise <em>span</em> est une balise en-ligne neutre au sens où &#8230; n&#8217;en a pas justement. <em>div</em> est son pendant de type bloc.</p>
<p><strong>Microformater des ressources syndiquées</strong><br />
Voici le code de départ (simplifié par rapport à l&#8217;exemple afin de réduire le code à lire) :</p>
<pre><code>&lt;dl&gt;
&lt;dt&gt;&lt;a href="/rss/blog.xml"&gt;derniers billets du blog&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;...&lt;/dd&gt;
&lt;dt&gt;&lt;a href="/rss/publications.xml"&gt;dernières publications&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;...&lt;/dd&gt;
&lt;dt&gt;&lt;a href="/rss/cleverlink.xml"&gt;derniers Clever Links&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;...&lt;/dd&gt;
&lt;/dl&gt;</code></pre>
<p>Le <a href="http://microformats.org/wiki/xoxo">microformat XOXO</a> nous permet de définir une liste d&#8217;éléments en fonction des <a href="http://microformats.org/wiki/xoxo#The_XOXO_Document_Type">modules <acronym title="eXtensible HyperText Markup Language">XHTML</acronym></a> :</p>
<pre><code>&lt;dl class="xoxo"&gt;
&lt;dt&gt;&lt;a href="/rss/blog.xml" rel="feed" type="text/xml"&gt;derniers billets du blog&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;...&lt;/dd&gt;
&lt;dt&gt;&lt;a href="/rss/publications.xml" rel="feed" type="text/xml"&gt;dernières publications&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;...&lt;/dd&gt;
&lt;dt&gt;&lt;a href="/rss/cleverlink.xml" rel="feed" type="text/xml"&gt;derniers Clever Links&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;...&lt;/dd&gt;
&lt;/dl&gt;</code></pre>
<p>Le microformatage a été rendu possible uniquement en utilisant de manière standardisée des attributs définis par <acronym title="eXtensible HyperText Markup Language">XHTML</acronym>.<br />
Malgré cet aspect de simplicité, il faut s&#8217;investir dans la compréhension des spécifications <acronym title="eXtensible HyperText Markup Language">XHTML</acronym>. Ce n&#8217;est un problème que pour les personnes produisant du code <acronym title="eXtensible HyperText Markup Language">XHTML</acronym> non-conforme.</p>
<h3>Valider l&#8217;intégration des microformats</h3>
<p>La question qui se pose toujours après avoir produit un code quelconque c&#8217;est comment le tester ? Il existe à l&#8217;heure actuelle trois outils gratuits :</p>
<ul>
<li> la relecture manuelle avec la documentation à côté <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li> l&#8217;<a href="https://addons.mozilla.org/firefox/addon/4106">extension Operator pour Firefox</a>. Elle n&#8217;est toutefois pas complète et ne permettra pas de tester tous les microformats existants. Cette extension propose dans ses options un <em>mode débogage</em> très utile ;</li>
<li> le service en ligne <a href="http://microformatique.com/optimus/">Optimus</a>. Ce service polyvalent est capable de retourner sous forme de flux <acronym title="eXtensible Markup Language">XML</acronym> ou JSON les microformats présents dans une page Web. Il propose également un validateur, toujours pour une page Web, décrivant les erreurs de microformatage.</li>
</ul>
<h3>Conclusion</h3>
<p>Il est difficile d&#8217;infuser en un article la manière de microformater du contenu. Fort heureusement la documentation des microformats abonde d&#8217;exemples en traitant des cas de figure concrets. Les spécifications restent là pour savoir quels sont les attributs, obligatoires ou pas.</p>
<p>De manière générale <strong>l&#8217;intégration des microformats est relativement aisée</strong> mais il existe 3 difficultés principales à l&#8217;intégration des microformats :</p>
<ul>
<li> difficultés liées à la <strong>plate-forme technique</strong> d&#8217;intégration ;</li>
<li> difficultés liées à un <strong>manque de données</strong>. Certaines spécifications exigent la présence de données particulières que l&#8217;on n&#8217;a pas ou que l&#8217;on ne peut afficher, rendant invalide le contenu ;</li>
<li> difficultés liées à un <strong>code <acronym title="HyperText Markup Language">HTML</acronym> désorganisé</strong>. L&#8217;abus de <em>div</em> et le non-respect de hiérarchie est une source de problèmes et si elle rend pénible l&#8217;intégration des microformats, elle pose problème à la maintenance du code et des <acronym title="Cascading Style Sheets">CSS</acronym>.</li>
</ul>
<p>Intégrer les microformats c&#8217;est finalement mener une <strong>réflexion sur la qualité du code produit</strong>. Un bon code, respectueux des standards et sémantique sera pérenne dans le temps, facilitera le microformatage et aura davantage de chances d&#8217;être accessible.</p>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/microformats-comment-microformater-du-contenu-deja-existant/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bonnes pratiques de codage CSS</title>
		<link>http://case.oncle-tom.net/2008/bonnes-pratiques-codage-css/</link>
		<comments>http://case.oncle-tom.net/2008/bonnes-pratiques-codage-css/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 06:00:18 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[aptana]]></category>
		<category><![CDATA[bonnes pratiques]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[coding standards]]></category>
		<category><![CDATA[compresseur]]></category>
		<category><![CDATA[conventions]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[CSSDoc]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[feuille de style]]></category>
		<category><![CDATA[indentation]]></category>
		<category><![CDATA[logiciels libres]]></category>
		<category><![CDATA[optimisation]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/2008/02/26/bonnes-pratiques-codage-css/</guid>
		<description><![CDATA[J&#8217;y songeais mais l&#8217;article «De l&#8217;ordre, que diable !» m&#8217;a incité à m&#8217;y atteler plus tôt que prévu. Il n&#8217;y a en effet pas de méthode universelle pour programmer les CSS mais après plusieurs années d&#8217;expérience, j&#8217;ai affiné ma réflexion que je vous livre aujourd&#8217;hui. Où l&#8217;on parlera de présentation en 1 ligne, de CSSDoc [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2008/02/css-url-import.png" alt="CSS URL @import" /></p>
<p>J&#8217;y songeais mais l&#8217;article «<a href="http://blog.alsacreations.com/2008/02/21/411-de-lordre-que-diable-">De l&#8217;ordre, que diable !</a>» m&#8217;a incité à m&#8217;y atteler plus tôt que prévu.<br />
Il n&#8217;y a en effet <strong>pas de méthode universelle pour programmer</strong> les <acronym title="Cascading Style Sheets"><acronym title="Cascading Style Sheets">CSS</acronym></acronym> mais après plusieurs années d&#8217;expérience, j&#8217;ai affiné ma réflexion que je vous livre aujourd&#8217;hui.</p>
<p>Où l&#8217;on parlera de présentation en 1 ligne, de CSSDoc mais aussi de <em>folding</em> et d&#8217;indentation. <strong>En clair, tout plein de bonnes pratiques</strong> de développement en <acronym title="Cascading Style Sheets">CSS</acronym> qui vous feront gagner du temps, vous éviterons de la sueur et sentent bon le travail de qualité.<br />
<span id="more-878"></span></p>
<h3>Halte là et retour à la ligne !</h3>
<p>J&#8217;ai utilisé pendant un moment la technique dite du <a href="http://orderedlist.com/articles/single-line-css">single line <acronym title="Cascading Style Sheets">CSS</acronym></a> ; à savoir 1 ligne par déclaration.<br />
Je n&#8217;hésiterai pas une seconde à dire que je déconseille fortement cette écriture pour les raisons suivantes :</p>
<ul>
<li>si on souhaite gagner de la place, il y a des compresseurs (je recommande <a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a>): pas la peine de réaliser ce travail nous-même ;</li>
<li>l&#8217;ajout de commentaires n&#8217;en est que plus compliqué : on a tous besoin de commenter certains passages cruciaux, notamment les <em>hacks</em> et autres <em>fix</em> ;</li>
<li>c&#8217;est tout bonnement illisible dès qu&#8217;on s&#8217;y replonge quelques semaines plus tard : imaginez pour quelqu&#8217;un qui n&#8217;a pas écrit le code !</li>
</ul>
<p>Les arguments avancés pour cette technique ne tiennent pas la route : <strong>on recherche avant tout la qualité et la facilité de relecture</strong>. Les quelques kilo-octets à perdre se feront par le biais de programmes. Ça ne doit certainement pas entraver le développement.</p>
<h3>L&#8217;auto-documentation avec la syntaxe CSSDoc</h3>
<p>Les habitués de Java connaissent <a href="http://java.sun.com/j2se/javadoc/">JavaDoc</a>.<br />
Les habitués de <acronym title="Pre-Hypertext Processing">PHP</acronym> connaissent <a href="http://www.phpdoc.org/">PHPDoc</a>.<br />
Les habitués de JavaScript connaissent <a href="http://code.google.com/p/jsdoc-toolkit/">JsDoc Toolkit</a> (dérivé de <a href="http://jsdoc.sourceforge.net/">JsDoc</a>).</p>
<p>Il était donc tout naturel que cette syntaxe de commentaires et d&#8217;auto-documentation soit utilisable en <acronym title="Cascading Style Sheets">CSS</acronym> avec <a href="http://cssdoc.net">CSSDoc</a>. Il n&#8217;y a pas d&#8217;inconvénient à l&#8217;utiliser, au contraire, que des avantages :</p>
<ul>
<li>la syntaxe permet d&#8217;<strong>harmoniser les commentaires</strong> sur les projets impliquant plusieurs développeurs ;</li>
<li>sa syntaxe <strong>facilite la relecture</strong> puisqu&#8217;elle est connue et employée dans de nombreux langages, autres que les <acronym title="Cascading Style Sheets">CSS</acronym> ;</li>
<li>l&#8217;<strong>auto-documentation du code</strong> c&#8217;est faciliter la génération d&#8217;une documentation externe en automatisant le processus ;</li>
<li>documenter en même temps que l&#8217;on écrit c&#8217;est <strong>comprendre ce que l&#8217;on fait</strong> et gagner du temps en évitant une écriture <em>a posteriori</em> ;</li>
</ul>
<p><a href="http://cssdoc.net/wiki/CssdocDraft">La syntaxe CSSDoc est documentée</a>,  aisément reconnaissable et est supportée par les meilleurs éditeurs <acronym title="Cascading Style Sheets">CSS</acronym>, dont <a href="http://www.aptana.com/">Aptana IDE</a> :</p>
<pre><code class="css">/**
 * @author Oncle Tom
 * @lastmodified Fev, 26 2008
 * @media print, screen
 * @site http://www.oncle-tom.net/
 */
/**
 * Redéfinition des balises <acronym title="HyperText Markup Language">HTML</acronym>
 *
 * @section html
 * @todo utiliser un reset.css conforme
 */
html,
*{
  margin: 0;
  padding: 0;
}</code></pre>
<h3>L&#8217;organisation hiérarchique</h3>
<p>J&#8217;ai pour habitude de travailler avec une seule feuille de style par media. Comme je travaille sur des <strong>hiérarchies thématiques</strong>, leur découpage en plusieurs fichiers ne consiste qu&#8217;à du copier/coller. On peut ainsi facilement passer d&#8217;une mono-feuille à du multi-feuilles. Je ne suis pas un fervent utilisateur de ces dernières car un code bien lisible sur une seule page n&#8217;est pas problématique.<br />
Je ne l&#8217;emploie que pour faciliter la réutilisation des <acronym title="Cascading Style Sheets">CSS</acronym> sur plusieurs projets partageant la même base graphique.</p>
<p>Concrètement, je vais d&#8217;abord organiser ma feuille pour redéfinir les éléments <acronym title="HyperText Markup Language">HTML</acronym> génériques puis créer autant de sections qu&#8217;il n&#8217;y en a sur ma page (navigation, contenu, navigation de contenu, contenus annexes etc.).<br />
Plus je m&#8217;avancerai dans la profondeur du balisage <acronym title="HyperText Markup Language">HTML</acronym> et plus j&#8217;indenterai mon code. Cette indentation fait penser à celle utilisée par le <a href="http://www.python.org/">langage Python</a>.</p>
<p>On pourrait résumer cette convention à ceci :</p>
<ul>
<li><strong>pas de tabulation</strong>, que des espaces pour avoir le même affichage peu importe les éditeurs</li>
<li>2 espaces par tabulation</li>
<li><strong>attributs classés par ordre alphabétique</strong> (même logique pour tout le monde)</li>
<li>une ligne d&#8217;espace entre les définitions ; pas de ligne entre les définitions proches/liées</li>
</ul>
<p>C&#8217;est simple et voici un exemple de résultat :</p>
<pre><code class="css">/**
 * Redéfinition du <acronym title="HyperText Markup Language">HTML</acronym>
 */
a{
  text-decoration: underline;
}
  a img{
    border: none;
  }
p{
  line-height: 1.5em;
}
  p img{
    margin: 1.5em
  }
  p img.top{
    margin-top: 0;
  }
/**
 * Contenu
 */
#main-content{
  clear: both;
  width: 100%;
}
  /**
   * Articles
   */
  #articles{
    margin-bottom: 2em;
  }
    #articles h2{
      font-size: 1.5em;
      font-weight: bold;
    }</code></pre>
<p>Les mieux organisés d&#8217;entre vous ajouteront un <strong>tri par fréquence d&#8217;utilisation</strong> afin d&#8217;optimiser les va-et-vient : on met en haut ce qu&#8217;on est susceptible de modifier le plus souvent, en bas ce à quoi on touchera rarement. Je ne vais pas jusque là mais ça reste envisageable, pertinent et surtout adapté aux plus chevronnés de l&#8217;optimisation.</p>
<h3>Autres conseils et astuces</h3>
<h4>Utilisation de raccourcis</h4>
<p>Les <em>aficionados</em> de l&#8217;optimisation et du gain de temps apprécieront cette méthode, s&#8217;ils ne l&#8217;utilisent pas déjà. J&#8217;ai pour habitude de placer des raccourcis dans mes sections pour <strong>faciliter l&#8217;utilisation d&#8217;une recherche via le raccourci clavier</strong> <kbd>Control+F</kbd>.<br />
Je préfixe chaque raccourci d&#8217;un symbole <kbd>=</kbd> :</p>
<pre><code class="css">/**
 * Liens d'évitement
 * =evitement
 */</code></pre>
<p>Je trouve cette méthode très pratique pour atteindre des portions de code. On évite ainsi un appel à la touche <kbd>Alt Gr</kbd> pour appuyer sur le # d&#8217;un ID (pour peu que l&#8217;on n&#8217;ait que des ID en tant que sections). On évite aussi les collisions de nom ou les recherches infructueuses pour cause de changement de nom de classes ou d&#8217;ID.</p>
<h4>De la sémantique, que diable !</h4>
<p>Je suis particulièrement attaché à cette bonne pratique d&#8217;autant plus qu&#8217;elle ne tombe pas forcément sous le sens de tout le monde : <strong>nommez vos ID et classes en fonction de leur <em>signification</em>, pas de leur <em>représentation</em></strong>. C&#8217;est la suite logique de la séparation fond et forme du <acronym title="HyperText Markup Language">HTML</acronym> et des <acronym title="Cascading Style Sheets">CSS</acronym>.</p>
<p><strong>Mauvaise sémantique</strong> :</p>
<pre><code class="css">.rouge{
  color: red;
}
#sidebar{
  /* ... */
}
#top-links{
  /* ... */
}</code></pre>
<p><strong>Bonne/meilleure sémantique</strong> :</p>
<pre><code class="css">.important{
  color: red;
}
#alternate-navigation{
  /* ... */
}
#main-links{
  /* ... */
}</code></pre>
<p><code>#sidebar</code> pourra être renommé différemment selon son contenu, selon que l&#8217;encart contienne des éléments de navigation supplémentaires, des informations utilisateur (<code>#user-content</code>) ou encore des widgets (<code>#widgets</code>).<br />
En conservant votre <acronym title="HyperText Markup Language">HTML</acronym> intact et en jouant sur les <acronym title="Cascading Style Sheets">CSS</acronym>, la <code>#sidebar</code> peut en effet se retrouver tout en bas, à l&#8217;horizontale. Aurez-vous toujours envie de l&#8217;appeler pareil ? Pas forcément. <strong>Un bon nommage est un nommage qui se conserve peu importe l&#8217;aspect de la présentation</strong>.</p>
<h4>Du choix de la langue</h4>
<p>Cette bonne pratique s&#8217;applique aussi bien aux <acronym title="Cascading Style Sheets">CSS</acronym> qu&#8217;à d&#8217;autres langages. Il faut partir du principe qu&#8217;<strong>il ne faut pas mélanger les langues dans le code</strong>, tant dans les commentaires que dans le nommage des classes et ID. <strong>Choisissez-une langue et restez avec</strong>.<br />
Certaines contraintes peuvent faciliter le choix de la langue : le travail avec une équipe internationale ou la redistribution du code. Dans ce cas l&#8217;anglais sera à 99% votre langue de prédilection.</p>
<p>Il n&#8217;y a pas de choix idéal : certains préféreront le tout français, d&#8217;autres le tout anglais. L&#8217;essentiel est que ce <strong>choix soit motivé par des arguments objectifs, pas une préférence personnelle</strong>.</p>
<h4>Recours au <em>folding</em></h4>
<p>J&#8217;en parle succintement mais le <em>folding</em> consiste à utiliser votre éditeur <acronym title="Cascading Style Sheets">CSS</acronym> pour <strong>masquer une partie de code</strong>. Eclipse propose par exemple de masquer toutes les définitions et tous les commentaires : leur contenu n&#8217;est révélé qu&#8217;en le dépliant.</p>
<p>Je ne suis pas un fervent utilisateur de cette pratique bien que je respecte son utilisation. Je trouve qu&#8217;en utilisation les précédentes astuces (hiérarchie + recherche) on s&#8217;y retrouve très bien.</p>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2008/02/css-folding.png" alt="Folding en CSS" /></p>
<h3>Conclusion</h3>
<p>Ma méthodologie n&#8217;est pas parfaite, peut être perfectible et ne conviendra pas à tout le monde, par goûts ou par habitudes. Ces dernières sont cependant à combattre pour améliorer son travail. <strong>Quoi de mieux qu&#8217;un code propre, bien documenté et où l&#8217;on trouvera facilement ce que l&#8217;on cherche</strong> ?</p>
<p>C&#8217;est ce qui importe. <strong>Il y a autant de façons de coder qu&#8217;il n&#8217;y a de développeurs</strong>. Le tout est d&#8217;être ouvert aux améliorations possibles, aux méthodes existantes et à l&#8217;intérêt de leurs utilisations. Je trouverai peut-être cet article obsolète dans 1 an mais il aura été un point de passage.</p>
<p>J&#8217;espère qu&#8217;il le sera au moins en partie pour vous, développeur en herbe ou féru des pseudo-classes <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/bonnes-pratiques-codage-css/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Microformats : republier et donner du sens aux contenus</title>
		<link>http://case.oncle-tom.net/2008/microformats-republier-donner-sens-aux-contenus/</link>
		<comments>http://case.oncle-tom.net/2008/microformats-republier-donner-sens-aux-contenus/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 06:00:06 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[bonnes pratiques]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[hatom]]></category>
		<category><![CDATA[hcard]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[logiciels libres]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[semantique]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[technorati]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/2008/01/29/microformats-republier-donner-sens-aux-contenus/</guid>
		<description><![CDATA[Le Web sémantique. Cette expression est sur toutes les lèvres de ceux qui préparent l&#8217;Internet de demain. Moteurs de recherche, services de pointe, secteur marchand &#8230; après avoir indexé du contenu, ils aimeraient désormais le comprendre. Comprendre pour mieux cibler, mieux profiler et mieux servir. Malgré cet aspect futuriste teinté de recherche et de développement, [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/07/logo-microformats.gif" alt="Logo Microformats" /></p>
<p><strong>Le Web sémantique</strong>.<br />
Cette expression est sur toutes les lèvres de ceux qui préparent l&#8217;Internet de demain. Moteurs de recherche, services de pointe, secteur marchand &#8230; après avoir indexé du contenu, ils aimeraient désormais le comprendre. Comprendre pour mieux cibler, mieux profiler et mieux servir.<br />
<span id="more-861"></span></p>
<p>Malgré cet aspect futuriste teinté de recherche et de développement, le concept de Web sémantique est pourtant vieux comme &#8230; le Web. Tim Berners-Lee y pensait déjà lorsqu&#8217;il accouchait d&#8217;Internet sur ses petites tablettes.</p>
<p>Si les hommes arrivent à comprendre les hommes, les ordinateurs ne comprennent <em>que</em> ce pourquoi ils ont été programmés. Le Web sémantique a été imaginé pour palier à ce problème, pour expliquer le sens du contenu, pour lier les contenus entre eux tout en décrivant ces relations.</p>
<p>En ce sens, les formats <acronym title="Ressource Description Framework"><acronym title="Resource Description Framework">RDF</acronym></acronym> et <acronym title="Web Ontology Language">OWL</acronym> figurent comme les étendards du concept. <acronym title="Resource Description Framework">RDF</acronym> décrit les ressources tandis qu&#8217;OWL établit des liens entre eux en leur donnant un sens. Ces relations sont nommées <a href="http://fr.wikipedia.org/wiki/Ontologie_%28informatique%29">ontologies</a> et permettent donc de transformer un Web de données anonymes en un Web sémantique. Un Web où humains et ordinateurs comprennent et échangent.</p>
<p><strong>Les microformats sont nés du constat de complexité de mise en œuvre du couple <acronym title="Resource Description Framework">RDF</acronym>/OWL et d&#8217;un besoin de simplicité</strong>.</p>
<h3>Les microformats</h3>
<p>Tantek Çelik et Adam Rifkin dévoilent le concept des microformats en 2004 après 2 années d&#8217;expérimentation. Ils ne s&#8217;en cachaient pas : ils souhaitaient démocratiser et implanter la sémantique au cœur du Web en s&#8217;affranchissant au maximum de contraintes techniques.<br />
C&#8217;est ainsi qu&#8217;au lieu de créer un énième format de fichier les microformats se greffent sous la forme d&#8217;attributs (X)<acronym title="HyperText Markup Language">HTML</acronym> pour tenter de donner du sens au contenu.</p>
<p>Il existe plusieurs spécifications de microformats :</p>
<ul>
<li><a href="http://microformats.org/wiki/hatom">hAtom</a> (syndication de contenus, basé sur Atom) ;</li>
<li><a href="http://microformats.org/wiki/hcalendar">hCalendar</a> (dates et évènements, basé sur iCal) ;</li>
<li><a href="http://microformats.org/wiki/hcard">hCard</a> (représentation d&#8217;entité, basé sur vCard) ;</li>
<li><a href="http://microformats.org/wiki/hresume">hResume</a> (<acronym title="Curriculum vitæ">CV</acronym>, mélangeant hCard et hCalendar notamment) ;</li>
<li><a href="http://microformats.org/wiki/geo">geo</a> (emplacement géographique) ;</li>
<li><a href="http://microformats.org/wiki/xfn">XFN</a> (relations entre individus) ;</li>
<li><a href="http://microformats.org/wiki/xoxo">XOXO</a> (description de contenus) ;</li>
<li>et de nombreux motifs de conception rel-* (<a href="http://microformats.org/wiki/rel-tag">tags</a>, <a href="http://microformats.org/wiki/rel-nofollow">nofollow</a>, <a href="http://microformats.org/wiki/rel-license">license</a>, <a href="http://microformats.org/wiki/rel-home">home</a> etc.).</li>
</ul>
<h3>Intérêts et utilité des microformats</h3>
<p>La force des microformats réside dans sa souplesse d&#8217;utilisation, leur approche métier et surtout, la réutilisation de formats existants.<br />
Les microformats se basent sur deux attributs [<a id="nh1" title="[1] Il en existe en réalité 3 mais l&#8217;attribut rev n&#8217;est employé qu&#8217;une fois. (&#8230;)&nbsp;&raquo; rel=&nbsp;&raquo;footnote&nbsp;&raquo; href=&nbsp;&raquo;#nb1&#8243;>1</a>] de (X)<acronym title="HyperText Markup Language">HTML</acronym> :</p>
<ul>
<li><code>rel</code> : pour décrire la relation du lien avec sa cible ;</li>
<li><code>class</code> : pour décrire le sens de contenu.</li>
</ul>
<p>Les balises (X)<acronym title="HyperText Markup Language">HTML</acronym> indiquent la nature de leur contenu :</p>
<ul>
<li><code>&lt;p&gt;</code> pour un paragraphe de texte ;</li>
<li><code>&lt;h1&gt;</code> pour un titre important ;</li>
<li><code>&lt;strong&gt;</code> pour une forte emphase ;</li>
<li><code>&lt;img&gt;</code> pour une image ;</li>
<li><code>&lt;li&gt;</code> pour un élément de liste ;</li>
<li><code>&lt;a&gt;</code> pour lier une autre ressource via son <acronym title="Uniform Resource Identifier">URI</acronym>.</li>
</ul>
<p>Les microformats s&#8217;ajoutent par le biais des attributs cités ci-dessus (rel et class) pour affiner leur sens :</p>
<ul>
<li><code>&lt;a rel="nofollow"&gt;</code> indique aux robots d&#8217;indexation des moteurs de recherche de ne pas suivre ce lien ;</li>
<li><code>&lt;span class="tel"&gt;</code> indique que cette balise neutre contient un numéro de téléphone ;</li>
<li><code>&lt;div class="entry"&gt;</code> indique que cette balise neutre contient un article (billet de blog par exemple).<br />
Rassurez-vous, le choix des classes n&#8217;est pas arbitraire et le <a href="http://microformats.org/wiki/">wiki officiel</a> est un bon guide. Il reprend les spécifications des formats cités précédemment tout en les agrémentant d&#8217;exemples.</li>
</ul>
<p>Enfin, et pour achever d&#8217;attiser votre curiosité, voici un résumé des microformats en 7 points :</p>
<ul>
<li> ils s&#8217;adaptent au code et non l&#8217;inverse ;</li>
<li> ils s&#8217;appliquent aussi bien sur des pages statiques que dynamiques ;</li>
<li> ils aident à structurer la page ;</li>
<li> ils n&#8217;ont quasiment aucun coût de mise en place ;</li>
<li> ils aident et aideront à la bonne indexation du contenu dans les moteurs de recherche ;</li>
<li> ils offrent des perspectives d&#8217;interaction et de navigation intelligente pour les visiteurs d&#8217;une page microformatée ;</li>
<li> ils sont un socle pour réutiliser le contenu (cf. « Outils agrégeant les microformats »).</li>
</ul>
<h3>Cas pratique : offrir une carte de visite en visitant une page Web</h3>
<p>Prenons par exemple le cas des fichiers vCard. Nos carnets d&#8217;adresses en raffolent car ils contiennent des informations de contact : nom, prénom, adresse, numéro de téléphone, email etc.<br />
Il n&#8217;est pas rare de recevoir des emails contenant une vCard en pièce-jointe. Un clic dessus et les informations de l&#8217;expéditeur se retrouvent dans notre carnet d&#8217;adresses.</p>
<p><strong>Les microformats proposent la même chose</strong> mais au format Web avec le microformat hCard. Outre la ressemblance de nom, on retrouve dans sa spécification tous les éléments de vCard (nom, prénom, adresse etc.).<br />
La seule différence se trouve dans la représentation. Nous n&#8217;avons plus affaire à un fichier séparé (comme ça aurait été le cas avec <acronym title="Resource Description Framework">RDF</acronym> et OWL)<br />
mais bel et bien à du texte présent sur une page Web.</p>
<p>Si ce code était placé sur une page Web accessible au public, n&#8217;importe quel outil gérant les microformats serait capable d&#8217;en extraire les données et pourquoi pas, de lancer une recherche sur<br />
Google Maps pour obtenir les coordonnées GPS de l&#8217;adresse.</p>
<pre><code class="html">&lt;div class="vcard"&gt;
  &lt;a class="fn org url" href="http://www.clever-age.com/"&gt;Clever Age&lt;/a&gt;
  &lt;div class="adr"&gt;
    &lt;div class="street-address"&gt;37, boulevard des Capucines&lt;/div&gt;
    &lt;span class="postal-code"&gt;75002&lt;/span&gt;
    &lt;span class="locality"&gt;Paris&lt;/span&gt;
    &lt;div class="country-name"&gt;France&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="tel"&gt;
   &lt;span class="type"&gt;Téléphone&lt;/span&gt; +33 1 53 34 66 10
  &lt;/div&gt;
  &lt;div class="tel"&gt;
    &lt;span class="type"&gt;Fax&lt;/span&gt; +33 1 53 34 65 20
  &lt;/div&gt;
  &lt;div&gt;Email: &lt;span class="email"&gt;commercial@clever-age.com&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre>
<h3>Outils proposant des microformats</h3>
<p>Les industriels et les leaders du Web contribuent à diffuser les microformats en les adoptant progressivement. Cette adoption apporte une valeur ajoutée à leurs services et facilite la vie des utilisateurs.<br />
Concrètement, ils microformatent leur contenu pour enrichir leur présentation et faciliter les interactions avec d&#8217;autres services.</p>
<p>Voici une liste non-exhaustive de services proposant des contenus microformatés :</p>
<ul>
<li><em>Blogs</em> (<a href="http://wordpress.org">WordPress</a>) ;</li>
<li><em>Cartographie</em> (<a href="http://maps.google.fr">Google Maps</a>, <a href="http://fr.local.yahoo.com">Yahoo ! Local</a>) ;</li>
<li><em>Emploi</em> <a href="http://www.jobijoba.com">JobiJoba</a>) ;</li>
<li><em>Outils sociaux</em> (<a href="http://flickr.com">Flickr</a>, <a href="http://del.icio.us">Del.icio.us</a>, <a href="http://ma.gnolia.com">Ma.gnolia</a>) ;</li>
<li><em>Réseaux sociaux</em> (<a href="http://www.linkedin.com">LinkedIn</a>, <a href="http://www.ziki.com">Ziki</a>).</li>
</ul>
<h3>Outils agrégeant les microformats</h3>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2008/01/microformats-operator-c2fc2.png" alt="Extension Operator pour Firefox" /></p>
<p>L&#8217;utilisation la plus intéressante des microformats reste indéniablement l&#8217;agrégation. Vous pourrez ainsi construire un flux <acronym title="Really Simple Syndication">RSS</acronym> à partir d&#8217;une page statique ou explorer<br />
des photos en rapport avec la page visitée.</p>
<p><a href="http://technorati.com">Technorati</a> porte l&#8217;étendard des microformats. Ses différents services, utilisables en appelant une simple <acronym title="Uniform Resource Identifier">URI</acronym>, permettent d&#8217;agréger des <a href="http://technorati.com/contacts/">cartes de visites (vCard)</a> ou encore des <a href="http://technorati.com/events/">calendriers (iCal)</a> pour générer des fichiers réutilisables dans votre carnet d&#8217;adresse ou votre gestionnaire de temps.</p>
<p><a href="http://www.jobster.com/">Jobster</a> propose une utilisation intéressante des microformats. Ce site de recherche d&#8217;emploi vous évite l&#8217;écueil de l&#8217;énième ressaisie de CV. En lui fournissant l&#8217;<acronym title="Uniform Resource Locator">URL</acronym> de votre profil public LinkedIn, il en extrait toutes les données pour en générer un CV en ligne.</p>
<p>Les navigateurs Web jouent également le jeu. Firefox 2 (avec son <a href="https://addons.mozilla.org/fr/firefox/addon/4106">extension Operator</a>) ou encore Firefox 3 et le futur Internet Explorer 8 proposent des outils intégrés.<br />
Sur chaque page visitée, ils en extraient tous les contenus microformatés possibles et proposent différentes interactions possibles.</p>
<p>D&#8217;autres outils plus confidentiels s&#8217;efforcent de défricher le terrain, notamment les agrégateurs de flux <acronym title="Really Simple Syndication">RSS</acronym>/Atom et autres transformateurs <acronym title="eXtensible HyperText Markup Language">XHTML</acronym>/microformats :</p>
<ul>
<li><a href="http://xoxotools.ning.com/hatom2rss.php">hatom2rss</a> ;</li>
<li><a href="http://rbach.priv.at/Microformats/hAtom2Atom/">hAtom2Atom</a> ;</li>
<li><a href="http://atom.geekhood.net/">atom2rss</a> ;</li>
<li><a href="http://suda.co.uk/projects/X2V/">X2V</a>.</li>
</ul>
<h3>Conclusion</h3>
<p><strong>Il est de plus en plus facile de microformater les contenus, d&#8217;interagir avec et de les republier</strong>. Leur faible coût d&#8217;intégration et la rapidité<br />
d&#8217;apprentissage sont d&#8217;autres atouts pour intéresser vos intégrateurs <acronym title="HyperText Markup Language">HTML</acronym>, vos programmeurs ou même vos décisionnels.<br />
La publication de microformats de LinkedIn et leur utilisation par Jobster pour préremplir automatiquement le CV sans ressaisie est le cas de figure idéal.<br />
Ces pratiques ont pour vocation d&#8217;être généralisées, de quoi nous faciliter la vie.</p>
<p>Nous verrons dans une prochaine partie des bonnes pratiques d&#8217;intégration des microformats à des contenus déjà existants. Ce sera d&#8217;ailleurs l&#8217;occasion<br />
de remarquer que <strong>sémantique, respect des standards et accessibilité génèrent une incroyable synergie</strong>.</p>
<h3>Pour en savoir plus</h3>
<ul>
<li><a href="http://tantek.com/presentations/2006/03/microformats-sxsw/">Présentation des microformats en mars 2006 au SXSW Interactive</a> ;</li>
<li><a href="http://www.readwriteweb.com/archives/semantic_web_road.php">En route vers le Web sémantique</a> ;</li>
<li><a href="http://www.readwriteweb.com/archives/10_future_web_trends.php">Les 10 prochaines tendances du Web</a>.</li>
</ul>
<ol class="notes">
<li>[<a id="nb1" rev="footnote" href="#nh1">1</a>] Il en existe en réalité 3 mais l&#8217;attribut <code>rev</code> n&#8217;est employé qu&#8217;une fois. Difficile d&#8217;en déduire une généralité.</li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/microformats-republier-donner-sens-aux-contenus/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Firebug : bonnes pratiques pour le développement Web</title>
		<link>http://case.oncle-tom.net/2007/bonnes-pratiques-firebug-developpement-web/</link>
		<comments>http://case.oncle-tom.net/2007/bonnes-pratiques-firebug-developpement-web/#comments</comments>
		<pubDate>Tue, 25 Dec 2007 07:00:44 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[logiciels libres]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[performances]]></category>
		<category><![CDATA[yslow]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/2007/12/25/bonnes-pratiques-firebug-developpement-web/</guid>
		<description><![CDATA[Firebug fait partie de mes extensions préférées depuis un bon moment. Je l&#8217;estime aujourd&#8217;hui même plus importante que l&#8217;extension Web Developer, c&#8217;est dire. J&#8217;ai pourtant constaté que la plupart de ses utilisateurs la sous-exploitait en se limitant à la console pour consulter les erreurs et éventuellement à l&#8217;inspecteur HTML pour remonter rapidement dans l&#8217;arborescence des [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/12/firebug-logo.gif" alt="Logo Firebug" /></p>
<p><a href="http://case.oncle-tom.net/2007/08/07/facebook-rock-your-firefox/">Firebug fait partie de mes extensions préférées</a> depuis un bon moment. Je l&#8217;estime aujourd&#8217;hui même plus importante que l&#8217;extension <a href="https://addons.mozilla.org/fr/firefox/addon/60">Web Developer</a>, c&#8217;est dire.</p>
<p>J&#8217;ai pourtant constaté que la plupart de ses utilisateurs la sous-exploitait en se limitant à la console pour consulter les erreurs et éventuellement à l&#8217;inspecteur <acronym title="HyperText Markup Language">HTML</acronym> pour remonter rapidement dans l&#8217;arborescence des balises en 1 clic. C&#8217;est bien mais pas assez.<br />
Firebug est tout simplement énorme ! Suffisamment énorme pour <strong>gagner un temps incroyable</strong> dans le développement d&#8217;applications JavaScript et pour <strong>mieux comprendre les incohérences</strong> des <acronym title="Cascading Style Sheets">CSS</acronym> dans une page, entre autre.</p>
<p>Je vous offre aujourd&#8217;hui mon cadeau de Noël pour gagner en productivité et maîtriser cet outil ô combien indispensable.<br />
<span id="more-819"></span><br />
Le plus amusant dans l&#8217;histoire c&#8217;est que le site officiel de Firebug dévoile (succinctement certes) tous les petits <em>plus</em> qui simplifient la vie. Je vais m&#8217;atteler à les éplucher en fonction des domaines d&#8217;utilisation :</p>
<ol>
<li><a href="#firebug-html">pour le <acronym title="HyperText Markup Language">HTML</acronym> et les <acronym title="Cascading Style Sheets">CSS</acronym></a></li>
<li><a href="#firebug-javascript">pour le JavaScript</a></li>
<li><a href="#firebug-performances">pour gagner en performances</a></li>
</ol>
<h3 id="firebug-html">Firebug pour le <acronym title="HyperText Markup Language">HTML</acronym></h3>
<h4>L&#8217;inspection <acronym title="HyperText Markup Language">HTML</acronym></h4>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/12/firebug-html-inspector.png" alt="Inspecteur HTML Firebug" /></p>
<p>J&#8217;apprécie l&#8217;inspection <acronym title="HyperText Markup Language">HTML</acronym> car elle me permet de retrouver simplement le code lié au visuel. Après avoir activé l&#8217;inspecteur, je survole l&#8217;élément sur lequel je veux travailler, je clique dessus et le volet Firebug se fige dessus en m&#8217;indiquant <strong>toutes ses propriétés <acronym title="Cascading Style Sheets">CSS</acronym>, le modèle de boîte et ses propriétés <acronym title="Document Object Model">DOM</acronym></strong>. On en reparle tout de suite après.<br />
L&#8217;inverse est également possible. C&#8217;est à dire qu&#8217;en survolant le code, la correspondance visuelle dans la page est établie. C&#8217;est rudement pratique pour repérer des éléments qui sortent du flux. Ça l&#8217;est d&#8217;autant plus que les différentes marges (internes, externes, bordures) sont elles aussi mises en surbrillance.</p>
<p>Le gros atout de cet inspecteur c&#8217;est également l&#8217;<strong>édition à la volée de toutes les balises</strong> ! Idéal pour tester diverses classes d&#8217;un objet ayant un impact visuel fort sur son affichage. Cet outil présente un gain de temps énorme par rapport à la modification du code dans son éditeur et un petit coup de touche <kbd>F5</kbd> dans la foulée.</p>
<p>Il faut également retenir que <strong>toute balise est sélectionnable en cliquant sur son nom</strong> (<code>div</code>, <code>h3</code> etc.). Cela a a pour effet de mettre à jour le panneau latéral de Firebug. Panneau latéral qui est également fort utile.</p>
<h4>L&#8217;inspection <acronym title="Cascading Style Sheets">CSS</acronym>, Layout et <acronym title="Document Object Model">DOM</acronym></h4>
<p>Le panneau latéral de l&#8217;inspecteur <acronym title="HyperText Markup Language">HTML</acronym> se compose de 3 onglets, tous très utiles.</p>
<h5>Inspecteur <acronym title="Cascading Style Sheets">CSS</acronym></h5>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/12/firebug-css-inspector.png" alt="Inspecteur CSS Firebug" /></p>
<p>Les propriétés <acronym title="Cascading Style Sheets">CSS</acronym> affichées concernent uniquement l&#8217;objet actif et c&#8217;est ce qui en fait sa force. Ce panneau indique en effet la <strong>cascade <acronym title="Cascading Style Sheets">CSS</acronym> en cours</strong> ce qui permet de comprendre rapidement pourquoi sa feuille de style n&#8217;est pas appliquée comme il faudrait. Elle a la bonne idée de mentionner quelle feuille de style est utilisée et quelle ligne. De quoi corriger ça dans son éditeur favori rapidement.</p>
<p>Ou pas. En effet l&#8217;inspecteur <acronym title="Cascading Style Sheets">CSS</acronym> permet, tout comme l&#8217;inspecteur <acronym title="HyperText Markup Language">HTML</acronym>, de <strong>modifier les propriétés à la volée et sans fioriture</strong>. Si je précise sans fioriture c&#8217;est parce que l&#8217;éditeur à la volée de <em>Web Developer</em> rend parfois l&#8217;affichage de la page bancale en décalant des éléments. Là vous pouvez totalement compter sur l&#8217;éditeur intégré et ce n&#8217;est pas un luxe !<br />
Désactiver, supprimer, modifier ou ajouter des propriétés sont quelques-unes des actions que vous pourrez effectuer à même la page.</p>
<p>Là encore c&#8217;est une des parties où les gains de temps sont énormes. On peut en effet <strong>modifier ses <acronym title="Cascading Style Sheets">CSS</acronym> et les tester tout en observant l&#8217;impact immédiat de ses modifications</strong>.</p>
<h5>Inspecteur du modèle de boîte (<em>Layout</em>)</h5>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/12/firebug-layout-inspector.png" alt="Modèle de boîte avec Firebug" /></p>
<p>Le <a href="http://www.yoyodesign.org/doc/w3c/css2/box.html">modèle de boîte <acronym title="Cascading Style Sheets">CSS</acronym></a> peut vite devenir pénible à gérer et plus particulièrement quand on visualise mal le <strong>cumul des différentes marges</strong>.<br />
Dans tous les cas c&#8217;est appréciable de pouvoir constater les marges en présence et encore, de pouvoir <strong>modifier leurs dimensions à la volée</strong>. Firebug a la bonne idée de colorer les marges intérieures (<code>padding</code>), extérieures (<code>margin</code>) et les bordures (<code>border</code>) d&#8217;une couleur différente.</p>
<p>Il a également la bonne idée d&#8217;afficher une <strong>double règle millimétrée</strong> au survol du panneau <em>layout</em>. Très pratique dans le cas de design en grilles ou nécessitant un certain rythme de visualisation.</p>
<h5>Inspecteur <acronym title="Document Object Model">DOM</acronym></h5>
<p>Ah l&#8217;inspecteur <acronym title="Document Object Model">DOM</acronym> ! S&#8217;il n&#8217;existait pas il faudrait l&#8217;inventer. Firefox proposait déjà un tel outil à la différence près qu&#8217;il était moins pratique d&#8217;utilisation.<br />
L&#8217;inspecteur <acronym title="Document Object Model">DOM</acronym> m&#8217;est moyennement utile dans le cas d&#8217;une simple inspection du code <acronym title="HyperText Markup Language">HTML</acronym> bien que ce soit toujours pratique de visualiser la présence ou pas d&#8217;objets JavaScript dans tel ou tel élément. C&#8217;est fortement appréciable pour la <a href="http://www.prototypejs.org">librairie Prototype</a> étant donné les dégâts causés par son extension du <acronym title="Document Object Model">DOM</acronym> à gogo.</p>
<h3 id="firebug-javascript">Firebug pour le JavaScript</h3>
<h4>L&#8217;inspecteur JavaScript</h4>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/12/firebug-javascript-watcher.png" alt="Inspecteur JavaScript Firebug" /></p>
<p>C&#8217;est l&#8217;autre <strong>outil indispensable de Firebug</strong>. Avec lui, c&#8217;en est fini des <code>alert(mavariable);</code>. L&#8217;inspecteur <acronym title="Document Object Model">DOM</acronym> prend avec lui toute son utilité.</p>
<p>J&#8217;illustre sur l&#8217;image ci-dessus l&#8217;utilisation des points d&#8217;arrêt (<em>breakpoints</em>). Il suffit d&#8217;un clic à gauche d&#8217;un numéro de ligne pour en placer/retirer un. Concrètement quand l&#8217;exécution du JavaScript arrivera au premier point d&#8217;arrêt, elle va se stopper.<br />
Quel intérêt ? Observer. En agissant ainsi, vous avez la main sur toutes les variables connues au sein de votre code/fonction. Très utile pour <strong>connaître les paramètres passées à la fonction et détecter les erreurs</strong>. C&#8217;est pour cette raison que les <code>alert()</code> deviennent inutiles : tout est à portée de main. Vous ne pesterez plus contre un <code>undefined</code> mal placé <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>En parallèle de ça, l&#8217;inspecteur <acronym title="Document Object Model">DOM</acronym> est à utiliser pour <strong>visualiser d&#8217;un coup d&#8217;œil les différentes variables actives ainsi que leur arborescence</strong>. Comme tout est cliquable, l&#8217;inspecteur vous transporte sur n&#8217;importe quel objet pour en étudier le contenu.</p>
<h4>La console Firebug <em>alias</em> <code>console.*</code></h4>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/12/firebug-console.png" alt="Console Firebug" /></p>
<p><strong>La console Firebug est l&#8217;autre tueuse d&#8217;<code>alert()</code></strong> et s&#8217;utilise de deux manières.</p>
<p>La plus accessible est d&#8217;<strong>interagir avec</strong>. Vous saisissez votre code, la console l&#8217;exécute et retourne le ou les résultats. Encore une fois les objets sont cliquables et navigable au travers de l&#8217;inspecteur <acronym title="Document Object Model">DOM</acronym>.<br />
La console est utile pour utiliser des fonctions sorties du contexte de l&#8217;initialisation : il devient tout à fait possible de piloter des éléments après le chargement de la page. Ça évite encore une fois des <kbd>F5</kbd> inutiles et consommateurs de temps.</p>
<p>L&#8217;autre manière d&#8217;utiliser la console c&#8217;est de ne pas l&#8217;utiliser. Ou pas de manière active tout du moins puisqu&#8217;<strong>elle est également un objet JavaScript</strong> (<code>console</code>) utilisable dans votre code auquel sont rattachées plusieurs fonctions au nom explicite :</p>
<ul>
<li><code>console.log()</code> : affiche une information standard</li>
<li><code>console.info()</code> : affiche une information de type &laquo;&nbsp;information&nbsp;&raquo;</li>
<li><code>console.warn()</code> : affiche une information de type &laquo;&nbsp;avertissement&nbsp;&raquo;</li>
<li><code>console.error()</code> : affiche une information de type &laquo;&nbsp;erreur&nbsp;&raquo;</li>
<li><code>console.debug()</code> : débogue le contenu d&#8217;un objet directement dans la console</li>
</ul>
<p>Autrement dit, si l&#8217;inspecteur ne suffisait pas, au lieu de lancer un <code>alert(mavariable)</code> (potentiellement dangereux dans une grande boucle <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  qui n&#8217;a jamais cliqué 50 fois sur &laquo;&nbsp;OK&nbsp;&raquo; à cause de ça ?), il vaudra mieux utiliser <code>console.log(mavariable)</code>. Il y a de quoi faire, surtout avec la possibilité de créer des groupes de messages et l&#8217;utilisation de la syntaxe <code>printf</code>.</p>
<p>Et top du top, en cas d&#8217;erreur JavaScript, la console affiche un petit cercle rouge qui rappelle fortement le point d&#8217;arrêt. Normal puisque c&#8217;en est un. Un clic et on évite de rechercher la ligne problématique dans le code. Encore une fois, du temps de gagné.</p>
<h3 id="firebug-performances">Firebug pour les performances</h3>
<p>Après avoir bien développé, Firebug propose de mieux développer. L&#8217;extension magique propose quelques outils sympathiques pour rapidement déceler les problèmes, notamment de scripts trop gourmands ou à optimiser.</p>
<h4>Le traceur réseau</h4>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/12/firebug-net-tracer.png" alt="Traceur réseau Firebug" /></p>
<p>Avec le traceur réseau c&#8217;est simple, tout ce qui est chargé sur la page est chronométré. Si un élément est systématiquement long à charger en tête de liste, pourquoi ne pas essayer de le déplacer dans le bas de la pile ? Je pense notamment aux appels vers des fichiers JavaScripts externes. Les appeler en bas de page permet d&#8217;éviter des gels de page. C&#8217;est ce que YSlow nous recommandera <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Outre une petite prévisualisation des contenus, le traceur affiche aussi les <strong>statuts des contenus</strong> s&#8217;ils sont différent du statut 200 (<em>found</em>). Et de surligner ça en rouge en cas de fichier introuvable.</p>
<p>J&#8217;aime beaucoup le traceur pour le <strong>suivi des requêtes XHR (appels <acronym title="Asynchronous JavaScript and XML">AJAX</acronym>)</strong>. Un clic sur un appel affiche à la fois les entêtes, les données transmises au serveur et sa réponse. Fini les requêtes <acronym title="Asynchronous JavaScript and XML">AJAX</acronym> qui ne produisent rien sans qu&#8217;on puisse savoir pourquoi. Le clic droit sera également un fidèle allié, notamment pour ouvrir l&#8217;appel <acronym title="Asynchronous JavaScript and XML">AJAX</acronym> dans un nouvel onglet. C&#8217;est plus lisible pour déboguer quand même <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h4>Le profileur JavaScript</h4>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/12/firebug-profiler.png" alt="Profileur JavaScript Firebug" /></p>
<p>Le profileur (<em>profiler</em>) JavaScript s&#8217;utilise un peu à la manière de la console : de manière active ou au travers de l&#8217;objet <code>console</code>.</p>
<p><strong>Le profileur enregistre tout ce qui se passe entre le moment où il est enclenché et le moment où il est stoppé</strong>. Il va ainsi dénombrer toutes les appels (<em>calls</em>), leur durée d&#8217;exécution et leur fichier d&#8217;origine, entre autre. L&#8217;idée est bien entendu de voir ce qui consomme le plus d&#8217;appels et de temps pour savoir si ce comportement est normal ou pas. À ce stade là, difficile de pousser la granularité du profileur plus loins.</p>
<p>Sauf en utilisant le profileur directement dans le code comme on a déjà pu le faire pour les <em>logs</em>. <code>console.profile()</code> et <code>console.profileEnd()</code> seront vos amis. C&#8217;est vraiment l&#8217;idéal pour <strong>profiler l&#8217;exécution d&#8217;une fonction</strong>, voire même les portions de code exécutée en son sein.</p>
<h4>L&#8217;extension YSlow</h4>
<p style="text-align:center"><img src="http://case.oncle-tom.net/images/2007/12/firebug-yslow.png" alt="Firebug YSlow" /></p>
<p>L&#8217;<a href="https://addons.mozilla.org/en-US/firefox/addon/5369">extension YSlow</a> est une extension pour Firefox mais elle nécessite toutefois la présence de Firebug. Elle s&#8217;articule autour de trois critères.</p>
<p>Il y&#8217; a d&#8217;une part la surveillance des performances. YSlow se base sur la <a href="http://developer.yahoo.com/performance/rules.html">liste des bonnes pratiques établies par Yahoo!</a> (14 à l&#8217;heure actuelle). YSlow passe ces critères en revue et accorde une note en conséquence. Si certaines sont difficiles à tenir, c&#8217;est un bon moyen de s&#8217;intéresser à de <strong>nouvelles pratiques d&#8217;optimisation et de performances</strong>.</p>
<p>Le second critère est affiché dans le panneau <em>stats</em>. Il s&#8217;agit de la capture d&#8217;écran ci-dessus. Certes il s&#8217;agit d&#8217;un simple tableau mais dont les chiffres sont intéressants à étudier. YSlow analyse la page pour un premier et un second chargement. La différence entre les deux ? C&#8217;est que le cache est passé par là et normalement, je dis bien normalement, <strong>le second chargement se doit d&#8217;être beaucoup plus rapide</strong>.<br />
Si ce n&#8217;est pas le cas, il y a de l&#8217;optimisation à faire et cela peut aussi signifier du côté serveur Web. Pas forcément du développement donc.</p>
<p>Enfin on termine sur une partie complémentaire aux stats : les composants (<em>components</em>). Elle distille des informations plus verbeuses que le traceur réseau de Firebug en se focalisant sur les E-Tag, la présence ou pas de compression, la date de validité du cache ainsi que la taille des objets.</p>
<h3>Conclusion</h3>
<p>J&#8217;espère avoir éclairé quelques lanternes sur l&#8217;utilisation de Firebug. Cette extension est suffisamment puissante pour gagner en confort de développement ; il serait dommage de s&#8217;en priver. <strong>On gagne du temps, du confort et surtout, de la qualité de développement</strong>.<br />
À noter qu&#8217;il existe aussi Firebug Lite. Il s&#8217;agit d&#8217;un script JavaScript compatible avec les principaux navigateurs du marché mais comme le <em>Lite</em> l&#8217;indique, les fonctionnalités sont plutôt limitées. Seule la console JavaScript persiste.</p>
]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2007/bonnes-pratiques-firebug-developpement-web/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Transcender CSS : sublimez le design Web !</title>
		<link>http://case.oncle-tom.net/2007/critique-transcender-css-sublimez-design-web/</link>
		<comments>http://case.oncle-tom.net/2007/critique-transcender-css-sublimez-design-web/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 07:00:59 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Standards du Web]]></category>
		<category><![CDATA[andy clarke]]></category>
		<category><![CDATA[bonnes pratiques]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[eyrolles]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[semantique]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[xhtml]]></category>
		<guid isPermaLink="false">http://case.oncle-tom.net/2007/12/11/critique-transcender-css-sublimez-design-web/</guid>
		<description><![CDATA[Concevoir un site Internet dans les règles de l&#8217;art demande de multiples compétences : architecture technique, programmation, graphismes, intégration, ergonomie et du bon sens. Transcender CSS : sublimez le design Web ! s&#8217;intéresse à l&#8217;aspect esthétique au travers des CSS. Ou comment CSS, sémantique, intégration XHTML, microformats, sources d&#8217;inspirations et approche du design en grilles [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center"><img src='http://case.oncle-tom.net/images/2007/12/transcencer-css-couverture.jpg' alt='Couverture de Transcender CSS' /></p>
<p>Concevoir un site Internet dans les règles de l&#8217;art demande de multiples compétences : architecture technique, programmation, graphismes, intégration, ergonomie et du bon sens. <a href="http://www.transcendingcss.com/">Transcender <acronym title="Cascading Style Sheets">CSS</acronym> : sublimez le design Web !</a> s&#8217;intéresse à l&#8217;aspect esthétique au travers des <acronym title="Cascading Style Sheet"><acronym title="Cascading Style Sheets">CSS</acronym></acronym>.</p>
<p>Ou comment <acronym title="Cascading Style Sheets">CSS</acronym>, sémantique, intégration <acronym title="eXtensible HyperText Markup Language">XHTML</acronym>, microformats, sources d&#8217;inspirations et approche du design en grilles sont indispensables pour tirer partie du meilleur du Web.<br />
<span id="more-823"></span><br />
<strong>Transcender <acronym title="Cascading Style Sheets">CSS</acronym> : sublimez le design Web !</strong> est un ouvrage paru en France en août 2007 aux éditions Eyrolles ; en novembre 2006 dans le monde anglophone. Le livre est broché sur 360 pages ce qui en fait un livre imposant et propice à de riches illustrations d&#8217;excellente qualité. <strong>Andy Clarke</strong>, son auteur, s&#8217;est permis ce plaisir pour montrer au mieux qu&#8217;un site visuellement alléchant et bien structuré est un succès assuré pour capter l&#8217;attention du visiteur.</p>
<p><strong>Transcender <acronym title="Cascading Style Sheets">CSS</acronym></strong> ne s&#8217;adresse pas aux débutants puisqu&#8217;il ne s&#8217;attardera pas à vous expliquer les modèles de boîte ou les innombrables bugs d&#8217;Internet Explorer. Son contenu évolue toutefois en douceur de la facilité à la complexité ce qui le rend néanmoins abordable par des néophytes.</p>
<p style="text-align:center"><img src='http://case.oncle-tom.net/images/2007/12/transcencer-1-decouverte.jpg' alt='Extrait du chapitre “Découverte” de Transcender CSS' /></p>
<h3>Découverte</h3>
<p><q>Organiser les contenus avant tout</q>, tel est le credo de <strong>Transcender <acronym title="Cascading Style Sheets">CSS</acronym></strong>. C&#8217;est l&#8217;objectif majeur de cette première partie ; partie qui devrait être lue et transmise par tous les enseignants puisqu&#8217;elle explique <strong>comment on adapte le design au contenu</strong> et non l&#8217;inverse.</p>
<p>La mise en pratique du balisage <acronym title="eXtensible HyperText Markup Language">XHTML</acronym> est menée avec pédagogie. Vous apprendrez comment <strong>traduire une image en balises <acronym title="HyperText Markup Language">HTML</acronym></strong> de manière adaptée. Et un bon balisage c&#8217;est déjà la moitié du travail, l&#8217;autre restant son habillage. Il faut dissocier le contenu et la mise en page tout en n&#8217;oubliant pas un point essentiel : <strong>donner du sens au contenu</strong>.<br />
Il existe de nombreuses balises <acronym title="eXtensible HyperText Markup Language">XHTML</acronym> qui ont chacune leur propre signification : il faut les utiliser pour donner du sens. C&#8217;est non seulement important pour le référencement mais aussi pour ancrer les feuilles de style de manière propre et efficace. Nos professeurs de français nous ont appris à utiliser des verbes riches au lieu de verbes pauvres (être, avoir, aller, prendre etc.) alors faisons de même avec les balises <acronym title="eXtensible HyperText Markup Language">XHTML</acronym> :</p>
<ul>
<li><code>&lt;h1 à h6&gt;</code> pour afficher des titres hiérarchiques</li>
<li><code>&lt;p&gt;</code> pour des paragraphes de textes (les images sont du texte)</li>
<li><code>&lt;ul/ol/li&gt;</code> pour des listes de contenus</li>
<li><code>&lt;q/cite/blockquote&gt;</code> pour des citations de textes</li>
<li><code>&lt;pre/code/kbd&gt;</code> pour des saisies de texte au clavier ou des extraits de code</li>
<li><code>&lt;span/div&gt;</code> dans les autres cas ; <strong>ce sont des balises neutres vides de tout sens</strong></li>
</ul>
<p>Et d&#8217;aborder dans la foulée les <a href="http://case.oncle-tom.net/2007/07/31/semantique-microformats-internet/">microformats</a>. Ça a été ma première surprise car je ne m&#8217;attendais pas à les retrouver dans ce livre. Un duo de page les aborde et montre (un peu trop succinctement) que microformater du contenu n&#8217;a rien d&#8217;impossible, surtout quand la structure <acronym title="eXtensible HyperText Markup Language">XHTML</acronym> est bonne dès le départ.</p>
<p style="text-align:center"><img src='http://case.oncle-tom.net/images/2007/12/transcencer-2-processus.jpg' alt='Extrait du chapitre “Processus” de Transcender CSS' /></p>
<h3>Processus</h3>
<p><strong>Transcender <acronym title="Cascading Style Sheets">CSS</acronym></strong> s&#8217;intéresse à une approche industrielle du processus de création. Autrement dit : <strong>comment proposer efficacement une interface graphique à un client/décideur sans investir trop de temps</strong>. Nous savons tous qu&#8217;il y a toujours du changement, mineur mais surtout majeur, et qu&#8217;il est difficile de chambouler toute une feuille de style pour repositionner des éléments en conservant une cohérence.</p>
<p>C&#8217;est là que l&#8217;approche par la <a href="http://jasonsantamaria.com/archive/2004/05/24/grey_box_method.php">méthode de la boîte grise</a> prend tout son sens. Elle définit à l&#8217;aide de boîtes grises l&#8217;<strong>agencement des contenus de la page</strong>. Une boîte, un contenu et le charme opère. Les classiques <em>story-board</em> s&#8217;en approchent.<br />
Cette méthode peut se compléter à l&#8217;aide de symboles pour représenter des éléments annexes (textes, formulaires etc.) mais est surtout très facilement réalisable à partir d&#8217;un logiciel de présentation de type <a href="http://fr.openoffice.org/docs/impress.html">OpenOffice Impress</a> ou <a href="http://office.microsoft.com/fr-fr/powerpoint/">Microsoft Powerpoint</a>.</p>
<p>Une fois les bases de la structure mise en place, l&#8217;heure est venue de présenter une maquette statique. Autrement dit du <acronym title="HyperText Markup Language">HTML</acronym> et des <acronym title="Cascading Style Sheets">CSS</acronym>. Les ajustements resteront possibles puisque la première partie du livre a expliqué comment mettre en œuvre une structure pérenne et libre de mise en forme.<br />
<strong>Transcender <acronym title="Cascading Style Sheets">CSS</acronym></strong> recommande fortement, et je suis on ne peut plus d&#8217;accord, d&#8217;utiliser de manière poussée les <a href="http://case.oncle-tom.net/2007/08/07/facebook-rock-your-firefox/">extensions indispensables de Firefox</a> que sont <a href="https://addons.mozilla.org/fr/firefox/addon/1843">Firebug</a> et <a href="https://addons.mozilla.org/fr/firefox/addon/60">Web Developer</a>.<br />
J&#8217;y consacrerai un billet mais les éditeurs intégré modifiant à la volée votre page sont des <strong>outils précieux offrant des gains de développement mésestimés</strong>.</p>
<p>L&#8217;ouvrage poursuit sur des <strong>bonnes pratiques d&#8217;organisation de son code</strong> au sein même des feuilles de style. Des pratiques qui permettent de retrouver facilement ses petits sans avoir à chercher inutilement. Des pratiques qui suggèrent également de bien coder pour mieux réutiliser son travail dans d&#8217;autres projets. Si vous estimez votre travail, pourquoi le recommencer intégralement lors du projet suivant ?</p>
<p style="text-align:center"><img src='http://case.oncle-tom.net/images/2007/12/transcencer-3-inspiration.jpg' alt='Extrait du chapitre “Inspiration” de Transcender CSS' /></p>
<h3>Inspiration</h3>
<p>Cette troisième partie a été mon deuxième choc pendant la lecture. C&#8217;est la partie dans laquelle j&#8217;ai le plus appris car <strong>elle explore des aspects finalement peu abordés</strong> dans les ouvrages liés aux <acronym title="Cascading Style Sheets">CSS</acronym>.</p>
<p>J&#8217;ai commencé à mieux percevoir l&#8217;<a href="http://www.biologeek.com/journal/index.php/l-importance-du-rythme-vertical-en-design-css">intérêt et l&#8217;ingéniosité du rythme vertical</a> grâce à la <strong>divine proportion</strong>. Qui aurait cru que les maths se cachaient aussi subtilement dans le design Web ? Certainement pas moi. Retenez bien le nombre 1,62 (φ) car c&#8217;est le <a href="http://goldennumber.net/">nombre d&#8217;or</a> qui régira avec majesté les designs <acronym title="Cascading Style Sheets">CSS</acronym> les plus réussis.<br />
En français, il s&#8217;agit de la règle des tiers. Au lieu de choisir arbitrairement la taille des contenus, divisez les espaces en largeurs proportionnelles, elles-mêmes divisibles par 1,62 etc. <strong>La clarté en résultat est tout simplement saisissante</strong>.</p>
<p>Tout ceci nous amène à parler du <a href="http://subtraction.com/">design par grille</a>. Vous venez de suivre le lien ? Vous aurez probablement remarqué, consciemment ou pas, que la page est découpée en 8 colonnes de largeur identiques. Certains contenus occupent davantage de place mais devinez-quoi ? Cela correspond toujours à un certain nombre de colonnes, pas une largeur hasardeuse.<br />
Cette lubie n&#8217;est pas si excentrique que cela puisqu&#8217;elle nous provient directement des &#8230; journaux papiers. Qui aurait cru que le New York Times aurait pu inspirer les meilleurs designers du Web ? Et pourtant, on ne regardera plus les journaux de la même manière en observant leur structure à 6 ou 8 colonnes. Du nombre d&#8217;or en veux-tu en voilà.</p>
<p><strong>Andy Clarke</strong> termine ce chapitre sur les sources d&#8217;inspirations. Là non plus il n&#8217;y a pas de frein à l&#8217;imagination puisque <strong>tout est susceptible de catalyser créativité</strong> : architectures d&#8217;immeubles, coupures de presse, publicités de magazines, affiches diverses et variées. Vous l&#8217;aurez compris, <strong>tous les supports visuels</strong> facilement agrégeables. </p>
<p style="text-align:center"><img src='http://case.oncle-tom.net/images/2007/12/transcencer-4-transcendance.jpg' alt='Extrait du chapitre “Transcendance” de Transcender CSS' /></p>
<h3>Transcendance</h3>
<p>Cette partie termine en apothéose <strong>Transcender <acronym title="Cascading Style Sheets">CSS</acronym></strong>. Nous savons intégrer, nous savons structurer et nous savons imaginer alors maintenant il va falloir sublimer. Au prix du livre, ça serait dommage que notre côté créatif n&#8217;aie pas pris du galon <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Il n&#8217;y a d&#8217;ailleurs qu&#8217;un point sur lequel j&#8217;ai du mal à adhérer : cette <strong>adhésion au positionnement absolu/relatif et le dénigrement déguisé des flottants</strong>. Si les positionnements relatifs permettent de forcer le positionnement d&#8217;un bloc, c&#8217;est en revanche une solution beaucoup moins flexible dans la majorité des cas. Cette technique oblige, à mes yeux, de connaître les tailles des éléments à positionner. <strong>C&#8217;est parfois impossible</strong>, <em>surtout</em> si on veut pouvoir s&#8217;affranchir de largeurs fixes pour profiter de <strong>designs élastiques</strong>.<br />
<em>Je comprends néanmoins</em> que c&#8217;est une pratique appréciable pour les designs en grilles.</p>
<p>De très nombreux cas pratiques abondent dans cette partie. Ces exemples stimulent l&#8217;imagination avec des mises en pages (et des variantes) convaincantes, attractives et on ne peut plus déclinables dans le monde réel. Réel ou presque puisqu&#8217;ils se basent sur des navigateurs valides uniquement.<br />
C&#8217;est l&#8217;occasion d&#8217;aborder le génie de <strong>Dean Edwards</strong> avec <a href="http://dean.edwards.name/IE7/">IE7, la librairie Javascript ultime pour Internet Explorer</a>. Cette librairie permet de mettre à niveau <em>Internet Explorer 5</em> et <em>Internet Explorer 6</em> au niveau d&#8217;<em>Internet Explorer 7</em>. Ce n&#8217;est certes pas la panacée mais ce n&#8217;est plus l&#8217;enfer truffé d&#8217;incertitude que l&#8217;on haït tant.</p>
<p><strong>Transcender <acronym title="Cascading Style Sheets">CSS</acronym></strong> conclut sur une quarantaine de pages avec les <acronym title="Cascading Style Sheets">CSS</acronym> 3 en mêlant exemples pratiques et des comparaisons entre <acronym title="Cascading Style Sheets">CSS</acronym> 2 et <acronym title="Cascading Style Sheets">CSS</acronym> 3. J&#8217;ai été ravi de voir en pratique l&#8217;affichage multi-colonnes sans jouer avec les flottants, l&#8217;habillage d&#8217;un bloc avec plusieurs bordures en images (sans balises superflues) et surtout l&#8217;<strong>Advanced Layout</strong>.<br />
L&#8217;Advanced Layout est probablement l&#8217;avancée la plus attendue car elle permet de <strong>s&#8217;affranchir des positions absolues pour repositionner du contenu sur la page</strong> simplement. Et de retrouver les notions de grilles puisque des régions sont définies dans la feuille de style. Au designer de déplacer un contenu dans le flux sans le faire quitter.</p>
<p>Autant dire que les <strong>designs bâtis sur <acronym title="Cascading Style Sheets">CSS</acronym> 3 seront riches en créativité</strong>. Et ce n&#8217;est pas l&#8217;initiative <a href="http://www.gotocss3.com/">Goto CSS3</a> qui dira le contraire <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>Conclusion</h3>
<p>Cet ouvrage m&#8217;a énormément plu pour 2 raisons :</p>
<ul>
<li>j&#8217;ai failli croire que je n&#8217;allais rien apprendre</li>
<li>le contenu est ouvert vers l&#8217;avenir</li>
</ul>
<p>En effet plutôt que de nous dire <strong>quoi faire</strong>, <strong>Transcender <acronym title="Cascading Style Sheets">CSS</acronym></strong> explique <strong>comment mieux faire</strong>. C&#8217;est véritablement appréciable car en lisant le livre on adapte son contenu à ses besoins. Ses pages sont généreusement émargées de conseils, d&#8217;astuces et de ressources qui enrichissent la perception de la conception du design Web. Je me suis d&#8217;ailleurs surpris à relire le livre mais uniquement ses marges de peur d&#8217;avoir raté un lien essentiel &#8230;</p>
<p>Vous le savez tout aussi bien que moi, le gros problème des ouvrages réside dans des cas pratiques difficilement réutilisables au quotidien. <strong>Transcender <acronym title="Cascading Style Sheets">CSS</acronym></strong> a l&#8217;intelligence de proposer des recettes pour <strong>mieux aborder la conception des sites</strong>, des sources d&#8217;inspiration jusqu&#8217;aux secrets du découpage en grilles. Qui eût cru que la presse papier avait encore de belles leçons à donner au Web ?</p>
<p><strong>Transcender <acronym title="Cascading Style Sheets">CSS</acronym></strong> ne livre pas clé en mains des solutions mais vous aidera à y voir plus clair, à comprendre pour mieux réagir. En soi c&#8217;est ce que j&#8217;attends d&#8217;un livre à 30€. <strong>Une valeur sure</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2007/critique-transcender-css-sublimez-design-web/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

