Il tag <img>: src, alt, width, height, attributi obbligatori
Alt text significativo, prevenire il CLS con le dimensioni, lazy loading
Il tag <img> scritto solo con src funziona: l'immagine appare. Ma tre attributi in più fanno la differenza tra una pagina accessibile e veloce, e una che «salta» mentre carica e resta muta per chi non vede lo schermo.
È come appendere un quadro senza prima misurare lo spazio sulla parete: se il quadro arriva più tardi del previsto, tutti i mobili intorno devono spostarsi per fargli posto. Riservare lo spazio in anticipo, sapere già le dimensioni, evita quel trambusto.

1. alt: significativo, o intenzionalmente vuoto
L'attributo alt è obbligatorio per specifica, non è un optional. Ma «obbligatorio» non significa «sempre descrittivo»: per un'immagine decorativa (un fregio, uno sfondo puramente estetico), il valore corretto è una stringa vuota, alt="", non l'omissione dell'attributo.
<img src="grafico-vendite.png" alt="Vendite in crescita del 20% nel terzo trimestre">
<img src="fregio-decorativo.svg" alt="">
Il motivo tecnico della differenza: se alt manca del tutto, molti screen reader leggono il nome del file al suo posto, un rumore inutile come «DSC underscore 0042 punto jpeg». Con alt="", invece, l'immagine viene saltata volutamente.
Il test pratico per un alt significativo, suggerito da MDN: leggilo insieme al testo che lo precede. Se il risultato suona strano o ridondante, va riscritto. Un'ultima nota: non duplicare mai lo stesso testo in alt e in title sulla stessa immagine, alcuni screen reader lo leggerebbero due volte.
2. width e height: riservare lo spazio prima che l'immagine arrivi
Senza width e height, il browser non sa quanto spazio riservare prima di scaricare l'immagine: la riserva è 0x0 finché l'immagine non arriva, e poi tutto il contenuto sottostante si sposta di colpo. Questo fenomeno ha una metrica precisa nelle performance web: il Cumulative Layout Shift (CLS).
<img src="foto-prodotto.jpg" alt="Scarpa da corsa blu" width="800" height="600">
Dichiarare width/height è raccomandato per tutte le immagini, ma diventa particolarmente importante per quelle con caricamento differito, vedi il punto successivo.
3. loading="lazy": caricare solo quando serve davvero
loading="lazy" dice al browser di rimandare il download di un'immagine finché non si avvicina alla parte visibile dello schermo: utile per immagini più in basso nella pagina, che chi naviga potrebbe non arrivare mai a vedere.
<img src="foto-in-fondo-pagina.jpg" alt="Team al lavoro" loading="lazy" width="1200" height="800">
Qui width/height contano ancora di più: MDN spiega che un'immagine con caricamento lazy non viene mai scaricata se non interseca una parte visibile della pagina, ma finché resta senza dimensioni dichiarate, il suo spazio riservato è zero, e questo può impedire proprio a quell'intersezione di verificarsi correttamente.
Un avvertimento importante, da web.dev (Google): non usare loading="lazy" per immagini che compaiono subito visibili al caricamento della pagina, specialmente l'immagine più importante sopra la piega (il Largest Contentful Paint). Ritardarla peggiora, non migliora, la percezione di velocità.
In sintesi
Quattro attributi, quattro pubblici diversi: src per il browser, alt per chi non vede l'immagine, width/height per la stabilità visiva di tutti, loading per chi ha una connessione lenta. Nessuno di loro è opzionale in un progetto curato.
Commenti (0)
Registrati per commentare, fare domande e proporre l'argomento della prossima pillola (oppure accedi se hai già un account).
Nessun commento. Sii il primo a scrivere qualcosa.