<?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>Pierre Bertet &#8211; Les intégristes</title>
	<atom:link href="/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description></description>
	<lastBuildDate>Thu, 31 Mar 2016 16:44:02 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0</generator>
	<item>
		<title>Note&#160;: Phosphor est un outil qui permet de convertir des &#160;[…]</title>
		<link>/notes/phosphor-est-un-outil-qui-permet-de-convertir-des/</link>
					<comments>/notes/phosphor-est-un-outil-qui-permet-de-convertir-des/#comments</comments>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Wed, 30 Jan 2013 15:10:54 +0000</pubDate>
				<guid isPermaLink="false">/?post_type=lesintegristes_note&#038;p=3995</guid>

					<description><![CDATA[Phosphor est un outil qui permet de convertir des vidéos dans un format qui leur permet d’être décompressées et rendues en JS / Canvas, par le navigateur Web. Ce format est un assemblage d’instructions JSON et d’images, au format PNG ou JPG, qui vont être utilisés par leur script pour générer le rendu en canvas.
Cette technique a notamment été utilisée par Apple, sur la page de présentation de l’iPhone 5.
Les avantages sont nombreux par rapport à une &#60;video&#62; ou à un GIF : 

Seul le support de &#60;canvas&#62; est nécessaire
Pas de problème de codecs
Possibilité de lire&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.divergentmedia.com/phosphor" lang="en">Phosphor</a> est un outil qui permet de convertir des vidéos dans un format qui leur permet d’être décompressées et rendues en JS / Canvas, par le navigateur Web. Ce format est un assemblage d’<a href="https://raw.github.com/mikewoodworth/phosphorframework/15a752ecc6c0d7b0b4b6efc83f4dcfeb63cf4750/Samples/logospin/logospin_animationData.jsonp">instructions JSON</a> et <a href="https://raw.github.com/mikewoodworth/phosphorframework/15a752ecc6c0d7b0b4b6efc83f4dcfeb63cf4750/Samples/logospin/logospin_atlas000.png">d’images</a>, au format PNG ou JPG, qui vont être utilisés par leur script pour générer le rendu en canvas.</p>
<p>Cette technique a notamment été utilisée par Apple, sur <a href="http://www.apple.com/iphone/design/">la page de présentation de l’iPhone 5</a>.</p>
<p>Les avantages sont nombreux par rapport à une <code>&lt;video&gt;</code> ou à un GIF : </p>
<ul>
<li>Seul le support de <code>&lt;canvas&gt;</code> est nécessaire</li>
<li>Pas de problème de codecs</li>
<li>Possibilité de lire ces vidéos sans fullscreen sur iPhone</li>
<li>Contrôle total sur la vidéo</li>
<li>Niveaux de transparence (si PNG est utilisé)</li>
<li>Pas de limitation de couleurs</li>
<li>Compression sans perte (optionnel)</li>
</ul>
<p>Évidemment, il ne s’agit pas de l’utiliser pour intégrer de longues vidéos, mais plutôt pour présenter de courtes animations. Les performances sont excellentes, que ce soit en vitesse de rendu ou en temps de téléchargement (dans l’exemple présenté sur cette page, on passe de 7 Mo pour le GIF à 500 Ko).</p>
<p>Faute de mieux, cela permet de combler le manque laissé par les formats <a href="http://en.wikipedia.org/wiki/APNG">APNG</a> ou <a href="http://en.wikipedia.org/wiki/Multiple-image_Network_Graphics">MNG</a> qui n’ont jamais pu s’imposer. Notre salut viendra peut-être du format <a href="http://en.wikipedia.org/wiki/WebP">WebP</a> proposé par Google qui supporte également les animations, mais que Mozilla <a href="http://muizelaar.blogspot.fr/2011/04/webp.html">refuse d’intégrer à Firefox</a> pour l’instant.</p>
<p>Le script de décompression est open source (licence MIT) et a été <a href="https://github.com/mikewoodworth/phosphorframework">publié sur GitHub</a>.</p>
<p>Jon Skinner, l’auteur de l’éditeur Sublime Text, avait proposé <a href="http://www.sublimetext.com/~jps/animated_gifs_the_hard_way.html">une technique similaire</a> pour lire des screencasts. Cette fois, <a href="https://github.com/sublimehq/anim_encoder">l’outil de compression</a> est libre, multiplateforme (Python) et automatisable.</p>
]]></content:encoded>
					
					<wfw:commentRss>/notes/phosphor-est-un-outil-qui-permet-de-convertir-des/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Note&#160;: Vous pensiez tout connaître des tableaux en JavaSc&#160;[…]</title>
		<link>/notes/vous-pensiez-tout-connaitre-des-tableaux-en-javasc/</link>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Mon, 10 Dec 2012 10:41:24 +0000</pubDate>
				<guid isPermaLink="false">/?post_type=lesintegristes_note&#038;p=3943</guid>

					<description><![CDATA[Vous pensiez tout connaître des tableaux en JavaScript ?
Saviez-vous que les index de tableaux étaient traités comme des chaînes de caractère en JavaScript ? Et que pour cette même raison, la valeur passée à l’opérateur square brackets ([]) était convertie en chaîne de caractère, ainsi que la première passée à l’opérateur in ? Quelle est la taille maximale d’un tableau ? Et que se passe-t-il lorsque la propriété length est modifiée ?
Pour connaître les réponses à ces questions, foncez lire cet article de Dr Axel Rauschmayer : Arrays in JavaScript.
Je vous invite également également à parcourir l’ensemble&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Vous pensiez tout connaître des tableaux en JavaScript ?</p>
<p>Saviez-vous que les index de tableaux étaient traités comme des chaînes de caractère en JavaScript ? Et que pour cette même raison, la valeur passée à l’opérateur <em lang="en">square brackets</em> (<code>[]</code>) était convertie en chaîne de caractère, ainsi que la première passée à l’opérateur <em lang="en">in</em> ? Quelle est la taille maximale d’un tableau ? Et que se passe-t-il lorsque la propriété <code>length</code> est modifiée ?</p>
<p>Pour connaître les réponses à ces questions, foncez lire cet article de Dr Axel Rauschmayer : <a href="http://www.2ality.com/2012/12/arrays.html" lang="en">Arrays in JavaScript</a>.</p>
<p>Je vous invite également également à parcourir l’ensemble du blog, et notamment <a href="http://www.2ality.com/2012/08/guide-jslang.html" lang="en">le guide JavaScript</a>, qui classe et regroupe tous les articles liés au langage.</p>
<p>Dr Axel Rauschmayer (<a href="https://twitter.com/rauschma">@rauschma</a> sur Twitter) prépare également un livre pour 2013, <a href="http://www.jsguide.org/" lang="en">A programmer’s guide to JavaScript</a>. Il ne fait nul doute que celui-ci s’imposera rapidement comme une référence !</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Firefox 16, qu’y a-t-il pour nous là-dedans ?</title>
		<link>/2012/10/10/firefox-16-qu-y-a-t-il-pour-nous-la-dedans/</link>
					<comments>/2012/10/10/firefox-16-qu-y-a-t-il-pour-nous-la-dedans/#comments</comments>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Wed, 10 Oct 2012 16:30:47 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<guid isPermaLink="false">/?p=3556</guid>

					<description><![CDATA[Firefox 16 est sorti hier ! Voici une sélection des nouveautés qui me semblent intéressantes pour les développeurs Web (si vous êtes très motivé, ruez-vous sur les 1989 améliorations et corrections de cette version). La liste qui suit a été constituée à partir de la page Changes for Web developers du Mozilla Developer Network.
Developer Toolbar
La Developer Toolbar est disponible ! Elle regroupe les outils de développement existants dans Firefox (l’inspecteur, la console Web, le débogueur), auxquels vient s’ajouter une console. Celle-ci peut assez facilement être étendue pour y ajouter de nouvelles commandes : cet outil va certainement se&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Firefox 16 est sorti hier ! Voici une sélection des nouveautés qui me semblent intéressantes pour les développeurs Web (si vous êtes très motivé, ruez-vous sur <a href="http://www.mozilla.org/en-US/firefox/16.0/releasenotes/buglist.html">les 1989 améliorations et corrections</a> de cette version). La liste qui suit a été constituée à partir de la page <a lang="en" href="https://developer.mozilla.org/en-US/docs/Firefox_16_for_developers">Changes for Web developers</a> du Mozilla Developer Network.</p>
<h2>Developer Toolbar</h2>
<p>La <a href="https://blog.mozilla.org/blog/2012/10/09/firefox-debuts-new-developer-toolbar/" lang="en">Developer Toolbar</a> est disponible ! Elle regroupe les outils de développement existants dans Firefox (l’inspecteur, la console Web, le débogueur), auxquels vient s’ajouter une console. Celle-ci peut assez facilement <a href="https://developer.mozilla.org/en-US/docs/Tools/GCLI#Extending_the_Command_Line" lang="en">être étendue</a> pour y ajouter de nouvelles commandes : cet outil va certainement se retrouver indispensable d’ici peu de temps.</p>
<div id="attachment_3643" style="width: 604px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2012/10/dev-toolbar.png"><img aria-describedby="caption-attachment-3643" loading="lazy" src="/wp-content/uploads/2012/10/dev-toolbar.png" alt="" title="Barre d’outils de développement" width="594" height="588" class="size-full wp-image-3643" srcset="/wp-content/uploads/2012/10/dev-toolbar.png 594w, /wp-content/uploads/2012/10/dev-toolbar-300x296.png 300w" sizes="(max-width: 594px) 100vw, 594px" /></a><p id="caption-attachment-3643" class="wp-caption-text">La nouvelle barre de développement de Firefox 16</p></div>
<h2>HTML</h2>
<h3>L’élément <code>meter</code> est supporté</h3>
<p>Un petit rappel du rôle de cet élément :</p>
<blockquote lang="en"><p>
The meter element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate. This is also known as a gauge.<br />
— <a href="http://developers.whatwg.org/the-button-element.html#the-meter-element">The meter element &mdash; HTML5</a></p></blockquote>
<p>Traduction :</p>
<blockquote><p>
L’élément <em lang="en">meter</em> représente une mesure scalaire à l’intérieur de limites connues, ou une valeur fractionnaire. Par exemple : le niveau d’utilisation d’un disque, la pertinence du résultat d’une requête, ou la fraction de votants ayant sélectionné un candidat. Le mot « jauge » peut également définir cet élément.
</p></blockquote>
<p>Je vous invite également à consulter la documentation de l’élément meter <a href="https://developer.mozilla.org/en-US/docs/HTML/Element/meter">sur le <abbr title="Mozilla Developer Network">MDN</abbr></a>, et <a href="http://html5doctor.com/measure-up-with-the-meter-tag/" lang="en">l’article de HTML5 Doctor</a>. Un petit exemple :</p>
<pre><code class="language-markup">16/30 &lt;meter value="16" max="30" min="10"&gt;&lt;/meter&gt;
45/50 &lt;meter value="45" max="50" min="0"&gt;&lt;/meter&gt;</code></pre>
<p>Rendu : 16/30 <meter value="16" max="30" min="10">(meter n’est pas supporté sur votre navigateur)</meter>, 45/50 <meter value="45" max="50" min="0">(meter n’est pas supporté sur votre navigateur)</meter>.</p>
<p>Trois pseudo-classes CSS ont également été ajoutées pour nous permettre de styler cet élément : <code>:-moz-meter-optimum</code>, <code>:-moz-meter-sub-optimum</code> et <code>:-moz-meter-sub-sub-optimum</code>.</p>
<h3>L’API HTML Microdata est supportée</h3>
<p>Quelques liens de référence :</p>
<ul>
<li><a lang="en" href="http://dev.opera.com/articles/view/microdata-and-the-microdata-dom-api/">Un article d’introduction à Microdata et son API sur Dev.Opera</a></li>
<li><a lang="en" href="http://html5doctor.com/microdata/">L’article Microdota sur HTML5 Doctor</a></li>
<li><a lang="en" href="http://dev.w3.org/html5/spec-author-view/microdata.html">La spécification Microdata à destination des auteurs</a></li>
</ul>
<h3>Le champ <code>&lt;input&gt;</code> autorise tous les <a href="http://fr.wikipedia.org/wiki/Type_MIME">types MIME</a></h3>
<p>Avant cette version, seules ces valeurs étaient disponibles :</p>
<pre><code class="language-markup">&lt;input type="file" accept="audio/*"&gt;
&lt;input type="file" accept="video/*"&gt;
&lt;input type="file" accept="image/*"&gt;</code></pre>
<p>Il est maintenant possible d’être plus précis :</p>
<pre><code class="language-markup">&lt;input type="file" accept="audio/mpeg"&gt;
&lt;input type="file" accept="video/*,image/*"&gt;
&lt;input type="file" accept="image/*,.autre-extension"&gt;</code></pre>
<p>Pardonnez-moi, mais je me sens obligé de rappeler qu’<strong>aucune validation dans le navigateur n’est destinée à remplacer une validation côté serveur.</strong> Ça va mieux, merci !</p>
<h2>CSS</h2>
<h3>Adieu préfixes</h3>
<p>Beaucoup, beaucoup de préfixes ont été supprimés. Voyez :</p>
<p>Les animations : <code>animation</code>, <code>animation-delay</code>, <code>animation-direction</code>, <code>animation-duration</code>, <code>animation-iteration-count</code>, <code>animation-name</code>, <code>animation-play-state</code>, <code>animation-timing-function</code>, <code>animation-fill-mode</code>.</p>
<p>Les transformations : <code>transform-origin</code>, <code>transform</code>.</p>
<p>Les dégradés : <code>linear-gradient</code>, <code>radial-gradient</code>, <code>repeating-linear-gradient</code>, <code>repeating-radial-gradient</code>.</p>
<p>La fonction <code>calc()</code>. Le potentiel de cette fonction CSS est énorme (<a href="https://developer.mozilla.org/en-US/docs/CSS/calc" lang="en">documentation MDN</a>), et une version non préfixée facilitera son utilisation. Seul Opera supporte pas <code>calc()</code> aujourd’hui.</p>
<h3>Animations CSS : reverse</h3>
<p>Il est maintenant possible d’utiliser les valeurs reverse et alternate-reverse pour la propriété animation-direction (<a lang="en" href="https://developer.mozilla.org/en-US/docs/CSS/animation-direction">documentation MDN</a>).</p>
<p>Si vous vous souhaitez voir en quoi ces nouvelles valeurs de direction influent sur une animation CSS, <a href="http://code.lesintegristes.net/animation-direction/" title="La propriété animation-direction">je vous ai concocté une petite démonstration</a>. Allez-donc y jeter un œil avec votre Firefox flambant neuf !</p>
<h3>box-sizing sur les cellules de tableaux</h3>
<p>Cette propriété, devenue récemment assez populaire (voir <a href="http://paulirish.com/2012/box-sizing-border-box-ftw/" lang="en">l’article de Paul Irish</a>), s’applique maintenant correctement aux cellules de tableaux.</p>
<h3>Media queries</h3>
<p>Le type de donnée <em>resolution</em> (<a href="https://developer.mozilla.org/en-US/docs/CSS/resolution" lang="en">documentation MDN</a>) permet d’utiliser une nouvelle unité, le <code>dppx</code> (<em lang="en">dots per CSS pixel</em>). Il s’agit du nombre de points (sur l’écran) par pixel CSS (virtuel).</p>
<p>Les unités <code>dppx</code>, <code>dpi</code>, et <code>dpcm</code> font maintenant référence à des valeurs CSS (virtuelles), et non plus à des valeurs physiques.</p>
<h3>Flex Layout</h3>
<p>Il est maintenant possible d’utiliser la valeur <code>auto</code> pour les propriétés <code>min-width</code> et <code>min-height</code> (voir la spécification CSS3 Flexbox : <a lang="en" href="http://dev.w3.org/csswg/css3-flexbox/#min-size-auto">Implied Minimum Size of Flex Items</a>).</p>
<h2>DOM : adieu préfixes</h2>
<ul>
<li>IndexedDB n’est plus préfixé (<a href="https://developer.mozilla.org/en-US/docs/IndexedDB" lang="en">documentation MDN</a>)</li>
<li>L’API Battery n’est plus préfixée (<a href="https://developer.mozilla.org/en-US/docs/DOM/window.navigator.battery" lang="en">documentation MDN</a>)</li>
<li>L’API Vibration n’est plus préfixée (<a lang="en" href="https://hacks.mozilla.org/2012/01/using-the-vibrator-api-part-of-webapi/">Mozilla Hacks: Using the Vibration API</a>)</li>
</ul>
<h2>JavaScript</h2>
<p>Trois nouvelles méthodes ont été ajoutées sur l’objet <code>Number</code> : <code>isFinite()</code>, <code>toInteger()</code> et <code>isInteger()</code>.</p>
<h3>L’opérateur Spread</h3>
<p>Il est maintenant possible de convertir un tableau en paramètres de fonction, à l’aide de <a href="http://wiki.ecmascript.org/doku.php?id=harmony:spread" lang="en">l’opérateur <em lang="en">spread</em> du projet Harmony</a>.</p>
<p>Évidemment, n’utilisez pas cette fonctionnalité pour l’instant pour du Web, c’est totalement incompatible avec les autres navigateurs. Mais si vous développez une commande pour la nouvelle Developer Toolbar de Firefox, il serait dommage de vous en priver !</p>
<p>Un exemple :</p>
<pre><code class="language-javascript">// Pour appeler cette fonction
function nousIrons(a, b, c, lieu) {
  var str = a + ', ' + b + ', ' + c + ', nous irons ' + lieu;
  return str;
}

// Avec ce tableau
var data = [1, 2, 3];

// Et ce lieu
var lieu = 'au bois';

// Avant, nous devions faire
nousIrons(data[0], data[1], data[2], lieu);

// Ou encore, avec Array.apply()
nousIrons.call(this, data.concat(lieu));

// Mais maintenant, avec la syntaxe spread
nousIrons(...data, lieu);

// Cool non ?</code></pre>
<h2>La conclusion ! La conclusion !</h2>
<p>Pour cet article, j’ai essayé prendre les notes de version de Firefox et d’y ajouter, en vrac, des informations complémentaires, quelques démos, et mes réactions. J’espère que le résultat sera plus digeste qu’une simple liste : n’hésitez pas à me faire part de vos impressions dans les commentaires !</p>
]]></content:encoded>
					
					<wfw:commentRss>/2012/10/10/firefox-16-qu-y-a-t-il-pour-nous-la-dedans/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>L’attribut placeholder sur OS X et iOS, comme autrefois.</title>
		<link>/2012/10/09/l-attribut-placeholder-sur-os-x-et-ios-comme-autrefois/</link>
					<comments>/2012/10/09/l-attribut-placeholder-sur-os-x-et-ios-comme-autrefois/#comments</comments>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Tue, 09 Oct 2012 08:30:47 +0000</pubDate>
				<category><![CDATA[Front-end]]></category>
		<guid isPermaLink="false">/?p=3408</guid>

					<description><![CDATA[Depuis quelques temps, l’attribut placeholder est supporté par l’ensemble des navigateurs modernes. Cette fonctionnalité, implémentée de mille (mauvaises) manières en détournant l’attribut value, a enfin trouvé la place qui lui revenait dans HTML.
Il est même possible de styler ce texte sur la plupart des navigateurs, si l’on veut bien concéder l’utilisation de sélecteurs quelque peu pimpants :
::-webkit-input-placeholder{}
:-ms-input-placeholder{}
:-moz-placeholder{}
Le comportement est simple : un texte d’aide apparaît dans le champ de texte, lorsque celui-ci est vide. Ce libellé disparaît dès que le focus est placé dans le champ. 
Cet attribut n’a pas vocation à remplacer l’élément &#60;label&#62;.&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Depuis quelques temps, l’attribut <code>placeholder</code> est supporté par l’ensemble des navigateurs modernes. Cette fonctionnalité, implémentée de mille (mauvaises) manières en détournant l’attribut <code>value</code>, a enfin trouvé la place qui lui revenait dans HTML.</p>
<p>Il est même possible de styler ce texte sur la plupart des navigateurs, si l’on veut bien concéder l’utilisation de sélecteurs quelque peu pimpants :</p>
<pre><code class="language-css">::-webkit-input-placeholder{}
:-ms-input-placeholder{}
:-moz-placeholder{}</code></pre>
<p>Le comportement est simple : un texte d’aide apparaît dans le champ de texte, lorsque celui-ci est vide. Ce libellé disparaît dès que le focus est placé dans le champ. </p>
<p>Cet attribut n’a pas vocation à remplacer l’élément <code>&lt;label&gt;</code>. Il s’agit d’un indice, d’une aide supplémentaire, et pas d’un intitulé :</p>
<blockquote lang="en"><p>The placeholder attribute represents a short hint (a word or short phrase) intended to aid the user with data entry. A hint could be a sample value or a brief description of the expected format. […] For a longer hint or other advisory text, the title attribute is more appropriate. <strong>The placeholder attribute should not be used as an alternative to a label.</strong><br />
— <a href="http://developers.whatwg.org/common-input-element-attributes.html#attr-input-placeholder">Common input element attributes &mdash; HTML5</a>
</p></blockquote>
<p>Traduction (rapide) :</p>
<blockquote><p>L’attribut placeholder représente un indice (mot ou phrase courte) dont le but est d’aider l’utilisateur à entrer ses données. Cet indice peut être une valeur d’exemple ou une brève description du format attendu. […] Pour un texte d’aide plus long, ou toute autre indication, l’attribut title sera plus approprié. L’attribut placeholder ne devrait pas être utilisé comme alternative à l’élément label.</p></blockquote>
<p>Sur iOS et OS X (depuis 10.7), une petite variante a été introduite, qui me semble tout à fait intéressante. Le libellé reste affiché au focus, jusqu’au premier caractère tapé. Ce comportement est visible sur Firefox, Chrome et Safari (pas Opera, qui semble implémenter ses propres widgets).</p>
<div id="attachment_3456" style="width: 212px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3456" loading="lazy" src="/wp-content/uploads/2012/10/placeholder-left.gif" alt="" title="Placeholder OS X" width="202" height="41" class="size-full wp-image-3456" /><p id="caption-attachment-3456" class="wp-caption-text">L’attribut placeholder sur OS X</p></div>
<p>Je trouve ce nouveau comportement intéressant. Il permet d’afficher l’aide plus longtemps, et le risque de confondre le <em lang="en">placeholder</em> avec la valeur du champ est le même que sans focus, puisqu’ils sont censés être clairement distingués visuellement.</p>
<p>Seulement voilà : chaque projet est particulier, et une solution, même élégante, ne correspond pas toujours aux besoins du moment. Il peut arriver, par exemple, que le comportement du système ne soit pas celui qui est désiré. Nous avons tous connu ce problème n’est-ce pas ?</p>
<p>Prenons un champ dont le texte est centré. Regardez comme le curseur se faufile, l’air de rien, au beau milieu d’un caractère :</p>
<div id="attachment_3449" style="width: 212px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3449" loading="lazy" src="/wp-content/uploads/2012/10/placeholder.gif" alt="Placeholder centré" title="Placeholder centré sur OS X 10.7 et Firefox 16 beta" width="202" height="41" class="size-full wp-image-3449" /><p id="caption-attachment-3449" class="wp-caption-text">Placeholder centré</p></div>
<p>Mais enfin Curseur, tu fais n’importe quoi ! La solution est simple, la décision est prise : il faut revenir à l’ancien comportement. Mais il va falloir trouver une ruse, car il est hors de question de revenir à une solution basée sur l’attribut value, avec des classes pour distinguer le focus.</p>
<h2>La solution à deux francs</h2>
<p>Une solution pourrait être de modifier dynamiquement l’attribut placeholder au focus, à l’aide d’un script. Et pourquoi pas en CSS ? En combinant <code>:focus</code> et <code>:-xx-input-placeholder</code>, il devrait être possible de modifier la couleur du placeholder pour qu’elle corresponde à celle du fond ! Voyons cela :</p>
<pre><code class="language-css">input:focus::-webkit-input-placeholder { color: #fff; }
input:focus:-moz-placeholder           { color: #fff; }</code></pre>
<div id="attachment_3447" style="width: 212px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3447" loading="lazy" src="/wp-content/uploads/2012/10/placeholder-fff.gif" alt="Placeholder blanc" title="Placeholder blanc sur OS X 10.7 et Firefox 16 beta" width="202" height="41" class="size-full wp-image-3447" /><p id="caption-attachment-3447" class="wp-caption-text">Placeholder blanc</p></div>
<p>Ce comportement peut être observé avec Firefox et Safari. La couleur du curseur clignotant correspond à la couleur du champ, ici un gris foncé. Mais pour permettre une bonne lisibilité du texte, ces deux navigateurs vont faire en sorte d’inverser la couleur du texte à l’endroit où se trouve le curseur :</p>
<div id="attachment_3534" style="width: 365px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3534" loading="lazy" src="/wp-content/uploads/2012/10/placeholder-fff-zoom.gif" alt="" title="Placeholder OS X - Couleur blanche agrandi" width="355" height="120" class="size-full wp-image-3534" /><p id="caption-attachment-3534" class="wp-caption-text">Placeholder blanc, agrandi</p></div>
<p>Ce qui est tout à fait indésirable dans notre cas.</p>
<h2>La solution à trois francs</h2>
<p>La solution est maintenant évidente, et permet également d’obtenir une meilleure portabilité, puisqu’elle ne dépend plus de la couleur du fond. Il s’agit de la couleur spéciale <code>transparent</code>.</p>
<pre><code class="language-css">input:focus::-webkit-input-placeholder { color: transparent; }
input:focus:-moz-placeholder           { color: transparent; }</code></pre>
<div id="attachment_3448" style="width: 212px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3448" loading="lazy" src="/wp-content/uploads/2012/10/placeholder-transparent.gif" alt="Placeholder transparent" title="Placeholder transparent sur OS X 10.7 et Firefox 16 beta" width="202" height="41" class="size-full wp-image-3448" /><p id="caption-attachment-3448" class="wp-caption-text">Placeholder transparent</p></div>
<h2>Accessibilité</h2>
<p>Si vous avez pour habitude de traquer les problèmes d’accessibilité, cette technique devrait vous déranger un peu : rendre un texte transparent en CSS, voilà qui sonne faux. Mais n’oublions pas qu’il ne s’agit, encore une fois, que d’un <code>placeholder</code>, une invitation à entrer une valeur, rien d’autre. Ce n’est pas un <code>title</code>, et encore moins un  <code>&lt;label&gt;</code>.</p>
<p>Le seul problème que je vois serait plutôt d’ordre ergonomique : un utilisateur d’iOS ou OS X s’attend à voir le placeholder au focus, jusqu’au premier caractère tapé.</p>
<h2>Démonstration</h2>
<p>Vous pouvez retrouver ces tests sur la page dédiée :</p>
<p style="text-align:center"><a class="button" href="http://code.lesintegristes.net/placeholder/"><span><span>Démonstration</span></span></a></p>
<p>Cette page inaugure également un nouvel espace, <a href="http://code.lesintegristes.net/">code.lesintegristes.net</a>, sur lequel nous publierons désormais nos démonstrations. Ce sous-domaine est <a href="https://github.com/lesintegristes/lesintegristes-code" lang="en">hébergé par GitHub</a>, et son contenu est bien entendu sous licence libre.</p>
]]></content:encoded>
					
					<wfw:commentRss>/2012/10/09/l-attribut-placeholder-sur-os-x-et-ios-comme-autrefois/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Note&#160;: Je vous parlais récemment du thème de ce blog, qui&#160;[…]</title>
		<link>/notes/je-vous-parlais-recemment-du-theme-de-ce-blog-qui/</link>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Fri, 28 Sep 2012 15:53:32 +0000</pubDate>
				<guid isPermaLink="false">/?post_type=lesintegristes_note&#038;p=3346</guid>

					<description><![CDATA[Je vous parlais récemment du thème de ce blog, qui a été publié sous licence libre sur GitHub. Nous avons depuis lancé un chantier qui a deux objectifs : rafraîchir le thème, et actualiser la structure du blog.
L’ensemble de nos discussions se fait en public, sur GitHub. Nous utilisons le tag « question » pour lancer des sujets dans les issues, et lorsqu’une décision est prise, nous la reportons sur le wiki.
Nous sommes évidemment ouverts à toutes vos remarques et contributions, c’est même le but de notre démarche. Passez donc mettre votre grain de sel !&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="/notes/comme-prevu-depuis-bientot-3-ans-le-theme/">Je vous parlais récemment</a> du thème de ce blog, <a href="https://github.com/lesintegristes/lesintegristes-theme">qui a été publié</a> sous licence libre sur GitHub. Nous avons depuis lancé un chantier qui a deux objectifs : rafraîchir le thème, et actualiser la structure du blog.</p>
<p>L’ensemble de nos discussions se fait en public, sur GitHub. Nous utilisons <a href="https://github.com/lesintegristes/lesintegristes-theme/issues?direction=desc&#038;labels=question&#038;page=1&#038;sort=created&#038;state=open">le tag « <em>question</em> »</a> pour lancer des sujets dans les <span lang="en">issues</span>, et lorsqu’une décision est prise, nous la reportons <a href="https://github.com/lesintegristes/lesintegristes-theme/wiki/%5BFR%5D-Redesign">sur le wiki</a>.</p>
<p>Nous sommes évidemment ouverts à toutes vos remarques et contributions, c’est même le but de notre démarche. <a href="https://github.com/lesintegristes/lesintegristes-theme/issues?direction=desc&#038;labels=&#038;page=1&#038;sort=created&#038;state=open">Passez donc mettre votre grain de sel !</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Note&#160;: Google vient d’annoncer qu’Internet Explorer 8 ne &#160;[…]</title>
		<link>/notes/google-vient-dannoncer-quinternet-explorer-8-ne/</link>
					<comments>/notes/google-vient-dannoncer-quinternet-explorer-8-ne/#comments</comments>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Mon, 17 Sep 2012 12:05:51 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">/?p=2390</guid>

					<description><![CDATA[Google vient d’annoncer qu’Internet Explorer 8 ne serait plus supporté sur Google Apps à partir du 15 novembre prochain, en raison de la sortie d’Internet Explorer 10 prévue pour le 26 octobre 2012 (sortie de Windows 8).
Je pense qu’il s’agit là d’un signe intéressant, qui montre qu’avec l’accélération des sorties de versions de navigateurs, il faut également adapter les stratégies de support. Internet Explorer 8 a déjà plus de 3 ans, c’est un navigateur dépassé dont il faut se débarrasser au plus vite !&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Google vient d’annoncer qu’<a href="http://googleappsupdates.blogspot.fr/2012/09/supporting-modern-browsers-internet.html">Internet Explorer 8 ne serait plus supporté</a> sur Google Apps à partir du 15 novembre prochain, en raison de la sortie d’Internet Explorer 10 prévue pour le 26 octobre 2012 (sortie de Windows 8).</p>
<p>Je pense qu’il s’agit là d’un signe intéressant, qui montre qu’avec l’accélération des sorties de versions de navigateurs, il faut également adapter les stratégies de support. Internet Explorer 8 a déjà plus de 3 ans, c’est un navigateur dépassé dont il faut se débarrasser au plus vite !</p>
]]></content:encoded>
					
					<wfw:commentRss>/notes/google-vient-dannoncer-quinternet-explorer-8-ne/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Note&#160;: Comme prévu depuis… bientôt 3 ans, le thème WordPr&#160;[…]</title>
		<link>/notes/comme-prevu-depuis-bientot-3-ans-le-theme-wordpr/</link>
					<comments>/notes/comme-prevu-depuis-bientot-3-ans-le-theme-wordpr/#comments</comments>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Fri, 14 Sep 2012 14:00:05 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">/?p=2333</guid>

					<description><![CDATA[Comme prévu depuis… bientôt 3 ans, le thème WordPress de ce blog est maintenant disponible sur GitHub, sous licence MIT.
Le but est avant tout de faciliter nos contributions (l’équipe s’agrandit !), et de pouvoir mettre en pratique les sujets qui sont évoqués ici. Cela pourrait nous permettre, entre autres, de prêcher le responsive design sans avoir à affronter le regard de nos lecteurs lorsqu’ils tentent de redimensionner leur navigateur…
J’espère qu’il sera également utile à d’autres, mais plus tard, après un petit rafraîchissement : le thème a très peu évolué depuis sa sortie, et il commence à prendre un&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Comme prévu depuis… <a href="/2009/12/22/les-integristes-le-theme/">bientôt 3 ans</a>, le thème WordPress de ce blog est maintenant <a href="https://github.com/lesintegristes/lesintegristes-theme">disponible sur GitHub</a>, sous licence MIT.</p>
<p>Le but est avant tout de faciliter nos contributions (l’équipe s’agrandit !), et de pouvoir mettre en pratique les sujets qui sont évoqués ici. Cela pourrait nous permettre, entre autres, de prêcher le <span lang="en">responsive design</span> sans avoir à affronter le regard de nos lecteurs lorsqu’ils tentent de redimensionner leur navigateur…</p>
<p>J’espère qu’il sera également utile à d’autres, mais plus tard, après un petit rafraîchissement : le thème a très peu évolué depuis sa sortie, et il commence à prendre un sacré coup de vieux !</p>
<p>Un petit mot sur git : pour faciliter les contributions, le méthodologie choisie est la suivante : chaque <span lang="en">push</span> dans la branche <code>master</code> du dépôt GitHub est instantanément mis en production (grâce aux <em lang="en"><a href="https://help.github.com/articles/post-receive-hooks">Post-Receive Hooks</a></em> de GitHub). Cela nous permettra, je l’espère, de mettre à jour le thème plus régulièrement, de faire progresser différentes fonctionnalités dans des branches (ou <span lang="en">forks</span>) séparés, et d’en discuter à l’aide de <em lang="en">pull requests</em> !</p>
<p>Le thème sur GitHub :<br /> <a lang="en" href="https://github.com/lesintegristes/lesintegristes-theme">https://github.com/lesintegristes/lesintegristes-theme</a></p>
<p>Reporter un problème sur le site :<br /> <a lang="en" href="https://github.com/lesintegristes/lesintegristes-theme/issues">https://github.com/lesintegristes/lesintegristes-theme/issues</a></p>
<p>Les intégristes sur GitHub :<br /> <a lang="en" href="https://github.com/lesintegristes">https://github.com/lesintegristes</a></p>
<p><strong>(Mise à jour)</strong> Nous avons également publié le plugin WordPress nous permettant de synchroniser le dépôt local avec GitHub :<br />
<a lang="en" href="https://github.com/lesintegristes/wp-github-sync">https://github.com/lesintegristes/wp-github-sync</a></p>
]]></content:encoded>
					
					<wfw:commentRss>/notes/comme-prevu-depuis-bientot-3-ans-le-theme-wordpr/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Note&#160;: L’auteur de l’excellent blog HTeuMeuLeu a prop&#160;[…]</title>
		<link>/notes/lauteur-de-lexcellent-blog-hteumeuleu-a-prop/</link>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Mon, 25 Jun 2012 22:04:56 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">/?p=2227</guid>

					<description><![CDATA[L’auteur de l’excellent blog HTeuMeuLeu a proposé un petit exercice en CSS ce soir, et puisque je me suis pris au jeu, j’en profite pour relancer cette vieille machine, et expliquer ma solution !
Le problème consistait à définir un padding précis sur la droite d’un élément en display:inline. En dehors des détails techniques, ma solution est la suivante :

Utiliser un border-left padding-left sur le conteneur, dont la largeur correspond au double du padding désiré.
Décaler d’autant l’élément sur la gauche, à l’aide d’un position:relative, et d’un left négatif.

La démonstration sur jsFiddle : http://jsfiddle.net/Ch7bL/35/
N’hésitez pas à améliorer&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>L’auteur de l’excellent blog <a href="http://www.hteumeuleu.fr/">HTeuMeuLeu</a> a proposé un petit exercice en CSS ce soir, et puisque je me suis pris au jeu, j’en profite pour relancer cette vieille machine, et expliquer ma solution !</p>
<p><a href="http://www.hteumeuleu.fr/un-joli-casse-tete-en-integration/">Le problème</a> consistait à définir un <code>padding</code> précis sur la droite d’un élément en <code>display:inline</code>. En dehors des détails techniques, ma solution est la suivante :</p>
<ul>
<li>Utiliser un <code><del>border-left</del></code> <ins><code>padding-left</code></ins> sur le conteneur, dont la largeur correspond au double du <span lang="en">padding</span> désiré.</li>
<li>Décaler d’autant l’élément sur la gauche, à l’aide d’un <code>position:relative</code>, et d’un <code>left</code> négatif.</li>
</ul>
<p>La démonstration sur jsFiddle : <a href="http://jsfiddle.net/Ch7bL/35/">http://jsfiddle.net/Ch7bL/35/</a></p>
<p>N’hésitez pas à améliorer cette solution, ou à proposer une autre approche dans les commentaires de <a href="http://www.hteumeuleu.fr/un-joli-casse-tete-en-integration/">l’article</a> !</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Note&#160;: Vous connaissez JavaScript, mais il reste encore q&#160;[…]</title>
		<link>/notes/vous-connaissez-javascript-mais-il-reste-encore-q/</link>
					<comments>/notes/vous-connaissez-javascript-mais-il-reste-encore-q/#comments</comments>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Wed, 09 Nov 2011 13:08:27 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">/?p=2155</guid>

					<description><![CDATA[Vous connaissez JavaScript, mais il reste encore quelques zones d’ombre ? François-Guillaume Ribreau a réalisé la traduction française d’un excellent article de Dmitry Soshnikov, à propos de ce qui constitue le cœur de JavaScript.
La chaîne des prototypes, le contexte d’exécution, l’objet d’activation, le scope, les closures, tout y est expliqué de manière précise et exacte, ce qui est malheureusement assez rare quand il s’agit de JavaScript.
C’est ici : Voyage au coeur de JavaScript.
Et si l’anglais ne vous rebute pas, je vous invite également à lire l’ensemble de la série ECMA-262-3 in detail (autrement dit ECMAScript 3) par&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Vous connaissez JavaScript, mais il reste encore quelques zones d’ombre ? <a href="http://fgribreau.com/">François-Guillaume Ribreau</a> a réalisé la traduction française d’un excellent article de <a href="http://dmitrysoshnikov.com/" lang="en">Dmitry Soshnikov</a>, à propos de ce qui constitue le cœur de JavaScript.</p>
<p>La chaîne des prototypes, le contexte d’exécution, l’objet d’activation, le scope, les closures, tout y est expliqué de manière précise et <em>exacte</em>, ce qui est malheureusement assez rare quand il s’agit de JavaScript.</p>
<p>C’est ici : <a href="http://fgribreau.com/articles/voyage-au-coeur-de-javascript.html">Voyage au coeur de JavaScript</a>.</p>
<p>Et si l’anglais ne vous rebute pas, je vous invite également à lire l’ensemble de la série <a href="http://dmitrysoshnikov.com/tag/ecma-262-3/" lang="en">ECMA-262-3 in detail</a> (autrement dit ECMAScript 3) par Dmitry Soshnikov.</p>
]]></content:encoded>
					
					<wfw:commentRss>/notes/vous-connaissez-javascript-mais-il-reste-encore-q/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Note&#160;: Un nouveau site web est né ce matin : w3qualité&#160;[…]</title>
		<link>/notes/un-nouveau-site-web-est-ne-ce-matin-w3qualite/</link>
					<comments>/notes/un-nouveau-site-web-est-ne-ce-matin-w3qualite/#comments</comments>
		
		<dc:creator><![CDATA[Pierre Bertet]]></dc:creator>
		<pubDate>Tue, 11 Oct 2011 09:25:39 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">/?p=2088</guid>

					<description><![CDATA[Un nouveau site web est né ce matin : w3qualité !
Comme le nom l’indique, il y sera question de traiter de la qualité web, selon plusieurs points de vue : webdesign, accessibilité, développement front-end, suivi de qualité web, etc.
Pour commencer, plusieurs intervenants tentent de définir ce qu’est la qualité web, et c’est déjà pas mal !
À suivre ici : http://w3qualite.net/ 
(enfin, dès qu’un flux RSS sera disponible ;-)&#160;[&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Un nouveau site web est né ce matin : <a href="http://w3qualite.net/inc/?page=home">w3qualité</a> !</p>
<p>Comme le nom l’indique, il y sera question de traiter de la qualité web, selon plusieurs points de vue : webdesign, accessibilité, développement front-end, suivi de qualité web, etc.</p>
<p>Pour commencer, plusieurs intervenants tentent de définir ce qu’est la qualité web, et c’est déjà pas mal !</p>
<p>À suivre ici : <a href="http://w3qualite.net/">http://w3qualite.net/</a> </p>
<p>(enfin, dès qu’un flux RSS sera disponible ;-)</p>
]]></content:encoded>
					
					<wfw:commentRss>/notes/un-nouveau-site-web-est-ne-ce-matin-w3qualite/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
	</channel>
</rss>
