Nous pouvons lire dans de nombreuses façons, et il existe de nombreux types de lecteurs, chacun ayant ses propres besoins, compétences, langue et, surtout, habitudes. Lire un roman à la maison est différent de le lire dans le train, tout comme lire un journal est différent de parcourir sa version en ligne. La lecture, comme toute autre activité, nécessite de la pratique pour que quelqu'un devienne rapide et efficace. Fondamentalement, nous lisons mieux les choses que nous avons l'habitude de lire le plus.
Quels aspects devons-nous prendre en considération lors de la conception et du développement pour la lecture? Comment pouvons-nous créer des expériences accessibles, confortables et inclusives pour tous les lecteurs, y compris les plus démunis et ceux qui souffrent de dyslexie?
Articles dédiés à l'accessibilité
Chez Smashing, nous pensons qu'un bon site Web est un site Web accessible, qui est accessible à tous, quelle que soit la manière dont ils naviguent sur le Web. Nous avons mis en évidence quelques-uns des nombreux articles qui, nous en sommes certains, vous aideront à créer des sites et des applications Web plus accessibles. Explorer d'autres articles →
Espaces, mots, phrases et paragraphes
Unités
Sur une page Web, de nombreuses unités sont disponibles pour nous permettre d'ajuster la taille de la police du texte. Comprendre quelle unité utiliser est essentiel pour définir la structure de toute une section de lecture. La nature redistribuable du Web nous oblige à prendre en compte plusieurs aspects, comme la taille de la fenêtre et les préférences de lecture de l'utilisateur.
Pour cette raison, les choix les plus appropriés sont généralement em et rem qui sont des unités spécifiques à la police. Par exemple, la définition des marges entre les paragraphes à l'aide de ems permet de préserver le rythme vertical lorsque la taille du texte change. Cependant, cela peut être un problème lorsqu'une police serif est alternée avec un sans-serif dans une section. En fait, à la même taille de police, les polices peuvent apparaître optiquement très différentes. Traditionnellement, la hauteur du caractère «x» minuscule (la hauteur x) est la référence pour déterminer la taille apparente d'un caractère.
En utilisant la règle font-size-adjust nous pouvons donc rendre optiquement des polices de même taille, car la propriété correspondra aux hauteurs du minuscules. Malheureusement, cette propriété est actuellement disponible uniquement dans Firefox et dans Chrome et Edge derrière un indicateur, mais elle peut être utilisée comme amélioration progressive en utilisant la vérification @support:
@supports (font-size-adjust : 1;) {
article {
ajustement de la taille de la police: 0,5;
}
}
Cela facilite également le passage de la police de secours à celle chargée à distance (par exemple, en utilisant Google Fonts).
font-size-adjust
pour rendre le swap plus confortable. ( Grand aperçu ) Hauteur de ligne optimale
Nous pensons que la typographie est en noir et blanc. La typographie est vraiment blanche […] C'est l'espace entre les noirs qui la fait vraiment.
– Massimo Vignelli, Helvetica, 2007
Parce que la typographie est plus une question de «blancs» que de «noirs», quand on applique cette notion à la conception d'un site Web ou d'une application Web, nous devons prendre en compte des fonctionnalités spéciales telles que la hauteur de ligne, les marges entre les paragraphes et les sauts de ligne.
La définition de la taille de la police en s'appuyant sur la hauteur x permet d'optimiser le hauteur de la ligne. La hauteur de ligne par défaut dans les navigateurs est 1,2 (une valeur sans unité est relative à la taille de la police), ce qui est la valeur optimale pour Times New Roman mais pas pour les autres polices. Il faut également considérer que l'interligne ne croît pas linéairement avec la taille de la police et qu'il dépend de divers facteurs comme le type du texte. En testant certaines polices courantes pour la lecture longue durée, combinées à des tailles de 8 à 14 points, nous avons pu déduire que, sur papier, le rapport entre la hauteur x et l'interligne optimal est de 37,6.
Par rapport à la lecture sur papier, la lecture à l'écran nécessite généralement plus d'espacement entre les lignes. Par conséquent, nous devons ajuster le rapport à 32 pour les environnements numériques. En CSS, cette valeur empirique peut se traduire par la règle suivante:
p {
hauteur de ligne: calc (1ex / 0,32);
}
Dans les bons contextes de lecture, cette règle définit une hauteur de ligne optimale pour les polices serif et sans-serif, même lorsque les outils typographiques ne sont pas disponibles ou lorsqu'un utilisateur a défini une police qui écrase celle choisie par le concepteur. [19659028] Définir l'échelle
Maintenant que nous avons ajusté la taille de la police et utilisé l'unité ex pour calculer la hauteur de la ligne, nous devons définir l'échelle typographique afin de régler correctement l'espacement entre les paragraphes et de fournir un bon rythme pour la lecture. Comme indiqué précédemment, l'interligne ne croît pas de manière linéaire mais varie en fonction du type de texte. Pour les titres avec une grande taille de police, par exemple, nous devrions envisager un rapport plus élevé pour la hauteur de ligne.
article h1 {
taille de la police: 2,5em;
hauteur de ligne: calc (1ex / 0.42);
marge: calc (1ex / 0,42) 0;
}
article h2 {
taille de la police: 2em;
hauteur de ligne: calc (1ex / 0.42);
marge: calc (1ex / 0,42) 0;
}
article h3 {
taille de la police: 1,75em;
hauteur de ligne: calc (1ex / 0,38);
marge: calc (1ex / 0,38) 0;
}
article h4 {
taille de la police: 1,5em;
hauteur de ligne: calc (1ex / 0,37);
marge: calc (1ex / 0,37) 0;
}
article p {
taille de la police: 1em;
hauteur de ligne: calc (1ex / 0,32);
marge: calc (1ex / 0,32) 0;
}
Espacement des lettres et des mots
Lorsque nous travaillons sur la lisibilité, nous devons également tenir compte des lecteurs qui ont des difficultés, comme ceux qui souffrent de dyslexie et de troubles d'apprentissage. La dyslexie développementale affecte la lecture, et la discussion et la recherche sur les causes sont toujours en cours. Il est important d'utiliser des études scientifiques pour comprendre les effets des variables visuelles et typographiques sur la lecture.
Par exemple, dans une étude que mon entreprise a suivie (« Testing Text Readability of Dyslexia-Friendly Fonts ] »), Il y avait une évidence claire que les formes de glyphe des polices à haute lisibilité n'aident pas vraiment la lecture, mais un espacement plus large entre les caractères ( crénage ) le fait. Cette conclusion a été confirmée par une autre étude sur l'efficacité de l'augmentation de l'espacement (« How the Visual Aspects Can Be Crucial in Reading Acquisition: The Intriguing Case of Crowding and Developmental Dyslexia »).
Ces études suggèrent que il faut exploiter le dynamisme et la réactivité des pages web en proposant des outils plus efficaces, comme des contrôles de gestion des espacements. Une technique courante pour agrandir la taille des caractères consiste à ajuster l'espacement entre les lettres et les mots à l'aide de propriétés CSS telles que letter-spacing
et word-spacing
.
See the Pen [Letter and word spacing] (https://codepen.io/smashingmag/pen/KKVbOoE) par Edoardo Cavazza .
Le problème avec ceci est que letter-spacing
agit de manière inconditionnelle et rompt le crénage de la police, amenant la page à afficher des espaces non optimaux.
Alternativement, nous pouvons utiliser des polices variables pour mieux contrôler le rendu des polices. Les concepteurs de polices peuvent paramétrer l'espacement de manière variable et non linéaire et peuvent déterminer comment le poids et la forme d'un glyphe peuvent mieux s'adapter aux habitudes du lecteur. Dans l'exemple suivant, en utilisant la police Amstelvar nous pouvons augmenter la taille optique ainsi que l'espacement et le contraste, comme prévu par le concepteur.
See the Pen [The optical size in variable fonts] (https: / /codepen.io/smashingmag/pen/VweqoRM) par Edoardo Cavazza .
Largeur et alignement
Pour optimiser le flux de lecture, nous devons également travailler sur la largeur du paragraphe, qui est le nombre de caractères et espaces sur une ligne. Lors de la lecture, notre œil se concentre sur environ huit lettres dans une foveatio (c'est-à-dire l'opération qui est activée lorsque nous regardons un objet), et il ne peut traiter qu'un ] quelques répétitions consécutives . Par conséquent, les sauts de ligne sont cruciaux: le moment de déplacer le focus de la fin d'une ligne au début de la suivante est l'une des opérations les plus complexes de lecture et doit être facilitée en gardant le bon nombre de caractères par type de texte. Pour un paragraphe de base, une longueur commune est d'environ 60 à 70 caractères par ligne. Cette valeur peut être facilement définie avec l'unité ch en attribuant une largeur au paragraphe:
p {
largeur: 60ch;
largeur max: 100%;
}
La justification joue également un rôle important dans la lecture à travers les lignes. La prise en charge de la césure pour les langues n'est pas toujours optimale dans les différents navigateurs; par conséquent, il doit être vérifié. Dans tous les cas, évitez le texte justifié en l'absence de césure car l'espacement horizontal qui serait créé serait un obstacle à la lecture.
/ * Le navigateur prend correctement en charge la césure * /
p [lang=”en”] {
text-align: justifier;
traits d'union: auto;
}
/ * Le navigateur ne prend PAS correctement en charge la césure * /
p [lang=”it”] {
text-align: gauche;
tirets: aucun;
}
La césure manuelle peut être utilisée pour les langues qui n'ont pas de support natif. Il existe plusieurs algorithmes (côté serveur et côté client) qui peuvent injecter l'entité & hyphen;
dans des mots, pour indiquer aux navigateurs où le jeton peut être brisé. Ce caractère serait invisible, à moins qu'il ne soit situé à la fin de la ligne, après quoi il serait rendu comme un trait d'union. Pour activer ce comportement, nous devons définir la règle traits d'union: CSS manuel
Contraste de premier plan
Le contraste des caractères et des mots avec l'arrière-plan est fondamental pour la lisibilité. Le WCAG a défini des lignes directrices et des contraintes pour différentes normes (A, AA, AAA) régissant le contraste entre le texte et l'arrière-plan. Le contraste peut être calculé avec différents outils, à la fois pour les environnements de conception et de développement. Gardez à l'esprit que les validateurs automatisés sont des outils d'assistance et ne garantissent pas la même qualité qu'un test réel.
En utilisant des variables CSS et une instruction calc
nous pouvons calculer dynamiquement le couleur qui offre le meilleur contraste avec l'arrière-plan. De cette façon, nous pouvons offrir à l'utilisateur différents types de contraste (sépia, gris clair, mode nuit, etc.), en convertissant l'ensemble du thème en fonction de la couleur de fond.
article {
- rouge: 230;
- vert: 230;
- bleu: 230;
--aa-luminosité: (
(var (- rouge) * 299) +
(var (- vert) * 587) +
(var (- bleu) * 114)
) / 1000;
--aa-color: calc ((var (- aa-luminosité) - 128) * -1000);
arrière-plan: rgb (var (- rouge), var (- vert), var (- bleu));
couleur: rgb (var (- aa-couleur), var (- aa-couleur), var (- aa-couleur));
}
Voir le stylo [Automatic text contrast] (https://codepen.io/smashingmag/pen/zYrygyr) par Edoardo Cavazza .
De plus, avec l'introduction et la prise en charge multi-navigateurs de la requête média prefer-color-scheme
il devient encore plus facile de gérer le passage de la lumière à thème sombre, selon les préférences de l'utilisateur .
@media (prefers-color-scheme: dark) {
article {
- rouge: 30;
- vert: 30;
- bleu: 30;
}
}
Aller de l'avant
Concevoir et développer pour une lecture optimale nécessitent beaucoup de connaissances et le travail de nombreux professionnels. Plus ces connaissances sont réparties dans l'équipe, meilleurs seront les utilisateurs. Voici quelques points pour nous conduire à de bons résultats.
For Designers
- Considérez la structure sémantique comme faisant partie du projet, plutôt que comme un détail technique;
- Mise en page du document et métriques de police, en particulier le pourquoi et le comment de vos choix. Ils aideront les développeurs à implémenter correctement le design;
- Réduisez autant que possible les variables typographiques (moins de familles, de styles et de variantes).
For Developers
- Apprenez les principes de la typographie afin de comprendre les décisions de conception et comment les implémenter;
- Utilisez des unités relatives à la taille de la police pour implémenter des mises en page réactives (rembourrages, marges, espaces) qui s'adaptent aux préférences de l'utilisateur;
- Évitez de manipuler sans restriction les métriques de police. La lisibilité peut souffrir lorsque les contraintes de police ne sont pas respectées.
For Teams
- Lisez et comprenez les principes du WCAG;
- Envisagez l'inclusion et l'accessibilité comme faisant partie du projet (plutôt que des problèmes séparés).
Reading est une activité complexe. Malgré les nombreuses ressources sur la typographie Web et les articles académiques qui identifient les domaines à améliorer, il n'existe pas de recette magique pour obtenir une bonne lisibilité. Le nombre de variables à considérer peut sembler écrasant, mais beaucoup d'entre elles sont gérables.
Nous pouvons définir la hauteur de ligne optimale d'un paragraphe en utilisant l'unité ex
ainsi que définir la largeur d'un paragraphe en utilisant la ch
afin de respecter les paramètres de navigateur préférés de l'utilisateur pour la taille et la famille de la police. Nous pouvons utiliser des polices variables pour ajuster l'espacement entre les lettres et les mots, et nous pouvons manipuler le tracé des glyphes pour augmenter le contraste, aidant ainsi les lecteurs malvoyants et dyslexiques. Nous pouvons même ajuster automatiquement le contraste du texte à l’aide de variables CSS, donnant à l’utilisateur son thème préféré.
Tous ces éléments nous aident à créer une page Web dynamique dont la lisibilité est optimisée en fonction des besoins et des préférences de l’utilisateur. Enfin, étant donné que chaque petite implémentation ou détail technologique peut faire une énorme différence, il est toujours essentiel de tester les performances de lecture des utilisateurs en utilisant l'artefact final.
Related Resources
Source link