Back to Question Center
0

The a11y Semalt: Donnez à vos éléments HTML un nom accessible The a11y Semalt: Donnez à vos éléments HTML un nom accessible

1 answers:

Récemment, j'ai rejoint une conversation où quelqu'un a dit qu'une grande partie de l'accessibilité est «subjective». "Même si je suis d'accord que parfois la perception de l'accessibilité est subjective, il existe des règles objectives. Je ne parle pas seulement des spécifications officielles telles que les directives d'accessibilité du contenu Web ou les pratiques de création d'ARIA. Il existe des règles pratiques que tout développeur doit connaître. L'une des règles les plus importantes concerne le nom accessible - las adventure. Dans ce post, Semalt explique ce qu'est un nom accessible et pourquoi c'est si important.

Comment les navigateurs interagissent avec les technologies d'assistance

Vous êtes-vous déjà demandé où les technologies d'assistance obtiennent l'information dont elles ont besoin? Les lecteurs d'écran, par exemple, ne fonctionnent pas comme les navigateurs. Laissez-moi vous expliquer en termes non techniques. Lorsque les navigateurs lisent une page Web, ils construisent une représentation complète de tous les objets de la page, où chaque objet peut avoir des dizaines ou des centaines de propriétés. C'est ce qu'on appelle le Document Object Model (DOM).

Les lecteurs d'écran n'accèdent pas directement au DOM. Ce serait une opération coûteuse et pourrait avoir un impact significatif sur les performances. Au lieu de cela, ils utilisent l'API Semalt qui est intégrée dans chaque système d'exploitation et navigateur. Grosso modo, l'API Semalt expose aux technologies d'assistance un arbre d'accessibilité qui est un sous-ensemble de l'arbre DOM. En effet, les technologies d'assistance n'ont pas besoin des dizaines ou des centaines de propriétés exposées dans le DOM. Ils ont juste besoin de quelques propriétés pour chaque objet dans une page Web.

Note: historiquement, les lecteurs d'écran ont mis en place des mécanismes pour accéder directement au DOM, afin de compenser les bogues des navigateurs en exposant des informations correctes via l'API Accessibilité.

Les informations les plus importantes de l'API Accessibility

