HTeuMeuLeu

Dites bonjour à caniemail.com

En mars dernier, j’ai publié des idées pour Can I email, un site similaire à caniuse.com dédié au support dans les clients mails.

Aujourd’hui, à peine six mois après, je suis heureux et fier d’annoncer qu’avec l’aide de mes collègues et des membres de la communauté #emailgeeks, nous lançons officiellement caniemail.com.

Pour l’instant, nous avons plus de 50 fonctionnalités HTML et CSS testées sur 25 clients mails. Et on a plein de choses en réserve à venir dans les prochains mois.

Je suis aussi enchanté de pouvoir vous présenter le « tableau des scores » des clients mails. Pour la première fois, on peut voir un classement objectif des clients mails basés sur leur support de fonctionnalités HTML et CSS. J’espère que cela placera une nouvelle barre pour toute l’industrie et encouragera les moins bons élèves à s’améliorer.

Le site est fait par et pour la communauté des #emailgeeks. Toutes les données présentées sont disponibles sur GitHub de manière à ce que n’importe qui puisse les mettre à jour, les enrichir ou les contester. Vous pouvez jeter un oeil à notre guide de contribution. Et n’hésitez pas à me poser la moindre question si vous en avez.

J’espère que le site vous plaira et que vous y contribuerez de quelque manière que ce soit.

Aujourd’hui j’ai découvert la propriété mso-generic-font-family…

Et j’ai résolu un mystère d’Outlook vieux de douze ans au passage.

Ce matin, je faisais des tests dans Outlook sur les styles supportés dans les listes HTML. Et mon attention s’est vite détournée sur quelque chose qui n’a rien à voir. En utilisant le site What does it paste pour la première fois pour récupérer le code généré par Outlook et son moteur de rendu de Word, le <head> de l’e-mail contenait le code suivant :

<style> <!-- /* Font Definitions */
@font-face {
	font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-536859905 -1073732485 9 0 511 0;
}
</style>

@font-face ? Dans Outlook ? Qu’est-ce que cette diablerie ?

Si vous êtes habitués aux polices web dans les e-mails, vous savez surement qu’il y a un bug notable dans les Outlook (2007, 2010, 2013 and 2016) sur Windows. À chaque fois que vous importez une police web en utilisant une déclaration @font-face, Outlook l’ignore (comme on pourrait s’y attendre). Mais Outlook ignore alors aussi les polices alternatives définies dans vos styles, forçant tous les textes utilisant cette police web en Times New Roman. Prenez l’exemple suivant :

<!doctype html>
<html>
<head>
	<title>mso-generic-font-family</title>
	<link href="https://fonts.googleapis.com/css?family=Pacifico" rel="stylesheet" type="text/css" />
</head>
<body>
	<p style="font-family:Pacifico, sans-serif;">
		This is a text set in the <strong>Pacifico</strong> font.
	</p>
</body>
</html>

Outlook va irrémédiablement afficher ce texte en Times New Roman, ignorant l’alternative sans-serif définie dans la propriété font-family.

Captures d’écrans sur Email on Acid montrant le texte en Times New Roman sur Outlook 2016.

Plein de solutions ont été trouvées au fil des années pour éviter ce bug, de l’utilisation d’!important en ligne à la déclaration de la police à l’intérieur d’une media query. Ma solution préférée a toujours été de cacher l’appel à la police web aux yeux d’Outlook en utilisant un commentaire conditionnel comme dans l’exemple suivant.

<!--[if !mso]><!-- -->
<link href="https://fonts.googleapis.com/css?family=Pacifico" rel="stylesheet" type="text/css" />
<!--<![endif]-->

J’ai toujours trouvé ce comportement de Outlook bizarre (même pour Outlook, c’est dire). Mais cette solution fonctionnait suffisamment bien pour que je ne cherche jamais à creuser davantage. Et qui plus est, ce bug a été corrigé dans la dernière version d’Outlook (2019). L’affaire était donc classée pour moi. En tout cas c’est ce que je croyais.

