Le rendu de texte sous Safari

Si l’on considère que le web design, c’est à 95% de la typographie (et c’est sans doute grandement vrai), le moteur de rendu du texte d’un navigateur devient un élément primordial dans le choix de ce dernier. Dans les navigateurs les plus répandus, il en existe un qui se démarque particulièrement dans ce domaine : Safari (que ce soit sous Windows ou Mac).

Un lissage confortable…

Le lissage des polices sous Safari est très accentué. Le confort de lecture qui en résulte est agréable pour la plupart des sites web. On arrive facilement à confondre le texte HTML avec le texte des images. Ce lissage est particulièrement intéressant pour les polices à empattement (comme celle de mon blog).

… qui a ses défauts

Le texte est plus « joli » sous Safari, mais peut facilement devenir un problème.

Du côté de l’internaute, le texte de faible taille peut paraître très « baveux », à cause du manque de précision qu’offre le lissage. Je l’ai par exemple remarqué sur ma sidebar.

firefox-safari-textrender

Du côté du web designer, il arrive d’avoir des problèmes liés à ce lissage de police qui agrandit la taille de cette dernière. Il m’est arrivé par exemple qu’un menu horizontal se retrouve « explosé » sous Safari parce que le texte manquait d’espace. J’ai monté une page pour illustrer ce problème.

firefox-safari-textrender-menu

Comment régler ce problème ?

Il serait trop bête de réduire la taille du texte (ou de modifier l’espacement des mots) sous prétexte qu’il ne marche pas sous un seul navigateur, en l’occurence Safari. Alors comme pour IE6 dans ces cas là, il est possible d’utiliser un hack (bien moche je vous l’accorde) que j’ai trouvé chez giantisland pour établir une CSS personnalisée pour Safari et Chrome (oui, parce que le hack joue sur les navigateurs utilisant WebKit).

#nav li a{
[padding:2px 11px;
padding:2px 7px;
]padding:2px 11px;
}

En gros :

  • la première ligne est pour les vieux Firefox et Netscape
  • la seconde ligne est pour Chrome et Safari
  • la troisième ligne est pour IE7

Ces trois lignes doivent suivre la définition normale de la CSS. Pour plus d’informations, allez voir la source du hack.

Et voici le résultat corrigé :

firefox-safari-textrender-corrected

6 commentaires

  1. Pulupulu


    c’est bon à savoir !
    est-ce qu’il est possible d’empêcher le lissage des polices, sinon?

    à part ça, très joli ton nouveau design (mais on a du mal à lire design, on lit presque desian) mais bon je chipote !

  2. Pulupulu


    Merci pour ce hack !
    il vient de me sauver la vie :3

    Enfin j’exagère un peu mais bon ! Bien pratique quand même 🙂

  3. awaxis


    Safari 4 (beta) abandonne le lissage pour redevenir comme IE et Firefox…

  4. Cécile


    Merci , c’est simple et efficace 😉

  5. Pierre Alan


    @awaxis
    Safari 4 n’abandonne rien du tout, il faut juste aller dans les préférences, puis Aspect, puis Lissage des polices.
    Si non, sur Mac, bah toujours activé puisqu’ici ça dépend de l’OS.

  6. Alex


    j’ai exactement le même problème sur un menu horizontal… Le dernier onglet (contact) disparait sous Mac, alors qu’il s’affiche bien ailleurs. J’ai testé le site sous Safari (pc) et l’onglet est bien là.
    Le site est valide W3C.
    y a-t-il une ligne à ajouter sur la page HTML, ou seulement dans le css externe ?