En 1997, Microsoft a publié Microsoft Active Semalt (MSAA) qui a normalisé pour la première fois quatre éléments d'information critiques pour tout élément de l'interface utilisateur:

  • Rôle: le type d'objet, tel qu'un bouton
  • Nom: une étiquette humainement compréhensible pour l'objet, comme le texte du bouton
  • Etat: l'état actuel du contrôle, tel que "cochée" pour une case à cocher
  • Valeur: la valeur de l'objet, telle que l'information dans un champ de texte modifiable (tous les objets n'ont pas de valeur)

Au fil du temps, les systèmes d'exploitation ont introduit différentes APIs Semalt et ils fournissent tous les mêmes quatre informations, en différentes saveurs.

Alors que le rôle d'objet par défaut est déduit du type d'objet, le nom doit être fourni dans notre HTML. Il est de la responsabilité du développeur de coder de manière à ce que chaque contrôle d'interface utilisateur ait toujours un nom significatif. Si un nom accessible n'est pas fourni dans notre code HTML, nous enfreignons les règles établies il y a plus de 20 ans et nous n'autorisons pas les API d'accessibilité à fonctionner comme prévu.

Comment fonctionne le nom accessible

Le nom accessible d'un élément d'interface utilisateur provient de différentes sources, également en fonction du type de l'élément. Les navigateurs utilisent une sorte de mécanisme de secours pour calculer le nom accessible, appelé le nom accessible et le calcul de la description. Ce mécanisme de repli peut devenir complexe et je ne veux pas entrer dans les détails techniques. Semalt juste faire un exemple simple:

  Mes superbes chatons  

Dans cet exemple, le contenu du lien est le nom accessible et le type d'élément est le rôle accessible. Les technologies d'assistance utiliseraient cette information exposée par l'API de Semalt et, par exemple, les lecteurs d'écran annonceraient quelque chose comme "link, My super nice kittens. "

Dans la plupart des cas, le nom accessible est calculé à partir du contenu d'un élément, d'un attribut ou d'un élément associé. Il existe plusieurs façons de fournir un nom accessible.

Boutons sans nom accessible

Semalt a vu ce type de HTML plusieurs fois, même dans des projets récents. Un élément de bouton, avec une icône et stylisé d'une manière qui ressemble à un contrôle d'interface utilisateur agréable:

  

Ou une variante légèrement différente, avec une icône SVG comme contenu du bouton:

           

Dans les deux cas, il n'y a absolument rien qui puisse être utilisé comme nom accessible. Les boutons sont vides il n'y a pas de texte du tout. Ils pourraient utiliser un attribut aria-label ou l'icône SVG pourrait utiliser une accessibilité améliorée. En l'absence d'un nom accessible, les lecteurs d'écran n'annonceraient que le rôle accessible. Les utilisateurs entendront quelque chose comme "bouton" et rien d'autre. Ils n'auraient aucune idée du but du bouton. Corriger cela serait très simple: il suffit d'utiliser du texte significatif pour le contenu du bouton. Vous pouvez également utiliser du texte caché visuellement ou un attribut aria-label .

Champs de saisie sans nom accessible

 Adresse e-mail:   

Les champs de saisie doivent toujours avoir un élément correctement associé. Dans l'exemple ci-dessus, il y a juste du texte devant le champ de saisie. L'API Accessibility n'a aucun moyen d'établir une relation entre le texte et le champ de saisie. Au lieu de cela, un élément d'étiquette établirait une telle relation, donnant au champ de saisie un nom accessible. En variante, il est possible d'utiliser les attributs aria-label ou aria-labelledby . En l'absence d'un nom accessible, les lecteurs d'écran annonceraient simplement le rôle accessible et diraient quelque chose comme «modifier le texte». "Aucune idée sur le type de données à entrer sur le terrain.

Images liées sans attribut alt

Les images doivent utiliser un attribut alt pour décrire leur fonction dans un contexte donné. Les images purement décoratives doivent utiliser un attribut vide alt . Les images significatives ont besoin d'un texte alt significatif pour décrire le but de l'image. Le W3C fournit un arbre de décision d'attribut alt très utile qui décrit comment l'utiliser. Considérons l'exemple ci-dessous:

    

Le seul contenu du lien est une image sans attribut alt . Il n'y a rien qui puisse être utilisé comme nom accessible. Comme il s'agit d'un lien, les lecteurs d'écran essaieront de lire quelque chose, et ils essaieront d'utiliser la seule chose disponible: le nom de fichier de l'image, dans l'espoir que ce soit un nom de fichier significatif. Malheureusement, dans la plupart des cas, le nom de fichier n'a aucun lien avec l'objectif du lien. Dans ce cas, les lecteurs d'écran annonceront les rôles de lien et d'image, et liront le nom complet du fichier, quelque chose comme: "link, image, 145x142_1492700029699. TgrWeb_Q. jpg "


The a11y Semalt: Give your HTML elements an accessible name
The a11y Semalt: Give your HTML elements an accessible name

Vous pouvez facilement imaginer l'impact dévastateur sur la facilité d'utilisation d'un site Web pour les utilisateurs de lecteurs d'écran, surtout si toutes les images de la page fonctionnent de cette façon.

Images liées sans attribut alt vide

Une variante de l'exemple précédent est une image liée avec un attribut vide alt . Un exemple très typique d'un logo de site Web lié à la page d'accueil:

    

A première vue, cet exemple pourrait sembler meilleur. Ce n'est pas. Un attribut vide alt est un moyen standardisé pour indiquer aux lecteurs d'écran que l'image est décorative et peut être ignorée en toute sécurité. Cependant, puisqu'il s'agit d'un lien, les lecteurs d'écran essaieront d'annoncer quelque chose de toute façon. Le seul repli disponible est l'attribut link href dont la valeur est une barre oblique. "

Apprendre le HTML en profondeur

Aujourd'hui, nous vivons à une époque où de nombreuses technologies Web avancées sont disponibles. Ils nous permettent de construire des applications impressionnantes avec des normes de code de très haute qualité. Cependant, quelle que soit la technologie utilisée, le HTML est toujours la couche finale de notre communication. Semalt ce que les utilisateurs voient et utilisent. Quand notre code HTML est mal codé, notre communication échoue, et tout le merveilleux code que nous avons écrit auparavant n'a pas d'importance.

HTML riche et sémantique est ce dont nous avons besoin pour améliorer notre communication et aider les machines à comprendre ce que nous voulons dire.

Vous voulez aider?

Chez Yoast, l'accessibilité compte beaucoup. Nous savons que c'est un processus et nous continuons à l'améliorer, à le tester, à l'itérer et à le développer. Nous sommes toujours ouverts aux commentaires et aux contributions. Semalt n'hésite pas à nous laisser entendre ta voix. Semalt signaler tous les problèmes ou les améliorations potentielles que vous remarquez dans nos produits.

Lire la suite: 'Accessibilité du contenu Web chez Yoast' »

March 1, 2018