Controlli su media e accessibilità
Questa guida ai controlli spiega come lo scanner valuta immagini, grafiche, video e audio di una pagina: se sono accompagnati da un testo che persone e software possono leggere, e se le immagini mantengono la pagina leggera e stabile. Questa dimensione vale il 15% del tuo Punteggio AEO.
Alternative testuali
Testo alternativo ed etichette dicono a screen reader, motori di ricerca e strumenti basati sul testo che cosa mostra un'immagine o una grafica.
Image Accessibility
<img>. Le immagini che sembrano decorative restano fuori: un alt="" vuoto esplicito, oppure un indirizzo del file con parole come spacer, divider, bullet, arrow, icon-, bg-, background o pattern. Per le altre misura quante hanno un testo alternativo e quanto è buono quel testo.
alt="" vuoto per le immagini decorative. Una regola Auto-Fix può aggiungere il testo alternativo nel browser dei visitatori, ma la maggior parte dei sistemi AI che scaricano le pagine non esegue gli script: usa "Copia la correzione permanente" per inserirlo nel tuo HTML.
<!-- Content image - needs descriptive alt -->
<img src="ceo-headshot.jpg"
alt="Jane Smith, CEO of TechCorp, smiling in professional attire">
<!-- Product image - include key details -->
<img src="blue-sneakers.jpg"
alt="Nike Air Max 90 in royal blue, side view">
<!-- Decorative image - empty alt -->
<img src="decorative-line.svg" alt="" role="presentation">
<!-- BAD: Generic or unhelpful --> <img src="chart.png" alt="image"> <img src="team.jpg" alt="photo"> <img src="product.jpg" alt="IMG_4521.jpg"> <img src="ceo.jpg" alt="Image of a person"> <!-- GOOD: Descriptive and contextual --> <img src="chart.png" alt="Bar chart showing 40% increase in Q3 revenue"> <img src="team.jpg" alt="Marketing team collaborating in conference room"> <img src="product.jpg" alt="Red leather handbag with gold buckle, front view"> <img src="ceo.jpg" alt="Sarah Chen, CEO, speaking at TechConf 2024">
SVG Accessibility
<svg> inline (le copie identiche contano una volta sola, le definizioni dentro <defs> o <symbol> restano fuori), i file <img> che finiscono in .svg e i file .svg in <object> o <embed>. Per ogni SVG inline verifica che contenga un <title>, oppure role="img", aria-label o aria-labelledby.
<symbol> e <use>), e scende per le grafiche molto complesse e per ogni problema trovato. Gli SVG decorativi segnati con aria-hidden="true" qui contano comunque come non etichettati, anche se nasconderli è la scelta giusta per gli screen reader.
role="img" e un <title> o un aria-label; segna quelli puramente decorativi con aria-hidden="true". Quando un grafico o un'infografica contiene dei numeri, riportali anche nel testo.
<!-- Meaningful SVG - needs accessibility -->
<svg role="img" aria-label="Company growth chart"
viewBox="0 0 100 100">
<title>Company Growth Chart</title>
<desc>A line chart showing revenue growing 45% year over year</desc>
</svg>
<!-- Decorative SVG - hide from assistive tech -->
<svg aria-hidden="true" class="decorative-divider">
<!-- Decorative pattern -->
</svg>
Ottimizzazione delle immagini
Formati moderni, dimensioni dichiarate e lazy loading mantengono veloci e stabili le pagine ricche di immagini mentre si caricano.
Image Optimization
<img> al massimo: quanti usano loading="lazy", quanti sono WebP o AVIF (in base all'indirizzo del file), quanti dichiarano sia la larghezza sia l'altezza, e se qualcuno è un file BMP, TIFF o RAW. Lo scanner non scarica le immagini, quindi non misura né il peso dei file né la qualità della compressione.
loading="lazy" alle immagini sotto la prima schermata (mai all'immagine principale in alto) e comprimi le immagini, per esempio con Squoosh o ImageOptim. Questi attributi vanno nel tuo HTML: Auto-Fix non modifica le immagini.
<!-- Before: Unoptimized image -->
<img src="photo-original.jpg"> <!-- 2.4MB -->
<!-- After: Optimized image -->
<img src="photo-optimized.webp"
width="800" height="600"
loading="lazy"
alt="Product showcase"> <!-- 95KB -->
# CLI tools for optimization
# ImageMagick - resize and compress
convert input.jpg -resize 800x600 -quality 85 output.jpg
# cwebp - convert to WebP
cwebp -q 80 input.jpg -o output.webp
<img src>. Un'immagine servita con <picture>, con sorgenti WebP o AVIF e un JPEG come alternativa, conta come JPEG, e lo stesso vale per un WebP che una CDN serve da un indirizzo che finisce in .jpg. Lo schema qui sotto resta comunque valido per i visitatori.
<picture> <source srcset="hero.avif" type="image/avif"> <source srcset="hero.webp" type="image/webp"> <img src="hero.jpg" alt="Hero banner" width="1200" height="600"> </picture>
<!-- Width and height let the browser reserve the space before the image loads -->
<img src="product.jpg" width="800" height="600" alt="Red leather handbag, front view">
<!-- Responsive layout: keep the attributes and let CSS scale the image -->
<style>
img {
max-width: 100%;
height: auto;
}
</style>
Immagini responsive
File più piccoli per gli schermi più piccoli.
Responsive Images
<img> con un srcset (le immagini sotto i 50 × 50 pixel secondo gli attributi width e height vengono saltate), verifica che un srcset con descrittori di larghezza come 800w abbia l'attributo sizes, e cerca elementi <picture> e art direction (<source media>).
srcset, altrimenti 70. Con più immagini parte da 50 e aggiunge fino a 25 punti per la quota di immagini con srcset, 15 quando ogni srcset con larghezze ha sizes (10 quando ce l'ha la maggior parte), 10 per un elemento <picture> e 5 per l'art direction. In entrambi i casi ogni problema trovato toglie 5 punti. Il punteggio conta nella dimensione che il controllo risulti superato o no.
srcset, aggiungi sizes perché il browser possa scegliere il file giusto, e usa <picture> quando schermi diversi richiedono un taglio diverso.
<img srcset="product-400w.jpg 400w,
product-800w.jpg 800w,
product-1200w.jpg 1200w"
sizes="(max-width: 600px) 100vw,
(max-width: 1200px) 50vw,
600px"
src="product-800w.jpg"
alt="Premium leather wallet in brown">
Elementi semantici per i media
Elementi HTML che legano un'immagine al testo che la spiega.
Figure/Figcaption Usage
<img> della pagina che si trovano dentro un <figure>. Se la figura ha un <figcaption> viene riportato, ma non è richiesto.
<img>, compresi loghi e icone, quindi le pagine con molte immagini piccole ottengono un punteggio più basso.
<figure> le immagini che hanno bisogno di contesto, come grafici, schemi e foto di prodotto, con un <figcaption> che dica cosa mostra l'immagine o perché è importante.
<figure>
<img src="chart-revenue.png"
alt="Q3 2024 revenue breakdown by region">
<figcaption>
Figure 3: Q3 2024 Revenue by Region.
North America led with 45% of total revenue.
</figcaption>
</figure>
Accessibilità di video e audio
Sottotitoli e trascrizioni rendono leggibile il parlato a chi non può sentirlo e agli strumenti basati sul testo.
Video Accessibility
<video> nell'HTML: se ha una traccia di sottotitoli (<track kind="captions"> o kind="subtitles"), oppure un aria-label o un aria-describedby. I player incorporati, come gli iframe di YouTube, non vengono controllati.
<video controls preload="metadata" poster="thumbnail.jpg">
<source src="demo.mp4" type="video/mp4">
<track kind="captions" src="captions-en.vtt"
srclang="en" label="English" default>
<track kind="captions" src="captions-es.vtt"
srclang="es" label="Spanish">
</video>
<article>
<h2>Product Demo Video</h2>
<video controls poster="demo-thumbnail.jpg">
<source src="demo.mp4" type="video/mp4">
<track kind="captions" src="demo-en.vtt" srclang="en" default>
</video>
<details class="video-transcript">
<summary>View Full Transcript</summary>
<div class="transcript-content">
<p><strong>[00:00]</strong> Welcome to our product demo...</p>
<p><strong>[00:15]</strong> First, let me show you...</p>
</div>
</details>
</article>
Audio Accessibility
<audio> e i player incorporati dei servizi di podcast (Spotify, SoundCloud, Anchor, Podbean, Buzzsprout, Transistor, Simplecast). Verifica che ogni <audio> abbia i controlli e cerca una trascrizione: la parola "transcript" nel testo della pagina, oppure un elemento con una classe che contiene "transcript" (sulle pagine in italiano anche "trascrizione").
<audio> ha i controlli la gravità è alta, negli altri casi media.
controls a ogni <audio>, pubblica nella pagina una trascrizione completa con i nomi di chi parla e non avviare mai la riproduzione automatica con l'audio.
<article class="podcast-episode">
<h2>Episode 42: The Future of AI</h2>
<p class="episode-meta">Duration: 45 min | Published: Oct 15, 2024</p>
<audio controls preload="metadata">
<source src="episode-42.mp3" type="audio/mpeg">
</audio>
<section class="transcript">
<h3>Full Transcript</h3>
<p><strong>Host (Sarah):</strong> Welcome to Tech Talk...</p>
<p><strong>Dr. Chen:</strong> Thanks for having me, Sarah.</p>
</section>
</article>