← Tous les articles

Accessibilité web dans un éditeur visuel : ce que je fais dans Silex

La démo complète, 20 minutes

J’ai présenté Silex et l’accessibilité à Paris Web le 24 septembre. La veille, j’ai enregistré une démo de 20 minutes pour montrer comment on s’y prend dans l’éditeur. Cet article en reprend l’essentiel, captures à l’appui.

Je ne vais pas vous apprendre l’accessibilité. Je ne suis pas expert, et pendant nos lives, des membres de la communauté Silex m’ont bien briefé. La question ici est plus simple : une fois la formation à l’accessibilité faite et le HTML voulu bien en tête, est-ce que l’outil nous laisse le faire ?

D’abord, ce qu’est Silex

Un site statique, c’est du HTML, du CSS et des fichiers. Pas de base de données, pas de PHP. C’est plus rapide, plus sûr et plus écologique. Tout le monde en faisait dans les années 2000 : on crée un fichier, on le met en ligne.

Ça se complique quand arrive un projet client. La personne en face veut travailler en ligne, dans un CMS. Il faut alors tout brancher : reconstruire le site à chaque modification, dire dans le code que ce titre vient de tel champ du post de blog, remettre en ligne ce qui a changé. C’est là que la plupart des agences arrêtent.

Silex fait ce travail à votre place : le branchement est déjà prêt et tout se fait en visuel. On voit les données du CMS dans l’éditeur, on les modifie et on les style à la souris. Au milieu, c’est le HTML, à droite le CSS. Tout ce qu’on connaît en code sert dans Silex, et l’inverse aussi.

L'éditeur Silex ouvert sur un template, un titre sélectionné au centre et ses réglages de style à droite
L’éditeur : la page au centre, les réglages de l’élément sélectionné à droite

Pour la démo, je suis parti d’un template, j’ai changé le titre et j’ai cliqué sur Publish. En dix minutes, j’avais un site modifiable et en ligne sur GitLab Pages. Avec un CMS branché, il faut en plus relier chaque élément à son champ, mais ça reste des clics.

Le alt des images

C’est le niveau zéro de l’accessibilité. Dans les réglages d’une image, il y a un champ Alt. C’est ce que lit le lecteur d’écran.

Si l’image est décorative, on laisse le champ vide et le lecteur d’écran la saute. Sinon, on y décrit l’image. Un bug empêche encore le champ vide de produire un alt vide dans le HTML publié : il est en cours de correction.

Les réglages d'une image dans Silex, avec le champ Alt rempli d'une description
Le champ Alt, dans les réglages de l’image

Le bon élément HTML

Avant même ARIA, il faut utiliser le bon élément HTML. Le bouton Copy du template est une simple div. Pour qu’il soit accessible, il faut en faire un vrai élément button. Dans Silex, ça se règle dans le champ Tag name de l’élément : on choisit button dans la liste.

Les réglages de l'élément dans Silex, le champ Tag name passé à BUTTON
Le Tag name, passé de DIV à BUTTON

Le focus clavier ne se teste pas dans la prévisualisation, parce que la touche Tab sert déjà à passer en prévisualisation. Je l’ai donc testé sur le site publié, après une nouvelle publication : à la touche Tab, on arrive bien sur le bouton. Un lien reçoit aussi le focus, mais pour un lecteur d’écran, un bouton et un lien ne sont pas la même chose.

Le même champ donne les balises sémantiques : section, nav, header, article. Nos templates les utilisent déjà, il faut s’en servir.

aria-label, et n’importe quel attribut

Quand un élément s’ouvre, se ferme ou réagit à une action, il faut souvent un attribut ARIA. Dans Silex, n’importe quel attribut s’ajoute depuis la section Attributes des réglages : on clique sur le plus, on donne le nom, par exemple aria-label, puis la valeur.

La section Attributes de Silex avec un attribut aria-label ajouté sur un titre h1, valeur encore vide
Un aria-label ajouté sur le titre depuis les attributs

aria-label, c’est un peu comme le alt, mais pour n’importe quel élément. Sur un titre, ce n’est pas un vrai cas d’usage, c’est juste pour montrer où ça se règle. Silex n’aide pas encore à choisir ces attributs : il faut les connaître.

Les éléments natifs avant le JavaScript

Pour l’accessibilité, le plus simple est d’utiliser au maximum les éléments HTML qui existent déjà. Une checkbox native est interactive et gère son focus toute seule, sans JavaScript ni ARIA. On la pose depuis les blocs de formulaire, et on peut la rendre obligatoire avec la case Required de ses réglages.

Le bloc Checkbox dans les formulaires de Silex, et les réglages Required et Checked de la checkbox sélectionnée
Une checkbox native, avec ses réglages Required et Checked

Pour un bloc qu’on ouvre et qu’on ferme au clic, comme une FAQ, il y a l’élément details. Il n’est pas dans les blocs de base, mais le Tag name suffit : je passe le conteneur en details, puis son titre en summary. En prévisualisation, c’est le titre lui-même qui ouvre et ferme le bloc, sans une ligne de JavaScript.

Un élément details fermé dans la prévisualisation de Silex, avec son titre summary cliquable
details et summary : le titre ouvre et ferme le bloc

Et si l’élément n’existe pas dans Silex

On m’a demandé récemment les petites pop-up natives, que HTML propose depuis peu et que Silex n’a ni dans ses blocs ni dans la liste Tag name. Dans ce cas, il reste le bloc Custom code : on y tape le HTML qu’on veut. Pour la démo, j’y ai simplement mis un titre h2 de test. Le résultat apparaît dans les calques comme n’importe quel élément, et on le manipule dans l’éditeur comme les autres.

Un titre TEST inséré par le bloc Custom code, visible dans la page, le chemin de sélection indiquant Custom Code
Le Custom code, pour ce que les blocs et le Tag name ne proposent pas

Ce qui manque encore

Silex n’aide pas encore à choisir les attributs ARIA. Rendre tout ça plus simple, voire obligatoire, est sur la roadmap. L’accessibilité de l’éditeur lui-même viendra aussi, j’espère.

Si vous voulez participer à ce chantier :

Pour une formation, du support ou du développement sur Silex : les services.

La vidéo

La démo complète, de la création du site à la publication : Accessibilité web dans un éditeur visuel : alt, aria et balises sémantiques avec Silex.

Avec Internet 2000, le studio web où je suis associé, on fait des sites Silex branchés sur WordPress : éco-conçus, accessibles, sûrs, rapides à charger et optimisés pour le SEO et le GEO. Vous êtes une agence et vous voulez voir si Silex tient sur vos projets ? Discuter de votre projet.