# Alt text generato e revisionato: tre regole prima del prompt

Un alt text generato descrive quello che il modello vede, non lo scopo dell'immagine. Va revisionato, tenuto sotto i 125 caratteri e svuotato se decorativo.

> Pagina: https://ui.eneawork.it/blog/ai-generazione-alt-text
> Markdown: https://ui.eneawork.it/blog/ai-generazione-alt-text.md

*2026-11-01*

Un alt text generato è una bozza: descrive quello che il modello vede, non lo scopo dell'immagine nella pagina. Va revisionato, accorciato e a volte cancellato.

Il catalogo pubblica 12.808 icone da 1.472 librerie, letti da /api/stats il 1 novembre 2026. Le copertine italiane in public/blog-covers/it sono 1.156 file per 41.599.334 byte, con una media di 35.986 byte e un massimo di 79.633 byte, misurati lo stesso giorno con uno script Node. La pagina prezzi di OpenAI, letta il 1 novembre 2026, quota gpt-6-luna a 0,10 $ per milione di token in ingresso e 0,50 $ in uscita; la pagina Anthropic, letta lo stesso giorno, quota Haiku 5.5 agli stessi 0,10 $ e 0,50 $. Il criterio 1.1.1 delle WCAG 2.2 chiede un'alternativa testuale per ogni contenuto non testuale.

## Tre regole che valgono più del prompt

grep -o ']*>' dist/index.html | grep -vc 'alt='

Il comando conta le immagini senza attributo alt in un file HTML costruito: è il primo controllo, non l'ultimo. Un alt vuoto e un alt assente si vedono uguali in pagina e sono due cose diverse nel DOM.

## Il giro di revisione

Genera, poi confronta con la pagina: ogni alt che nomina un colore o una forma senza dire a cosa serve l'immagine va riscritto. La revisione costa più della generazione, ed è l'unica parte che migliora il risultato.

import { generateText } from 'ai'; const alt = await generateText({ model: 'openai/gpt-6-luna', messages: [ { role: 'user', content: [ { type: 'text', text: 'Write alt text under 125 characters. State the purpose, not the pixels. If the image is decorative, answer exactly: decorative.', }, { type: 'image', image: new URL(imageUrl) }, ], }, ], maxOutputTokens: 60, }); console.log(alt.text);

## Cosa non delegare

## La limitazione

Il modello non vede la pagina: senza il testo che sta accanto produce didascalie generiche. E nessuna metrica pubblica misura la qualità di un alt, quindi il controllo resta una lettura umana pagina per pagina.

## Dove continuare

Il giro completo di verifica è in audit di accessibilità, gli errori ricorrenti in errori comuni WCAG, il confronto fra librerie headless in Radix, Base UI e React Aria. I record: 12.808 icone, 111.985 componenti, 1.556 blocchi.

## FAQ

### Posso pubblicare un alt text generato senza rileggerlo?

No. Il modello descrive ciò che vede e non sa a cosa serve l'immagine in quella pagina, quindi sbaglia proprio la parte che conta. Rileggi sempre e riscrivi quando l'alt non spiega lo scopo.

### Quanto deve essere lungo un alt text?

Sotto i 125 caratteri nella maggior parte dei casi: una frase che dice cosa fa l'immagine. Le immagini con dati, come un grafico, hanno bisogno di una descrizione più lunga e di una tabella equivalente nel testo.

### Quando l'alt deve restare vuoto?

Quando l'immagine è decorativa o ripete il testo che sta accanto. Un alt vuoto è esplicito per il lettore di schermo; un alt assente è un errore di markup.

### Quanto costa generare l'alt di un catalogo di immagini?

Dipende dai token dell'immagine e del prompt. Con gpt-6-luna a 0,10 $ per milione di token in ingresso e 0,50 $ in uscita, il costo per immagine resta basso, ma trenta caratteri di risposta non valgono il risparmio di una revisione saltata.

### L'alt text migliora la SEO?

Aiuta la comprensione dell'immagine e l'accessibilità, non la posizione. Un alt pieno di parole chiave viene ignorato dai motori e letto ad alta voce agli utenti, che è peggio.
