FlowKit

Générer des textes alternatifs (alt text) en masse avec l'IA dans n8n : SEO et accessibilité

Publié le 19 août 2026 · 5 min de lecture

Sur un catalogue e-commerce de quelques milliers de références ou un site publié depuis plusieurs années, il n'est pas rare que 60 à 80 % des images n'aient aucun attribut alt, ou un attribut générique (IMG_4821.jpg, « image », le nom du fichier brut). Deux conséquences concrètes : ces images sont invisibles pour Google Images et pour les lecteurs d'écran, et depuis le 28 juin 2025 l'European Accessibility Act en fait un point de non-conformité RGAA pour toute entreprise au-delà de 10 salariés ou 2 M€ de chiffre d'affaires. Rédiger ces textes un par un dans l'éditeur du CMS prend des heures pour un site de taille moyenne — c'est exactement le type de tâche que n8n peut automatiser en combinant un modèle de vision, un contrôle qualité et l'API du CMS.

Automatiser n'est cependant pas synonyme de tout déléguer à l'IA sans relecture. Une étude récente présentée à la conférence Web for All, Cardia, Angileri, Poggianti et Leporini (W4A, 2026) — voir sur Google Scholar, compare des textes alternatifs écrits par des humains à ceux générés par des LLM sur des images techniques (graphiques, schémas, formules) : les descriptions produites par les modèles sont fluides mais laissent des écarts substantiels sur les détails structurels et la sémantique formelle que les utilisateurs de lecteurs d'écran attendent réellement. Pour des photos produit ou des visuels illustratifs, l'IA suffit largement ; pour des images porteuses d'une information structurée, ce constat justifie un point de contrôle humain avant publication plutôt qu'une automatisation intégrale.

Vue d'ensemble du pipeline

Le workflow tient en cinq étapes : repérage des images sans alt text exploitable, envoi à un modèle de vision, génération contrainte, contrôle qualité avec routage des cas sensibles, puis republication via l'API du CMS.

Lister les images (CMS / sitemap) → Filtrer (alt vide ou générique) → Vision IA (+ contexte produit) → Contrôle qualité → IF (ok / à relire) → Publication API

Étape 1 — Repérer les images sans alt text exploitable

