Accessibilità SVG: Rendere la Grafica Vettoriale Inclusiva
Crea grafiche SVG accessibili che funzionino per tutti. Guida completa su ARIA, screen reader, gestione del focus e pratiche di design inclusivo.

Founder of VectoSolve
Self-taught developer, founder and sole developer of VectoSolve since 2024. He builds the conversion engine and the cutting, embroidery and 3D printing exports.
How this article was made: drafted with AI assistance, then edited and fact-checked before publication. About the author
Key Takeaways
- Oltre 1 miliardo di persone nel mondo si affidano a tecnologie assistive — gli SVG accessibili sono sia un imperativo etico che legale
-
Usa
aria-hidden="true"per gli SVG decorativi erole="img"con<title>/<desc>per quelli informativi - WCAG 2.1 richiede un contrasto di 3:1 per grafiche e componenti UI, e 4.5:1 per il testo negli SVG
-
Rispetta sempre
prefers-reduced-motiondisabilitando le animazioni SVG per gli utenti che lo richiedono - Testa con veri screen reader (NVDA, VoiceOver, TalkBack) — gli strumenti automatizzati rilevano solo ~30% dei problemi di accessibilità
Perché l'accessibilità SVG è importante
Oltre 1 miliardo di persone nel mondo convive con disabilità. Rendere le tue grafiche SVG accessibili garantisce che tutti possano comprendere e interagire con i tuoi contenuti. Spesso è anche un obbligo di legge.
Fondamenti di accessibilità
Comprendere le tecnologie assistive
Come le persone accedono agli SVG:
- Screen reader (NVDA, JAWS, VoiceOver)
- Navigazione da tastiera
- Dispositivi a interruttore
- Lenti di ingrandimento
- Controllo vocale
Linee guida WCAG per le immagini
Requisiti principali:
Requisiti WCAG 2.1:
- I contenuti non testuali necessitano di alternative
- Il colore non deve essere l'unico mezzo per trasmettere info
- Contrasto cromatico sufficiente
- Ridimensionabile senza perdite
- Elementi attivabili accessibili da tastiera
Pattern di accessibilità SVG
SVG decorativi
Per elementi puramente visivi:
<svg aria-hidden="true" focusable="false">
<!-- grafica decorativa -->
</svg>
Quando usarli:
- Motivi di sfondo
- Abbellimenti visivi
- Icone ridondanti con testo
- Elementi puramente estetici
SVG informativi
Per grafiche significative:
<svg role="img" aria-labelledby="chart-title">
<title id="chart-title">Crescita vendite 2025</title>
<!-- contenuto del grafico -->
</svg>
Quando usarli:
- Grafici e diagrammi
- Schemi
- Infografiche
- Icone autonome
SVG complessi
Per informazioni dettagliate:
<svg role="img" aria-labelledby="title desc">
<title id="title">Organigramma</title>
<desc id="desc">
Struttura gerarchica con il CEO in cima,
tre VP subordinati, ciascuno con team.
</desc>
<!-- diagramma complesso -->
</svg>
Pro Tip: Per visualizzazioni di dati complesse (grafici, mappe), fornisci sempre una <table> nascosta come alternativa all'SVG. Gli screen reader analizzano le tabelle molto più efficacemente dei dati dei percorsi SVG.
A Full Year of Conversions for $49
Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime
Get the Annual DealAttributi ARIA per SVG
Attributi essenziali
<!-- Definizione del ruolo -->
role="img" <!-- immagine statica -->
role="graphics-document" <!-- interattivo complesso -->
<!-- Etichette -->
aria-label="..." <!-- descrizione semplice -->
aria-labelledby="..." <!-- riferimento a elemento titolo -->
aria-describedby="..." <!-- descrizione dettagliata -->
<!-- Stati -->
aria-hidden="true" <!-- nascondere da TA -->
focusable="false" <!-- impedire il focus -->
Elementi Title e Desc
Accessibilità nativa SVG:
<svg role="img" aria-labelledby="icon-title icon-desc">
<title id="icon-title">Avvertimento</title>
<desc id="icon-desc">
Triangolo giallo con punto esclamativo che indica cautela
</desc>
<path d="..."/>
</svg>
«L'accessibilità non è una funzionalità da aggiungere alla fine — è un vincolo di progettazione che migliora tutto. Un SVG accessibile è un SVG ben strutturato.» - Leonie Watson, Ingegnera dell'Accessibilità & Consiglio Consultivo W3C
Accessibilità degli SVG interattivi
Elementi attivabili
Rendi le parti interattive accessibili:
<svg>
<a href="/section-1" tabindex="0">
<rect x="0" y="0" width="100" height="50"/>
<text>Sezione 1</text>
</a>
</svg>
Indicatori di focus
Stati di focus visibili:
svg a:focus,
svg [tabindex]:focus {
outline: 2px solid #0066cc;
outline-offset: 2px;
}
Navigazione da tastiera
Assicura l'accesso da tastiera:
svgElement.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === ' ') {
// Attivare l'elemento
}
});
Accessibilità del colore
Requisiti di contrasto
Rapporti di contrasto WCAG:
Requisiti minimi:
Testo: 4.5:1 (normale), 3:1 (grande)
Grafiche: 3:1 rispetto allo sfondo
Componenti UI: 3:1
Testare il contrasto
Strumenti di verifica:
- DevTools del browser
- Verificatori di contrasto
- Audit di accessibilità
Indipendenza dal colore
Non affidarti solo al colore:
<!-- Male: Solo colore -->
<circle fill="red"/> <!-- Errore -->
<circle fill="green"/> <!-- Successo -->
<!-- Bene: Pattern + Colore -->
<circle fill="red">
<title>Errore</title>
</circle>
<use href="#checkmark" fill="green">
<title>Successo</title>
</use>
Free SVG Tools for Crafters
Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG
Check Your SVG FreeAccessibilità delle icone
Pulsanti con icona
<button aria-label="Chiudi finestra di dialogo">
<svg aria-hidden="true" focusable="false">
<path d="..."/>
</svg>
</button>
Icona con testo
<button>
<svg aria-hidden="true"><!-- icona --></svg>
Salva documento
</button>
Icone autonome
<svg role="img" aria-label="Notifica: 3 messaggi non letti">
<circle cx="12" cy="12" r="10" fill="#ff0000"/>
<text x="12" y="16" text-anchor="middle">3</text>
</svg>
Accessibilità delle animazioni
Rispettare le preferenze
@media (prefers-reduced-motion: reduce) {
svg * {
animation: none !important;
transition: none !important;
}
}
Controlli di pausa
<button id="toggle-animation">
Metti in pausa l'animazione
</button>
<svg class="animated-svg">
<!-- contenuto animato -->
</svg>
Il criterio di successo WCAG 2.1 2.3.1 richiede che nulla lampeggi più di 3 volte al secondo. Se le tue animazioni SVG includono cambi rapidi di colore o effetti stroboscopici, fornisci un controllo di pausa e rispetta prefers-reduced-motion.
Testare l'accessibilità SVG
Test manuali
Checklist:
- Navigare solo con la tastiera
- Testare con screen reader
- Verificare allo zoom 200%
- Verificare il contrasto dei colori
- Testare con gli utenti
Test automatizzati
Strumenti:
- axe DevTools
- WAVE
- Lighthouse
- Pa11y
Test con screen reader
Testare con:
- NVDA (Windows, gratuito)
- VoiceOver (Mac/iOS, integrato)
- TalkBack (Android, integrato)
- JAWS (Windows, commerciale)
A Full Year of Conversions for $49
Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime
Get the Annual DealRiferimento pattern comuni
Logo
<a href="/">
<svg role="img" aria-label="Nome azienda - Home">
<title>Logo aziendale</title>
<!-- percorsi del logo -->
</svg>
</a>
Visualizzazione dati
<svg role="img" aria-labelledby="chart-title">
<title id="chart-title">Vendite mensili 2025</title>
<desc>Grafico a barre con vendite in crescita
da €10K a gennaio a €45K a dicembre</desc>
<!-- Fornire tabella alternativa -->
</svg>
<table class="sr-only">
<!-- tabella dati accessibile -->
</table>
Sistema di icone
<svg class="icon" aria-hidden="true" focusable="false">
<use href="#icon-search"/>
</svg>
<span class="icon-label">Cerca</span>
VectoSolve e l'accessibilità
Output pulito per l'accessibilità
VectoSolve produce SVG puliti che sono:
- Facili da arricchire con attributi di accessibilità
- Ben strutturati per la modifica
- Pronti per un'implementazione accessibile
Accessibilità post-conversione
Dopo la vettorizzazione:
- Aggiungere il ruolo appropriato
- Includere gli elementi title/desc
- Impostare gli attributi ARIA
- Testare con le tecnologie assistive
Conclusione
Gli SVG accessibili beneficiano tutti — sono più semantici, meglio strutturati e più facili da mantenere. Seguendo questi pattern e testando regolarmente, garantisci che le tue grafiche vettoriali siano veramente inclusive.
| Requisito WCAG | Implementazione SVG | Impatto |
|---|---|---|
| Alternative testuali (1.1.1) | Elementi <title> e <desc> | Gli screen reader annunciano lo scopo dell'immagine |
| Contrasto cromatico (1.4.11) | Minimo 3:1 per grafiche UI | Visibile per utenti ipovedenti |
| Accesso da tastiera (2.1.1) | focusable=true + tabindex | SVG interattivi raggiungibili da tastiera |
| Movimento ridotto (2.3.3) | Media query prefers-reduced-motion | Ferma le animazioni per disturbi vestibolari |
Free SVG Tools for Crafters
Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG
Check Your SVG FreeFonti e letture aggiuntive
- MDN Web Docs: Accessibilità SVG — Riferimento completo per ruoli ARIA, titoli e descrizioni in SVG
- Specifica W3C SVG 2 — Requisiti ufficiali di accessibilità per elementi e attributi SVG
- web.dev: Accessibilità — Guide Google per creare esperienze web inclusive e performanti
- Smashing Magazine: SVG accessibili — Tutorial pratici per rendere icone e illustrazioni SVG compatibili con screen reader