Hier soir, en faisant le tour des nouveautés d’OS X Yosemite DP7, nous avions noté que le mode sombre améliorait la police des éléments dans la barre des menus. Nous n’avions pas noté que ce changement n’est pas réservé au mode sombre : Apple a modifié la police de la barre des menus, et le rendu est nettement différent avec la nouvelle version.
Mise à jour : Apple est revenu sur ce changement dans la DP8.
La différence est immédiatement visible, que vous ayez un écran Retina ou non. La police est plus fine, mais elle est aussi plus contrastée. Les lettres se distinguent mieux et cette nouvelle police est globalement plus lisible, du moins lorsqu’on est assez proche de l’écran. En s’éloignant, c’est un peu l’effet inverse, surtout si on active la transparence (désactivée sur la capture d’écran).
En entrant dans le détail et en zoomant au pixel près, on peut comprendre le changement. Avec la DP7, Apple a désactivé le subpixel-antialiasing (subpix-aa) pour la police utilisée dans la barre des menus. Cette technique était jusque-là utilisée pour cette police dans les précédentes bêtas d’OS X Yosemite, mais aussi dans les précédentes versions du système.
Pour comprendre de quoi il retourne, il faut penser à la conception des écrans LCD : on pourrait croire qu’ils sont composés de pixels carrés et uniformes capables de reproduire n’importe quelle couleur, mais c’est en fait plus compliqué que ça. Chaque pixel de nos écrans est composé de trois couleurs, posées verticalement côte à côte : le tiers de gauche est rouge, le tiers au centre est vert, le tiers de droite est bleu.
Quand on veut afficher une police sur ces pixels, deux solutions sont possibles. La plus simple consiste à prendre un pixel dans son ensemble et de l’activer en noir et en blanc. On a alors un rendu qui est loin d’être régulier, puisque les polices modernes ne sont pas composés qu’avec des cubes. Pour améliorer le rendu, il y a deux solutions : soit utiliser des pixels gris pour un résultat légèrement plus flou, mais qui apparaît net quand on regarde à distance (anti-aliasing), soit n’utiliser qu’une partie de chaque pixel pour s’approcher des formes originales de la police (subpix-aa).
Ce rapide point technique effectué (pour plus d’explications, cet article en anglais est très éclairant), revenons à nos polices. Avec la DP7 d’OS X Yosemite, Apple a finalement désactivé le subpixel-aa dans le menu, au profit d’un rendu plus simple, avec uniquement du noir et des niveaux de gris. Notons d’emblée que cela pourrait encore changer lors des prochaines mises à jour, d’autant qu’Apple a fait des choix inverses ailleurs. Ainsi, dans le Finder, le subpixel-aa a été généralisé. Il n’était pas présent, par exemple, dans la vue en colonne du gestionnaire de fichiers, mais c’est désormais le cas.
Pourquoi ces choix ? On peut émettre plusieurs hypothèses.
Avec les écrans Retina, la technique des sous-pixels colorés n’est plus nécessaire, puisqu’il y a beaucoup plus de pixels. On peut ainsi obtenir un excellent rendu en n’utilisant que des pixels entiers : la différence est flagrante quand on compare le même texte issu de la barre des menus sur un écran Retina (dessus) et sur un écran standard (dessous). Alors qu’il faut le fichier original pour vraiment voir la différence dans le premier cas, la différence est visible immédiatement sur un écran standard.
Les écrans Retina se généralisant, Apple va peut-être progressivement abandonner la subpix-aa. Il faut dire que cette technique n’a pas que des avantages : elle est plus complexe à mettre en place et nécessite plus de travail de la part des API graphiques. C’est tout particulièrement le cas quand le fond, derrière chaque lettre, n’est pas connu, comme c’est le cas avec OS X Yosemite. La transparence implique que le système doit calculer en temps réel le rendu des polices pour l’adapter en fonction du fond.
En désactivant cette fonction dans la barre des menus, Apple simplifie OS X, tout en offrant un meilleur rendu sur un écran Retina. Ailleurs, on imagine qu’Apple conserve le subpix-aa parce que c’est mieux avec, que sans. C’est un pis-aller, qui se remarque dans la DP7 : les barres latérales qui sont désormais transparentes adoptent cette technique, mais selon la couleur de fond, elle conduit parfois à un rendu plus mauvais.
On voit qu’Apple continue de travailler sur ces fonctions toutefois. Ainsi, dans la barre des menus, le texte est rendu sans toucher aux sous-pixels, sauf dans un cas : au niveau de la barre de sélection, le texte passe en blanc et il est légèrement plus gras, parce que la police est à nouveau dessinée en utilisant le subpix-aa.
Les choses sont beaucoup plus simples avec iOS : le subpix-aa n’existe pas du tout avec le système mobile d’Apple, toutes les polices sont toujours rendues en utilisant des pixels entiers. Cela simplifie beaucoup de choses qui seraient impossibles autrement, et notamment la possibilité de tourner l’écran à 90°, quand on passe en mode paysage. Les pixels, eux, ne s’orientent pas différemment et le rendu serait impossible, du moins en adoptant la méthode actuelle.
Source : Merci Raphael Sebbe pour ses éclairages précieux