Jour 81 - Implémenter des cases à cocher (la pratique)

Après la théorie, on met les mains dans le code.

Ce que j’ai fait :

Création de cases à cocher accessibles

J’ai créé un Codepen(lien externe) “bac à sable” me permettant de créer :

  • des cases à cocher “double état” simulées en CSS
  • une case à cocher “triple état” simulée en ARIA

Les cases à cocher simulées en CSS sont basées sur la notice Cases à cocher simulées en CSS(lien externe) d’AcceDe Web. J’ai modifié légèrement le code initial pour adapter mon propre design de case à cocher.

La case à cocher “triple état” m’a demandé un gros effort niveau Javascript pour parvenir à la faire fonctionner en adéquation avec les autres cases à cocher. Le code Javascript est très brouillon et loin d’être parfait, mais ça fonctionne à peu près normalement.

Test au clavier et navigateur d’écran

Il est possible de naviguer entre les différentes cases à cocher uniquement avec la touche “Tab” et de sélectionner ou dé-sélectionner une case à cocher avec la touche “Espace”. Le fait de cocher ou non les cases à cocher “double état” affecte directement la case à cocher “triple état”.

J’ai testé le rendu avec Orca et Epiphany : la case à cocher simulée en ARIA est correctement restituée, de même que les changements d’état.

Ce que j’ai appris

Il n’existe pas d’attribut “indéterminé” pour signifier l’état partiellement coché d’une case à cocher. En revanche, il est possible de modifier cette propriété en Javascript :

var checkbox = document.getElementById("some-checkbox");
checkbox.indeterminate = true;

Cet état “indéterminé” est uniquement visuel : l’état de la case est toujours “coché” ou “décoché”. Cela signifie que l’état visuel indéterminé masque la valeur réelle de la case à cocher.