Sur WordPress (WooCommerce compris, qui s'appuie sur la même médiathèque), un node HTTP Request interroge l'API REST native :

GET /wp-json/wp/v2/media?media_type=image&per_page=100&page=1

Chaque objet renvoyé contient un champ alt_text — contrairement aux champs Yoast SEO évoqués dans notre guide sur les meta descriptions générées par IA, ce champ est directement modifiable en écriture via l'API standard, sans plugin ni snippet PHP supplémentaire. Sur Shopify, l'équivalent passe par l'API GraphQL Admin (product.media, avec le champ alt sur chaque MediaImage).

Un node Filter ne garde que les images à traiter :

const alt = ($json.alt_text || "").trim().toLowerCase();
const nomFichier = ($json.source_url || "").split("/").pop().replace(/\.\w+$/, "");

return [{
  json: {
    ...$json,
    aTraiter:
      alt === "" ||
      alt === nomFichier.toLowerCase() ||
      /^(image|photo|img|dsc|screenshot)[\s_-]*\d*$/i.test(alt),
  },
}];

Une image dont l'alt text est déjà rédigé et cohérent n'est jamais reprise — seules les images vides ou manifestement génériques passent le filtre.

Étape 2 — Envoyer l'image au modèle de vision

Le principe rejoint notre guide sur l'analyse d'images en vision multimodale : un node HTTP Request (ou le node OpenAI en opération Analyze Image) récupère le binaire, et un node Edit Image en amont réduit la résolution à 1000-1500 px de large pour limiter le coût — l'alt text n'a besoin d'aucun détail fin, contrairement à l'extraction de texte sur un document. Sur un catalogue produit, injecter le titre, la catégorie et les attributs de la fiche (déjà couverts dans notre guide sur la génération de fiches produits par IA) dans le prompt évite au modèle de deviner ce qu'il voit à partir de la seule image.

Étape 3 — Générer avec des contraintes strictes

Un node Chain LLM avec un Structured Output Parser impose un schéma fixe :

{
  "alt_text": "string, 125 caractères max, description factuelle sans 'image de' ni 'photo de'"
}

Le prompt doit explicitement interdire les formules creuses (« Image représentant... »), les répétitions du titre de la page, et le bourrage de mots-clés — un lecteur d'écran lit l'attribut alt mot pour mot, une formule artificielle y est immédiatement audible.

Étape 4 — Contrôle qualité et routage

const d = $json;
const problemes = [];

if (!d.alt_text || d.alt_text.length > 125) problemes.push("longueur hors bornes");
if (/^(image|photo) (de|d'|representant)/i.test(d.alt_text)) {
  problemes.push("formule générique détectée");
}
if (d.categorieImage === "graphique" || d.categorieImage === "schema") {
  problemes.push("image structurelle — relecture humaine requise");
}

return [{ json: { ...d, ok: problemes.length === 0, problemes } }];

Un node IF sépare les images conformes, publiées directement, des cas à relire — vides, génériques, ou signalés comme graphiques/schémas en amont. Le pattern d'approbation humaine avec Wait et Slack permet de router ces cas vers une file de validation plutôt que de les bloquer.

Étape 5 — Republier via l'API

CMS Endpoint Champ
WordPress / WooCommerce POST /wp-json/wp/v2/media/{id} alt_text
Shopify productUpdateMedia (GraphQL Admin) alt sur MediaImage
PrestaShop PUT /api/images/products/{id} legend (via webservice XML)

Sur WordPress, l'écriture ne nécessite qu'une authentification Basic Auth avec un mot de passe d'application — aucune configuration supplémentaire, à la différence des champs SEO tiers. Sur Shopify, la mutation GraphQL prend en entrée l'ID du produit et un tableau d'objets {id, alt} correspondant aux médias déjà attachés ; nos guides Shopify et WooCommerce détaillent l'authentification correspondante.

Traiter le catalogue par lots

Sur plusieurs milliers d'images, un node Loop Over Items traite les lots de 20 à 50 avec un court Wait entre chaque lot, comme détaillé dans notre guide sur les boucles n8n et notre guide sur les rate limits d'API. C'est aussi le moment de journaliser chaque changement — image, ancien et nouvel alt text, date — dans une table Supabase, sur le même principe que notre guide sur la piste d'audit RGPD, pour ne jamais retraiter une image déjà corrigée et pouvoir présenter un historique en cas de contrôle d'accessibilité.

En résumé

Générer des textes alternatifs en masse avec n8n repose sur les mêmes garde-fous que la génération de contenu SEO : ne cibler que les images réellement vides ou génériques, fournir au modèle le contexte produit plutôt que la seule image, imposer une sortie structurée avec des bornes de longueur, et router les images structurelles vers une relecture humaine plutôt que de tout automatiser. Le même socle — extraction, génération contrainte, contrôle qualité, journalisation — alimente aussi les workflows de suivi documentaire du Pack Assistant RAG (119 €), pensé pour transformer un corpus d'images et de documents bruts en contenu structuré et exploitable.

FAQ

Questions fréquentes

Le texte alternatif généré par IA suffit-il pour être conforme au RGAA ou à l'European Accessibility Act ?

Il comble une grande partie du terrain — la majorité des images non conformes le sont simplement parce que l'attribut alt est vide, pas absurde. Mais pour les images porteuses d'une information structurelle (graphiques, schémas, captures d'écran de tableaux), une IA de vision reste en retrait par rapport à une description humaine, comme le montre une étude récente sur les alt text générés par LLM. Router ces cas vers une relecture humaine plutôt que de tout automatiser reste la pratique la plus sûre pour ces images spécifiques.

Faut-il le même texte alternatif pour le SEO et pour l'accessibilité ?

L'objectif est le même — décrire fidèlement le contenu de l'image — mais l'angle diffère légèrement. Un bon alt text accessible décrit ce qu'un utilisateur voyant percevrait, sans jugement de valeur ; un bon alt text SEO inclut naturellement le mot-clé ou le contexte produit pertinent quand il correspond réellement au contenu. Un seul texte bien écrit, sans bourrage de mots-clés, sert généralement les deux objectifs à la fois.

Comment éviter de régénérer un alt text déjà présent et correct ?

En filtrant en amont sur les images dont l'attribut alt est vide, générique ("image", "photo", le nom de fichier brut) ou manifestement tronqué, plutôt qu'en reprenant toutes les images du site. Un alt text déjà rédigé à la main et cohérent avec l'image n'est jamais écrasé, sauf régénération forcée explicite.

Bundle FlowKit Complet

269 €