sprezzature-accessibility
Accessibilité
Deux moitiés d'un même travail : auditer ce qu'une page rate en accessibilité — vingt règles décidables depuis la source HTML (langage de balisage des pages web) seule, sans navigateur, sans modèle objet du document (DOM) à l'exécution — et produire le contenu qui lui manque, en rédigeant le texte alternatif avec un modèle de vision local.
Produit
- Le texte alternatif d'une image, rédigé par un modèle de vision Ollama local en suivant l'arbre de décision du World Wide Web Consortium (W3C) — informatif, décoratif, fonctionnel, texte, complexe, groupe — dans n'importe quelle langue, mis en cache sur disque
- JSON (notation d'objets JavaScript) / stdout / codes de sortie pour pré-commit et intégration continue (CI)
- Un réglage CSS optionnel « lecture confortable » aux minima WCAG 1.4.12, pour les pages qui le proposent comme un choix visible par le lecteur
Audite
- alt manquant, champs sans label, bouton sans texte, div cliquable
- Fermeture de dialog manquante, attribut lang, ordre des titres
- État par la couleur seule, garde-fous d'animation réduite, espacement des lettres trop resserré sur le texte de lecture
- Sous-titres, langue de la piste et contrôles sur
<video>et<audio> - Une barrière rapide et déterministe (vingt règles, six avec un correcteur mécanique), pas un remplaçant d'axe-core / Pa11y / Lighthouse
Dites l'une de ces phrases
La skill se déclenche sur une formulation de ce type, sans commande à mémoriser.
lint a11y
vérifie l'accessibilité de ce HTML
check a11y statique
lint compatible WCAG
alt manquant
champ sans label
vérif ARIA / clavier
corrige l'accessibilité
Bibliothèque de références
Les connaissances sur lesquelles la skill s'appuie : à lire directement dans le repo.
Questions fréquentes
Comment installer sprezzature-accessibility ?
Lancez pip install sprezzature-accessibility (Python 3.10 à 3.13) : une ligne installe le linter, le rédacteur de texte alternatif, l'API HTTP et le serveur MCP, sans option à choisir. Pour s'en servir comme skill, pip install sprezzature puis sprezzature-skills --install (ou sprezzature-skills --install --agent opencode).
Que vérifie sprezzature-accessibility ?
sprezzature-accessibility applique vingt règles décidables à la seule lecture du HTML : texte alternatif manquant, champs sans étiquette, liens et boutons vides, div cliquables hors de portée du clavier, dialogues sans fermeture, lang absent, niveaux de titres sautés, état signalé par la seule couleur, animation sans garde de mouvement réduit, interlettrage serré, et sous-titres, transcriptions ou contrôles manquants sur la vidéo et l'audio. Six règles ont aussi une réparation mécanique, appliquée par --fix.
En quoi sprezzature-accessibility diffère-t-il d'axe-core, Pa11y ou Lighthouse ?
sprezzature-accessibility lit le source HTML sans ouvrir de navigateur : il tourne en quelques millisecondes et rend toujours la même réponse, mais il ne voit pas ce qui n'existe qu'une fois la page rendue, comme l'ordre du focus, le moment des annonces du lecteur d'écran ou le contraste sur un vrai fond. axe-core, Pa11y et Lighthouse pilotent un vrai navigateur et couvrent cette couche ; employez celui-ci comme premier filtre rapide et l'un d'eux en second passage, pas comme remplaçant.
sprezzature-accessibility peut-il écrire le texte alternatif manquant ?
Oui : sprezzature-accessibility rédige les textes alternatifs manquants avec sprezzature-accessibility-lint --fix-alt public/, à partir de chaque image et du texte qui l'entoure dans la page, dans la langue de la page ou celle de --alt-lang ; sprezzature-accessibility-alt photo.jpg traite une seule image. Cette moitié demande Ollama et le modèle de vision qwen3-vl:8b, installé par sprezzature-accessibility-install-alt, alors que le linter n'a besoin ni de navigateur ni de modèle. Une personne relit chaque brouillon avant de le committer.
sprezzature-accessibility envoie-t-il mes pages ou mes images à un service cloud ?
Non : le linter de sprezzature-accessibility ne fait rien sortir de votre machine et n'appelle aucun modèle ; seul le rédacteur de texte alternatif (--fix-alt, sprezzature-accessibility-alt) appelle un modèle de vision, servi par Ollama sur votre propre machine, sauf si OLLAMA_URL désigne une autre adresse. L'API HTTP analyse une chaîne de HTML et ne va jamais chercher d'URL.
Peut-on lancer sprezzature-accessibility en CI ou dans un hook pre-commit ?
Oui : sprezzature-accessibility-lint public/ analyse chaque fichier .html du dossier et sort avec le code 1 au moindre constat, avertissements compris, et 0 sur une page propre, avec --format json pour une CI et --ignore pour écarter des règles nommées. Pour un hook, pip install --no-deps sprezzature-accessibility plus pip install click suffisent à faire tourner le linter.
Peut-on utiliser sprezzature-accessibility sans Claude Code ?
Oui : sprezzature-accessibility est une bibliothèque Python (import sprezzature_accessibility), une ligne de commande (sprezzature-accessibility, une commande par outil), une API HTTP avec image Docker et un serveur MCP, sprezzature-accessibility-mcp, pour tout client MCP. L'image Docker lance ce serveur : un même port répond aux routes HTTP et à /mcp.
sprezzature-accessibility est-il gratuit ?
Oui : sprezzature-accessibility est open source sous licence BSD 3-Clause, sans compte, sans clé d'API ni offre payante, et le code est sur GitHub.