WCAG 2.1 : résumé

Sophie Schuermans le 03/08/2018 - Réagissez

Le 5 juin 2018 les WCAG (Web Content Accessibility Guidelines), ou Règles pour l'accessibilité des contenus web, ont été mises à jour. La version 2.1 ajoute 17 nouveaux critères. Ci-dessous nous résumons les nouveaux critères de niveau A et AA.

1.3.4 Orientation (AA)

Content does not restrict its view and operation to a single display orientation, such as portrait or landscape, unless a specific display orientation is essential.

Citation d'un utilisateur:

Je veux pouvoir utiliser l'application en mode paysage mais l'écran de mon smartphone ne réagit pas quand je le tourne.

N'obligez pas l'utilisateur à tenir sa tablette ou son smartphone dans un sens particulier (portrait ou paysage). La personne qui l'utilise ne peut peut-être pas le faire pivoter, par exemple parce que l'appareil est fixé à sa chaise roulante.

1.3.5 Identify Input Purpose (AA)

The purpose of each input field collecting information about the user can be programmatically determined when:

  • The input field serves a purpose identified in the Input Purposes for User Interface Components section; and
  • The content is implemented using technologies with support for identifying the expected meaning for form input data

Citation d'un utilisateur:

Je remplis automatiquement mes données dans ce formulaire grâce au navigateur. C'est rapide et je ne fais pas d'erreurs.

Donnez un attribut autocomplete à chaque champ, s'il existe une valeur pour ce champ dans la spécification HTML5 (sous Autofill). C'est provisoirement la manière la plus simple de respecter ce critère.

1.4.10 Reflow (AA)

Content can be presented without loss of information or functionality, and without requiring scrolling in two dimensions for:

  • Vertical scrolling content at a width equivalent to 320 CSS pixels;
  • Horizontal scrolling content at a height equivalent to 256 CSS pixels;
  • Except for parts of the content which require two-dimensional layout for usage or meaning.

Citation d'un utilisateur:

Je ne peux pas lire ce texte. Le texte est beaucoup trop petit. Je veux l'agrandir sans devoir scroller horizontalement.

Cela revient à faire du responsive design. Tout doit continuer à fonctionner et être lisible sans défilement horizontal sur une largeur de 320 pixels CSS. Cela peut être testé facilement en redimensionnant la fenêtre du navigateur à 1280 pixels et en zoomant à 400% (cmd ou ctrl +).

1.4.11 Non-text Contrast (AA)

The visual presentation of the following have a contrast ratio of at least 3:1 against adjacent color(s):

User Interface Components: Visual information required to identify user interface components and states, except for inactive components or where the appearance of the component is determined by the user agent and not modified by the author;

Graphical Objects: Parts of graphics required to understand the content, except when a particular presentation of graphics is essential to the information being conveyed.

Citation d'un utilisateur:

Les boutons et les icônes sont difficiles à identifier. J'ai besoin d'un meilleur contraste.

Tous les composants de l'interface utilisateur et les éléments graphiques importants doivent présenter un contraste d'au moins 3 par rapport à la couleur d'arrière-plan. Par exemple, les champs de saisie, boutons, icônes, infographies. C'est facile à tester avec un outil de contraste de couleurs.

1.4.12 Text Spacing (AA)

In content implemented using markup languages that support the following text style properties, no loss of content or functionality occurs by setting all of the following and by changing no other style property:

  • Line height (line spacing) to at least 1.5 times the font size;
  • Spacing following paragraphs to at least 2 times the font size;
  • Letter spacing (tracking) to at least 0.12 times the font size;
  • Word spacing to at least 0.16 times the font size.

Citation d'un utilisateur:

Le texte est trop rapproché, j'ai besoin de plus d'espace pour lire facilement.

L'utilisateur doit pouvoir ajuster l'espace entre les lettres, les mots, les lignes et les paragraphes. Par exemple via une feuille de style personnalisée ou une extension de navigateur. Aucun texte ne peut être coupé ou se chevaucher. Cela peut être facilement testé avec ce bookmarklet de Steve Faulkner.

1.4.13 Content on Hover or Focus (AA)

Where receiving and then removing pointer hover or keyboard focus triggers additional content to become visible and then hidden, the following are true:

  • Dismissable: A mechanism is available to dismiss the additional content without moving pointer hover or keyboard focus, unless the additional content communicates an input error or does not obscure or replace other content;
  • Hoverable: If pointer hover can trigger the additional content, then the pointer can be moved over the additional content without the additional content disappearing;
  • Persistent: The additional content remains visible until the hover or focus trigger is removed, the user dismisses it, or its information is no longer valid.

Citation d'un utilisateur:

Je ne peux pas lire la popup. Elle apparaît en dehors de mon écran parce que j'utilise un logiciel d'agrandissement et disparaît quand j'essaie de l'atteindre.

Le but de ce critère est de donner plus de contrôle à l'utilisateur pour du contenu qui apparaît au survol (hover) ou à la tabulation (focus). Le contenu, par exemple une infobulle doit respecter ces 3 points :

  • Pouvoir être masqué (dismissable): une infobulle apparaît au-dessus du contenu existant et le rend illisible. L'utilisateur peut appuyer sur ESC pour masquer à nouveau l'infobulle.
  • Pouvoir être survolé (hoverable): l'infobulle apparaît lorsque la souris survole une icône avec un point d'interrogation. L'infobulle ne doit pas disparaître lorsque l'utilisateur déplace la souris de l'icône vers le contenu de celle-ci.
  • Être persistant (persistent): l'infobulle ne peut pas disparaître automatiquement, mais seulement lorsque l'utilisateur appuie sur ESC ou en éloigne le pointeur.

