{
	"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": "./*.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": "./*.png"
}