Hello,
Une petite réflexion sur la gestion de la taille du texte et la lisibilité.
Les tailles relatives
La sagesse commune sur Alsacréations et ailleurs dit que la taille du texte devrait être gérée avec des unités relatives: pourcentages ou EM. Cette solution, dans l'absolu, implique qu'on ne cherche pas à obtenir une dimension précise en pixels ou centimètres ou autre unité, mais qu'on utilise des ratios d'aspect relatifs à une taille de texte de base.
Dans la pratique, tous les navigateurs ont une taille de texte par défaut configurée à 16px. De plus, certains navigateurs pratiquent des arrondis au pixel, de sorte qu'un ratio équivalent à 11,47px peut donner du 11px dans un navigateur, du 12px dans un autre, et du 11,5px dans un troisième (Firefox sous Linux ou Mac, peut-être aussi sous Vista...).
Conséquence: on travaille avec le pixel comme référence. On calcule des font-size en EM assez savants pour tomber sur une nombre entier de pixels, et éviter les surprises avec les arrondis. Une méthode classique pour cela est celle proposée par Richard Rutter: donner un font-size de 0.625em (ou 62,.5%) à body, pour avoir une taille du texte de 10px à la base, et utiliser des 1.1em pour du 11px, 1.3em pour du 13px, etc.
L'accessibilité est sauve car l'utilisateur peut toujours définir une taille de texte par défaut autre que 16px, et parce qu'éviter l'unité px permet de ne pas bloquer le redimensionnement du texte dans Internet Explorer. Mais la situation est loin d'être idéale.
Le pixel, ennemi de la lisibilité
Le problème des pixels, c'est qu'ils ont une taille différente d'un écran à l'autre, et d'une configuration à l'autre. Entre deux couples écran/configuration, on peut avoir une différence allant du simple au triple (en restant raisonnable).
La taille réelle («physique») du pixel, c'est la résolution. Pour un écran, elle est généralement exprimée en points par pouce (au sujet des points: il s'agit ici de pixels, pas de points typographiques). Concrètement, une résolution de 100PPP signifie qu'un pixel aura une taille de 0,254mm; une résolution de 72PPP signifie qu'un pixel aura une taille de 0,353mm.
Mettons (un peu au pif) que les résolutions d'écran varient, suivant les matériels et configurations réellement utilisées, entre 60PPP et 180PPP. Prenons un texte en 13px (que l'on obtienne ces 13px directement ou en passant par des EM ou pourcentages), une taille de texte considérée comme très confortable sur écran, voire un peu grande. Avec nos deux extrêmes, la taille réelle du texte va varier entre 5.5mm et 1.83mm. (Je n'ai pas de données précises, mais je dirais qu'en dessous de 3mm un texte devient difficilement lisible.)
Le webdesigner qui travaille sur un écran avec une résolution de 120PPP va créer un design efficace en utilisant du 12px pour le corps de texte principal et du 11px pour certains textes périphériques ou accessoires. L'utilisateur sur son portable 13 pouces avec une résolution proche de 160PPP aura plus de difficulté à lire le texte, et le design ne sera plus efficace pour cet utilisateur. L'utilisateur sur son 17 pouces avec une résolution proche de 80PPP va trouver la taille du texte un peu excessive, mais au moins il pourra lire le texte sans se niquer les yeux.
Les solutions
Je vois deux solutions:
1. Les tailles de texte sont exprimées dans une unité relative, indexée sur une taille de texte par défaut gérée par le système.
2. Les tailles de texte sont exprimées dans une unité absolue, c'est à dire: millimètres, points, pica, etc.
La première solution est déjà largement utilisée en CSS, mais pose le problème déjà évoqué: les navigateurs utilisent une taille par défaut figée, qui ne dépend pas de la résolution de l'écran ou même simplement de la configuration du système.
La deuxième solution est séduisante, mais il faut que les navigateurs puissent l'implémenter. Pour cela, il faut que le navigateur sache quelle est la résolution de l'écran. Problème: certains systèmes d'exploitation communiquent une résolution d'écran fictive: 72PPP pour OSX, et 96PPP pour Windows. Dans mon expérience, il n'y a que sous Linux que la bonne résolution est communiquée. Mais la question mériterait d'être creusée.
Si le système communique la bonne information (ou l'exploite si l'affichage du texte est géré par un composant système), cela permettrait de spécifier des tailles de texte en points. On retombe par contre sur le problème suivant: cela écrase les préférences de l'utilisateur (taille de texte par défaut dans le navigateur).
L'idéal serait d'avoir une combinaison de ces solutions:
1. Utiliser la taille du texte par défaut du navigateur (donc exploiter les EM et %).
2. Le navigateur devrait utiliser une taille de texte par défaut en points, et pas en pixels.
Cette combinaison implique deux choses: 1) que les navigateurs se détachent de la convention «taille de texte par défaut = 16px», et 2) que la résolution réelle d'un écran pour une configuration donnée soit toujours connue.
C'est pas gagné.
Une petite réflexion sur la gestion de la taille du texte et la lisibilité.
Les tailles relatives
La sagesse commune sur Alsacréations et ailleurs dit que la taille du texte devrait être gérée avec des unités relatives: pourcentages ou EM. Cette solution, dans l'absolu, implique qu'on ne cherche pas à obtenir une dimension précise en pixels ou centimètres ou autre unité, mais qu'on utilise des ratios d'aspect relatifs à une taille de texte de base.
Dans la pratique, tous les navigateurs ont une taille de texte par défaut configurée à 16px. De plus, certains navigateurs pratiquent des arrondis au pixel, de sorte qu'un ratio équivalent à 11,47px peut donner du 11px dans un navigateur, du 12px dans un autre, et du 11,5px dans un troisième (Firefox sous Linux ou Mac, peut-être aussi sous Vista...).
Conséquence: on travaille avec le pixel comme référence. On calcule des font-size en EM assez savants pour tomber sur une nombre entier de pixels, et éviter les surprises avec les arrondis. Une méthode classique pour cela est celle proposée par Richard Rutter: donner un font-size de 0.625em (ou 62,.5%) à body, pour avoir une taille du texte de 10px à la base, et utiliser des 1.1em pour du 11px, 1.3em pour du 13px, etc.
L'accessibilité est sauve car l'utilisateur peut toujours définir une taille de texte par défaut autre que 16px, et parce qu'éviter l'unité px permet de ne pas bloquer le redimensionnement du texte dans Internet Explorer. Mais la situation est loin d'être idéale.
Le pixel, ennemi de la lisibilité
Le problème des pixels, c'est qu'ils ont une taille différente d'un écran à l'autre, et d'une configuration à l'autre. Entre deux couples écran/configuration, on peut avoir une différence allant du simple au triple (en restant raisonnable).
La taille réelle («physique») du pixel, c'est la résolution. Pour un écran, elle est généralement exprimée en points par pouce (au sujet des points: il s'agit ici de pixels, pas de points typographiques). Concrètement, une résolution de 100PPP signifie qu'un pixel aura une taille de 0,254mm; une résolution de 72PPP signifie qu'un pixel aura une taille de 0,353mm.
Mettons (un peu au pif) que les résolutions d'écran varient, suivant les matériels et configurations réellement utilisées, entre 60PPP et 180PPP. Prenons un texte en 13px (que l'on obtienne ces 13px directement ou en passant par des EM ou pourcentages), une taille de texte considérée comme très confortable sur écran, voire un peu grande. Avec nos deux extrêmes, la taille réelle du texte va varier entre 5.5mm et 1.83mm. (Je n'ai pas de données précises, mais je dirais qu'en dessous de 3mm un texte devient difficilement lisible.)
Le webdesigner qui travaille sur un écran avec une résolution de 120PPP va créer un design efficace en utilisant du 12px pour le corps de texte principal et du 11px pour certains textes périphériques ou accessoires. L'utilisateur sur son portable 13 pouces avec une résolution proche de 160PPP aura plus de difficulté à lire le texte, et le design ne sera plus efficace pour cet utilisateur. L'utilisateur sur son 17 pouces avec une résolution proche de 80PPP va trouver la taille du texte un peu excessive, mais au moins il pourra lire le texte sans se niquer les yeux.
Les solutions
Je vois deux solutions:
1. Les tailles de texte sont exprimées dans une unité relative, indexée sur une taille de texte par défaut gérée par le système.
2. Les tailles de texte sont exprimées dans une unité absolue, c'est à dire: millimètres, points, pica, etc.
La première solution est déjà largement utilisée en CSS, mais pose le problème déjà évoqué: les navigateurs utilisent une taille par défaut figée, qui ne dépend pas de la résolution de l'écran ou même simplement de la configuration du système.
La deuxième solution est séduisante, mais il faut que les navigateurs puissent l'implémenter. Pour cela, il faut que le navigateur sache quelle est la résolution de l'écran. Problème: certains systèmes d'exploitation communiquent une résolution d'écran fictive: 72PPP pour OSX, et 96PPP pour Windows. Dans mon expérience, il n'y a que sous Linux que la bonne résolution est communiquée. Mais la question mériterait d'être creusée.
Si le système communique la bonne information (ou l'exploite si l'affichage du texte est géré par un composant système), cela permettrait de spécifier des tailles de texte en points. On retombe par contre sur le problème suivant: cela écrase les préférences de l'utilisateur (taille de texte par défaut dans le navigateur).
L'idéal serait d'avoir une combinaison de ces solutions:
1. Utiliser la taille du texte par défaut du navigateur (donc exploiter les EM et %).
2. Le navigateur devrait utiliser une taille de texte par défaut en points, et pas en pixels.
Cette combinaison implique deux choses: 1) que les navigateurs se détachent de la convention «taille de texte par défaut = 16px», et 2) que la résolution réelle d'un écran pour une configuration donnée soit toujours connue.
C'est pas gagné.