Philippe DELENTE

Développeur Web

twig-a11y-rules

89 règles d'accessibilité pour les templates Twig : alt manquants, boutons vides, rôles ARIA invalides… repérés avant la mise en ligne. En v1 sur Packagist.

  • PHP 8.4
  • Twig
  • Twig-CS-Fixer
  • PHPUnit
  • CI / Codecov

Voir en ligne (nouvel onglet) Code source sur GitHub (nouvel onglet)

Le contexte

Dans l'écosystème Symfony, les templates Twig ne passent par aucun contrôle d'accessibilité avant la recette : les oublis (image sans alt, bouton sans nom accessible, ARIA mal utilisé) ne sont repérés qu'en audit, quand ils coûtent cher à corriger. Le seul outil existant, twigcs-a11y, n'était plus maintenu.

Mon rôle

Conception, développement, tests et publication du package, seul.

Points clés

  • Un linter qui s'intègre à l'existant

    Plutôt qu'un nouvel outil à installer, les règles se branchent sur Twig-CS-Fixer, déjà utilisé par les équipes Symfony. Une ligne de configuration suffit, et chaque violation peut être désactivée finement avec son identifiant.

  • 89 règles, 4 niveaux

    Médias, formulaires, structure, ARIA… Les règles sont regroupées en presets progressifs (Basic, Recommended, Standard, Strict) pour adopter le linter sur un projet existant sans être noyé sous les alertes.

  • Comprendre le contexte du template

    Layouts, templates enfants, partials, thèmes de formulaire et composants Twig UX sont reconnus : les règles qui concernent une page complète (langue, titre, landmarks) ne s'appliquent pas à un simple fragment.

  • Qualité d'un vrai package

    Suite de tests PHPUnit, intégration continue avec GitHub Actions, couverture suivie sur Codecov, versionnement sémantique jusqu'à la v1.

Ce que j'en retiens

Écrire des règles statiques oblige à connaître précisément les critères WCAG et leurs exceptions, et à arbitrer entre exhaustivité et faux positifs. Publier un package public m'a aussi appris à soigner la documentation et la compatibilité des versions.

Tous les projets