Auditer l'accessibilité de votre application Angular avec un codelyzer

Vous souhaitez rendre votre site Angular accessible à tous ? Vous êtes au bon endroit.

Lorsque votre application est accessible, tous les utilisateurs, y compris ceux ayant des besoins particuliers, peuvent l'utiliser et en comprendre le contenu. Selon le Rapport mondial sur la santé, plus d'un milliard de personnes, soit environ 15 % de la population mondiale, ont une forme de handicap. L'accessibilité est donc une priorité pour tout projet de développement.

Dans cet article, vous allez découvrir comment ajouter les vérifications d'accessibilité de codelyzer au processus de compilation d'une application Angular. Cette approche vous permet de détecter les bugs d'accessibilité directement dans votre éditeur de texte lorsque vous codez.

Utiliser Codelyzer pour détecter les éléments inaccessibles

codelyzer est un outil situé au-dessus de TSLint et qui vérifie si les projets Angular TypeScript suivent un ensemble de règles d'analyse lint. Les projets configurés avec l'interface de ligne de commande (CLI) Angular incluent le codelyzer par défaut.

codelyzer compte plus de 50 règles pour vérifier si une application Angular suit les bonnes pratiques. Parmi ces règles, environ 10 sont destinées à appliquer les critères d'accessibilité. Pour en savoir plus sur les différentes vérifications d'accessibilité fournies par Codelyzer et sur leur justification, consultez l'article Nouvelles règles d'accessibilité dans Codelyzer.

Actuellement, toutes les règles d'accessibilité sont expérimentales et désactivées par défaut. Vous pouvez les activer en les ajoutant au fichier de configuration TSLint (tslint.json) :

{
  "rulesDirectory": [
    "codelyzer"
  ],
  "rules": {
    ...,
    "template-accessibility-alt-text": true,
    "template-accessibility-elements-content": true,
    "template-accessibility-label-for": true,
    "template-accessibility-tabindex-no-positive": true,
    "template-accessibility-table-scope": true,
    "template-accessibility-valid-aria": true,
    "template-click-events-have-key-events": true,
    "template-mouse-events-have-key-events": true,
    "template-no-autofocus": true,
    "template-no-distracting-elements": true
  }
}

TSLint est compatible avec tous les éditeurs de texte et IDE populaires. Pour l'utiliser avec VS Code, installez le plug-in TSLint. Dans WebStorm, TSLint est activé par défaut. Pour les autres éditeurs, consultez le fichier README de TSLint.

Une fois les vérifications d'accessibilité de codelyzer configurées, une fenêtre pop-up s'affiche pour afficher les erreurs d'accessibilité dans les fichiers TypeScript ou les modèles intégrés lorsque vous codez :

Capture d'écran d'une fenêtre pop-up Codelyzer dans un éditeur de texte.
Fenêtre pop-up du codelyzer affichant une erreur de libellé d'élément de formulaire.

Pour effectuer une analyse lint sur l'ensemble du projet (y compris les modèles externes), utilisez la commande ng lint :

Analyse lint avec la CLI Angular

Compléter le codelyser

Lighthouse est un autre outil que vous pouvez utiliser pour appliquer des pratiques d'accessibilité dans votre application Angular. La principale différence entre Codelyzer et Lighthouse réside dans le moment où leurs vérifications sont effectuées. Codelyzer analyse de manière statique l'application au moment du développement, sans l'exécuter. Cela signifie que pendant le développement, vous pouvez obtenir des commentaires directs dans votre éditeur de texte ou dans le terminal. À l'inverse, Lighthouse exécute votre application et effectue un certain nombre de vérifications à l'aide d'une analyse dynamique.

Ces deux outils peuvent être utiles dans votre flux de développement. Lighthouse offre une meilleure couverture compte tenu des vérifications qu'il effectue, tandis que codelyzer vous permet d'itérer plus rapidement en recevant des commentaires constants dans votre éditeur de texte.

Appliquer des contrôles d'accessibilité dans votre intégration continue

L'introduction de vérifications d'accessibilité statiques dans votre intégration continue (CI) peut être un excellent moyen d'améliorer votre flux de développement. Avec codelyzer, vous pouvez facilement appliquer certaines règles d'accessibilité ou d'autres pratiques en exécutant ng lint pour chaque modification de code (par exemple, pour chaque nouvelle requête pull).

De cette façon, avant même de procéder à la révision du code, votre intégration continue peut vous indiquer s'il y a des violations de l'accessibilité.

Conclusion

Pour améliorer l'accessibilité de votre application Angular :

  1. Active les règles d'accessibilité expérimentales dans Codelyzer.
  2. Effectuez une analyse linting de l'accessibilité sur l'ensemble de votre projet à l'aide de la CLI Angular.
  3. Corrigez tous les problèmes d'accessibilité signalés par Codelyzer.
  4. Envisagez d'utiliser Lighthouse pour effectuer des audits d'accessibilité au moment de l'exécution.