Quand j’ai vu cette déclaration @font-face ajoutée par Outlook ce matin, je savais que j’étais tombé sur quelque chose. La ligne suivante, en particulier, a retenu mon attention :

mso-generic-font-family:swiss;

Je n’avais jamais entendu parlé de cette propriété. Mais le nom sonne vraiment comme quelque chose qui pourrait avoir un lien avec le comportement d’Outlook et des polices web.

J’ai donc repris mon premier exemple de test, j’ai déclaré ma police web dans une balise <style>, et j’ai ajouté cette propriété mso-generic-font-family.

<!doctype html>
<html>
<head>
	<title>mso-generic-font-family</title>
	<style>
		@font-face {
			font-family: 'Pacifico';
			font-style: normal;
			font-weight: 400;
			src: local('Pacifico Regular'), local('Pacifico-Regular'), url(https://www.caniemail.com/tests/assets/fonts/			pacifico-regular.woff2) format('woff2');
			mso-generic-font-family:swiss;
		}
	</style>
</head>
<body>
	<p style="font-family:Pacifico, sans-serif;">
		This is a text set in the <strong>Pacifico</strong> font.
	</p>
</body>
</html>

Et voilà !

Captures d’écrans sur Email on Acid montrant le texte en Arial sur Outlook 2016.

La propriété mso-generic-font-family accepte les valeurs suivantes :

  • decorative
  • modern
  • roman (correspondant à du serif)
  • script
  • swiss (correspondant à du sans-serif)
  • auto (correspondant à roman par défaut)

Ça explique tout. Outlook supporte bel et bien la déclaration @font-face (mais ne charge pas les polices distantes). Et parce qu’Outlook ne peut pas afficher pas cette police, il va chercher à se replier sur la valeur attendue de la propriété mso-generic-font-family. Et parce qu’elle n’est pas définie, on tombe sur sa valeur par défaut auto qui correspond à la famille roman, elle-même correspondant à du Times New Roman.

Affaire classée.

En creusant un peu plus à travers le code généré par Outlook et en lisant la documentation du HTML dans Outlook et Microsoft Office, je suis tombé sur une autre propriété nommée mso-font-alt. Cette propriété permet d’affiner encore un peu plus la police alternative dans Outlook en y attribuant le nom d’une autre police. En ajoutant les lignes suivantes à notre déclaration @font-face, Outlook va d’abord chercher à appliquer la police définie dans la propriété mso-font-alt (si elle est installée sur la machine) ou sinon appliquer la famille définie dans la propriété mso-generic-font-family.

mso-generic-font-family: swiss;
mso-font-alt: "Century Gothic";

J’espère que vous avez apprécié cette lecture autant que j’ai aimé faire ces recherches. Je me demande quand même s’il n’y aurait pas encore autre chose à creuser avec @font-face dans Outlook. N’y aurait-il pas moyen de charger des polices distantes ? Faites moi signe si vous trouvez quelque chose à ce sujet.

How To Target Email Clients

« Comment cibler les clients mails » est un site mis en place par Dylan Smith avec une liste d’exemples fournie par Mark Robbins pour cibler les clients mails spécifiquement.

Gmail compte 1,5 milliards d’utilisateurs

Vu le mois dernier :

1,5 milliards de personnes utilisent Gmail chaque mois, et 5 millions d’entreprises payent pour utiliser Gmail au travail au sein de G Suite.

En 2016, c’était 1 milliard.
En 2012, c’était 425 millions.

Garfield Mail

Vu sur Twitter :

Aujourd’hui j’ai appris qu’avant Google, G-Mail était un service gratuit du site de Garfield pour des « emails with cattitude ».

Je découvre aussi et ça me fait bien rire. Comme indiqué dans le tweet, le site est toujours visible sur Archive.org.

Comment Gmail a arrêté de supporter les animations CSS

Le saviez-vous ? Jusqu’à il n’y a pas si longtemps, Gmail supportait les animations CSS. Enfin, en quelque sorte. Jusqu’en juin 2016, la version desktop du webmail de Gmail supportait les déclarations @keyframes en CSS. Vous pouviez donc déclarer l’animation suivante dans une balise <style> dans le <head> de votre e‑mail, et Gmail la gardait telle quelle.

@keyframes foo {
    from { background:red; }
    to { background:black; }
}

Lire la suite

L’accessibilité des e‑mails par l’exemple

On parle de plus en plus d’accessibilité dans les e‑mails ces dernières années, et c’est une très bonne chose. Mais je tombe toujours régulièrement sur plein d’e‑mails peu accessibles. En donnant des formations ou des conférences, je me suis rendu compte que montrer, et pas seulement expliquer, la différence que peut faire un e‑mail accessible était un excellent moyen pour sensibiliser des gens au sujet. Voici quatre conseils pour améliorer l’accessibilité dans l’intégration d’e‑mails, illustrés par des vidéos.

1. Toujours préciser l’attribut alt.

L’attribut alt de l’élément img est obligatoire depuis HTML 4. Cela signifie que chaque image d’un e‑mail doit avoir un attribut alt, même si celui-ci est vide (alt="").

Lire la suite

Outlook.com supporte désormais les images de fond en CSS

La nouvelle, rapportée par Justin Khoo chez Email on Acid, est aussi géniale qu’inattendue. Le webmail Outlook.com supporte désormais les images de fond en CSS. Cela inclut la propriété background, mais aussi ses déclinaisons background-image, background-repeat, background-size, background-position, background-color, background-origin, background-attachment. Et même (d’après mes tests) background-blend-mode.

Jusqu’à présent, la seule façon d’inclure des images de fond dans Outlook.com était via l’attribut background en HTML. Ça avait l’inconvénient d’obligatoirement répéter une image de fond et de ne pas pouvoir en choisir le positionnement ni la taille. Mais surtout de devoir être utilisé sur une <table> ou un <td>. Cette mise à jour de Microsoft (peut-être la plus importante d’un point de vue CSS depuis l’existence d’Outlook.com) est donc un pas dans la bonne direction, retirant une des dernières raisons d’utiliser des tableaux de mise en page dans les e-mails.

Corriger les problèmes de mises à l’échelle de Outlook (120 dpi)

Courtney Fantinato a donné une excellente conférence sur les problèmes de mises à l’échelle d’Outlook. (C’est ce qu’on retrouve communément dans Email on Acid ou Litmus sous l’appelation « Outlook 120 dpi »). Elle vient d’en faire un article très clair et didactique. En résumé, pour corriger les problèmes liés à des niveaux de mises à l’échelle personnalisés dans les Outlook sur Windows, il faut :

  1. Ajouter l’espace de nom de Microsoft Office sur la balise <html> : <html xmlns:o="urn:schemas-microsoft-com:office:office">.
  2. Ajouter la balise de définition des PixelsPerInch pour les images.
    <!--[if mso]>
    <xml>
      <o:OfficeDocumentSettings>
      <o:AllowPNG/>
      <o:PixelsPerInch>96</o:PixelsPerInch>
      </o:OfficeDocumentSettings>
    </xml>
    <![endif]-->
  3. Utiliser des dimensions en pixels en CSS plutôt que via des attributs HTML. (Par exemple, privilégier <table style="width:600px;"> plutôt que <table width="600">.)

 

Les images de fond et l’application e-mail de Samsung

Excellente trouvaille par Courtney Fantinato : l’application e-mail de Samsung sur Android n’affiche les images de fond si et uniquement si on écrit l’adresse de l’image entourée de guillemets simples. Des guillemets doubles ou pas de guillemet du tout ne fonctionneront pas.

background-image: url('background.jpg');