{
	"version": "https://jsonfeed.org/version/1.1",
	"language": "fr",
	"title": "Articles - PolariTOON",
	"description": "Fil d'articles",
	"favicon": "../favicon.ico",
	"home_page_url": "./",
	"user_comment": "",
	"items": [
		{
			"title": "Bulletin de la Web Academy no 43",
			"summary": "Sortie de Firefox 75 et sortie de Safari 13.1",
			"date_published": "2020-04-08",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/43-2020-04-08/",
			"id": "web-academy-news-no-43",
			"image": "./web-academy-news-no-43/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/43-2020-04-08/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Ce mardi est sorti <em>Firefox 75</em> et les nouveautés sont au rendez-vous :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développement :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>À l'instar de celle de <em>Chrome</em>, la console de <em>Firefox</em> propose désormais une évaluation instantanée des expressions qui y sont saisies, du moment qu'elle ne provoquent pas d'effet de bord ; les objets <em>ECMAScript</em>, les élements <em>HTML</em> ou encore les erreurs disposent chacun de leur propre prévisualisation</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'outil de mesure d'aires et de distances propose désormais le redimensionnement de la zone mesurée ; c'est bien plus pratique que de s'y reprendre à plusieurs fois ; malheureusement il est pour l'instant pas possible de déplacer cette zone sans la redimensionner</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La barre de recherche de l'inspecteur <em>HTML</em> accepte désormais des requêtes de type <em>XPath</em>, pratique si on a besoin de rechercher un élément en particulier au milieu d'une page</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>HTML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le chargement paresseux des images, tout juste standardisé, est à présent disponible ; en spécifiant l'attribut <code>loading=&quot;lazy&quot;</code> sur un élément <code>&lt;img/&gt;</code>, le chargement de l'image n'est opéré que lorsque l'image rentre dans le <em>scrollport</em> (la zone visible d'un élément défilant)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les nouvelles annotations <em>ARIA</em> <code>aria-description</code>, <code>role=&quot;comment&quot;</code>, <code>role=&quot;mark&quot;</code>, <code>role=&quot;suggestion&quot;</code> sont disponibles sous <em>Windows</em> et <em>Linux</em> ; il n'y a plus qu'à attendre leur support par les lecteurs d'écrans</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les champs de classes publics et statiques sont maintenant pris en charge ; la syntaxe est la même que pour les champs de classes publics et non statiques, à part que la déclaration doit être précédée du mot-clé <code>static</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le constructeur <code>Intl.Locale</code> a été ajouté et permet d'instancier une locale <em>Unicode</em> pré-configurée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les éléments <code>&lt;form&gt;&lt;/form&gt;</code> disposent désormais d'une méthode <code>requestSubmit()</code> qui, contrairement à la méthode <code>submit()</code>, permet d'émuler le clic sur un bouton de soumission de formulaire tout en vérifiant sa validité ; par ailleurs l'évènement <code>&quot;submit&quot;</code> déclenché est désormais de type <code>SubmitEvent</code> avec une propriété <code>submitter</code> dont la valeur correspond à l'élément en question</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API <em>Web Animations</em> se dote d'une myriade de nouvelles fonctionnalités : valeur initiale et valeur finale implicites, les nouvelles classes <code>AnimationTimeline</code> et <code>DocumentTimeline</code>, la nouvelle propriété <code>timeline</code> des instances de <code>Animation</code> et <code>Document</code>, la nouvelles méthode <code>getAnimations()</code> des classes <code>Animation</code> et <code>Document</code> entre autres</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les fonctions <code>clamp()</code>, <code>max()</code> et <code>min()</code> ont été ajoutées ; utilisable partout où la fonction <code>calc()</code> pouvait déjà être utilisée, ces nouvelles fonctions permettent de placer des points de rupture sans avoir recours à des <em>media queries</em> portant sur les dimensions, aux propriétés <code>max-height</code>, <code>max-width</code>, <code>min-height</code> et <code>min-width</code> ou encore la technique des <em>CSS Locks</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>text-decoration-skip-ink</code> accepte désormais la valeur <code>all</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://hacks.mozilla.org/2020/04/firefox-75-ambitions-for-april/,\">https://hacks.mozilla.org/2020/04/firefox-75-ambitions-for-april/,</a> <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/75\">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/75</a> et <a href=\"https://www.fxsitecompat.dev/en-CA/versions/75/\">https://www.fxsitecompat.dev/en-CA/versions/75/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p><em>Safari 13.1</em> est en cours de déploiement et apporte aussi ses nouveautés ; comme j'ai oublié de vous faire le point sur <em>Safari 13</em> en décembre dernier, je vous fait un petit récapitulatif des deux versions :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développement :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Un nouvel outil permet de visualiser la chronologie des animations <em>CSS</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le nouvel onglet &quot;Sources&quot; combine désormais les anciens onglets &quot;Resources&quot; et &quot;Debugger&quot;</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le nouvel onglet &quot;Layers&quot; permet de visualiser en 3 dimensions le rendu de la page ; ça me rappelle beaucoup la vue 3D de <em>Firefox</em>, retirée dans la versions 47</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le sélecteur de couleur a été refait pour supporter d'autres espaces de couleurs plus étendus que <em>sRGB</em> ; il permet entre autres de comparer les couleurs <em>sRGB</em> aux couleurs <em>Display-P3</em> (eh oui, en utilisant les bonnes vieilles couleurs <em>sRGB</em>, vous n'avez accès qu'à une partie des couleurs que peut afficher votre ordinateur !)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>HTML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'attribut <code>enterkeyhint=&quot;&quot;</code> peut être utilisé dans <em>iOS</em> sur les champs de formulaires pour spécifier l'apparence du bouton &quot;Entrée&quot; du clavier virtuel</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La proposition en stage 3 <code>String.prototype.replaceAll()</code> est supportée et permet de remplacer toutes les occurrences d'une chaîne de caractère au sein d'une autre</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'opérateur de fusion nulle <code>??</code> a été ajouté</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API <em>ResizeObserver</em>, alternative moderne à l'évènement <code>&quot;resize&quot;</code> a été ajoutée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API <em>Async Clipboard</em> et notamment la propriété <code>navigator.clipboard</code> a été ajoutée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API <em>Web Animations</em> a été implémentée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API <em>Visual Viewport</em> a été ajoutée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les évènements de pointeur sont désormais supportés</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les évènement de souris ont aussi été ajoutés sur <em>iPadOS</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Sur <em>iOS</em> et <em>iPadOS</em>, la méthode historique <code>document.execCommand()</code> accepte désormais la valeur <code>&quot;paste&quot;</code> qui permet comme sont nom l'indique de coller le contenu du presse-papier</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le mode sombre a été ajouté et est détectable avec les <em>media queries</em> appropriées</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le module <em>CSS Shadow Parts</em> est désormais supporté et permet de réaliser des composants <em>CSS</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'unité de longueur <code>q</code> (le quart de millimètre, très utilisé au Japon) a été ajoutée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>font-family</code> accepte les nouvelles valeurs système <code>ui-monospace</code>, <code>ui-rounded</code>, <code>ui-serif</code> et <code>ui-sans-serif</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>line-break</code> accepte la nouvelle valeur <code>anywhere</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La nouvelle <em>media query</em> <code>dynamic-range</code> a été ajoutée et permet de tester le support de <em>HDR</em> sur les différents appareils</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>WebDriver</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API est désormais supportée sous <em>iOS</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://webkit.org/blog/9674/new-webkit-features-in-safari-13/\">https://webkit.org/blog/9674/new-webkit-features-in-safari-13/</a> et <a href=\"https://webkit.org/blog/10247/new-webkit-features-in-safari-13-1/\">https://webkit.org/blog/10247/new-webkit-features-in-safari-13-1/</a> et je vous rappelle que si vous n'avez pas d'appareil <em>Apple</em> et que vous êtes sous <em>Linux</em> (plus exactement sous une distribution intégrant <em>Gnome</em>, comme <em>Ubuntu</em>) vous pouvez quand même tester ces fonctionnalités en installant <em>Gnome Web</em> (encore appelé <em>Epiphany</em>) qui est basé sur <em>Webkit</em>, comme <em>Safari</em></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-43/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 42",
			"summary": "Ajout de import.meta à JavaScript, futur des CSS, retard dans la sortie des prochaines versions de Chrome et statut actuel de TLS au sein de la plateforme web",
			"date_published": "2020-04-02",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/42-2020-04-02/",
			"id": "web-academy-news-no-42",
			"image": "./web-academy-news-no-42/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/42-2020-04-02/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Cette semaine se « réunissait » à nouveau le <em>TC39</em> pour spécifier <em>JavaScript</em> et pour la toute première fois complètement à distance ! on notera l'addition suivante :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>La proposition <code>import.meta</code> a été standardisée en atteignant le stage 4 du processus de standardisation du <em>TC39</em> ; dans tous les cas, cet objet un peu spécial, disponible uniquement dans les modules, était déjà supporté depuis quelques temps par <em>Node.js</em>, <em>Deno</em> et l'ensemble des navigateurs ; les plus attentifs auront noté l'utilisation d'une notation étrange, puisqu'<code>import</code> est un mot-clé du langage (mais ce n'est pas la première fois en <em>JS</em>, il y avait déjà <code>new.target</code> dans ce genre-là avant !) ; mais à quoi sert cet objet ? la spécification <em>ECMAScript</em> le définit (quasiment) comme un objet vide, mais les spécification de langages hôtes peuvent lui définir des propriétés supplémentaires ; c'est le cas de <em>HTML</em> qui définit <code>import.meta.url</code> qui donne l'<em>URL</em> du module courant (c'est en quelque sorte l'équivalent de <code>__filename</code> des modules <em>CommonJS</em> de <em>Node.js</em>) ; <em>Deno</em> lui ajoute aussi une propriété <code>import.meta.main</code> qui indique si le module est le point d'entrée du programme ; pour plus d'informations, consultez la proposition <a href=\"https://github.com/tc39/proposal-import-meta\">https://github.com/tc39/proposal-import-meta</a> et la documentation <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import.meta\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import.meta</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Bert Bos, ancien éditeur de la spécification <em>css</em>, s'est prononcé sur le nommage des prochaines versions du langage ; d'un point de vue <em>marketing</em>, <em>CSS4</em> sonnerait bien, mais n'aurait en fait pas trop de sens puisque <em>CSS3</em> est un standard évolutif et donc en lui-même plus versionné (ses modules le sont bien par contre), tout comme <em>HTML</em> ; alors que les avis divergent encore au sein du <em>CSSWG</em> quant à sa responsabilité de définir des versions du langage, un groupe communautaire <em>W3C</em> s'est formé pour tenter de définir <em>CSS4</em> ; lisez le billet de blog : <a href=\"https://www.w3.org/blog/2020/03/css-x/\">https://www.w3.org/blog/2020/03/css-x/</a></p>\n\t\t</li>\n\t\t<li>\n\t\t\t<p><em>Google</em> avait annoncé le 18 mars, que les mises à jour majeures de <em>Chrome</em> était stoppée jusqu'à nouvel ordre, repoussant ainsi la sortie de <em>Chrome 81</em> initialement prévue le jour-même; le 26 mars, la date du 7 avril a été donnée pour <em>Chrome 81</em> et la version <em>82</em> a été annulée ; dans les prochaines semaines, ce sont donc les versions <em>81</em> puis <em>83</em> qui seront déployées ; par ailleurs, les autres navigateurs basés sur <em>Chromium</em> semblent se conformer à la décision de <em>Google</em> ; l'annonce en détails : <a href=\"https://chromereleases.googleblog.com/2020/03/chrome-and-chrome-os-release-updates.html\">https://chromereleases.googleblog.com/2020/03/chrome-and-chrome-os-release-updates.html</a></p>\n\t\t</li>\n\t\t<li>\n\t\t\t<p><em>Chrome 81</em> a donc été repoussé, et c'est donc le retrait de <em>TLS 1.0</em> et de <em>TLS 1.1</em> au profit de <em>TLS 1.2</em> qui a été repoussé également ; auparavant, <em>Mozilla</em> avait pris la même décision en annulant leur retrait de <em>Firefox 74</em> sorti le 10 mars ; la raison évoquée est de ne pas bloquer l'accès aux sites gouvernementaux et à la plateforme de visio-conférence <em>Jitsi</em> qui s'avèrent être des ressources critiques ces temps-ci ; voici la note de <em>Mozilla</em> en question : <a href=\"https://www.mozilla.org/en-US/firefox/74.0/releasenotes/#note-788289\">https://www.mozilla.org/en-US/firefox/74.0/releasenotes/#note-788289</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-42/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 41",
			"summary": "Absorption de npm par GitHub",
			"date_published": "2020-03-16",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/41-2020-03-16/",
			"id": "web-academy-news-no-41",
			"image": "./web-academy-news-no-41/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/41-2020-03-16/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Depuis quelques années déjà, <em>npm</em>, la société qui gère le principal gestionnaire de paquets éponyme inclus dans <em>Node.js</em> ainsi que le principal registre de paquets, faisait parler d'elle plus en mal qu'en bien : changement de gouvernance, démissions, licenciements... à tel point qu'une bonne partie de la communauté s'était mise à appeler à son rachat par des entreprises au but... moins lucratif, telles que <em>Mozilla</em> ; de son côté, <em>GitHub</em> a plus récemment lancé son propre registre de paquets multi-langages, y compris compatible avec le gestionnaire de paquets <em>npm</em> ; aujourd'hui, <em>npm</em> annonce finalement son rachat par <em>GitHub</em>, son concurrent en quelque sorte ; c'est donc bien <em>Microsoft</em> qui joue une nouvelle fois la carte de l'ouverture à l'<em>open source</em> ; voici l'annonce de <em>npm</em> : <a href=\"https://blog.npmjs.org/post/612764866888007680/next-phase-montage\">https://blog.npmjs.org/post/612764866888007680/next-phase-montage</a> et celle de <em>GitHub</em> : <a href=\"https://github.blog/2020-03-16-npm-is-joining-github/\">https://github.blog/2020-03-16-npm-is-joining-github/</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-41/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 40",
			"summary": "Rétrospective sur JavaScript par Allen Wirfs-Brock lors de la conférence HOPL-IV",
			"date_published": "2020-03-14",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/40-2020-03-14/",
			"id": "web-academy-news-no-40",
			"image": "./web-academy-news-no-40/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/40-2020-03-14/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Allen Wirfs-Brock, éditeur de <em>ECMAScript 6 / 2015</em>, avec la participation de Brendan Eich, le créateur de <em>JavaScript</em> lui-même, a publié la première version de <em>JavaScript: The First 20 Years</em> son papier pour <em>HOPL-IV</em>, la tant attendue 4e conférence sur l'histoire des langages de programmation prévue en juin 2020 (rappelons que les éditions précédentes datent de 1978, 1993 et 2007) ; dans ce document de 190 pages, il retrace la naissance, l'évolution de <em>JavaScript</em> :js dans les navigateurs ainsi que le travail de spécification du langage au <em>TC39</em>, et en particulier l'échec de <em>ECMAScript 4</em> avant l'essor qu'a connu <em>Harmony</em> ; voici le lien vers la version pré-imprimée du papier en question : <a href=\"https://zenodo.org/record/3707008\">https://zenodo.org/record/3707008</a> ; si vous voulez un avant-goût, vous pouvez lire le <em>making of</em> ici : <a href=\"http://www.wirfs-brock.com/allen/posts/866\">http://www.wirfs-brock.com/allen/posts/866</a> ou pour commencer l'introduction ici : <a href=\"http://www.wirfs-brock.com/allen/posts/855\">http://www.wirfs-brock.com/allen/posts/855</a> ; et si vous souhaitez plus d'informations sur la conférence elle-même (car <em>JavaScript</em> ne sera pas le seul langage abordé !), voici le lien vers le site officiel : <a href=\"https://hopl4.sigplan.org/\">https://hopl4.sigplan.org/</a> ; bonne lecture !</p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-40/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 39",
			"summary": "Sortie de Firefox 74",
			"date_published": "2020-03-11",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/39-2020-03-11/",
			"id": "web-academy-news-no-39",
			"image": "./web-academy-news-no-39/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/39-2020-03-11/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p><em>Firefox 74</em> est sorti hier et apporte les nouveautés suivantes :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>HTTP</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em>TLS 1.0</em> et <em>TLS 1.1</em> sont désormais désactivés par défaut (au profit des nouvelles version <em>TLS 1.2</em> et <em>TLS 1.3</em>), dans le cadre d'un effort commun des différents navigateurs</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em>CORP</em> et <em>FP</em> sont désormais supportés via l'en-tête <code>Cross-Origin-Resource-Policy</code> et un sous-ensemble de valeurs de l'en-tête <code>Feature-Policy</code> respectivement</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>HTML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'attribut <code>allow=&quot;&quot;</code> et la propriété <code>allow</code> des éléments <code>&lt;iframe&gt;&lt;/iframe&gt;</code> sont désormais supportés et permettent de contrôler finement les permissions d'une page embarquée ; à noter que la géolocalisation, le plein-écran, l'accès à la caméra et au micro et l'enregistrement de l'écran depuis une page embarquée d'une autre origine sont désormais désactivés par défaut</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>text-underline-position</code>, qui permet de spécifier où dessiner la ligne de soulignage, a été implémentée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les propriétés <code>text-underline-offset</code> et <code>text-decoration-thickness</code> acceptent désormais des pourcentages (relatifs à une valeur de <code>1em</code> de la fonte)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>outline-style</code> accepte désormais la valeur <code>auto</code>, qui correspond au style d'<em>outline</em> natif du navigateur ou bien du système ; dans le futur, elle pourrait devenir la nouvelle valeur initiale de la propriété</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les propriétés préfixées <code>-moz-columns</code>, <code>-moz-column-count</code>, <code>-moz-column-fill</code>, <code>-moz-column-gap</code>, <code>-moz-column-rule</code>, <code>-moz-column-rule-color</code>, <code>-moz-column-rule-style</code>, <code>-moz-column-rule-width</code>, <code>-moz-column-span</code> et <code>-moz-column-width</code>, non nécessaires pour la rétro-compatibilité, ont été retirées car leur versions non préfixées ont terminé d'être implémentées dans <em>Firefox 71</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>À l'instar de <em>Chrome 80</em> le mois dernier, <em>Firefox 74</em> supporte désormais les opérateurs de chaînage optionnel <code>?.</code>, <code>?.[]</code> et <code>?.()</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les fonctions de décompilation <code>Object.prototype.toSource()</code> et <code>uneval()</code>, qui datent de l'époque de <em>Netscape</em>, ont pu être retirées</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La méthode <code>IDBTransaction.prototype.commit()</code> a été ajoutée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'évènement <code>languagechange</code> est désormais supporté dans les <em>Workers</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'objet <code>TextMetrics</code> retourné par la méthode <code>CanvasRenderingContext2D.prototype.measureText()</code> dispose désormais des nouvelles propriétés <code>actualBoundingBoxAscent</code>, <code>actualBoundingBoxDescent</code>, <code>actualBoundingBoxLeft</code> et <code>actualBoundingBoxRight</code> et non plus seulement <code>width</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Au niveau de la gestion des fichiers, les méthodes <code>HTMLCanvasElement.prototype.mozGetAsFile</code> , <code>IDBDatabase.prototype.mozCreateFileHandle()</code> et <code>IDBMutableFile.prototype.getFile()</code> ont été retirées</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>isReload</code> des évènements de type <code>FetchEvent</code> a été retirée, conformément à la dernière version de la spécification</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La méthode <code>document.createEvent()</code> ne permet plus de créer les évènements de types non-standards <code>KeyEvents</code>, <code>MouseScrollEvents</code>, <code>ScrollAreaEvent</code> et <code>TimeEvent</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://hacks.mozilla.org/2020/03/security-means-more-with-firefox-74-2/,\">https://hacks.mozilla.org/2020/03/security-means-more-with-firefox-74-2/,</a> <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/74\">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/74</a> et <a href=\"https://www.fxsitecompat.dev/en-CA/versions/74/\">https://www.fxsitecompat.dev/en-CA/versions/74/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-39/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 38",
			"summary": "Sortie de Firefox 73",
			"date_published": "2020-02-22",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/38-2020-02-22/",
			"id": "web-academy-news-no-38",
			"image": "./web-academy-news-no-38/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/38-2020-02-22/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>La semaine dernière est sorti <em>Firefox 73</em> ; rapide tour des nouveautés :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les propriétés logiques <code>overscroll-behavior-block</code> et <code>overscroll-behavior-inline</code>sont désormais suportées</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les propriétés <code>letter-spacing</code> et <code>word-spacing</code> ne fonctionnent plus seulement en <em>HTML</em> mais aussi en <em>SVG</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La méthode <code>Intl.DateTimeFormat.prototype.formatToParts()</code> supporte désormais les options <code>relatedYear</code> et <code>yearName</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>MathML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'élément <code>&lt;mfenced&gt;&lt;/mfenced&gt;</code> a été retiré</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>WebDriver</em> (vous ai-je déjà parlé de <em>WebDriver</em> ? c'est une des APIs standardisées par le <em>W3C</em> qui permettent de contrôler un navigateur ; à noter que des alternatives émergentes sont <em>puppeteer</em> de <em>Google</em> et <em>playwright</em> de <em>Microsoft</em>) :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><code>WebDriver:Print</code> a été implémenté et permet d'imprimer un document dans un PDF ; il est donc par exemple possible de convertir automatiquement un document <em>HTML</em> en <em>PDF</em>, comme par exemple les cours de la <em>WebAcademy</em> ! (jusqu'à maintenant je devais le faire à la main)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://hacks.mozilla.org/2020/02/firefox-73-is-upon-us/,\">https://hacks.mozilla.org/2020/02/firefox-73-is-upon-us/,</a> <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/73\">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/73</a> et <a href=\"https://www.fxsitecompat.dev/en-CA/versions/73/\">https://www.fxsitecompat.dev/en-CA/versions/73/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-38/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 37",
			"summary": "Sortie de Chrome 80, ajout de deux fonctionnalités à JavaScript et rétrospective sur CSS par Evelyn Woods",
			"date_published": "2020-02-09",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/37-2020-02-09/",
			"id": "web-academy-news-no-37",
			"image": "./web-academy-news-no-37/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/37-2020-02-09/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Mardi dernier est sorti <em>Chrome 80</em> (et vendredi dernier <em>Edge 80</em>, qui suit le même cycle de développement), version symbolique pour son moteur <em>JavaScript</em> <em>V8</em> qui atteint sa version... <em>v8</em> ; il s'agit pour le navigateur d'une version qui ne brille pas que par l'ajout de nouvelles fonctionnalités, mais aussi par les nombreux retraits, notamment du côté des <em>web components</em>, et c'est somme toute une bonne nouvelle !</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développements :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La console supporte désormais les rédéclarations d'identifiants avec <code>let</code> et <code>class</code>, ce qui facilite énormément la réexécution du code précédent ; attention, il s'agit bien là d'une liberté prise vis-à-vis du standard <em>ECMAScript</em> ; ce n'est en aucun cas possible dans vos scripts !</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Dans l'onglet <em>Sources</em>, il est désormais possible de déboguer les sources des programmes compilés en <em>WebAssembly</em>, et non plus seulement les instructions machine <em>WebAssembly</em> elles-mêmes, grâce au standard <em>DWARF</em> ; autrement dit, si vous écrivez votre code en <em>C</em> par exemple, vous pourrez déboguer le code <em>C</em> lui-même</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>HTML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La version <em>v0</em> des <em>custom elements</em> et du <em>shadow DOM</em> n'est désormais plus supportée, la version v1 étant désormais approuvée et supportée par tous les navigateurs majeurs</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les imports <em>HTML</em> ont également été retirés ; la voie actuellement explorée par <em>Microsoft</em> pour permettre ce genre de fonctionnalité est de passer par des modules <em>HTML</em> importables en tant que modules <em>ECMAScript</em>, mais pour ça il faudra d'abord très certainement une standardisation auprès du <em>TC39</em> des attributs de modules <em>ECMAScript</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La recherche programmatique dans une page d'un terme particulier n'est plus une peine, grâce à la nouvelle fonctionnalité <em>Scroll To Text Fragment</em> ; par exemple si vous cherchez le terme <code>documents</code> dans la page <code>https://example.org/</code>, vous pouvez vous rendre à l'adresse <code>https://example.org/#:~:text=documents</code> ; la syntaxe, plutôt étrange au premier abord, résulte en fait d'une étude minutieuse des options disponibles préservant la rétro-compatibilité</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La valeur <code>anywhere</code> des propriétés <code>line-break</code> et <code>overflow-wrap</code> est désormais supportée et peut constituer une bonne alternative aux valeurs <code>break-all</code> et <code>break-word</code> de la propriété <code>word-break</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'opérateur de fusion nulle <code>??</code> est désormais supporté, et fonctionne comme l'opérateur <code>||</code>, en n'évaluant l'opérande droit que si l'opérande gauche est <code>null</code> ou <code>undefined</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les opérateurs <code>?.</code>, <code>?.[]</code> et <code>?.()</code>, qui permettent de chaîner optionnellement des accès à des propriétés ou bien des appels de fonctions, ont aussi été ajoutés</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les <em>Workers</em> acceptent désormais un argument optionnel <code>{type: &quot;module&quot;}</code> permettant de les interpréter comme des modules <em>ECMAScript</em>, ce qui permet donc d'avoir recours à l'instruction <code>import</code> ! les <em>Service Workers</em> ne sont pas encore concernés par cet ajout</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les constructeurs <code>CompressionStream</code> et <code>DecompressionStream</code> permettent désormais, comme leurs noms l'indiquent, de faire de la compression et décompression (<em>gzip</em> et <em>deflate</em> pour le moment)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>SVG</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em>Chrome</em> supporte enfin les <em>favicons</em> <em>SVG</em> (vous savez, l'icône qui apparaît dans l'onglet du navigateur) ; ça ouvre de nouvelles possibilités dans tous les navigateurs : qualité conservée quelque soit la résolution de l'écran, mais aussi icône adaptative en fonction des <em>media queries</em> <em>CSS</em> (par exemple une icône différente selon que le thème du navigateur est clair ou sombre)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developers.google.com/web/updates/2020/02/nic80,\">https://developers.google.com/web/updates/2020/02/nic80,</a> <a href=\"https://developers.google.com/web/updates/2019/12/devtools\">https://developers.google.com/web/updates/2019/12/devtools</a> et <a href=\"https://v8.dev/blog/v8-release-80\">https://v8.dev/blog/v8-release-80</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>De mardi à jeudi dernier se réunissait à nouveau le <em>TC39</em> pour spécifier <em>JavaScript</em> ; lors de la réunion, deux propositions relatives à l'internationalisation ont été standardisées :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Le constructeur <code>Intl.Locale</code> permet d'analyser une chaîne de caractères spécifiant une locale <em>Unicode</em> ; consultez la proposition <a href=\"https://github.com/tc39/proposal-intl-locale\">https://github.com/tc39/proposal-intl-locale</a> ou bien la documentation <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Locale\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Locale</a></p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Le constructeur <code>Intl.NumberFormat</code> permet de manipuler des formats de nombres avec des unités physiques ou des devises, éventuellement en notation scientifique et en spécifiant des règles de signes ; consultez la proposition <a href=\"https://github.com/tc39/proposal-unified-intl-numberformat\">https://github.com/tc39/proposal-unified-intl-numberformat</a> ou bien la documentation <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Evelyn Woods nous raconte dans un article de blog l'évolution de la mise en page <em>web</em> et des <em>CSS</em> durant ces 30 dernières années du point de vue des développeurs ; c'est un peu long, mais c'est à lire absolument ! et sans oublier les premiers commentaires qui sont assez incroyables ! c'est par ici : <a href=\"https://eev.ee/blog/2020/02/01/old-css-new-css/\">https://eev.ee/blog/2020/02/01/old-css-new-css/</a> !</p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-37/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 36",
			"summary": "Sortie de Edge 79",
			"date_published": "2020-01-19",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/36-2020-01-19/",
			"id": "web-academy-news-no-36",
			"image": "./web-academy-news-no-36/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/36-2020-01-19/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>13 mois après avoir été annoncée par <em>Microsoft</em>, la nouvelle version d'<em>Edge</em> basée sur <em>Chromium 79</em> est sortie mercredi dernier ; après l'arrêt en 2013 de <em>Presto</em>, l'ancien moteur de rendu derrière <em>Opera</em>, c'est donc au tour de <em>EdgeHTML</em> de s'éteindre ; l'ancien moteur <em>JavaScript</em> <em>Chakra</em>, bien que toujours en développement, n'est pas non plus dans cette nouvelle mouture du navigateur ; si d'un côté il s'agit d'une nouvelle perte cruciale pour la diversité du <em>web</em>, d'un autre côté cela apporte un élan de modernisation dans le paysage des navigateurs ; petit tour des nouveautés qui sont donc très nombreuses :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>La nouvelle version, qui ne vient apparemment pas avec la mise à jour de <em>Windows 10</em>, est disponible au téléchargement pour <em>Windows 7+</em> (d'ailleurs <em>Windows 7</em> ne reçoit plus de mises à jour de sécurité depuis mardi), pour <em>Mac</em> et il se dit que ça ne saurait tarder pour <em>Linux</em> ; rappelons que jusque là, le dernier navigateur <em>Microsoft</em> à avoir été disponible pour <em>Mac</em> était <em>Internet Explorer 5</em> de 2000 à 2006 ; c'étaient alors encore les débuts d'<em>HTML 4</em>, de <em>CSS 2</em> et de <em>ECMAScript 3</em> ; <em>Firefox</em>, <em>Safari</em> et <em>Chrome</em> n'existaient pas...</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>HTTP</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support de <em>CSP 3</em>, <em>HTTP Client Hints</em>, <em>Network Error Logging</em>, <em>Origin-Signed HTTP Exchanges</em>, <em>Preconnect Resource Hints</em>, <em>Public Key Pinning Extension for HTTP</em>, <em>SPDY/3</em>, <em>TLS 1.3</em>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>HTML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des éléments <code>&lt;details&gt;&lt;/details&gt;</code>, <code>&lt;dialog&gt;&lt;/dialog&gt;</code>, <code>&lt;summary&gt;&lt;/summary&gt;</code>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des attributs <code>accept=&quot;&quot;</code>, <code>inputmode=&quot;&quot;</code>, <code>preload=&quot;&quot;</code>, <code>reversed=&quot;&quot;</code>, <code>srcdoc=&quot;&quot;</code>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des images <em>APNG</em>, des <em>Custom Elements</em>, du <em>Shadow DOM</em>, du manifeste <em>Web App</em>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des itérateurs et générateurs asynchrones, de la boucle <code>for await (... of ...) {}</code>), de l'opérateur <code>...</code> pour les objets, de <code>Array.prototype.flat()</code> et <code>Array.prototype.flatMap()</code>, des <code>BigInt</code>s, de l'import dynamique <code>import()</code>, de <em>Shared Memory and Atomics</em>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support de <code>requestIdleCallback()</code>, <code>HTMLCanvasElement.prototype.toBlob()</code>, <code>SVGElement.prototype.dataset</code>, de <code>EventSource</code>, de <code>TextDecoder</code>, de <code>TextEncoder</code>, du <em>drag and wrop</em> de dossiers, du cinquième paramètre pour l'évènement <code>&quot;error&quot;</code> dans les <em>Workers</em>, des <em>Shared Web Workers</em>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des APIs <em>Accelerometer</em>, <em>Background Sync</em>, <em>Battery Status</em>, <em>CSS Font Loading</em>, <em>CSSOM View smooth scroll</em>, <em>CSS Paint</em>, <em>File Writer</em>, <em>Geometry Interfaces</em>, <em>Gyroscope</em>, <em>IndexedDB Arrays and MultiEntry</em>, <em>Mangetometer</em>, <em>Media Capture</em>, <em>Media Fragments</em>, <em>Media Recorder</em>, <em>Media Session</em>, <em>Orientation Sensor</em>, <em>Payment Handler</em>, <em>Performance Observer</em>, <em>Picture in Picture</em>, <em>Quota Management</em>, <em>Resize Observer</em>, <em>RTC Data Channels</em>, <em>Screen Orientation</em>, <em>Speech Recognition</em>, <em>SVG+SMIL Animation</em>, <em>Vibration</em>, <em>Web Animations</em>, <em>Web Bluetooth</em>, <em>Web Crypto</em>, <em>Web MIDI</em>, <em>Web Share</em>, <em>Web Speech</em>, <em>Web SQL Database</em>, <em>Web USB</em>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des propriétés <code>all</code>, <code>background-blend-mode</code>, <code>caret-color</code>, <code>contain</code>, <code>image-rendering</code>, <code>font-variant-*</code>, <code>mix-blend-mode</code>, <code>resize</code>, <code>object-fit</code> et <code>object-position</code>, <code>offset-*</code>, <code>scroll-margin-*</code>, <code>scroll-padding-*</code>, <code>scroll-snap-*</code>, <code>shape-*</code> <code>tab-size</code>, <code>text-orientation</code>, <code>will-change</code>, <code>-webkit-text-stroke</code>, de la plupart des propriétés logiques...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support du sélecteur <code>[ i]</code>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des pseudo-classes <code>:default</code>, <code>:focus-within</code>, <code>:placeholder-shown</code>, <code>:scope</code>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des pseudo-éléments <code>::placeholder</code>, <code>::-webkit-scrollbar</code>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des valeurs <code>contents</code>, <code>flow-root</code>, <code>min-content</code>, <code>max-content</code>, <code>pan-down</code>, <code>pan-left</code>, <code>pan-right</code>, <code>pan-up</code>, <code>system-ui</code>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des fonctions <code>clamp()</code>, <code>conic-gradient()</code>, <code>env()</code>, <code>filter(url())</code>, <code>image-set()</code>, <code>max()</code>, <code>min()</code>, <code>repeating-conic-gradient()</code>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des couleurs <code>#rgba</code>, <code>#rrggbbaa</code>..</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support des <em>media queries</em> <code>prefers-color-scheme</code>, <code>prefers-reduced-motion</code>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>WebGL</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ajout du support de <em>WebGL 2.0</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>La plupart des informations ci-dessus proviennent d'un croisement d'informations entre <a href=\"https://developer.microsoft.com/en-us/microsoft-edge/status/\">https://developer.microsoft.com/en-us/microsoft-edge/status/</a> et <a href=\"https://caniuse.com/#compare=edge+18,edge+79\">https://caniuse.com/#compare=edge+18,edge+79</a> et sont sans doute pour certaines inexactes, car je n'ai pas trouvé d'annonce officielle des changements entre <em>Edge 18</em> et <em>Edge 79</em> (notez le saut de version)</p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-36/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 35",
			"summary": "Sortie de Firefox 72 et statut actuel des décimaux au sein de QuickJS",
			"date_published": "2020-01-07",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/35-2020-01-07/",
			"id": "web-academy-news-no-35",
			"image": "./web-academy-news-no-35/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/35-2020-01-07/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p><em>Firefox</em> est sorti en version <em>72</em> aujourd'hui :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Les cycles de développement passent de 6 à 8 semaines à 4 semaines ; les versions sortiront donc plus souvent</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développement :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le bloc-notes <em>JavaScript</em> a été retiré ; la console multiligne constitue un bon remplacement si vous aviez l'habitude d'utiliser cette fonctionnalité</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté d'<em>HTTP</em> (c'est rare !) :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le type <code>image/webp</code>, initialement enlevé de l'en-tête <code>Accept</code> des requêtes dans <em>Firefox 66</em>, a été réintroduit pour des raisons d'interopérabilité avec <em>Chrome</em> ; la valeur redevient donc <code>text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'opérateur <em>Nullish coalescing Operator</em> (<code>??</code>), dont je vous parlais il y a deux mois, a été introduit</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>À l'instar de <em>Chrome</em> il y a quatre mois, les formulaires <code>&lt;form&gt;&lt;/form&gt;</code> émettent désormais un évènement <code>&quot;formdata&quot;</code> lors de leur soumission</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les propriétés <code>rotate</code>, <code>scale</code> et <code>translate</code>, désormais stables, sont désormais exposées et permettent de spécifier indépendamment la rotation, l'échelle et la translation d'un élément, sans avoir systématiquement recours à la propriété <code>transform</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les propriétés <code>offset</code>, <code>offset-anchor</code>, <code>offset-distance</code>, <code>offset-path</code> et <code>offset-rotate</code> (anciennement désignées <code>motion-*</code>) ont été ajoutées et permettent de définir la trajectoire exacte d'un élément ; le cas d'utilisation récurrent est l'animation des éléments mouvants</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'attribut <code>part=&quot;&quot;</code> et le pseudo-élément <code>::part()</code> sont désormais supportés et permettent d'appliquer des styles spécifiques à des descendants donnés des <em>shadow hosts</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://hacks.mozilla.org/2020/01/firefox-72-our-first-song-of-2020/,\">https://hacks.mozilla.org/2020/01/firefox-72-our-first-song-of-2020/,</a> <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/72\">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/72</a> et <a href=\"https://www.fxsitecompat.dev/en-CA/versions/72/\">https://www.fxsitecompat.dev/en-CA/versions/72/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p><em>QuickJS</em>, le moteur <em>JavaScript</em> de Fabrice Bellard (<a href=\"https://bellard.org/quickjs/\">https://bellard.org/quickjs/</a>) supporte d'ores et déjà les décimaux <code>BigDecimal</code>, avant même que le travail de spécification ait véritablement commencé de la part du <em>TC39</em> ! la proposition initiale (<a href=\"https://github.com/littledan/proposal-bigdecimal\">https://github.com/littledan/proposal-bigdecimal</a>) devrait être présentée le mois prochain (mais on en a encore pour quelques années avant de voir arriver ça dans les navigateurs)</p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-35/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 34",
			"summary": "Sortie de Chrome 79",
			"date_published": "2019-12-13",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/34-2019-12-13/",
			"id": "web-academy-news-no-34",
			"image": "./web-academy-news-no-34/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/34-2019-12-13/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p><em>Chrome</em> est sorti en version <em>79</em> mardi et apporte les nouveautés suivantes :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développement :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La valeur des <em>cookies</em> peut désormais être inspectée et il est possible de vérifier si un <em>cookie</em> a été envoyé, stocké ou bloqué</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les <em>media queries</em> <code>prefers-color-scheme</code> et <code>prefers-reduced-motion</code> peuvent désormais être simulées ; vous pouvez donc tester plus facilement les directives de thème clair, de thème sombre et de réduction d'animation sans changer de navigateur ou d'ordinateur</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>HTML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'attribut <code>autofocus=&quot;&quot;</code>, qui permet de donner le <em>focus</em> à un élément au chargement de la page, devient un attribut universel et ne se limite plus seulement aux contrôles de formulaires (ma seule ligne de <em>JS</em> sur le site de <em>TGD</em> devient donc inutile dans <em>Chrome</em> !)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>De la même manière que la version <em>71</em> de <em>Firefox</em> sortie la semaine dernière, <em>Chrome</em> calcule désormais le ratio d'aspect des images à partir des attributs <code>width=&quot;&quot;</code> et <code>height=&quot;&quot;</code> avant qu'elles ne chargent, ce qui prévient les sauts de l'ascenseur lors du chargement effectif de l'image ; c'est bon de voir une telle coordination entre navigateurs de temps en temps ! on n'attend plus que l'ajout de la propriété <code>aspect-ratio</code> désormais</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'attribut universel <code>rendersubtree=&quot;&quot;</code> a été ajouté et permet selon sa valeur (<code>invisible</code> ou <code>activatable</code>) d'indiquer au navigateur que le rendu du contenu de l'élément peut être différé (j'ai personnellement un gros doute sur la pertinence d'un tel attribut, mais bon...)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API <em>WebXR</em> a été exposée et permet d'accéder à de nouvelles fonctionnalités en lien avec la réalité augmentée et la réalité virtuelle ; en particulier les ancres, mais aussi les appareils et les manettes dédiées à de domaines sont supportés</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les fonctions <code>min()</code>, <code>max()</code> et <code>clamp()</code> qui permettent de contenir une valeur dans un intervalle ont été ajoutées ; dans le futur, on n'aura peut-être plus besoin d'avoir recours à des <em>media queries</em> dédiées ou aux propriétés <code>min-width</code>, <code>max-width</code>, <code>min-height</code>, <code>max-height</code> pour faire du <em>responsive design</em> (sachant que certaines techniques permettaient déjà de s'en passer)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété quasi-standard <code>-webkit-appearance</code> a été modifiée pour ne fonctionner que sur un nombre restreint d'éléments <em>HTML</em> afin de réduire les risques de futurs problèmes de rétro-compatibilité ; on se rapproche un peu plus de l'ajout de la propriété standard <code>appearance</code> dont <code>-webkit-appearance</code> devrait progressivement devenir un alias !</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>font-optical-sizing</code>, qui permet de contrôler l'activation des optimisations de l'interpolation du rendu des fontes, a été ajoutée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>list-style-type</code>, qui correspond à la manière historique de définir l'apparence des puces d'une liste (en attendant le pseudo-élément <code>::marker</code>), accepte désormais des chaînes de caractères quelconques et non plus seulement des mots-clés prédéfinis</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>C'est tout, mais c'est sans doute parce que les ingénieurs de <em>Chrome</em> travaillent sur une nouvelle variante de leur moteur de rendu <em>Blink</em> : <em>LayoutNG</em> (à l'instar des ingénieurs de <em>Firefox</em> qui travaillent sur <em>Gecko</em>, <em>WebRender</em> et <em>GeckoView</em>) ; celle-ci devrait permettre le support du pseudo-élément <code>::marker</code> par exemple !</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developers.google.com/web/updates/2019/12/nic79,\">https://developers.google.com/web/updates/2019/12/nic79,</a> <a href=\"https://developers.google.com/web/updates/2019/10/devtools\">https://developers.google.com/web/updates/2019/10/devtools</a> et <a href=\"https://v8.dev/blog/v8-release-79\">https://v8.dev/blog/v8-release-79</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-34/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 33",
			"summary": "Promotion de WebAssembly en tant que standard du web",
			"date_published": "2019-12-08",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/33-2019-12-08/",
			"id": "web-academy-news-no-33",
			"image": "./web-academy-news-no-33/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/33-2019-12-08/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<p>Un truc que j'avais laissé passer :</p>\n\t<ul>\n\t\t<li>\n\t\t\t<p><em>WebAssembly</em>, le langage d'assemblage pour le <em>web</em> a été officiellement promu &quot;Recommandation W3C&quot;, autrement dit standard du <em>web</em> : consultez l'annonce <a href=\"https://www.w3.org/2019/12/pressrelease-wasm-rec.html.en,\">https://www.w3.org/2019/12/pressrelease-wasm-rec.html.en,</a> et les trois composantes du standard en question <a href=\"https://www.w3.org/TR/wasm-core-1/,\">https://www.w3.org/TR/wasm-core-1/,</a> <a href=\"https://www.w3.org/TR/wasm-web-api-1/,\">https://www.w3.org/TR/wasm-web-api-1/,</a> <a href=\"https://www.w3.org/TR/wasm-js-api-1/\">https://www.w3.org/TR/wasm-js-api-1/</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-33/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 32",
			"summary": "Sortie de Firefox 71 et ajout de quatre fonctionnalités à JavaScript",
			"date_published": "2019-12-07",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/32-2019-12-07/",
			"id": "web-academy-news-no-32",
			"image": "./web-academy-news-no-32/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/32-2019-12-07/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<p>Les nouvelles de la semaine :</p>\n\t<ul>\n\t\t<li>\n\t\t\t<p><em>Firefox</em> est sorti mardi dernier en version <em>71</em> avec comme d'habitude pas mal de changements :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développement :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La console se dote d'un éditeur multi-ligne qui vous permet d'exécuter plus facilement un ensemble d'instructions <em>JavaScript</em> et éventuellement à partir d'un fichier</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les messages <em>Web Socket</em> ont désormais un onglet dédié pour les inspecter</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Parmi les autres changements, l'onglet &quot;Réseau&quot;&quot; possède désormais une barre de recherche, un simulateur de requêtes bloquées et l'onglet &quot;Débogueur&quot; permet quant à lui de visualiser les valeurs des variables à n'importe quelle ligne arrivent de placer un point d'arrêt lors d'un évènement</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'inspecteur de grille a été amélioré pour tenir des comptes des nouvelles capacités des grilles <em>CSS</em> (voir ci-dessous)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du coté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La méthode <code>Promise.allSettled()</code> a été ajoutée et permet d'attendre qu'un ensemble de promesses soit traité (<em>settled</em>), peut importe qu'elles soient accomplies ou rejetées</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les méthodes génériques statiques non-standard d'<code>Array</code> introduites en novembre 2005 dans <em>Firefox 1.5</em> ont enfin pu être retirées, malgré les problèmes de rétro-compatibilité que cela posait initialement ; voici la liste complète des méthodes supprimées : <code>Array.concat()</code>, <code>Array.every()</code>, <code>Array.filter()</code>, <code>Array.forEach()</code>, <code>Array.indexOf()</code>, <code>Array.lastIndexOf()</code>, <code>Array.map()</code>, <code>Array.pop()</code>, <code>Array.push()</code>, <code>Array.reduce()</code>, <code>Array.reduceRight()</code>, <code>Array.reverse</code>, <code>Array.shift()</code>, <code>Array.slice()</code>, <code>Array.some()</code>, <code>Array.sort()</code>, <code>Array.splice()</code> et <code>Array.unshift()</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les méthodes et propriétés non-standard de l'API <code>DataTransfer</code> (qui sert lorsque l'on fait du <em>Drag &amp; Drop</em>) ont été retirées également : <code>mozGetDataAt()</code>, <code>mozSetDataAt()</code>, <code>mozClearDataAt()</code> and <code>mozTypesAt()</code> et <code>mozItemCount</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le constructeur <code>StaticRange()</code> a été ajouté</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em>WebGL</em> supporte désormais les extensions <code>OVR_multiview2</code> et <code>OES_fbo_render_mipmap</code> (je ne sais pas ce que c'est)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API <em>Media Session</em> a été partiellement implémentée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Vous connaissiez <em>FlexBox</em> et <em>Grid</em> et ça ne vous suffisait pas ? dites bonjour à <code>subgrid</code>, la nouvelle valeur des propriétés <code>grid-template-columns</code> et <code>grid-template-rows</code> qui permet à une grille de réutiliser les colonnes et / ou les lignes de la grille parente ; avec cette valeur, un certain nombre de <em>designs</em> qui ne pouvait jusqu'à être réalisés qu'avec des tableaux (ouh c'est pas bien) ou avec du <em>JS</em> sont désormais réalisables facilement ! à mon avis, cette grâce à cette valeur que la mise en page en <em>CSS</em> va devenir réellement puissante (mais c'est uniquement dans <em>Firefox</em> actuellement)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em>Firefox</em> rattrape enfin son retard quant aux colonnes <em>CSS</em> en ajoutant la propriété <code>column-span</code> qui permet à un élément de s'étendre sur plusieurs colonnes comme les chapeaux ou les sous-titres dans les journaux par exemple</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>clip-path</code> (l'alternative moderne à la propriété <code>clip</code>) supporte enfin comme valeur la fonction <code>path()</code> qui permet de spécifier un chemin <em>SVG</em> quelconque pour rogner un élément</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Nouveauté qui peur sembler insignifiante mais qui pourtant devrait avoir de formidables conséquences pour les utilisateurs : les attributs <code>height=&quot;&quot;</code> et <code>width=&quot;&quot;</code> des éléments <code>&lt;img/&gt;</code> participent désormais au calcul de la propriété <code>aspect-ratio</code> (non exposée et interne à <em>Firefox</em> pour l'instant seulement, mais qui sera standardisée à terme) ; autrement dit, une image, même pas encore chargée, devrait respecter le ratio d'aspect spécifié et ne plus provoquer de sauts dans la page au moment effectif de son chargement ; il est donc désormais à nouveau recommandé de toujours spécifier les attributs <code>width=&quot;&quot;</code> et <code>height=&quot;&quot;</code> sur une image (et pas seulement les attributs <code>src=&quot;&quot;</code> et <code>alt=&quot;&quot;</code>)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>MathML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Il y avait bien longtemps que <em>MathML</em> n'avait pas reçu de modifications dans <em>Firefox</em>, mais avec l'implémentation en cours de <em>MathML</em> dans <em>Chrome</em> et la rédaction (en cours également) de la spécification qui devrait devenir <em>MathML 4</em>, tout ceci va changer !</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Pour commencer, le DOM des éléments <em>MathML</em> obtient désormais la même structure que <em>HTML</em> et <em>SVG</em> ; autrement dit la propriété <code>style</code> et les gestionnaires d'évènements sont désormais disponibles sur ces éléments par exemple !</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Ensuite, dans la perspective de les retirer prochainement, sont dépréciés : les attributs <code>align=&quot;&quot;</code> sur les éléments <code>&lt;munderover&gt;&lt;/munderover&gt;</code>, <code>&lt;munder&gt;&lt;/munder&gt;</code> et <code>&lt;mover&gt;&lt;/mover&gt;</code>, <code>bevelled=&quot;&quot;</code>, les attributs <code>denomalign=&quot;&quot;</code> et <code>numalign=&quot;&quot;</code> sur l'élément <code>&lt;mfrac&gt;&lt;/mfrac&gt;</code>, l'attribut <code>radical=&quot;&quot;</code> sur l'élément <code>&lt;menclose&gt;&lt;/menclose&gt;</code>, les attributs <code>subscriptshift=&quot;&quot;</code> et <code>superscriptshift=&quot;&quot;</code> sur les éléments <code>&lt;msubsup&gt;&lt;/msubsup&gt;</code>, <code>&lt;msub&gt;&lt;/msub&gt;</code> et <code>&lt;msup&gt;&lt;/msup&gt;</code>, l'élément <code>&lt;mfenced&gt;&lt;/mfenced&gt;</code> et les attributs <em>XLink</em> <code>xlink:actuate=&quot;&quot;, xlink:href=&quot;&quot;, xlink:show=&quot;&quot;</code> et <code>xlink:type=&quot;&quot;</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/71,\">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/71,</a> <a href=\"https://hacks.mozilla.org/2019/12/firefox-71-a-year-end-arrival/\">https://hacks.mozilla.org/2019/12/firefox-71-a-year-end-arrival/</a> et <a href=\"https://www.fxsitecompat.dev/en-CA/versions/71/\">https://www.fxsitecompat.dev/en-CA/versions/71/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>De mardi à jeudi se déroulait la réunion bimestrielle du <em>TC39</em> qui standardise <em>JavaScript</em> et comment souvent, un certain nombre de fonctionnalités sont venues rejoindre la onzième édition de la spécification du langage, <em>ES2020</em> :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>La proposition <em>Nullish coalescing Operator</em>, c'est-à-dire l'opérateur <code>??</code>, a été standardisée ; à l'instar des opérateurs <code>||</code> et <code>&amp;&amp;</code> qui travaillent sur <code>true</code> et <code>false</code>, ce nouvel opérateur permet de court-circuiter l'évaluation de l'opérande droit si l'opérande gauche n'est ni <code>null</code> ni <code>undefined</code> ; l'idée est de pouvoir donner une valeur par défaut à une expression : <code>const articleTitle = article.title ?? &quot;Pas de titre&quot;;</code> ; consultez la proposition <a href=\"https://github.com/tc39/proposal-nullish-coalescing\">https://github.com/tc39/proposal-nullish-coalescing</a> elle-même ou bien la documentation <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator</a></p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>La proposition <em>Optional Chaining</em> a également été standardisée ; elle apporte trois opérateurs : <code>?.</code>, <code>?.[]</code> et <code>?.()</code>, versions &quot;court-circuitantes&quot; (non, non, aucun néologisme) des opérateurs <code>.</code> (accès à une propriété), <code>[]</code> (accès à une propriété au nom calculé) et <code>()</code> (appel de fonction) ; autrement dit, si l'opérande gauche est <code>null</code> ou <code>undefined</code>, l'accès à la propriété ou bien l'appel de fonction n'est pas réalisé et l'expression retourne <code>undefined</code> (en gros, si on avait été en <em>Java</em>, on aurait pu dire : &quot;Le <em>NullPointerException</em> est mort, vive le <em>NullPointerException</em> !&quot;) consultez la proposition <a href=\"https://github.com/tc39/proposal-optional-chaining\">https://github.com/tc39/proposal-optional-chaining</a> ou bien la documentation <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining</a></p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Si vous connaissez bien <em>JavaScript</em> et <em>JSON</em>, alors vous savez que les objets sont des collections non-ordonnées de paires de clés et de valeurs (non-ordonnées, vous avez vu ?) ; en pratique ce n'est pas complètement le cas car lors du parcours d'un objet avec une boucle <code>for (... in ...) ...</code>, les navigateurs sont d'accord sur une partie de l'ordre d'énumération des clés ; eh bien la proposition <em>for-in mechanics</em> tout juste standardisée décrit et standardise désormais ce dénominateur commun de l'énumération avec une boucle <code>for (... in ...) ...</code> ; pour les développeurs ça ne change rien, à part apporter une bonne piqûre de rappel : ne vous reposez pas sur l'ordre d'énumération des clés d'un objet avec la boucle <code>for (... in ...) ...</code>, c'est globalement imprévisible ! consultez la proposition <a href=\"https://github.com/tc39/proposal-for-in-order\">https://github.com/tc39/proposal-for-in-order</a> ou bien la documentation <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in</a></p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Dernière nouveauté : l'API <code>Intl.RelativeTimeFormat</code> a été standardisée et permet, comme son nom l'indique, de formater des dates relativement au moment présent (&quot;il y a un jour&quot;, &quot;demain&quot;, &quot;le mois dernier&quot;, &quot;dans 2 minutes&quot;, &quot;maintenant&quot;...), le genre de truc qui serait super fastidieux à implémenter pour un développeur lambda, et ce surtout dans n'importe quelle locale (en gros dans n'importe langue) ; consultez la proposition <a href=\"https://github.com/tc39/proposal-intl-relative-time\">https://github.com/tc39/proposal-intl-relative-time</a> ou bien la documentation <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-32/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 31",
			"summary": "Saturation des adresses IPv4",
			"date_published": "2019-11-26",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/31-2019-11-26/",
			"id": "web-academy-news-no-31",
			"image": "./web-academy-news-no-31/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/31-2019-11-26/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>L'Europe, le Moyen-Orient et l'Asie centrale sont désormais à court d'IPv4 : <a href=\"https://www.ripe.net/publications/news/about-ripe-ncc-and-ripe/the-ripe-ncc-has-run-out-of-ipv4-addresses\">https://www.ripe.net/publications/news/about-ripe-ncc-and-ripe/the-ripe-ncc-has-run-out-of-ipv4-addresses</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-31/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 30",
			"summary": "Sortie de Node.js 13.2",
			"date_published": "2019-11-21",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/30-2019-11-21/",
			"id": "web-academy-news-no-30",
			"image": "./web-academy-news-no-30/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/30-2019-11-21/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p><em>Node.js 13.2</em> est sorti à l'instant ! vous le savez désormais, cette version permet pour la première fois d'utiliser les modules <em>ECMAScript</em> standard sans <em>flag</em> dans <em>Node.js</em> (néanmoins cela reste expérimental) ; je vous invite franchement à lire l'annonce officielle, car c'est le futur de <em>JavaScript</em> ! que dis-je ? le présent ! voici le lien : <a href=\"https://medium.com/@nodejs/announcing-core-node-js-support-for-ecmascript-modules-c5d6dc29b663\">https://medium.com/@nodejs/announcing-core-node-js-support-for-ecmascript-modules-c5d6dc29b663</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-30/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 29",
			"summary": "Migration de JQuery vers les modules JavaScript",
			"date_published": "2019-11-20",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/29-2019-11-20/",
			"id": "web-academy-news-no-29",
			"image": "./web-academy-news-no-29/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/29-2019-11-20/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Vous connaissez <em>JQuery</em> ? c'est bon là je ne parle pas d'un truc fantasmagorique ? eh bien, <em>JQuery</em> vient de migrer vers les modules <em>ECMAScript</em> standard : <a href=\"https://twitter.com/m_gol/status/1196893162859573250\">https://twitter.com/m_gol/status/1196893162859573250</a> ; maintenant vous pouvez faire directement <code>import $ from &quot;./jquery/src/jquery.js&quot;;</code> !</p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-29/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 28",
			"summary": "Statut des modules JavaScript au sein de Node.js",
			"date_published": "2019-11-13",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/28-2019-11-13/",
			"id": "web-academy-news-no-28",
			"image": "./web-academy-news-no-28/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/28-2019-11-13/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>C'est confirmé : les modules <em>ECMAScript</em>, supportés depuis mai 2018 dans tous les navigateurs (cf. <a href=\"https://caniuse.com/#feat=es6-module\">https://caniuse.com/#feat=es6-module</a> ), arrivent dans <em>Node.js 13.2</em> la semaine prochaine ! <a href=\"https://twitter.com/MylesBorins/status/1194375751774064647\">https://twitter.com/MylesBorins/status/1194375751774064647</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-28/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 27",
			"summary": "Futur des modules JavaScript au sein de Node.js",
			"date_published": "2019-10-31",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/27-2019-10-31/",
			"id": "web-academy-news-no-27",
			"image": "./web-academy-news-no-27/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/27-2019-10-31/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Youhou ! après 1 an et demi de travail, le groupe de travail <em>Modules</em> de <em>Node.js</em> a atteint un consensus hier pour <em>unflag</em> dans la version <em>13</em> les modules <em>ECMAScript</em> standardisés dès 2015 :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>on pourra sans doute les utiliser sans le <em>flag</em> <code>--experimental-modules</code> dès la semaine prochaine dans la version <em>13.1</em> en utilisant la propriété <code>&quot;type&quot;: &quot;module&quot;</code> dans le fichier <code>package.json</code> ; plus question de développer des modules <em>CommonJS</em> à coups de <code>require()</code> dans le futur !</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>la fonctionnalité sera sans doute rétroportée vers la version <em>12 LTS</em> dans les mois prochains</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>en attendant (je suis impatient !), voici un lien vers l'annonce de Myles Borins : <a href=\"https://twitter.com/MylesBorins/status/1189618753065144322\">https://twitter.com/MylesBorins/status/1189618753065144322</a> et un autre vers la résolution prise hier : <a href=\"https://github.com/nodejs/modules/issues/408#issuecomment-548209785\">https://github.com/nodejs/modules/issues/408#issuecomment-548209785</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-27/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 26",
			"summary": "Sortie de Firefox 70, sortie de Chrome 78 et sortie de Node.js 13",
			"date_published": "2019-10-23",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/26-2019-10-23/",
			"id": "web-academy-news-no-26",
			"image": "./web-academy-news-no-26/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/26-2019-10-23/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<p>Pas mal de nouvelles aujourd'hui avec trois sorties importantes :</p>\n\t<ul>\n\t\t<li>\n\t\t\t<p><em>Firefox</em> est sorti hier en version <em>70</em> avec un nouveau logo et quelques nouveautés :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développement :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les propriétés sans effet sont désormais signalées dans le panneau des règles <em>CSS</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le <em>colorpicker</em> indique désormais le niveau d'accessibilité du contraste (enfin il paraît parce que j'ai pas ça dans ma version)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'onglet d'inspection de l'accessibilité signale désormais trois types de problèmes d'accessibilité (manque de contraste, absence d'étiquette, ou inaccessibilité au clavier)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'onglet <em>Network</em> permet désormais d'inspecter les <em>Web sockets</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La proposition en stage 3 <em>Numeric separators</em> a été implémentée ; il est désormais possible d'insérer des caractères soulignés (<code>_</code>) au milieu des nombres pour les rendre plus lisibles (<code>1_000</code> au lieu de <code>1000</code> par exemple)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Plusieurs APIs relatives à l'internationalisation ont été améliorées ; <code>BigInt.prototype.toLocaleString()</code> accepte désormais les paramètres <code>locales</code> et <code>options</code>, <code>Intl.NumberFormat.format()</code> et <code>Intl.NumberFormat.formatToParts()</code> acceptent des <em>BigInt</em> et <code>Intl.RelativeTimeFormat.formatToParts()</code> a été ajoutée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La navigation induite par les méthodes <code>History.back()</code>, <code>History.forward()</code> et <code>History.go()</code> est désormais asynchrone</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les méthodes <code>getTransform()</code> et <code>setTransform()</code> ont été ajoutées aux contextes 2D des éléments <code>&lt;canvas&gt;&lt;/canvas&gt;</code> pour obtenir et saisir directement les transformations absolues sous forme de matrices</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les événements <code>&quot;ontouchstart&quot;</code> et <code>&quot;ontouchmove&quot;</code> sont désormais passifs, comme dans <em>Chrome</em> (ça avait cassé mes sites d'ailleurs à l'époque où <em>Chrome</em> avait ajouté ça sans tester)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Pour les amateurs de typographie, les propriétés <code>text-decoration-thickness</code>, <code>text-underline-offset</code> et <code>text-decoration-skip-ink</code> ont été ajoutées ; sans même les utiliser explicitement, vous pourrez constater que le jambage des lettres n'est par défaut plus traversé par la barre de soulignage</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Vous croyiez que la propriété <code>display</code> ne prenait qu'un seul mot-clé ? désormais ce n'est plus le cas ; <em>Firefox</em> introduit la possibilité de spécifier indépendamment le comportement interne et externe de la boîte d'un élément ; certains mots-clés historiques deviennent des alias pour la syntaxe à deux (voire trois) mots-clés (<code>block</code> devient synonyme de <code>block flow</code>, <code>inline</code> devient synonyme de <code>inline flow</code>, <code>inline-block</code> devient synonyme de <code>inline flow-root</code>...) mais la valeur <code>run-in</code> n'est toujours pas supportée malheureusement</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Bonne nouvelle pour ceux qui utilisent les grilles <em>CSS</em> ; les propriétés <code>grid-auto-columns</code> et <code>grid-auto-rows</code> acceptent désormais plusieurs pistes, ce qui permet de réaliser certains <em>designs</em> qui n'étaient pas possibles avant (mais attendez, <code>subgrid</code> arrive dans la prochaine version !)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>font-size</code> accepte désormais la valeur <code>xxx-large</code> pour des raisons de compatibilité (sans commentaire)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>quotes</code> accepte désormais la valeur <code>auto</code> qui constitue sa nouvelle valeur initiale</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'opacité peut désormais être spécifiée comme un pourcentage et plus seulement un nombre dans différentes propriétés (<code>opacity</code>, <code>stop-opacity</code>, <code>flood-opacity</code>, <code>fill-opacity</code>, <code>stroke-opacity</code>, <code>-moz-window-opacity</code>, <code>shape-image-threshold</code>...)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/70,\">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/70,</a> <a href=\"https://hacks.mozilla.org/2019/10/firefox-70-a-bountiful-release-for-all/\">https://hacks.mozilla.org/2019/10/firefox-70-a-bountiful-release-for-all/</a> et <a href=\"https://www.fxsitecompat.dev/en-CA/versions/70/\">https://www.fxsitecompat.dev/en-CA/versions/70/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p><em>Chrome</em> est arrivé en version <em>78</em> hier également avec les changements suivants :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'opacité peut également être spécifiée via un pourcentage</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Connaissez-vous <em>Houdini</em> ? c'est un ensemble d'APIs en développement dont le but est de permettre au développeur de contrôler directement le moteur de rendu du navigateur ; dans ce cadre et dans cette version de <em>Chrome</em>, il est désormais possible de spécifier ses propres propriétés <em>CSS</em> (nom, syntaxe, héritage, valeur initiale...) grâce à la méthode <code>CSS.registerProperty()</code> (si vous voulez voir le potentiel d'<em>Houdini</em>, consultez les pages <a href=\"https://developers.google.com/web/updates/2016/05/houdini\">https://developers.google.com/web/updates/2016/05/houdini</a> et <a href=\"https://ishoudinireadyyet.com/\">https://ishoudinireadyyet.com/</a> )</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Un certain nombre de fonctionnalités sont désormais disponibles derrière un <em>flag</em> ou en tant qu'<em>origin trial</em> : la proposition en stage 3 <em>Optional Chaining</em> qui apporte les nouveaux opérateurs <code>?.</code>, <code>?.(...)</code> et <code>?.[...]</code> ; l'API <em>SMS Receiver</em> ou l'API <em>Native File System</em> par exemple</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developers.google.com/web/updates/2019/10/nic78,\">https://developers.google.com/web/updates/2019/10/nic78,</a> <a href=\"https://developers.google.com/web/updates/2019/09/devtools\">https://developers.google.com/web/updates/2019/09/devtools</a> et <a href=\"https://v8.dev/blog/v8-release-78\">https://v8.dev/blog/v8-release-78</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Un nouveau cycle de développement démarre pour <em>Node.js</em> :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p><em>Node.js 12.13</em> &quot;Erbium&quot; constitue depuis lundi la nouvelle version à support étendu (LTS) et devient donc la version recommandée pour développer sous <em>Node.js</em></p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>La version <em>13</em> est sortie hier :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>De nombreuses locales sont désormais disponibles et plus seulement l'anglais ce qui rend enfin utiles les APIs d'internationalisation (l'espace de noms <code>Intl</code> en <em>JavaScript</em>), et d'autant plus lorsqu'on fait des interfaces en français !</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les <em>Workers</em> sont désormais considérés stables</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Malheureusement, les modules <em>ECMAScript</em> (qui visent à remplacer le système de modules <em>CommonJS</em> à base de <code>require</code>), prévus pour la version <em>12.13 LTS</em>, ne sont pas exactement prêts et ont donc été plus ou moins repoussés à une prochaine version imminente</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez l'annonce offcielle <a href=\"https://medium.com/@nodejs/node-js-12-to-lts-and-node-js-13-is-here-e28d6a4a2bd,\">https://medium.com/@nodejs/node-js-12-to-lts-and-node-js-13-is-here-e28d6a4a2bd,</a> la progression de l'implantation des modules <a href=\"https://github.com/nodejs/node/pull/29866\">https://github.com/nodejs/node/pull/29866</a> ou simplement la documentation <a href=\"https://nodejs.org/dist/latest-v13.x/docs/api/\">https://nodejs.org/dist/latest-v13.x/docs/api/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Après le partenariat de <em>CanIUse</em> avec <em>MDN</em>, c'est au tour de <em>Bocoup</em> de s'y associer en intégrant les résultats de la suite de test d'<em>ECMAScript</em>, <em>Test 262</em>, directement dans les pages de documentation du <em>MDN</em> ; c'est donc désormais plus de fiabilité pour les développeurs pour évaluer la compatibilité des moteurs <em>JavaScript</em> ; lisez l'annonce en détails : <a href=\"https://bocoup.com/blog/launching-test262-results-on-mdn\">https://bocoup.com/blog/launching-test262-results-on-mdn</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-26/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 25",
			"summary": "Mécanisme de focus en HTML et sortie de TypeScript 3.7 en bêta",
			"date_published": "2019-10-16",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/25-2019-10-16/",
			"id": "web-academy-news-no-25",
			"image": "./web-academy-news-no-25/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/25-2019-10-16/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Le <em>WhatWG</em>, qui spécifie <em>HTML</em> nous explique en détails sur son blog l'effort de standardisation qui a été fait tout au long des derniers mois sur le mécanisme de <em>focus</em> (clicks, attributs <code>tabindex</code> et <code>autofocus</code>, interaction avec le <em>shadow DOM</em>...) : <a href=\"https://blog.whatwg.org/focusing-on-focus\">https://blog.whatwg.org/focusing-on-focus</a> (promis, je ne tape pas sur <em>Vivaldi</em> pour son implémentation absolument non conforme)</p>\n\t\t</li>\n\t\t<li>\n\t\t\t<p><em>TypeScript 3.7</em> est en bêta, avec plusieurs <em>breaking changes</em> ; voici un petit <em>thread</em> <em>Twitter</em> qui nous explique en quoi l'équipe de <em>TypeScript</em> a participé à l'élaboration des prochaines fonctionnalités d'<em>ECMAScript</em> et comment on en est arrivé là : <a href=\"https://mobile.twitter.com/wycats/status/1183503530524475392\">https://mobile.twitter.com/wycats/status/1183503530524475392</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-25/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 24",
			"summary": "Ajout de globalThis à JavaScript",
			"date_published": "2019-10-01",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/24-2019-10-01/",
			"id": "web-academy-news-no-24",
			"image": "./web-academy-news-no-24/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/24-2019-10-01/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Comme tous les deux mois, le <em>TC39</em> se réunit pour faire évoluer <em>ECMAScript</em> et il y a quelques minutes, une des plus anciennes propositions vient d'être standardisée, <code>globalThis</code> ! avant, l'objet global portait un nom différent selon l'environnement (~ <code>window</code> sur le <em>web</em>, <code>self</code> dans les <em>workers</em> ou encore <code>global</code> dans <em>Node.js</em>) ce qui rendait l'écriture de code portable (et notamment de <em>polyfills</em>) difficile, d'où la volonté de le standardiser ; mais paradoxalement c'est aussi ce qui a ralenti l'adoption de cette proposition car un certain nombre de choix de noms pour cette variable (<code>global</code> par exemple) cassait une très grande partie du <em>web</em> existant, à tel point que le nom final a été gardé secret un certain temps... désormais le nom de l'objet global est fixé et implémenté par tous les navigateurs et <em>Node.js</em> ! voici la proposition en détails : <a href=\"https://github.com/tc39/proposal-global\">https://github.com/tc39/proposal-global</a> et si vous voulez comprendre les défis qu'ont posés cette standardisation et comment on en est arrivé là, je vous invite à lire <a href=\"https://github.com/tc39/proposal-global/blob/master/NAMING.md\">https://github.com/tc39/proposal-global/blob/master/NAMING.md</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-24/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 23",
			"summary": "Sortie de Chrome 77, partenariat entre MDN et Can I Use et nouveau site de compatibilité pour les courriels",
			"date_published": "2019-09-23",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/23-2019-09-23/",
			"id": "web-academy-news-no-23",
			"image": "./web-academy-news-no-23/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/23-2019-09-23/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p><em>Chrome 77</em> est sorti mardi 10 septembre (oui j'ai un peu de retard) avec quelques changements :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>HTML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les formulaires <code>&lt;form&gt;&lt;/form&gt;</code> émettent désormais un nouveau type d'évènement, <code>&quot;formdata&quot;</code>, lors de leur soumission, ce qui permet à la fois d'accéder aux paires de clés et de valeurs générées par le formulaire et d'en ajouter à la volée en évitant le recours à l'instanciation <code>new FormData(...)</code> ou l'élément <code>&lt;input type=&quot;hidden&quot;/&gt;</code>, et en particulier dans le cadre des <em>custom elements</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le nouvel attribut <code>loading</code> a été introduit et permet avec la valeur <code>&quot;lazy&quot;</code> de différer le chargement des images <code>&lt;img/&gt;</code> et des <em>frames</em> <code>&lt;iframe/&gt;</code> ; celles-ci ne sont pas chargées tant qu'elles sont placées en dehors de l'écran par exemple</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'objet <code>TextMetrics</code> permettant de mesurer du texte à afficher sur un <code>&lt;canvas&gt;</code> et retourné par la méthode <code>CanvasRenderingContext2D.measureText()</code> a été étendu et ne se limite plus seulement à une unique propriété <code>width</code>, mais dispose désormais également des propriétés <code>actualBoundingBoxAscent</code>, <code>actualBoundingBoxDescent</code>, <code>actualBoundingBoxLeft</code>, <code>actualBoundingBoxRight</code>, <code>alphabeticBaseline</code>, <code>emHeightAscent</code>, <code>emHeightDescent</code>, <code>fontBoundingBoxAscent</code>, <code>fontBoundingBoxDescent</code>, <code>hangingBaseline</code>, <code>ideographicBaseline</code> par exemple</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'implémentation de la proposition en stage 3 d'API unifiée <code>Intl.NumberFormat</code> a été étendue et permet de formater des chaînes de caractères localisées pour les devises, les unités, la notation scientifique et la notation ingénieur par exemple</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>content</code>, qui permet notamment de spécifier le contenu (texte, image) générant les pseudo-éléments <code>::before</code> ou <code>::after</code> a été étendue et accepte désormais un texte alternatif (à l'instar de l'attribut <code>alt</code> des éléments <code>&lt;img/&gt;</code>) ; ces pseudo-éléments vont donc désormais pouvoir être lus par les lecteurs d'écrans par exemple</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les propriétés logiques <code>overscroll-behavior-inline</code> et <code>overscroll-behavior-block</code>, versions longues de la propriété <code>overscroll-behavior</code>, ont été implémentées</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>tab-size</code> qui définit la taille des tabulations supporte désormais des valeurs non entières</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developers.google.com/web/updates/2019/09/nic77,\">https://developers.google.com/web/updates/2019/09/nic77,</a> <a href=\"https://developers.google.com/web/updates/2019/07/devtools\">https://developers.google.com/web/updates/2019/07/devtools</a> et <a href=\"https://v8.dev/blog/v8-release-77\">https://v8.dev/blog/v8-release-77</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Les sites <em>MDN</em> (la référence en termes de documentation pour le <em>web</em>) et <em>Can I Use</em> (le site de compatibilité <em>web</em> le plus connu) ont annoncé un partenariat : désormais les informations de compatibilité du <em>MDN</em> seront affichées lors d'une recherche sur le moteur de recherche <em>Can I Use</em>, portant ainsi le nombre de résultats indexés de 500 à environ 10500 ! l'annonce en détails : <a href=\"https://hacks.mozilla.org/2019/09/caniuse-and-mdn-compat-data-collaboration/\">https://hacks.mozilla.org/2019/09/caniuse-and-mdn-compat-data-collaboration/</a></p>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Si vous ne le saviez pas déjà, sachez qu'un des formats de courriels les plus utilisés est <em>HTML</em> (oui oui on peut coder ses courriels en <em>HTML</em>) ; si vous le saviez déjà, alors vous savez aussi que c'est LE PIRE CALVAIRE pour un développeur de s'assurer de la compatibilité d'un courriel avec les différentes applications de messageries (la cause étant, aussi étonnant que ça puisse paraître, l'absence complète de standard en la matière) ; dans la pratique, il faut ignorer tous les conseils qu'on a pu vous donner pour un coder un site <em>web</em> et tout bricoler à l'aide de tableaux <code>&lt;table&gt;&lt;/table&gt;</code> et d'images <code>&lt;img/&gt;</code> ; eh bien, bonne nouvelle : le nouveau site <em>Can I Email</em>, justement inspiré de <em>Can I Use</em>, recense désormais un certain nombre de données sur l'interopérabilité des différents clients <em>mail</em> ; direction <a href=\"https://www.caniemail.com/\">https://www.caniemail.com/</a> toute ! l'annonce en question : <a href=\"https://www.caniemail.com/news/2019-09-09-introducing-caniemail/\">https://www.caniemail.com/news/2019-09-09-introducing-caniemail/</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-23/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 22",
			"summary": "Sortie de Firefox 69 et comparatif des différentes implémentations de MathML par Igalia",
			"date_published": "2019-09-03",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/22-2019-09-03/",
			"id": "web-academy-news-no-22",
			"image": "./web-academy-news-no-22/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/22-2019-09-03/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p><em>Firefox 69</em> sort aujourd'hui et comme d'habitude avec un paquet de nouveautés :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développement :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'outil d'accessibilité est désormais capable de vérifier certains problèmes ou manquements comme l'absence d'étiquettes (noms de boutons, titres, textes alternatifs...)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>Flash</em> (encore lui ?) :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Emboîtant le pas à <em>Chrome</em>, <em>Firefox</em> désactive désormais systématiquement <em>Flash</em> et demande une activation expresse par l'utilisateur à chaque visite</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>HTML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Chose plutôt rare, un élément a été retiré : <code>&lt;keygen/&gt;</code> ; cet élément qui était spécifié dans une ancienne version d'<em>HTML</em> (jusqu'à <em>HTML 5.1</em> en fait) permettait comme son nom l'indique de générer automatiquement des clés publiques</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les déclarations de champs de classes publics (proposition en stage 3) sont désormais supportés ; youpi ! on peut déclarer les attributs publics à la fois dans <em>Chrome</em> et <em>Firefox</em> maintenant</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API <code>ResizeObserver</code> permet de réagir plus intelligemment au redimensionnement des différents éléments, et plus seulement de toute la page en écoutant l'évènement <code>&quot;resize&quot;</code> sur l'objet global <code>window</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La nouvelle fonction <code>queueMicrotask</code> permet de programmer une microtâche (parfois appelée <em>job</em>) à exécuter prioritairement, et constitue en cela une alternative déterministe aux techniques à base de <code>setTimeout(..., 0)</code> voire pire, de <code>setImmediate()</code> (fonctionnalité non-standard disponible uniquement dans feux <em>Internet Explorer</em> et l'ancienne version de <em>Edge</em>)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les nouveaux évènements <code>&quot;unhandledrejection&quot;</code> et <code>&quot;rejectionhandled&quot;</code> sont désormais disponibles ~~pour ceux qui oublieraient de <em>catch</em> les erreurs dans le code asynchrone ou à base de promesses~~ <strong>pour faire de la télémétrie et du débogage</strong></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La nouvelle méthode statique <code>DOMMatrix.fromMatrix()</code> permet de cloner une matrice (ne me demandez pas pourquoi ce n'était pas possible avant), par contre, la méthode <code>DOMMatrix.scaleNonUniformSelf()</code> a été retirée au profit de la méthode <code>DOMMatrix.scaleSelf()</code> déjà disponible</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les méthodes <code>Blob.text()</code>, <code>Blob.arrayBuffer()</code> et <code>Blob.stream()</code> permettent une lecture plus facile des objets binaires comme les fichiers de manière asynchrone</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>user-select</code>, qui permet de spécifier de quelle manière un élément peut-être sélectionné, a été dépréfixée suite à des clarifications dans la spécification</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La nouvelle propriété <code>line-break</code> et la nouvelle valeur <code>break-spaces</code> de la propriété <code>white-space</code> on été ajoutées pour une meilleure gestion des sauts de lignes, notamment pour les modes d'écritures CJK (Chinois, Japonais, Coréen)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les propriétés logiques <code>overflow-block</code> et <code>overflow-inline</code> constituent désormais les alias des propriétés <code>overflow-x</code> et <code>overflow-y</code> selon le mode d'écriture spécifié par la valeur de la propriété <code>writing-mode</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Un certain nombre de propriétés géométriques <em>SVG</em> peuvent désormais être renseignées directement via des <em>CSS</em> ! cela inclut les propriétés <code>width</code> et <code>height</code> des éléments <code>&lt;svg&gt;&lt;/svg&gt;</code> par exemple, mais aussi les coordonnées des éléments avec <code>x</code>, <code>y</code>, <code>cx</code>, <code>cy</code>, <code>rx</code>, <code>ry</code> et <code>r</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>contain</code> a été exposée et permet d'améliorer les performances du moteur de rendu en indiquant explicitement à quel point l'apparence des différentes parties de la page peuvent être calculées indépendamment</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La règle <code>@supports</code> permet d'appliquer conditionnellement du style plus seulement lorsqu'une certaine propriété <em>CSS</em> est implémentée, mais aussi selon le support d'un sélecteur <em>CSS</em> (du moment que sa syntaxe est valide), du genre <code>::marker</code>, <code>::marker::marker</code>, <code>:focus-within</code>, <code>:target-within</code>, <code>:is()</code>, <code>:has()</code> ou <code>:where()</code> qui sont peu répandus</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Et parce que les changements ne se résument pas seulement à ça, consultez les pages <a href=\"https://hacks.mozilla.org/2019/09/firefox-69-a-tale-of-resize-observer-microtasks-css-and-devtools/,\">https://hacks.mozilla.org/2019/09/firefox-69-a-tale-of-resize-observer-microtasks-css-and-devtools/,</a> <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/69\">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/69</a> et <a href=\"https://www.fxsitecompat.dev/en-CA/versions/69/\">https://www.fxsitecompat.dev/en-CA/versions/69/</a> pour plus d'informations</p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Par ailleurs, <em>Igalia</em> nous fait à nouveau un point sur l'état de l'implémentation de <em>MathML</em> dans <em>Chrome</em> en effectuant une petite comparaison des différents navigateurs : <a href=\"https://mathml.igalia.com/news/2019/08/28/mathml-and-browsers/\">https://mathml.igalia.com/news/2019/08/28/mathml-and-browsers/</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-22/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 21",
			"summary": "Sortie de Chrome 76 et mise à jour du prototype d'implémentation de MathML par Igalia",
			"date_published": "2019-07-30",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/21-2019-07-30/",
			"id": "web-academy-news-no-21",
			"image": "./web-academy-news-no-21/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/21-2019-07-30/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Ce jour sort <em>Chrome 76</em> avec plusieurs changements notables :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développement... de <em>Firefox</em> !? :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em>Puppeteer</em>, une API initialement conçue pour contrôler <em>Chrome</em> de l'extérieur via <em>Node.js</em>, est désormais compatible avec <em>Firefox</em> (à titre expérimental) ; un des intérêts d'un tel outil est de pouvoir automatiser des tests au sein des navigateurs, que ce soit au niveau de contenu, du comportement ou de l'apparence ; pour l'installer, un simple <code>npm i puppeteer-firefox</code> suffit !</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>Flash</em> !? :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Dans le cadre du plan de retrait de <em>Flash</em> de la plateforme <em>web</em>, <em>Chrome</em> ne mémorise désormais les préférences d'activation de <em>Flash</em> de l'utilisateur que pour la durée d'une session ; le même changement arrive dans la prochaine version de <em>Firefox</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La proposition <code>Promise.allSettled()</code> tout juste standardisée, dont je vous parlais la semaine dernière, est désormais disponible</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La toute nouvelle méthode <code>HTMLFormElement.requestSubmit()</code> permet de soumettre un formulaire via un script, après avoir vérifié les contraintes de validation et en émettant un événement <code>&quot;submit&quot;</code>, ce que ne permettait pas la méthode <code>HTMLFormElement.submit()</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'implémentation de l'API <em>Async Clipboard</em> dans <em>Chrome</em> permet désormais de lire et d'écrire des images <em>PNG</em> dans le presse-papier, et non plus seulement du texte</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété <code>backdrop-filter</code> initialement proposée par <em>Apple</em> sous le nom <code>-webkit-backdrop-filter</code> a été implémentée selon une version plus moderne de la spécification ; contrairement à la propriété <code>filter</code> qui s'applique à un élément lui-même, le filtre s'applique ici sur son arrière-plan</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em>Chrome</em> supporte à son tour la <em>media query</em> <code>prefers-color-scheme</code> qui permet d'ajuster le thème (clair / sombre / sans préférence) d'un site selon les préférences de l'utilisateur ; le support de la fonctionnalité étant désormais très bon (les trois moteurs de navigateurs l'implémentent !), on devrait voir émerger rapidement plus de sites avec un thème sombre dédié</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developers.google.com/web/updates/2019/07/nic76,\">https://developers.google.com/web/updates/2019/07/nic76,</a> <a href=\"https://developers.google.com/web/updates/2019/05/devtools\">https://developers.google.com/web/updates/2019/05/devtools</a> et <a href=\"https://v8.dev/blog/v8-release-76\">https://v8.dev/blog/v8-release-76</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Par ailleurs, <em>Igalia</em> a annoncé avoir quasiment terminé d'implémenter le noyau de <em>MathML</em> dans <em>Chrome</em> ; on peut enfin se mettre à rêver d'interopérabilité en ce qui concerne les fomules mathématiques sur le <em>web</em>... ; l'annonce en détails : <a href=\"https://mathml.igalia.com/news/2019/07/25/project-status-after-one-semester/\">https://mathml.igalia.com/news/2019/07/25/project-status-after-one-semester/</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-21/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 20",
			"summary": "Ajout de Promise.allSettled à JavaScript et publication de deux nouveaux moteurs JavaScript",
			"date_published": "2019-07-24",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/20-2019-07-24/",
			"id": "web-academy-news-no-20",
			"image": "./web-academy-news-no-20/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/20-2019-07-24/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Cette semaine se tient la réunion bimestrielle du <em>TC39</em> lors de laquelle une proposition s'est vue standardisée :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>La proposition <code>Promise.allSettled()</code> est ainsi passée au stage 4 ; contrairement à la méthode statique <code>Promise.all()</code> dont la promesse retournée peut être rejetée (<em>rejected</em>) dès lors qu'une des promesses en attente a été rejetée, la nouvelle méthode statique <code>Promise.allSettled()</code> retourne une promesse qui n'est accomplie (<em>fulfilled</em>) que lorsque l'intégralité des promesses en attente a été traitée (<em>settled</em>), peut importe qu'elles soient accomplies ou rejetées ; sa petite sœur, <code>Promise.any()</code> devrait être pour bientôt elle aussi ; pour plus d'informations, consultez la proposition <a href=\"https://github.com/tc39/proposal-promise-allSettled\">https://github.com/tc39/proposal-promise-allSettled</a> elle-même</p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Annoncés indépendamment en début de mois, deux nouveaux moteurs <em>JavaScript</em> sont arrivés sur le devant de la scène :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p><em>QuickJS</em>, un interpréteur et compilateur écrit en <em>C</em> par le fameux Fabrice Bellard, qui est annoncé comme quasiment conforme à la spécification <em>ES2019</em>, ce qui en ferait potentiellement le moteur le plus conforme parmi ceux existants ; rendez-vous sur le site officiel <a href=\"https://bellard.org/quickjs/\">https://bellard.org/quickjs/</a> pour plus d'informations</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p><em>Hermes</em>, un moteur réalisé par <em>Facebook</em> dont l'objectif est d'optimiser les applications utilisant <em>React Native</em>, mais qui se veut moins complet car il n'implémente qu'un sous-ensemble de la spécification <em>ES2015</em> ; consultez l'annonce <a href=\"https://code.fb.com/android/hermes/\">https://code.fb.com/android/hermes/</a> pour plus de détails</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Les deux moteurs devraient vraisemblablement rejoindre prochainement la système de tests de <em>Bocoup</em>, <a href=\"https://test262.report/\">https://test262.report/</a> ; on pourra alors mieux évaluer leur potentiel respectif</p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-20/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 19",
			"summary": "Sortie de Firefox 68 et futur de Firefox pour Android",
			"date_published": "2019-07-10",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/19-2019-07-10/",
			"id": "web-academy-news-no-19",
			"image": "./web-academy-news-no-19/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/19-2019-07-10/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p><em>Firefox 68</em> est sorti ce mardi en version stable et ESR et apporte pas mal de nouveautés pour les développeurs :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développement :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les problèmes d'accessibilité en termes de contraste entre couleurs sont désormais signalés, selon les critères du standard <em>WCAG</em> (un standard fondamental du <em>web</em> qui décrit les conditions pour qu'une page <em>web</em> soit accessible à toute personne)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Un nouvel outil permet d'émuler (quelque peu) l'apparence d'une page <em>web</em> telle qu'elle serait imprimée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'espacement entre les lettres peut être ajusté grâce à un outil dédié</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><code>BigInt</code>, le nouveau type de valeurs numériques entières en cours de standardisation (stage 3 / 4) a été implémenté ; il est ainsi possible de manipuler des entiers d'une taille arbitraire, ce qui jusque là n'était pas possible avec le type historique de valeurs numériques flottantes, <code>Number</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API <em>Visual Viewport</em> est supportée sous <em>Android</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les nombreuses méthodes génériques non-standard de <code>String</code>, introduites en 2005 mais conservés jusqu'alors pour des raisons de compatibilité, ont été retirées</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La nouvelle spécification <em>CSS Scroll Snap</em> a été implémentée et introduit un certain nombre de nouvelles propriétés <em>CSS</em> (<code>scroll-snap-*</code>, <code>scroll-margin-*</code> et <code>scroll-padding-*</code>) ; ce faisant, les propriétés définies par l'ancienne spécification <em>CSS Scroll Snap Points</em> ont été retirées (et ça casse ma technique d'aperçu avant impression des cours de la <em>Web Academy</em>...) ; un objectif de ce module <em>CSS</em> est de permettre la réalisation de carrousels sans avoir recours aux très nombreuses bibliothèques <em>JavaScript</em> qui simulent le défilement d'une manière trop peu accessible</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le nouveau pseudo-élément <code>::marker</code> est désormais supporté, ainsi que son interaction avec les compteurs <em>CSS</em> et notamment la toute nouvelle propriété <code>counter-set</code> (mais par contre ça casse mon système de pagination des cours de la <em>Web Academy</em>...) ; standardisés ensemble dans le cadre du module <em>CSS Lists Level 3</em>, ils permettent enfin d'expliquer et de modifier le comportement et l'apparence des puces des items de listes <code>&lt;li&gt;&lt;/li&gt;</code>, des intitulés <code>&lt;summary&gt;&lt;/summary&gt;</code> et plus généralement de tous les éléments et pseudo-éléments avec la propriété <code>display: list-item</code> (depuis le temps que j'attendais ça !)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La propriété non-standard <code>-webkit-line-clamp</code> est supportée (oui, oui une propriété propriétaire <em>Webkit</em>) à des fins de compatibilité en attendant la finalisation de la standardisation de la propriété <code>line-clamp</code> ; uniquement fonctionnelle en interaction avec la propriété non standard <code>display: -webkit-box</code> (qui date d'avant <em>FlexBox</em>), elle permet de borner le nombre de lignes de texte affichées d'un élément</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>HTML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'attribut <code>disabled</code> sur un élément <code>&lt;link/&gt;</code> permet de désactiver le chargement d'une feuille de style</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le chargement asynchrone d'une image est désormais possible via la méthode <code>HTMLImageElement.prototype.decode()</code> ; il était précédemment nécessaire d'avoir recours à un évènement <code>&quot;load&quot;</code> pour cela</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/68,\">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/68,</a> <a href=\"https://hacks.mozilla.org/2019/07/firefox-68-bigints-contrast-checks-and-the-quantumbar/\">https://hacks.mozilla.org/2019/07/firefox-68-bigints-contrast-checks-and-the-quantumbar/</a> et <a href=\"https://www.fxsitecompat.dev/en-CA/versions/68/\">https://www.fxsitecompat.dev/en-CA/versions/68/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>La première version publique de <em>Firefox Preview</em> (<em>Fenix</em>) peut être installée depuis le 27 juin ; il s'agit d'une pré-version de la prochaine mouture de <em>Firefox</em> pour <em>Android</em> (<em>Fennec</em>) qui intègre <em>GeckoView</em>, le moteur graphique <em>standalone</em> de <em>Mozilla</em> initialement inclus dans <em>Firefox Focus</em> / <em>Klar</em> ; cette bibliothèque constitue une alternative viable à la <em>WebView</em> <em>Android</em> propulsée par <em>Blink</em> (le moteur graphique de <em>Chrome</em>, vous suivez ?) et a été conçu pour pouvoir servir de base à d'autres navigateurs ou applications, en plus d'offrir de meilleures performances par rapport à la version actuelle de <em>Firefox</em> pour <em>Android</em> ; pour plus d'informations, consultez les pages <a href=\"https://blog.mozilla.org/futurereleases/2019/06/27/reinventing-firefox-for-android-a-preview/,\">https://blog.mozilla.org/futurereleases/2019/06/27/reinventing-firefox-for-android-a-preview/,</a> <a href=\"https://hacks.mozilla.org/2019/06/geckoview-in-2019/\">https://hacks.mozilla.org/2019/06/geckoview-in-2019/</a> et <a href=\"https://www.soeren-hentzschel.at/firefox-android/fenix-firefox-preview-veroeffentlicht/\">https://www.soeren-hentzschel.at/firefox-android/fenix-firefox-preview-veroeffentlicht/</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-19/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 18",
			"summary": "Ajout de deux fonctionnalités à JavaScript, sortie de Chrome 75 et sortie de Node.js 12.4",
			"date_published": "2019-06-04",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/18-2019-06-04/",
			"id": "web-academy-news-no-18",
			"image": "./web-academy-news-no-18/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/18-2019-06-04/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Jusqu'à jeudi se tient la réunion bimestrielle du <em>TC39</em> et deux nouvelles importantes viennent de tomber :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>La proposition d'import dynamique de modules via <code>import()</code> a (enfin !) été standardisée ; il est donc désormais possible d'importer des modules à la volée en <em>JavaScript</em> ; de plus c'est déjà supporté dans <em>Firefox</em>, <em>Chrome</em> et <em>Safari</em> ; cela signifie que le système de modules standard surpasse enfin (à mon sens) les anciens systèmes comme <em>CommonJS</em>, encore utilisé par <em>Node.js</em> par exemple</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Qui a dit que <em>JavaScript</em> n'avait pas de type d'entiers ? désormais ce n'est plus le cas avec la standardisation d'un nouveau type de valeurs primitives, <code>BigInt</code>, qui permet de représenter des entiers d'une grandeur arbitraire ; là encore c'est déjà implémenté dans <em>Chrome</em>, <em>Node.js</em> et ça arrive dans la prochaine version de <em>Firefox</em> !</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, je vous invite à consulter ces articles d'Axel Rauschmayer : <a href=\"https://2ality.com/2017/01/import-operator.html\">https://2ality.com/2017/01/import-operator.html</a> et <a href=\"https://2ality.com/2017/03/es-integer.html\">https://2ality.com/2017/03/es-integer.html</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Par ailleurs, Chrome 75 sort cette nuit et apporte quelques changements notables :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La proposition en stage 3 <em>Numeric separators</em> a été implémentée ; il s'agit d'autoriser le caractère souligné <code>_</code> au sein des littéraux de valeurs numériques (<code>Number</code> ou <code>BigInt</code>) dans le but de les rendre plus lisibles (<code>1_000_000_000n</code> au lieu de <code>1000000000n</code> par exemple)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La deuxième itération de l'API <em>Web Share</em> est désormais supportée et permet notamment de partager directement des fichiers avec d'autres applications</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developers.google.com/web/updates/2019/06/nic75,\">https://developers.google.com/web/updates/2019/06/nic75,</a> <a href=\"https://developers.google.com/web/updates/2019/04/devtools\">https://developers.google.com/web/updates/2019/04/devtools</a> et <a href=\"https://v8.dev/blog/v8-release-75\">https://v8.dev/blog/v8-release-75</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p><em>Node.js 12.4</em> est également sorti aujourd'hui :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Suite à sa standardisation par le <em>WHATWG</em> dans le cadre du langage <em>HTML</em>, l'import de modules <em>JSON</em> est désormais activé avec seulement le <em>flag</em> <code>--experimental-modules</code> ; auparavant les deux options <code>--experimental-modules</code> et <code>--experimental-json-modules</code> étaient nécessaires</p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-18/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 17",
			"summary": "Accord du WhatWG et du W3C à propos de HTML",
			"date_published": "2019-05-29",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/17-2019-05-29/",
			"id": "web-academy-news-no-17",
			"image": "./web-academy-news-no-17/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/17-2019-05-29/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Nous l'avions évoqué au tout début de la formation, désormais c'est officiel : le langage <em>HTML</em> (et le <em>DOM</em>) est officiellement maintenu par le <em>WHATWG</em> et non plus par le <em>W3C</em> ; depuis 2004, deux spécifications incompatibles coexistaient bien qu'en pratique les navigateurs implémentaient celle du <em>WHATWG</em> ; aujourd'hui la confusion est enfin levée pour les développeurs ; l'annonce officielle : <a href=\"https://www.w3.org/blog/2019/05/w3c-and-whatwg-to-work-together-to-advance-the-open-web-platform/\">https://www.w3.org/blog/2019/05/w3c-and-whatwg-to-work-together-to-advance-the-open-web-platform/</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-17/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 16",
			"summary": "Sortie de Firefox 67 et statut actuel des modules JavaScript au sein de la plateforme web",
			"date_published": "2019-05-23",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/16-2019-05-23/",
			"id": "web-academy-news-no-16",
			"image": "./web-academy-news-no-16/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/16-2019-05-23/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Ce mardi est sorti <em>Firefox 67</em> avec un peu de retard à cause de la désactivation inopinée des extensions de tous les utilisateurs le <em>week-end</em> du 4 mai ; cependant cette version apporte un certain nombre de nouveautés intéressantes :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La méthode <code>String.prototype.matchAll</code>, désormais standard (souvenez-vous, je vous en parlais il y a deux mois), est supportée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La proposition en stage 3 de la syntaxe <em>Hashbang Grammar</em> (les commentaires <code>#!</code> en début de script) est supportée également</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La proposition en stage 3 <code>import()</code>, c'est-à-dire les imports dynamiques de modules <em>ECMAScript</em>, est maintenant exposée dans la version stable de <em>Firefox</em>, ce qui en fait déjà le troisième navigateur à l'implémenter ; cela fait désormais plus de deux ans et demi que cette proposition attend d'être standardisée à cause des craintes de certains délégués d'<em>Ecma</em> (l'organisme qui spécifie <em>ECMAScript</em>), qui la jugent potentiellement incompatible avec la future proposition visant à étendre les <code>Realm</code>s (désomais connue sous le nom de <em>Secure ECMAScript</em>, ou <em>SES</em>) ; cependant le feu vert semble avoir été donné et on peut enfin espérer la standardisation dans deux semaines, lors de la réunion bimestrielle du <em>TC39</em> ! je vous tiendrai au courant !</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le mot-clé universel <code>revert</code>, qui permet de restaurer la valeur originale d'une propriété (telle que définie par l'<em>User-Agent</em>, c'est-à-dire le navigateur), a été ajouté et constitue un complément aux valeurs universelles <code>unset</code>, <code>initial</code> et <code>inherit</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La <em>media query</em> <code>prefers-color-scheme</code> est désormais implémentée, et ceci selon la dernière version de la spécification (contrairement à <em>Safari</em>) ; nous disposons donc de deux navigateurs indépendants à supporter les thèmes (clairs, sombres et sans-préférence) ! un certain nombre de sites propose déjà deux versions de leurs pages via ce nouveau mécanisme</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez certaines de ces pages <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/67,\">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/67,</a> <a href=\"https://hacks.mozilla.org/2019/05/firefox-67-dark-mode-css-webrender/\">https://hacks.mozilla.org/2019/05/firefox-67-dark-mode-css-webrender/</a> et <a href=\"https://www.fxsitecompat.com/en-CA/versions/67/\">https://www.fxsitecompat.com/en-CA/versions/67/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>D'autres nouvelles relatives aux modules en <em>ECMAScript</em> :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Si vous avez bien suivi, vous n'êtes pas sans savoir que :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Tous les navigateurs supportent déjà les modules <em>ECMAScript</em> statiques via l'instruction <code>import</code> et que <em>Node.js</em> dispose d'une implémentation expérimentale</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em>Firefox</em>, <em>Chrome</em> et <em>Safari</em> supportent l'import dynamique de modules <em>ECMAScript</em> (autant dans un script classique que dans un script modulaire) et que <em>Node.js</em> a aussi une implémentation expérimentale</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Par contre saviez-vous que :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em>Node.js 12.3</em>, sorti mardi, supporte également les modules <em>JSON</em> (<code>import &quot;./structured-data.json&quot;;</code>) et <em>Web Assembly</em> (<code>import &quot;./low-level.wasm&quot;;</code>), toujours de manière expérimentale</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'import de modules <em>JSON</em> a été standardisé par le <em>WHATWG</em> et intégré au langage <em>HTML</em> cette semaine</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les travaux débutent sur la généralisation des imports <em>ECMAScript</em> aux formats <em>HTML</em>, <em>CSS</em>, <em>JSON</em>, <em>Web Assembly</em> et <em>WebIDL</em>, connue sous le nom de <em>Synthetic Modules</em>, qui dispose à la fois du soutien des auteurs de spécifications et des concepteurs de navigateurs, en plus de l'enthousiasme des développeurs</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Vous trouverez plus d'informations dans les pages <a href=\"https://github.com/nodejs/node/pull/27752,\">https://github.com/nodejs/node/pull/27752,</a> <a href=\"https://github.com/w3ctag/design-reviews/issues/375,\">https://github.com/w3ctag/design-reviews/issues/375,</a> <a href=\"https://github.com/nodejs/node/pull/27659\">https://github.com/nodejs/node/pull/27659</a> et <a href=\"https://github.com/w3ctag/design-reviews/issues/377\">https://github.com/w3ctag/design-reviews/issues/377</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-16/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 15",
			"summary": "CSSBattle, jeu de code golfing en CSS",
			"date_published": "2019-05-09",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/15-2019-05-09/",
			"id": "web-academy-news-no-15",
			"image": "./web-academy-news-no-15/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/15-2019-05-09/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Connaissez-vous <em>CSSBattle</em> ? il s'agit d'un jeu hautement addictif (si si, je vous assure, les plus grands designers y passent leurs nuits !) sur les <em>CSS</em> qui a ouvert le mois dernier ; le but est (1) de reproduire la figure demandée avec des <em>CSS</em> et (2) en le moins de code possible ; la saison pilote étant terminée, la seconde saison du jeu commence aujourd'hui ; je vous invite à y jouer, y compris les objectifs de la première saison, car cela peut vous permettre de découvrir plein de techniques sur <em>CSS</em> ; voici le lien : <a href=\"https://cssbattle.dev/\">https://cssbattle.dev/</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-15/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 14",
			"summary": "Futur d'Internet Explorer 11 et thèmes dans Safari",
			"date_published": "2019-05-08",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/14-2019-05-08/",
			"id": "web-academy-news-no-14",
			"image": "./web-academy-news-no-14/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/14-2019-05-08/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>La prochaine version de <em>Edge</em> intégrera <em>Internet Explorer 11</em> ; si, si : <a href=\"https://m.youtube.com/watch?v=E2dm29djv3U\">https://m.youtube.com/watch?v=E2dm29djv3U</a></p>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Les développeurs de <em>Safari</em> nous font un petit point sur une fonctionnalité imminente des <em>CSS</em>, supporter les thèmes clairs et foncés : <a href=\"https://webkit.org/blog/8840/dark-mode-support-in-webkit/\">https://webkit.org/blog/8840/dark-mode-support-in-webkit/</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-14/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 13",
			"summary": "Mise à jour du prototype d'implémentation de MathML par Igalia",
			"date_published": "2019-05-05",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/13-2019-05-05/",
			"id": "web-academy-news-no-13",
			"image": "./web-academy-news-no-13/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/13-2019-05-05/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>L'implémentation de <em>MathML</em> dans <em>Chrome</em> avance vite ! un petit point de la part d'<em>Igalia</em> : <a href=\"https://mathml.igalia.com/news/2019/05/03/igalia-is-making-good-progress/\">https://mathml.igalia.com/news/2019/05/03/igalia-is-making-good-progress/</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-13/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 12",
			"summary": "Sortie de Chrome 74 et sortie de Node.js 12",
			"date_published": "2019-04-26",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/12-2019-04-26/",
			"id": "web-academy-news-no-12",
			"image": "./web-academy-news-no-12/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/12-2019-04-26/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<p>Mardi sont sortis les nouvelles moutures de <em>Chrome</em> et <em>Node.js</em> ; petit résumé des nouveautés :</p>\n\t<ul>\n\t\t<li>\n\t\t\t<p><em>Chrome 74</em> apporte les nouveautés suivantes :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les déclarations de champs de classes privés (proposition en stage 3 ) sont désormais supportés, 3 mois après les déclarations de champs de classes publics, ce qui va permettre une encapsulation plus aisée des variables de classes</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La proposition en stage 3 de la syntaxe <em>Hashbang Grammar</em> est supportées ; il s'agit uniquement de rendre valides les programmes débutant par <code>#!</code> en traitant une telle ligne en début de programme comme un commentaire</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La proposition en stage 3 <code>Intl.Locale</code> est ajoutée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La fonctionnalité <em>Import maps</em> visant à permettre les <em>bares imports</em> en <em>JavaScript</em> (pour importer une bibliothèque juste par son nom et non son chemin) est en test</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Le premier module natif <em>JavaScript</em> dans les navigateurs de tous les temps, <code>std:kv-storage</code>, a été ajouté ; cela intervient dans le cadre d'un effort de standardisation du futur système de bibliothèque standard de <em>JavaScript</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les événements relatifs aux transitions peuvent désormais être écoutés en<em>JavaScript</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez notamment les pages <a href=\"https://developers.google.com/web/updates/2019/04/nic74,\">https://developers.google.com/web/updates/2019/04/nic74,</a> <a href=\"https://developers.google.com/web/updates/2019/03/devtools,\">https://developers.google.com/web/updates/2019/03/devtools,</a> <a href=\"https://v8.dev/blog/v8-release-74\">https://v8.dev/blog/v8-release-74</a> et <a href=\"https://developers.google.com/web/updates/2019/03/kv-storage\">https://developers.google.com/web/updates/2019/03/kv-storage</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p><em>Node.js 12</em> est sorti et deviendra la prochaine version à support étendu vers octobre ; énormément de nouveautés sont présentes, dont certaines dont je vous ai déjà parlé :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Les fonctionnalités standard <code>Array.prototype.{flat, flatMap}</code>, <code>Object.fromEntries</code>, <code>String.prototype.matchAll</code>, <code>Symbol.prototype.description</code>, <em>Well-formed <code>JSON.stringify</code></em>, un tri <code>Array.prototype.sort</code> stable</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Les fonctionnalités en stage 3 que sont <code>globalThis</code> et les déclarations de champs de classes publics et privés</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>De nouvelles API d'internationalisation en cours de standardisation</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>La tant attendue nouvelle implémentation des modules <em>ECMAScript</em>, toujours derrière le <em>flag</em> <code>--experimental-modules</code>, plus stable, avec des nouveautés même si elle ne que partielle ; on peut espérer qu'elle soit terminée et disponible par défaut d'ici octobre ; en attendant, il est demandé de ne pas publier de paquet utilisant les modules <em>ECMAScript</em> pour <em>Node.js</em></p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>La dernière version du protocole <em>TLS</em>, <em>TLS 1.3</em> a été implémentée, remplaçant ainsi la version précédente qui avait 11 ans</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Diverses API comme <code>fs.promises</code> (la version asynchrone de <code>fs</code>) désormais considérées comme stables</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://medium.com/@nodejs/introducing-node-js-12-76c41a1b3f3f,\">https://medium.com/@nodejs/introducing-node-js-12-76c41a1b3f3f,</a> <a href=\"https://medium.com/@nodejs/announcing-a-new-experimental-modules-1be8d2d6c2ff\">https://medium.com/@nodejs/announcing-a-new-experimental-modules-1be8d2d6c2ff</a> et <a href=\"https://2ality.com/2019/04/nodejs-esm-impl.html\">https://2ality.com/2019/04/nodejs-esm-impl.html</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-12/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 11",
			"summary": "Sortie de Safari 12.1",
			"date_published": "2019-04-14",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/11-2019-04-14/",
			"id": "web-academy-news-no-11",
			"image": "./web-academy-news-no-11/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/11-2019-04-14/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<p>Avec un peu de retard :</p>\n\t<ul>\n\t\t<li>\n\t\t\t<p>En début de mois est sortie la version <em>12.1</em> de <em>Safari</em> qui apporte quelques nouveautés intéressantes pour les développeurs :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>HTML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'élément <code>&lt;input type=&quot;color&quot;/&gt;</code> est (enfin) supporté et permet d'ouvrir un <em>colorpicker</em> pour choisir une couleur ; <em>Safari</em> était le dernier navigateur à ne pas supporter ce type de champ</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'élément <code>&lt;datalist&gt;&lt;/datalist&gt;</code> est désormais supporté et permet de faire des suggestions à l'utilisateur lorsqu'il interagit avec un champ</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La nouvelle <em>media query</em> <code>prefers-color-scheme</code> permet de détecter les préférences de thème de l'utilisateur ; un site <em>web</em> pourra désormais adapter son interface pour opter pour un thème sombre si l'utilisateur le préfère par exemple ; cette nouveauté devrait également arriver dans <em>Firefox</em> le mois prochain</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API <em>Intersection Observer</em> a été ajoutée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'API <em>Web Share</em> a été ajoutée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez la page <a href=\"https://webkit.org/blog/8718/new-webkit-features-in-safari-12-1/\">https://webkit.org/blog/8718/new-webkit-features-in-safari-12-1/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-11/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 10",
			"summary": "Publication de CommonMark 0.29",
			"date_published": "2019-04-12",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/10-2019-04-12/",
			"id": "web-academy-news-no-10",
			"image": "./web-academy-news-no-10/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/10-2019-04-12/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Connaissez-vous le langage <em>Markdown</em> ? il s'agit d'un langage conçu pour générer du <em>HTML</em> (mais pas que) à partir d'un fichier texte à la syntaxe <em>user-friendly</em> ; il est généralement utilisé sur les blogs et les forums pour écrire des commentaires, mais aussi sur <em>GitLab</em> et <em>GitHub</em> par exemple ; le langage n'ayant été ni bien défini ni bien implémenté à l'origine, une tentative de spécification du langage est née il y a quelques années dans le but d'avoir une base commune aux différents dialectes existants, et ceci en restant la plus proche possible de la version d'origine du langage ; la semaine dernière, cette spécification, <em>CommonMark</em>, a atteint la version 0.29 après plus d'un an et demi de stabilité (on attend toujours la version 1.0 !) ; un certain nombre d'implémentations conformes à cette nouvelle version est déjà disponible et <em>GitHub</em> a déjà mis à jour sa propre spécification ; si vous souhaitez en apprendre plus sur ce langage, je vous invite à lire ces spécifications ici : <a href=\"https://spec.commonmark.org/current/\">https://spec.commonmark.org/current/</a> et là : <a href=\"https://github.github.com/gfm/\">https://github.github.com/gfm/</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-10/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 09",
			"summary": "Changement de moteur de rendu pour Edge",
			"date_published": "2019-04-08",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/09-2019-04-08/",
			"id": "web-academy-news-no-09",
			"image": "./web-academy-news-no-09/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/09-2019-04-08/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>En décembre dernier, peut-être aviez-vous vu le communiqué de <em>Microsoft</em> qui annonçait que le navigateur <em>Edge</em> allait désormais être basé sur <em>Chromium</em>, abandonnant ainsi <em>EdgeHTML</em> et <em>ChakraCore</em> (le moteur de rendu et le moteur <em>JavaScript</em> de <em>Microsoft</em>) pour <em>Blink</em> et <em>V8</em> (le moteur de rendu et le moteur <em>JavaScript</em> de <em>Google</em>) ; aujourd'hui, <em>Microsoft</em> annonce les premières versions de test de la nouvelle mouture de son navigateur ~~<em>Edg</em>~~ pour <em>Windows 10</em>, même si le support est aussi à prévoir sur des versions plus anciennes de <em>Windows</em> comme <em>Windows 7</em> en remplacement de feu <em>Internet Explorer</em> ; voici le lien pour les intéressés : <a href=\"https://blogs.windows.com/msedgedev/2019/04/08/microsoft-edge-preview-channel-details/\">https://blogs.windows.com/msedgedev/2019/04/08/microsoft-edge-preview-channel-details/</a> ; lorsque la transition vers la nouvelle version sera finalisée, <em>Firefox</em> deviendra le seul grand navigateur à ne pas dériver de <em>Webkit</em>...</p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-09/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 08",
			"summary": "Nouvelle implémentation des modules JavaScript dans Node.js",
			"date_published": "2019-03-27",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/08-2019-03-27/",
			"id": "web-academy-news-no-08",
			"image": "./web-academy-news-no-08/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/08-2019-03-27/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Comme je vous l'annonçais déjà la semaine dernière, la <em>pull request</em> intégrant une nouvelle implémentation des modules <em>ECMAScript</em> à <em>Node.js</em> vient d'intégrer la version <em>12</em> il y a 2 heures ; l'annonce officielle : <a href=\"https://github.com/nodejs/modules/blob/master/doc/announcement.md\">https://github.com/nodejs/modules/blob/master/doc/announcement.md</a> ; cette implémentation pourrait potentiellement aussi intégrer la version <em>11</em> dès la semaine prochaine ! le <em>tweet</em> en question : <a href=\"https://mobile.twitter.com/MylesBorins/status/1110996388127666176\">https://mobile.twitter.com/MylesBorins/status/1110996388127666176</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-08/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 07",
			"summary": "Ajout de String.prototype.matchAll à Javascript",
			"date_published": "2019-03-26",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/07-2019-03-26/",
			"id": "web-academy-news-no-07",
			"image": "./web-academy-news-no-07/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/07-2019-03-26/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Cette semaine se réunit une nouvelle fois le <em>TC39</em> :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p><code>String.prototype.matchAll</code>, une solution pour obtenir toutes les correspondances d'un expression régulière au sein d'une chaîne plus facilement, a été officiellement ajouté au langage (<a href=\"https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/matchAll\">https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/matchAll</a>)</p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Je vous informerai s'il y a d'autres gros changements cette semaine ; en attendant, vous pouvez suivre le déroulement du <em>meeting</em> ici : <a href=\"https://github.com/tc39/agendas/blob/master/2019/03.md\">https://github.com/tc39/agendas/blob/master/2019/03.md</a> et là : <a href=\"https://github.com/tc39/proposals/commits/master\">https://github.com/tc39/proposals/commits/master</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-07/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 06",
			"summary": "Sortie de Firefox 66, nouveau site web du TC39 et nouveau prototype d'implémentation des modules JavaScript dans Node.js",
			"date_published": "2019-03-23",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/06-2019-03-23/",
			"id": "web-academy-news-no-06",
			"image": "./web-academy-news-no-06/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/06-2019-03-23/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<p>Les informations de la semaine :</p>\n\t<ul>\n\t\t<li>\n\t\t\t<p>La version <em>66</em> de <em>Firefox</em> est sortie mardi avec les nouveautés suivantes :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Plusieurs propriétés logiques ont été ajoutées dont <code>{padding, margin, border, inset}-{block, inline}</code> notamment ; ces propriétés constituent une alternative à leurs versions originales <code>{padding, margin, border}-{top, right, bottom, left}</code> et <code>position</code> mais qui tiennent compte du sens d'écriture / de lecture du texte</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les mots-clés <code>min-content</code> et <code>max-content</code> ont été dé-préfixés et sont désormais supportés par un certain nombre de propriétés <em>CSS</em> ; ils constituent entre autres une meilleure alternative aux bidouilles à base de <code>display: table;</code> pour centrer des éléments de taille variable</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Mais aussi :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Désactivation du démarrage automatique de certains contenus sonores par défaut</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/66,\">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/66,</a> <a href=\"https://hacks.mozilla.org/2019/03/firefox-66-the-sound-of-silence/\">https://hacks.mozilla.org/2019/03/firefox-66-the-sound-of-silence/</a> et <a href=\"https://www.fxsitecompat.com/en-CA/versions/66/\">https://www.fxsitecompat.com/en-CA/versions/66/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Le <em>TC39</em> qui spécifie <em>ECMAScript</em> a officiellement lancé sont site <em>web</em> lundi : <a href=\"https://tc39.github.io/\">https://tc39.github.io/</a> ; vous pouvez y découvrir l'état des propositions sur le point d'intégrer le langage ; plus d'informations ici : <a href=\"https://hacks.mozilla.org/2019/03/a-homepage-for-the-javascript-specification/\">https://hacks.mozilla.org/2019/03/a-homepage-for-the-javascript-specification/</a></p>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Une <em>pull request</em> a été ouverte lundi pour intégrer une nouvelle implémentation des modules <em>ECMAScript</em> à <em>Node.js</em> à partir de la version <em>12</em> qui sort le mois prochain, et même potentiellement de la version <em>10</em> : <a href=\"https://github.com/nodejs/node/pull/26745\">https://github.com/nodejs/node/pull/26745</a> ; cette nouvelle implémentation demande toujours d'utiliser l'option <code>--experimental-modules</code> pour l'instant mais garantit une meilleure interopérabilité entre les modules <em>CommonJS</em> actuels et les modules <em>ECMAScript</em> en introduisant entre autres le champ <code>type</code> dans le fichier <code>package.json</code> et les fichiers <code>*.cjs</code> qui utilisent explicitement les modules <em>CommonJS</em> ; on attend encore l'annonce officielle qui ne devrait pas tarder</p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-06/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 05",
			"summary": "30 ans du web, sortie de Chrome 73 et création de l'OpenJS Foundation",
			"date_published": "2019-03-12",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/05-2019-03-12/",
			"id": "web-academy-news-no-05",
			"image": "./web-academy-news-no-05/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/05-2019-03-12/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<p>Sans plus tarder, les trois nouvelles du jour :</p>\n\t<ul>\n\t\t<li>\n\t\t\t<p>Le <em>Web</em> a 30 ans aujourd'hui ! (enfin ce mois-ci comme je ne suis pas sur que quelqu'un se souvienne vraiment de la date exacte !)</p>\n\t\t</li>\n\t\t<li>\n\t\t\t<p><em>Chrome</em> devrait passer en version <em>73</em> cette nuit avec les nouveautés suivantes :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><code>Object.fromEntries</code>, une des propositions ajoutées au langage il y a 6 semaines a été implémentée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>la proposition en stage 3 <code>String.prototype.matchAll</code> a été ajoutée ; il s'agit d'une nouvelle manière plus élégante et plus intuitive d'analyser des chaînes de caractères ; fini la bidouille avec <code>String.prototype.replace</code> pour récupérer les groupes capturées !</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Sans oublier :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>un mode sombre du navigateur est désormais disponible sous <em>Mac</em>, mais pas encore <em>Windows</em>, sans compter qu'il sera sans doute bientôt possible de détecter ceci via des <em>CSS</em>...</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>les <em>Progressive Web Apps</em> sont désormais supportées sous <em>Mac</em>, et peuvent donc désormais être installées sur n'importe quel système d'exploitation de bureau</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developers.google.com/web/updates/2019/03/nic73\">https://developers.google.com/web/updates/2019/03/nic73</a> et <a href=\"https://developers.google.com/web/updates/2019/01/devtools\">https://developers.google.com/web/updates/2019/01/devtools</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Autre information ; deux organisations promouvant <em>JavaScript</em> ont annoncé leur fusion aujourd'hui : la <em>Node.js Foundation</em> et la <em>JS Foundation</em> vont ainsi former l'<em>OpenJS Foundation</em> ; plus qu'à espérer que les projets qu'elles menaient jusqu'ici, comme <em>Node.js</em> ou <em>WebPack</em> vont continuer à aller de l'avant ; l'annonce en détails : <a href=\"https://foundation.nodejs.org/announcements/2019/03/12/node-js-foundation-and-js-foundation-merge-to-form-openjs-foundation\">https://foundation.nodejs.org/announcements/2019/03/12/node-js-foundation-and-js-foundation-merge-to-form-openjs-foundation</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-05/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 04",
			"summary": "Nouveau prototype d'implémentation de MathML par Igalia",
			"date_published": "2019-03-04",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/04-2019-03-04/",
			"id": "web-academy-news-no-04",
			"image": "./web-academy-news-no-04/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/04-2019-03-04/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Une information importante que j'avais ratée ; depuis plusieurs années déjà, les formules mathématiques sont supportées au sein du code <em>HTML</em> par <em>Firefox</em> et <em>WebKit</em> via le standard <em>MathML</em> ; un temps implémenté dans <em>Chromium</em> avant d'être retiré, <em>MathML</em> devrait bientôt y faire son retour, et ceci grâce au travail d'<em>Igalia</em> qui reprend désormais officiellement le projet en réalisant une toute nouvelle implémentation ; l'annonce en détails : <a href=\"https://mathml.igalia.com/news/2019/02/12/launch-of-the-project\">https://mathml.igalia.com/news/2019/02/12/launch-of-the-project</a></p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-04/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 03",
			"summary": "Nouveau livre d'Axel Rauschmayer sur les dernières nouveautés de JavaScript",
			"date_published": "2019-03-01",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/03-2019-03-01/",
			"id": "web-academy-news-no-03",
			"image": "./web-academy-news-no-03/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/03-2019-03-01/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Vous voulez apprendre les dernières fonctionnalités de <em>JavaScript</em> ? consultez le livre ultra-complet d'Axel Rauschmayer (une référence quant à la vulgarisation de ce langage) sur les deux dernières versions du langage : <a href=\"https://exploringjs.com/es2018-es2019/index.html\">https://exploringjs.com/es2018-es2019/index.html</a> ; si avez besoin d'un cours encore plus complet sur l'intégralité du langage, je vous invite à consultez les autres livres du même auteur (<a href=\"https://exploringjs.com/index.html\">https://exploringjs.com/index.html</a>) qui sont très instructifs et avec beaucoup d'exemples concrets</p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-03/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 02",
			"summary": "Reconstitution du premier navigateur web par le CERN",
			"date_published": "2019-02-18",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/02-2019-02-18/",
			"id": "web-academy-news-no-02",
			"image": "./web-academy-news-no-02/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/02-2019-02-18/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Un peu d'histoire aujourd'hui avec la reconstitution du tout premier navigateur, <em>WorldWideWeb</em>, il y a presque trente ans : <a href=\"https://worldwideweb.cern.ch/\">https://worldwideweb.cern.ch/</a> ; ça a bien évolué depuis</p>\n\t\t</li>\n\t</ul>\n</div>\n",
			"banner_image": "./web-academy-news-no-02/*.png"
		},
		{
			"title": "Bulletin de la Web Academy no 01",
			"summary": "Sortie de Firefox 65, sortie de Chrome 72 et ajout de quatre fonctionnalités à JavaScript",
			"date_published": "2019-01-29",
			"authors": [
				{
					"name": "PolariTOON"
				}
			],
			"tags": [],
			"external_url": "https://polaritoon.github.io/web-academy/news/01-2019-01-29/",
			"id": "web-academy-news-no-01",
			"image": "./web-academy-news-no-01/*.svg",
			"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/01-2019-01-29/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<p>Il est temps d'inaugurer cette série avec pour commencer, l'actualité de ce 29 janvier qui est assez considérable, avec la sortie de deux nouvelles versions de navigateurs et la tenue du <em>meeting</em> bimestriel du <em>TC39</em> :</p>\n\t<ul>\n\t\t<li>\n\t\t\t<p>Tout d'abord <em>Firefox 65</em> sort en version stable aujourd'hui ; voici un petit aperçu des changements :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développement :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>un inspecteur d'éléments <em>flex</em> a été ajouté</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>un panneau répertoriant tous les changements effectués sur les <em>CSS</em> dans l'inspecteur a été ajouté</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>la compatibilité avec les autres navigateurs augmente :</p>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<p>les propriétés <code>break-before</code>, <code>break-after</code> et <code>break-inside</code> ont été ajoutées ; <em>Firefox</em> était le dernier navigateur à ignorer ces propriétés</p>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<p>la propriété <code>-webkit-appearance</code> est dotée de nouvelles valeurs dans la perspective de standardiser la propriété</p>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<p>l'implémentation de la propriété <code>user-select</code> converge vers celle des autres navigateurs, bien que sa spécification soit toujours en débat</p>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>les variables d'environnements <code>env()</code> ont été implémentées, ce qui permet actuellement de gérer le <em>notch</em> introduit avec l'<em>IPhone X</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>la proposition en stage 3 <em><code>Intl.RelativeTimeFormat</code></em> a été ajoutée ; malheureusement <code>formatToParts</code> n'est pas encore supporté</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>la proposition en stage 3 <em><code>globalThis</code></em> visant à standardiser le nom de l'objet global (<code>window</code>, <code>self</code>, <code>global</code> selon l'environnement...) a été implémentée, le nom <code>global</code> ayant été refusé car n'étant pas compatible avec la plateforme <em>web</em> ; cependant un autre nom, <code>Global</code>, est en débat cette semaine</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Et beaucoup d'autres choses ! Pour plus d'informations, consultez les pages <a href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/65,\">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/65,</a> <a href=\"https://hacks.mozilla.org/2019/01/firefox-65-webp-flexbox-inspector-new-tooling/\">https://hacks.mozilla.org/2019/01/firefox-65-webp-flexbox-inspector-new-tooling/</a> et <a href=\"https://www.fxsitecompat.com/en-CA/versions/65/\">https://www.fxsitecompat.com/en-CA/versions/65/</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Ensuite <em>Chrome 72</em> sort également en version stable aujourd'hui ; les changements notables :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté du <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>la proposition en stage 3 <code>Intl.ListFormat</code> a été implémentée</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>les attributs de classes publics ont été implémentés conformément à la proposition en stage 3 <em>Class field declarations</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour le reste, consultez les pages <a href=\"https://developers.google.com/web/updates/2019/01/nic72\">https://developers.google.com/web/updates/2019/01/nic72</a> et <a href=\"https://developers.google.com/web/updates/2018/11/devtools\">https://developers.google.com/web/updates/2018/11/devtools</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Pour finir, le <em>TC39</em> se réunit jusqu'à jeudi pour évaluer l'avancement des propositions pour faire évoluer le langage <em>JS</em> :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>4 propositions viennent d'être ajoutées officiellement au langage :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em><code>Object.fromEntries</code></em>, constituant la méthode inverse de <code>Object.entries</code> (<a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries</a>)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em>Well-formed <code>JSON.stringify</code></em>, corrigeant la génération de <em>JSON</em> invalide selon <em>UTF-8</em> (<a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Well-formed_JSON.stringify()\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Well-formed_JSON.stringify(</a>)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em><code>String.prototype.{trimStart,trimEnd}</code></em>, standardisant les méthodes <em><code>String.prototype.{trimLeft,trimRight}</code></em> (<a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trimStart\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trimStart</a> et <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trimEnd\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trimEnd</a>)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em><code>Array.prototype.{flat,flatMap}</code></em>, marquant enfin la fin du <em>#smooshgate</em> (<a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat</a> et <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap</a>)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Si vous souhaitez suivre le développement du langage <em>JS</em>, tenez-vous au courant de l'évolution des différentes propositions sur la page <a href=\"https://github.com/tc39/proposals\">https://github.com/tc39/proposals</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t</ul>\n\t<p>Voilà j'espère que je ne vous ai pas trop noyés avec toutes ces informations. Sachez que la plateforme <em>web</em> évolue bien plus que ne pourrait le résumer cette liste, et que c'est donc une sélection assez personnelle et subjective que je vous ai concoctée. Si, par ailleurs, vous êtes à fond intéressés dans le développement <em>web</em> et tout ce qui gravite autour, n'hésitez pas à me demander ; je peux vous fournir un certain nombre de liens vers des ressources utiles.</p>\n</div>\n",
			"banner_image": "./web-academy-news-no-01/*.png"
		}
	]
}