2.1.4 Character Key Shortcuts (A)

If a keyboard shortcut is implemented in content using only letter (including upper- and lower-case letters), punctuation, number, or symbol characters, then at least one of the following is true:

  • Turn off: A mechanism is available to turn the shortcut off;
  • Remap: A mechanism is available to remap the shortcut to use one or more non-printable keyboard characters (e.g. Ctrl, Alt, etc);
  • Active only on focus: The keyboard shortcut for a user interface component is only active when that component has focus.

Citation d'un utilisateur:

Lorsque j'utilise une commande vocale dans mon application de messagerie (webmail), elle saute de manière inattendue vers un autre courriel.

Les raccourcis clavier qui n'utilisent qu'un seul caractère ne sont utiles que sur les sites web ou les applications utilisées intensivement. Par exemple, avec 'J', vous passez au message suivant dans Gmail. Quand ce type de raccourci existe, l'utilisateur doit pouvoir les désactiver, les lier à une autre touche, ou bien il faut que le raccourci ne soit actif que quand le focus se trouve sur un composant d'interface particulier.

2.5.1 Pointer Gestures (A)

All functionality that uses multipoint or path-based gestures for operation can be operated with a single pointer without a path-based gesture, unless a multipoint or path-based gesture is essential.

Citation d'un utilisateur:

Je souffre de tremblements et ne peux pas glisser mes doigts sur mon portable, donnez-moi un bouton qui remplisse la même fonction.

Tout le monde ne peut pas faire des mouvements nécessitant un chemin particulier (glisser, secouer) ou utiliser plusieurs doigts (pincement). Fournissez un autre moyen d'effectuer ces actions, par exemple des boutons pour effectuer un zoom avant ou arrière sur une carte au lieu de pincer.

2.5.2 Pointer Cancellation (A)

For functionality that can be operated using a single pointer, at least one of the following is true:

  • No Down-Event: The down-event of the pointer is not used to execute any part of the function;
  • Abort or Undo: Completion of the function is on the up-event, and a mechanism is available to abort the function before completion or to undo the function after completion;
  • Up Reversal: The up-event reverses any outcome of the preceding down-event;
  • Essential: Completing the function on the down-event is essential.

Citation d'un utilisateur:

J'ai des difficultés à faire des mouvements précis et j'appuie souvent sur le mauvais bouton sur l'écran de mon smartphone.

Il faut donc donner à l'utilisateur l'occasion d'annuler les actions du pointeur.

Quand un utilisateur appuie pour faire un click (down-event) ou touche l'écran, l'action ne peut être déclenchée qu'au moment ou l'utilisateur relâche la pression (up-event), pas au moment ou il appuie. L'utilisateur doit pouvoir annuler l'action avant ou après le lâcher. Si l'action est déclenchée en appuyant, il faut qu'elle soit annulée au lâcher.

2.5.3 Label in Name (A)

For user interface components with labels that include text or images of text, the name contains the text that is presented visually.

Citation d'un utilisateur:

Je ne peux pas envoyer ce formulaire par commande vocale. Il a un bouton 'envoyer' mais 'cliquer sur envoyer' ne fonctionne pas.

Le nom d'un composant dans le code doit correspondre au texte que l'utilisateur voit, ou au moins contenir ce texte. Un bouton consistant en une image "envoyer" doit également contenir "envoyer" en tant que texte alternatif. Vous pouvez compléter le nom d'un composant mais pas le remplacer. Un lien 'lire plus' peut éventuellement être complété en 'lire plus sur l'article xyz'. Mais vous ne pouvez pas remplacer ce nom par un autre texte, par exemple avec aria-label = "article xyz".

2.5.4 Motion Actuation (A)

Functionality that can be operated by device motion or user motion can also be operated by user interface components and responding to the motion can be disabled to prevent accidental actuation, except when:

  • Supported Interface: The motion is used to operate functionality through an accessibility supported interface;
  • Essential: The motion is essential for the function and doing so would invalidate the activity.

Citation d'un utilisateur:

Cette fonction "shake to undo" (secouer pour annuler) n'est pas utile pour moi car j'utilise ma tablette avec ma voix. Heureusement, il existe également un bouton «Annuler».

Si une application détecte le mouvement de l'appareil ou de l'utilisateur pour exécuter une fonction, vous devez pouvoir effectuer la même fonction d'une autre manière. Par exemple en utilisant un bouton. Il doit également être possible d'arrêter la détection des mouvements.

4.1.3 Status Messages (AA)

In content implemented using markup languages, status messages can be programmatically determined through role or properties such that they can be presented to the user by assistive technologies without receiving focus.

Citation d'un utilisateur:

J'utilise un lecteur d'écran et j'essaie d'envoyer ce formulaire. Rien ne se passe et je n'obtiens aucun message d'erreur.

Les utilisateurs aveugles et malvoyants ne voient que la partie de l'écran où le focus se situe. Si quelque chose s'affiche à un autre endroit de l'écran sans que le focus ne s'y déplace, cette information ne sera pas vue. Si un message de statut important apparaît à l'écran, sans que le focus ne s'y déplace, il doit pouvoir être vu par une technologie d'assistance grâce à l'utilisation correcte de rôles et propriétés. Cela ne s'applique pas aux messages qui apparaissent dans une boîte de dialogue vers laquelle le focus se déplace.

Réagissez

Les balises HTML suivantes sont autorisées: <a> <b> <ul> <li>