Un guide complet des composants frontaux accessibles
Dans une nouvelle courte série d'articles, nous mettons en évidence certains des outils et techniques utiles pour les développeurs et les concepteurs. Récemment, nous avons couvert Outils d'audit CSS et Générateurs CSS et cette fois nous nous intéressons aux composants fiables et accessibles: des onglets et tableaux aux bascules et info-bulles.
Table des matières [19659003] Vous trouverez ci-dessous une liste alphabétique de tous les composants accessibles. Ignorez la table des matières ou faites simplement défiler vers le bas pour les explorer un par un.
Modals accessibles
Vous pourriez avoir un simple modal ou superposition sur la page, peut-être pour confirmer l'entrée du client , ou pour afficher quelques photos dans une galerie, ou simplement pour confirmer les préférences de l'utilisateur. Dans tous ces cas, construire un modal accessible se révélera être une véritable aventure, également connu sous le nom de focus trap .
Comme l'explique en détail Eric Bailey vous besoin d'identifier les limites du contenu piégé, y compris le premier et le dernier élément focalisable, puis supprimer tout ce qui ne s'y trouve pas, déplacer le focus dans le contenu piégé, écouter les événements qui échappent à la limite, restaurer l'état précédent et reculer le focus à l'élément interactif qui a déclenché le contenu piégé.
Les modaux accessibles ne sont pas faciles à créer. Eric Bailey explique en détail son fonctionnement. ( Grand aperçu )
Pour le moment, nous pouvons examiner les a11y-dialog un script léger (1,6 Ko) qui piège et restaure la mise au point, bascule les attributs aria - * ferme la boîte de dialogue au clic de superposition et à l'échappement et vous permet même d'exploiter le élément de dialogue si vous le souhaitez. Une nouvelle version 7 est actuellement en version bêta (mais devrait être publiée prochainement), et vous pouvez également utiliser ses saveurs React et Vue.js: react-a11y-dialog et vue-a11y-dialog .
De plus, vous pouvez également consulter Parvus une lightbox d'images open source simple, accessible et sans dépendances. Dans un scénario typique, nous aurions une image liée à une version plus grande de l'image. Avec Parvus ,, il suffit d'ajouter une classe .lightbox au lien entourant une image, et le script fait tout le reste pour vous automatiquement.
Onglets accessibles
Votre interface utilise peut-être tab panneaux, mais pour garder le contenu de ces onglets accessible aux utilisateurs de clavier et lecteurs d'écran, nous avons besoin d'une exposition très attentive et délibérée de la conception visuelle et de la sémantique ARIA. Dans Interfaces à onglets Heydon Pickering entre dans les détails en essayant de trouver la bonne solution pour respecter le comportement du clavier et la gestion de la mise au point. Il suggère d'améliorer progressivement les sections en panneaux d'onglets ( exemple de code ) (merci à Daniela Kubesch pour l'astuce!).
Montre comment un utilisateur peut choisir un nouvel onglet avec les touches fléchées ou appuyez sur tab pour entrer dans le panneau d'onglets et mettre en évidence un lien ( Grand aperçu ) [19659009] Comme le note Adam Silver, les utilisateurs de lecteurs d'écran qui sont moins avertis peuvent ne pas savoir comment utiliser les touches fléchées pour changer d'onglet. Il y a un argument pour rendre tous les onglets focalisables dans la séquence d'onglets normale avec peu d'intervention de la part des développeurs pour changer le fonctionnement des onglets via le clavier.
Alternativement, TabPanelWidget est un responsive et solution accessible pour les onglets. Il repose sur un vieux HTML sémantique, et se transforme en accordéon chaque fois que les onglets ne peuvent pas tenir entièrement (grâce à ResizeObserver mais il existe un polyfill pour les navigateurs qui ne le supporte pas encore).
Le script n'est pas seulement une solution sémantique et accessible, mais aussi une solution réactive et polyvalente pour vous aider à créer des widgets Tabpanel et accordéon pour la toile. Il est compatible avec le clavier et disponible en tant que bibliothèque JS vanilla (ou en tant que widget pour Vue, React et Angular).
Interrupteurs à bascule accessibles
Chaque fois que nos formulaires fournissent une sélection binaire à nos clients – marche / arrêt, mode sombre / clair, etc. – nous pourrions utiliser un interrupteur à bascule. Le commutateur doit servir à plusieurs fins: il doit expliquer clairement la sélection actuelle (et c'est clair pas si souvent du tout!), Il doit expliquer qu'il existe deux options, et il doit être suffisamment évident pour que les clients puissent comprendre comment basculer entre eux. Lorsque Sara Soueidan cherchait à créer un interrupteur à bascule, elle a bien sûr passé beaucoup de temps à chercher comment créer un interrupteur à bascule accessible .
Le personnalisateur de thème de l'application Medium est un simple panneau contextuel qui comprend un simple commutateur pour passer du mode clair au mode sombre et vice versa. D'après l'article de Sara. ( Grand aperçu )
La solution de Sara utilise deux boutons radio, chacun avec sa propre étiquette, annoncés aux technologies d'assistance comme deux options distinctes, accessibles via le clavier, et n'a pas exigences supplémentaires ARIA ou JS pour fonctionner. Le résultat est un exemple de code de basculement de thème et vous pouvez également consulter l'exemple de code de Scott O'Hara .
Autocomplete accessible
Chaque fois que vous devez traiter un ensemble de données plus volumineux, qu'il s'agisse d'une carte, d'une visualisation de données ou simplement d'un sélecteur de pays lors du paiement, la saisie semi-automatique peut augmenter considérablement la contribution des clients. Mais tout comme il facilite la saisie, il doit également aider à annoncer les options et la sélection aux utilisateurs du lecteur d'écran.
Gov.uk, l'équipe derrière le Government Digital Service au Royaume-Uni, a open-source accessible-autocomplete (parmi beaucoup d'autres choses ), un composant JavaScript qui suit WAI -Bonnes pratiques d'ARIA. Vous pouvez choisir quand commencer à afficher les suggestions, et permet d'afficher le menu comme une superposition positionnée de manière absolue, ou de sélectionner la première suggestion par défaut. L'équipe fournit également une page de démonstration avec une douzaine d'exemples et d'implémentations autocomplètes accessibles.
Bibliothèques de composants accessibles
Alors que de nombreuses bibliothèques de composants que nous créons tentent de couvrir tous les suspects habituels ( les accordéons, les tables, les carrousels, les listes déroulantes, ainsi que la typographie, les couleurs et les ombres de boîte), No Style Design System par Adam Silver se concentre principalement sur l'accessibilité et les formulaires Web.
En tant que système créé et utilisé dans son livre sur Form Design Patterns la bibliothèque d'Adam fournit un ensemble de composants accessibles pour tout, de la saisie semi-automatique, des cases à cocher et des mots de passe à révéler aux radios, aux cases de sélection et aux steppers. La plupart d'entre eux ont un style CSS minimal avec un balisage propre et accessible.
Et si vous avez besoin de composants un peu plus avancés, Heydon Pickering Inclusive Components – nous en avons mentionné quelques exemples ci-dessus – est là pour vous: avec des didacticiels complets sur les cartes accessibles, les tableaux de données, les notifications, les curseurs, les interfaces à onglets, les info-bulles, les menus et les boutons.
Visualisations de données accessibles
Les visualisations de données contiennent souvent des informations importantes sur lesquelles les utilisateurs doivent agir. Bien que parfois nous puissions utiliser de grands nombres avec des phrases courtes à la place, les visualisations peuvent aider à comprendre les développements et une grande quantité d'informations plus rapidement. Mais cela signifie que les informations doivent être faciles à comprendre, et cela se réfère surtout à la sélection des couleurs, à la façon dont les informations sont présentées, aux étiquettes, aux légendes ainsi qu'aux motifs et aux formes. Dans sa série d'articles sur l'accessibilité dans les visualisations de données Sarah L. Fossheim met en évidence des lignes directrices et des ressources utiles autour du sujet, ainsi que des exemples, des choses à faire et à ne pas faire lors de la conception de visualisations de données accessibles. [19659039] La couleur ne devrait pas être le seul indice visuel. Il est judicieux d’utiliser des motifs et des couleurs dans les graphiques. « /> La couleur ne doit pas être le seul indice visuel. Il est judicieux d’utiliser des motifs et des couleurs dans les graphiques. Via: Keen ( Grand aperçu )
Sarah suggère de ne pas se fier à la couleur pour expliquer les données et d'éviter les couleurs vives et à faible contraste en général. L'utilisation de motifs et de formes en plus de la couleur est utile, et un langage clair, des étiquettes et des légendes peuvent aider à expliquer clairement la visualisation des données. Chaque article regorge d'exemples et de ressources pour en savoir plus. À vérifier également: l'examen de Sarah des visualisations de données de l'élection présidentielle américaine ( merci à Stephanie Eckles pour le conseil! ).
Accessible Color Systems
Obtenir un bon contraste de couleur est un un élément essentiel pour garantir que non seulement les personnes ayant une déficience visuelle peuvent facilement utiliser votre produit, mais également tout le monde lorsqu'elles se trouvent dans des environnements à faible éclairage ou utilisent des écrans plus anciens. Cependant, si vous avez déjà essayé de créer vous-même un système de couleurs accessible, vous savez probablement que cela peut être tout un défi.
Système de couleurs pour les icônes composé de neuf couleurs. ( Grand aperçu )
L'équipe de Stripe a récemment décidé de relever le défi et de repenser leur système de couleurs existant. Les avantages qu'il devrait offrir hors de la boîte: adopter des directives d'accessibilité, utiliser des teintes claires et vibrantes que les utilisateurs peuvent facilement distinguer les uns des autres et avoir un poids visuel constant sans qu'une couleur semble avoir la priorité sur une autre. Si vous êtes curieux d'en savoir plus sur leur approche, leur article de blog sur les systèmes de couleurs accessibles vous donnera des informations précieuses.
Palettes de couleurs accessibles
Trouver la teinte ou la nuance parfaite d'une couleur n'est pas seulement une question de goût mais aussi d'accessibilité. Après tout, si le contraste des couleurs fait défaut, un produit pourrait même, dans le pire des cas, devenir inutilisable pour les personnes malvoyantes. WCAG 2.0 niveau AA nécessite un rapport de contraste de au moins 4,5: 1 pour le texte normal .) Et 3: 1 pour le grand texte, et WCAG 2.1 nécessite un rapport de contraste d'au moins 3: 1 pour les graphiques et l'interface utilisateur composants (tels que les bordures d'entrée de formulaire). AAA nécessite un rapport de contraste d'au moins 7: 1 pour le texte normal et 4,5: 1 pour le texte volumineux. Un vérificateur de contraste très détaillé pour vous aider à détecter les écueils potentiels à l'avance vient de Gianluca Gini: Geenes .
L'outil vous permet de modifier les plages de teintes et la saturation et d'appliquer les palettes de couleurs à l'une des trois maquettes d'interface utilisateur sélectionnables. Une fois appliqué, vous pouvez déclencher différents types de déficiences visuelles pour voir comment les personnes affectées voient les couleurs et, enfin, prendre une décision éclairée sur les meilleurs tons pour votre palette. Pour utiliser les couleurs tout de suite, copiez et collez simplement leur code ou exportez-les vers Sketch. Vous pouvez également émuler les déficiences visuelles dans DevTools .
Sélecteurs de dates accessibles
Il existe des dizaines de bibliothèques de sélecteurs de dates, mais c'est toujours formidable d'avoir des bêtes de somme fiables qui ne fonctionnent que sur tous les navigateurs, don '
Une bibliothèque fiable de sélecteur de date ( Grand aperçu )
Duet Date Picker est juste comme ça. Il s'agit d'un sélecteur de dates accessible et conforme aux WCAG 2.1 qui peut être implémenté et utilisé dans n'importe quel framework JavaScript ou pas du tout. Il est livré avec une fonctionnalité intégrée qui vous permet de définir une date minimale et maximale autorisée, et pèse environ 10 Ko minifiés et gzipés (cela inclut tous les styles et icônes).
Si vous avez besoin d'une alternative, consultez React Dates une bibliothèque publiée par Airbnb qui est optimisée pour l'internationalisation, tout en étant accessible et compatible avec les mobiles.
Tableaux de données accessibles
Les visualisations de données sont un excellent moyen de faire ressortir les informations. Cependant, ils présentent également leurs propres problèmes d'accessibilité. Lorsque Sara Soueidan s'est associée à SuperFriendly pour créer un micro-site accessible pour le rapport annuel de Khan Academy, elle voulait s'assurer que la façon dont les données sont présentées et mises en œuvre est aussi accessible que possible, quelle que soit la façon dont un visiteur explore le site. Sa solution: SVG.
Graphique du rapport annuel de Khan Academy montrant les élèves des écoles publiques américaines par niveau de revenu. ( Grand aperçu )
Dans une étude de cas sur les graphiques de données accessibles Sara a résumé tout ce dont vous avez besoin pour rendre vos graphiques et visualisations SVG accessibles – en commençant par le étape la plus importante du choix d'une technique d'enrobage appropriée. Il explique également pourquoi vous devriez éviter d'essayer de rendre un graphique SVG accessible à l'aide des rôles ARIA et pourquoi Sara n'a pas choisi
pour les intégrer. Un guide de référence fantastique. De plus: en particulier sur les graphiques, nous pourrions également utiliser des étiquettes de texte plus accessibles et Sara les couvre également dans un article séparé.
Liens et boutons d'icônes accessibles
Il n'est pas rare d'avoir un lien ou bouton qui n'a visuellement pas de texte mais se compose uniquement d'une icône – une barre de navigation compacte, par exemple, ou des icônes sociales. Mais comment vous assurer que ces types de liens d'icônes sont entièrement accessibles? En fait, ce n’est pas aussi simple que l’on pourrait le penser.
Pour montrer comment nous pouvons faire mieux, Kitty Giraudel a consacré un article « Accessible Icon Links » au numéro. Ils utilisent un lien icône constitué d'un SVG avec l'emblématique oiseau Twitter pour illustrer le point, et montrent pas à pas comment le rendre accessible: avec un texte descriptif visuellement masqué, puis en supprimant le balisage SVG de l'arborescence d'accessibilité avec aria-hidden et, enfin, corriger le fait que les éléments svg peuvent être focalisés sur Internet Explorer en ajoutant l'attribut focusable . À la fin de l'article, Kitty montre également comment transformer tout cela en un petit composant React .
Un petit détail qui fera une énorme différence pour de nombreux utilisateurs.
Dans Création de boutons d'icônes accessibles et Inclusively Hidden Sara Soueidan et Scott O'Hara vont dans toutes les subtilités et détails de l'icône boutons, en explorant un certain nombre de techniques pour le faire fonctionner. Sara et Scott explorent un certain nombre de techniques, suggérant d'utiliser une technique appropriée pour un texte visuellement masqué accessible – le texte qui sera visuellement masqué mais accessible aux lecteurs d'écran. Cela pourrait être fait avec une classe d'utilité .sr-only ou hidden et aria-labelledby ou aria-label seul. Sara ne recommanderait pas d'utiliser l'icône SVG elle-même pour fournir une étiquette pour le bouton lorsque je peux en fournir une directement sur le bouton lui-même.
En général cependant, il y a encore un peu de confusion quant à l'élément à utiliser pour l'utilisateur interaction: quand utilisons-nous des liens et quand utilisons-nous des boutons? Marcy Sutton a écrit un article détaillé sur Liens vs boutons dans les applications modernes . Avec un lien, le visiteur accède à une nouvelle ressource, l'éloignant du contexte actuel. Mais un bouton provoque un changement dans l'interface.
Marcy décrit les cas d'utilisation des liens et des boutons dans les applications d'une seule page, montrant qu'un bouton est un élément parfait pour ouvrir une fenêtre modale, déclencher une fenêtre contextuelle, basculer un interface ou lecture de contenu multimédia. Vous pouvez également consulter l’article de Vadim Makeev sur « Quand un bouton n’est-il pas un bouton? ».
Info-bulles et info-bulles accessibles
Un composant étroitement lié aux boutons d’icône est une info-bulle. Littéralement «trucs pour les outils», ce sont de petits éléments d'information qui expliquent le but d'un contrôle, ou d'un visuel, qui autrement pourraient être mal compris. Chaque fois que nous voulons expliquer pourquoi nous avons besoin d'une information personnelle particulière dans une caisse, c'est là que nous utiliserons probablement une bonne vieille info-bulle. Alors, comment pouvons-nous les corriger?
L'exemple de gauche indique les notifications et a le libellé principal de la légende. Le bon exemple contient les notifications d'affichage plus longues et le texte de gestion des paramètres et une description auxiliaire sous-titrée. De: Info-bulles et boutons-poussoirs inclusifs par Heydon Pickering. ( Grand aperçu )
Les info-bulles inclusives de Heydon Pickering fournissent un aperçu très complet de pratiquement tout ce qui est nécessaire pour créer une info-bulle accessible. Cela signifie décider si le contenu de l'info-bulle doit être fourni en tant qu'étiquette ou description et choisir les propriétés ARIA en conséquence, ne pas se fier aux attributs title et éviter de mettre du contenu interactif tel que fermer et confirmer des boutons ou des liens dans les info-bulles. [19659080] Notes de bas de page et notes de bas de page accessibles
Dans leur essence, les notes de bas de page ne sont pas beaucoup plus que des liens de saut – des liens vers la description d'une source, soit placés au bas du document, soit dans la barre latérale, soit apparaissant en ligne, un petit accordéon . Cependant, comme les notes de bas de page sont des liens de saut, nous devons nous assurer que les utilisateurs de lecteurs d'écran comprennent quand les liens sont des références à des notes de bas de page – et nous pouvons le faire avec l'attribut aria-describedby . Le compteur pour chaque lien serait implémenté via un compteur CSS. Avec : target nous mettons ensuite en surbrillance la ligne à laquelle le lecteur a sauté et nous fournissons un lien retour vers l'emplacement réel de la note de bas de page dans le contenu.
Parler des SVG: ce que nous pouvons faire avec les SVG aujourd'hui va bien au-delà des formes de base d'antan. Non seulement nous pouvons décrire les icônes SVG, mais aussi les styliser et les animer. Si la véritable inclusion se situe au-delà des modèles – quels autres facteurs devrions-nous prendre en compte lors de la conception et du développement de SVG accessibles?
C'est exactement la question à laquelle Carie Fisher répond dans son article sur SVG accessibles: l'inclusivité au-delà Modèles . Dans l'article, Carie examine de plus près la couleur et le contraste SVG, les modes clair et sombre, l'animation SVG, la réduction des mouvements et de nombreux outils axés sur l'accessibilité. Vous trouverez également des démos et des exemples de code dans les articles, ainsi que des explications détaillées et des pointeurs pour une lecture plus approfondie.
Et si vous souhaitez approfondir le sujet monde complexe de composants accessibles – non seulement liés aux SVG – nous avons juste publié l'article de Carie sur modèles de code accessibles .
Better : focus Styles [19659005] Chaque navigateur a des styles de focus par défaut, mais prêts à l'emploi, ils ne sont pas très accessibles . Le but de : focus est de donner à l'utilisateur des indications sur l'endroit exact où il se trouve dans le document et l'aider à s'y retrouver. Pour y parvenir, nous devons éviter une focalisation trop subtile ou pas du tout visible. En fait, supprimer le contour est une mauvaise idée car cela supprime toute indication visible de mise au point pour les utilisateurs de clavier. Plus la mise au point est évidente, mieux c'est. Mieux : mise au point Styles ( Grand aperçu )
Il existe des moyens de mieux concevoir : focus styles. Dans son article Conseils pour les styles de mise au point Nic Chan met en évidence quelques conseils utiles sur la façon d'améliorer les styles de mise au point avec une meilleure accessibilité et un peu de remplissage, de décalage et de contours appropriés. Besoin de plus de plaisir avec les styles : focus ? Lari Maza vous soutient également .
Il est important de considérer les problèmes d'accessibilité vers : mise au point visible : comme Hidde de Vries l'a noté ce ne sont pas toutes les personnes qui se fient aux styles de mise au point qui utilisent un clavier et la création de styles de mise au point au clavier ne leur enlève pas les moyens. les utilisateurs de souris aussi, car le focus indique également que quelque chose est interactif (merci à Jason Webb pour le conseil!) .
Enfin, il convient de noter que plus récemment, Chrome, Edge et d'autres navigateurs basés sur Chromium a cessé d'afficher un indicateur de mise au point ( bague de mise au point ) lorsque l'utilisateur clique ou appuie sur un bouton n (merci à Kim Johannesen pour l'astuce!) .
Styles de formulaires multi-navigateurs accessibles
Avez-vous déjà eu du mal à cacher et à styliser des cases à cocher et des boutons radio personnalisés? Qu'en est-il des styles de sélection personnalisés? Ou peut-être un menu de navigation déroulant accessible? Nous avons tendance à construire et à reconstruire les mêmes composants tout le temps, alors faisons-les bien une fois pour toutes.
Sarah Higley's « est une plongée complète en deux parties dans tous les défis et les subtilités du style de l'élément avec des variantes modifiables et à sélection multiple, leur utilisabilité comparative (avec des données!) Et des recommandations pratiques sur la façon de l'obtenir
Stephanie Eckles Modern CSS Solutions for Old CSS Problems met en évidence de nombreuses techniques modernes utiles pour résoudre de nombreux défis, mais certains articles de sa série sont dédiés aux formulaires: Cases à cocher CSS personnalisées des boutons radio stylisés, sélectionnez des styles, des entrées et des zones de texte.
De plus, Stephanie montre comment créer une liste déroulante accessible (presque) CSS uniquement et sur son blog, Sara Soueidan va expliquant en détail comment se cacher et se cacher inclusivement les cases à cocher et boutons radio . Bonus: les exemples de code d'Adrian Roselli fournissent des informations supplémentaires sur les bascules mal conçues. Des ressources fantastiques à utiliser tout de suite et styliser les formulaires de manière accessible.
Cases à cocher et boutons radio accessibles
Le bon vieux problème: comment styliser les cases à cocher et les boutons radio pour s’assurer qu’ils sont, au moins similaires, en la plupart des navigateurs – tout en s'assurant qu'ils restent également accessibles? Dans son article Sara Soueidan couvre quelques techniques à garder à l'esprit pour obtenir le résultat souhaité.
Sara couvre les différentes techniques de masquage des éléments, comment chacune d'elles affecte l'accessibilité du contenu, et comment les masquer visuellement, afin qu'ils puissent être remplacés par une alternative plus stylée: le SVG.
Styler les cases à cocher et les boutons radio en CSS ( Grand aperçu )
Lors du masquage d'un élément interactif, nous devons nous assurer que nous choisissons une technique de masquage qui le rend accessible au lecteur d'écran, le positionnons au-dessus de tout ce qui le remplace visuellement, afin qu'un utilisateur naviguant au toucher puisse le trouver là où il attendez-vous à, puis rendez-le transparent. Sara fournit également des démos en direct que nous pouvons utiliser tout de suite, ainsi que des références utiles à des articles pour une lecture plus approfondie.
Carrousels accessibles et curseurs de contenu
Un carrousel accessible sonne un peu comme oxymore – bien qu'il existe de nombreux scripts qui fournissent la fonctionnalité, seuls quelques-uns d'entre eux sont accessibles. Maintenant, il y a, bien sûr, curseurs de plage accessibles mais les carrousels sont un composant légèrement différent. Comme le remarque Alison Walden dans son article sur «Si vous devez utiliser un carrousel, rendez-le accessible» la personne voyante n'est pas du tout obligée d'utiliser le carrousel, mais les utilisateurs de clavier sont obligés de naviguer dans le carrousel dans son intégralité. À tout le moins, un lien «sauter» masqué pourrait apparaître sur le focus du clavier. De plus, une fois que la personne a parcouru tous les ensembles de panneaux, le focus doit passer à l'élément interactif suivant qui suit le carrousel.
Heydon Pickering suggère à d'utiliser le balisage de liste pour le groupe les diapositives ensemble, incluent les boutons précédent et suivant, les points d'accrochage et utilisent des éléments liés invisibles supprimés du focus. L'article fournit également un exemple de code qui utilise IntersectionObserver, vous pourriez donc avoir besoin d'un polyfill pour cela.
Est-ce toujours une bonne idée de concevoir des méga-listes déroulantes s'ouvrant sur flotter? Probablement pas . Les menus survolés présentent de nombreux problèmes d'utilisabilité et d'accessibilité, car ils sont incohérents, déroutants et nécessitent bien sûr une solution alternative pour les appareils mobiles. En fait, Mark Root-Wiley suggère qu'il est temps de supprimer les menus de survol au profit de menus cliquables sans ambiguïté et accessibles .
Dans son article, Mark entre dans les moindres détails sur la façon de créer un menu contextuel accessible, ainsi que des pointeurs et des références utiles issus de ses recherches. L'idée est de commencer à construire le menu comme un menu de survol CSS uniquement qui utilise li: hover> ul et li: focus-within> ul pour afficher les sous-menus. Ensuite, nous utilisons JavaScript pour créer les éléments définir les attributs aria et ajouter les gestionnaires d'événements. Le résultat final est disponible en tant qu'exemple de code sur CodePen et en tant que référentiel GitHub . Cela devrait également être un bon point de départ pour votre menu.
Liens «Ignorer» accessibles
Surtout sur les pages avec une grande quantité de navigation, se déplacer entre les sections ou autour de la page peut être frustrant et ennuyeux. C’est là que les liens «Ignorer» peuvent être très utiles. Malheureusement, il n'est pas rare de voir des liens «Ignorer» implémentés mais cachés avec l'affichage : aucun et en tant que tel, indisponible à quiconque (y compris les utilisateurs de lecteurs d'écran et les utilisateurs de clavier).
Dans Comment créer un lien «Ignorer le contenu» Paul Ryan propose un didacticiel pas à pas sur la façon d'implémenter un lien de saut de contenu accessible. Fondamentalement, nous utilisons la transformation CSS pour pousser le lien de saut hors de l'écran, mais le ramener à l'écran sur : focus . Dans les commentaires de l'article, Eric Bailey a également remarqué que nous pouvions fournir des liens de saut avant les sections de contenu qui contiennent de nombreux éléments interactifs, ou des éléments qui peuvent être difficiles à parcourir (comme la table des matières et iframe s).
Tableaux accessibles
Il existe de nombreux problèmes d'accessibilité liés aux tableaux, mais le plus grand défi est de transformer une représentation visuelle en une série linéaire qui sera lue à voix haute par un lecteur d'écran, sans omettre toute information importante. Heureusement, Adrian Roselli a passé beaucoup de temps à explorer les défis et les solutions des tables accessibles.
Dans son article sur accessible tables Adrian suggère d'encapsuler le tableau dans un
avec role = "region" aria-labelledby et tabindex = "0" pour s'assurer qu'un utilisateur à clavier seul peut accéder au conteneur, que le tableau reçoit le focus et
Have you ever tried to navigate a table with a screen reader? If not, you should check out Leonie Watson’s article on how screen readers navigate data tables. It shares precious insights and shows what matters to create frustration-free tables that can be used by anyone.
Data table showing the average daily tea and coffee consumption (Large preview)
In the post, Leonie uses NVDA to move to a table, navigate its content, and find specific information. The appropriate HTML elements (or ARIA roles) inform her about the characteristics of the table and give her access to keyboard commands specifically for navigating the table’s content.
An interesting takeaway: Keyboard focus and screen reader focus are not the same thing. Contrary to what you might have heard, you do not need to make each cell of a table focusable with a keyboard to aid navigation. If the content inside the cell is non-interactive, you’ll likely make keyboard users work much harder to navigate the table than you intended. You can also watch a Smashing TV video with Léonie on How A Screen Reader User Accesses The Web (73 mins).
Website Features That Annoy Screen Reader Users
A missing alt caption, an auto-playing video, unlabelled buttons, poor use of headings, inaccessible web forms — what might seem like a small issue for sighted users can make the difference between being able to use a website independently or not for blind and visually impaired people. Holly Tuke knows this from her own experience.
Hierarchy of headings. From heading 1 to heading 5. (Large preview)
To raise awareness for common accessibility issues, Holly summarized five annoying website features she faces as a screen reader user every single day, and, of course, how to fix them. Chris Ashton also published a piece explaining common issues that screen reader users havewhich are often neglected in conversations focus on semantics and keyboard-accessibility alone. Little details that make a huge difference (thanks to Alex Chudesnov for the tip!).
Accessible Video/Audio Players
It’s not uncommon to see viewers frequently using captions when watching a short clip or a lengthy movie these days. We might be consuming the video in a noisy environment, or perhaps we can better understand written language, or perhaps we are currently busy with something else and need to look up something quickly without having to resort to headphones. Beyond that, how often do we use keyboard’s to prompt a pause, or key arrows to move back and forward? Still, many video players and custom solutions don’t provide this functionality out of the box.
Accessible HTML5 Media Players provides an overview of accessible audio and video players. There are plenty of great open-source options, e.g. AblePlayer seems to be one of the reliable ones. It includes a full set of player controls that are keyboard-accessible, properly labelled for screen reader usersand controllable by speech recognition users, features high contrast, supports closed captions and subtitles, chapters, text-based audio description, an interactive transcript feature and automatic text highlighting. It supports YouTube and Vimeo videos. Hower, it depends on jQuery.
Alternatively, you could look into Vime.js as well: fully open-source, lightweight, fully customizable and without third-party dependencies. Other great options like Plyr and Accessible HTML5 Video Player by PayPal are similar. The latter is fully accessible to keyboard-only users and screen reader users, written in vanilla JavaScript, is additionally provided as a React componentand falls back to browser’s native controls if JavaScript is unavailable (thanks for the tip,@jamsandwich!).
Accessible Cookie Consent Prompts
Overlays and pop-ups are always problematic. But especially for screen reader users, sometimes those prompts are incredibly difficult to deal with to set any settings or even confirm the usage of cookies on the site. In her 15-mins talk on “Screen readers and cookie consents”, Leonie Watson goes into detail explaining the poor experiences that compliance pop-ups have for accessibility. In some cases, users glide past consent prompts without being aware of them, in the others, the prompt are impossible to accept, resulting in an inability to use the site at all.
So how can we make them better? In Cookie banners and accessibilitySheri Byrne-Haber highlights common issues that cookie prompts usually have: from how they visually appear to focus traps, the appearance in the tab order, the type of acceptance and alternate formats of consent disclosure. Quentin Bellanger provides a basic code example of a cookie consent modal and a tutorial along with it. There are also free open-source solutions: Osano Cookie Consent and cookie-consent-boxbut they might require some accessibility work.
Accessible Close Buttons
“Close” buttons are everywhere — in modals, ads, confirmation messages, cookie prompts and any overlays that will appear in your interface. Unfortunately, the functionality is often limited to mouse users, leaving screen reader users and keyboard-users out. We can fix it.
In “Accessible Close Buttons” Manuel Matuzovic goes into deep details highlighting 11 examples and patterns of inaccessible close buttons as well as 5 examples of close buttons that work fairly well. The easiest way to solve the problem is to provide a button with visible text and only visually accessible icon and ensure that the description by screen readers isn’t polluted by the icon’s description. Manuel also provides code examples of 5 close buttons that you can apply to your work right away.
Accessible Inputs
In 2019, WebAIM analyzed the accessibility of the top one million websites, with a shocking conclusion: the percentage of error-free pages was estimated to be under one percent. To make our sites inclusive and usable for people who rely on assistive technology, we need to get the basics of semantic HTML right. With its credo of starting small, sharing, and working together, Oscar Braunert’s article on inclusive inputs is a great starting point to do so.
Starting off with the basics of WAI, ARIA, and WCAG, the article explores how to make inputs more accessible. The tips can be implemented without changing the user interface, and, as Oscar puts it: “If in doubt, just do it. Nobody will notice. Except some of your users. And they will thank you for it.”
Support User Preferences With prefers-reduced-*
Not every user is the same, and while some users love animations, others may have medical issues concerning motion. The prefers-reduced-motion media query lets you toggle animations on and off, but there are even more solutions to manage animations depending on a user’s preference. In his blog postElijah Manor addresses different techniques such as @media, matchMedia, and a custom React hook to address CSS, SVG SMIL, and JavaScript animations.
Use the prefers-reduced-motion media query to toggle CSS and JavaScript animations (Large preview)
When it comes to making your content accessible to everyone, there’s another prefers-reduced-* media query that is worth knowing about — even though it isn’t supported by browsers yet (but you can emulate it in Polypane and Chromium browsers): prefers-reduced-data. It indicates when a user wants to use as little data as possible — if their connection is slow, for example, or if data is limited. The Polypane team summarized what you need to know about the media query to future-proof your site already today.
A Complete Guide To Dark Mode On The Web
Dark mode is quickly becoming a user preference with Apple, Windows, and Google having it implemented into their operating systems. But what about dark mode on the web? Adhuham wrote a comprehensive guide to dark mode that delves into different options and approaches to implementing a dark mode design on the web.
To start off, the guide looks at the technical considerations that implementing a dark mode entails, covering different approaches to toggling the themes and how to store a user’s preferences so that they will be applied consistently throughout the site and on subsequent visits. Tips for handling user agent styles with the color-scheme meta tag help avoid potential FOIT situations.
Design considerations are also tackled, of course, with valuable tips to get images, shadows, typography, icons, and colors ready for dark mode. While on it: to ensure we don’t unintentionally break the high contrast in mode, take a look at Styling for Windows High Contrast mode (thanks for the tip, Courtney Heitman!).
Accessible App-Wide Keyboard Navigation
A well-thought-out concept for keyboard navigation benefits everyone: It enables people who can’t comfortably use a mouse, assists screen reader users in interacting with an application, and it provides power users with more shortcuts to work as efficiently as possible. Usually, keyboard support is limited to specific shortcuts, but the team at Discord decided to go a step further with their application and expand keyboard support to, well, everything.
How Discord Implemented App-Wide Keyboard Navigation (Large preview)
The case study “How Discord Implemented App-Wide Keyboard Navigation” shares valuable insights into how they tackled the task — and the challenges they faced along the way, of course. One turned out to be particularly difficult: How to consistently indicate where focus is on the page? As existing solutions for Focus Rings didn’t work out, the team had to build their own solution from scratch and made the code open source. If you’re facing a similar challenge, this one’s for you.
Accessible Comics
When we use slightly more complex shapes and layouts on the web, sometimes it appears to be so much easier to just save it as a foreground or background image and serve different images to small and large screens. This holds true for complicated charts and graphs as well as good old comics with speaking bubbles, but what if we could re-imagine the experience altogether?
Comica11y is an experiment by Paul Spencer that aims to achieve an all-inclusive online comic reading experience. What if we could have different reading modes for the comic, e.g. with closed captions, proper focus management to navigate between panels, high-contrast mode, SVG color blindness filters, programatic bubbles, selectable and translatable text, LTR and RTL support, and even adjustable font sizes? A wonderful initiative that shows just how far we can take UI challenges and use the web to enhance the experience greatly.
Inaccessible Disabled Buttons
It has become quite common for lengthy web forms to keep the “Continue” button disabled until the customer has provided all data correctly. This behavior acts as an indicator that something is wrong with the form, and it can’t be completed without reviewing the input. This works if the inline validation for every input field is working well, and it doesn’t work at all when it’s glitchy or buggy.
In “Disabled Buttons Suck”, Hampus Sethfors highlights the downsides of disabled buttons. With them in place, we do communicate that something is wrong, but we don’t really explain what is wrong, or how to fix it. So if the customer has overlooked an error message — be it in a lengthy form on desktop, or even in a short form on mobile, they’ll be lost. In many ways, keeping buttons active and communicating errors is more efficient.
And if it’s not possible, at least provide a way out with a button “I can’t complete the form, please help”, so customer support can get back to customers in case they get into trouble. If you need a more detailed refresher on web forms, “Form Design From One to Zero” will keep you busy.
But First, Accessibility Support
There are many different ways that assistive technologies interact with browsers and code. Since it’s still not possible to fully automate screen readers and voice control softwares, we are left with having to do manual tests. And that’s where a11ysupport.io comes into play.
Originally created by Michael Fairchild, this community-driven website aims to help inform developers about what is accessibility supported. It’s a project that is active and contributions are always welcome, so start testing away. Also, it’s always worth checking the WAI-ARIA authoring practices which describe essential semantics, roles, and ARIA necessary for common components and patterns (thanks to Stephanie Eckles for the tip!).
Accessibility Resources And Checklists
Accessibility is incredibly important, but, unfortunately, often overlooked. The community-driven A11Y Project attempts to make digital accessibility easier, providing designers and developers with the know-how they need to build beautiful, accessible, and inclusive experiences.
From the basic principles behind accessible design to conducting an accessibility audit, and cultivating community, The A11Y Project takes a 360 degree look at the topic. You’ll find articles just like quick tips, tips on books to read, newsletters to follow, as well as handy tools, groups committed to accessibility, and much more.
Repository Of Accessibility Tools
Do you ever get that itching feeling of forgetting something before shipping a project? Well, checklists are known to be the key to keeping an overview of things that need to be done and taken care of before the final showdown. When it comes to accessibility, there’s a growing list of tools and resources that are bound to help you keep an eye on things: A11y Resources.
Curated by Hannah Milanthis list was initially created to keep track of more than 200+ hand-curated accessibility plugins, tools, articles, case studies, design patterns, design resources, accessibility standards, and even checklists. Of course, you can always submit a tool if you see anything missing.
Wrapping Up
We probably have missed some important and valuable techniques and resources! So please leave a comment and refer to them — we’d love to update this post and keep it up-to-date for us all to be able to get back to it and build reliable, accessible components faster.
We sincerely hope that these tools and techniques will prove to be useful in your day-to-day work — and most importantly help you avoid some time-consuming, routine tasks.