Better Project

Rebuild del sito web con focus sull’accessibilità per migliorare l’esperienza di navigazione e l’usabilità generale.
25 problemi di accessibilità trovati in questo audit — il 76% invisibili a uno scanner automatico.
Tutti i problemi sono risolti nel nuovo sito web.
Utilizzato un plugin custom per filtri accessibili.

Caso studio: tabella dei contenuti

Tipologia progetto

Progetto di ricerca europeo finanziato dal programma Horizon Europe dell'Unione Europea

Stack e stato

Stack:

Stato:

Obiettivi progetto

Rebuild del sito web. Cliente non ricade sotto l’European Accessibility Act, vuole implementare accessibilità web in linea con i valori etici aziendali e per mantenere una buona usabilità della sua applicazione web.

Impatto potenziale

  • Usabilità e prestazioni da mobile e desktop (UX):L'adeguamento dei contrasti e l'alleggerimento del codice garantiscono un caricamento più rapido e una consultazione immediata in particolare da smartphone, anche in condizioni di luce sfavorevole o per utenti con impedimenti temporanei.
  • Ampliamento del bacino utenti potenziali: La rimozione delle barriere di navigazione rende i contenuti del sito accessibili a oltre il 20% inn più di potenziali clienti fisici con disabilità o limitazioni temporanee in Italia ed Europa.
  • Reputazione di brand e responsabilità sociale d'impresa:L'allineamento agli standard di inclusione digitale rafforza l'immagine aziendale agli occhi di clienti, partner commerciali e stakeholder locali.
  • Adeguamento tecnico e tutela nel tempo:L'aggiornamento preventivo del sito mette la struttura al riparo da futuri interventi straordinari, costi di restyling affrettati o adempimenti legati all'evoluzione delle normative europee.
  • Posizionamento e leggibilità per i motori di ricerca:L'ottimizzazione della struttura semantica (gestione tag, testi alternativi e gerarchia dei titoli) permette agli spider di Google di indicizzare e comprendere al meglio i contenuti scientifici del sito.
Better project hero section screenshot

I test automatici non bastano!

Solo il 24% dei problemi trovati in questo audit sarebbe emerso da uno scanner automatico.

76% (19 su 25) richiede revisione del design, test da tastiera o tecnologia assistiva — quello che un audit "solo tool" non copre.

  • Test automatico: 6
  • Audit del design: 3
  • Audit con tastiera: 7
  • Audit con tecnologie assistive: 9

Audit scan automatizzato

Problema grave

L'attributo aria-label è dichiarato ma vuoto sulla nav primaria

Criterio WCAG: 4.1.2

Categoria: visiva

Fix: Valorizzare aria-label (es. "Primary navigation") su tutte le nav del sito

Il logo nell'header e nel footer ha alt vuoto e nessun testo visibile accanto — il nome del progetto sparisce completamente per chi naviga con screen reader in quel punto della pagina.

Criterio WCAG: 1.1.1

Categoria: visiva

Fix: Alt testuale descrittivo sul logo o aria-label

Problema grave

ALT mancanti per immagini descrittive

Criterio WCAG: 1.1.1

Categoria: visiva

Fix: Implementare ALT tag

Icone descrittive non hanno aria-hidden

Criterio WCAG: 1.1.1

Categoria: visiva

Fix: Rimuovere attributo aria-hidden dalle icone descrittive.

Problema grave

Contrasto insufficiente #EBC669

Criterio WCAG: 1.4.3

Categoria: visiva

Fix: Portare il contrasto entro i termini previsti 4.5 : 1

Problema grave

I testi del footer (descrizione progetto, copyright, link legali) usavano bianco a opacità ridotta su sfondo primary — sotto soglia 4.5:1.

Criterio WCAG: 1.4.3

Categoria: visiva

Fix: Usare un colore a opacità piena e contrasto corretto.

Audit del design

Problema grave

Nel corpo articolo, i link inline nel testo si distinguono dal testo circostante solo tramite il colore, senza sottolineatura né altro indicatore visivo.

Criterio WCAG: 1.4.1

Categoria: visiva

Fix: Aggiungere text-decoration underline (o altro indicatore non cromatico) ai link dentro i blocchi di testo, a livello di CSS globale.

Problema grave

All'hover, .flex-nav__link passa al colore secondary ( #EBC669, oro) su sfondo bianco dell'header — rapporto di contrasto calcolato ~1.6:1, molto sotto soglia 4.5:1. Non rilevabile da scanner automatico perché richiede simulare lo stato hover.

Criterio WCAG: 1.4.3

Categoria: visiva

Fix: Sostituire il colore hover con una variante più scura

Problema grave

Contrasto insufficiente sui controlli filtro

Criterio WCAG: 1.4.3

Categoria: visiva

Fix: Rispettare i requiti di contrasto per i filtri e i filtri attivi.

Audit con tastiera

Skip link non presente

Criterio WCAG: 2.4.1

Categoria: visiva, motoria

Fix: Implementare skip link per saltare blocco navigazione e blocco contenuto.

Problema grave

Mega menu con Esc-to-close non funzionante

Criterio WCAG: 2.1.1

Categoria: motoria

Fix: Implementare script per chiudere il megamenu con tasto ESC

Problema grave

Focus outline non visibile

Criterio WCAG: 2.4.7

Categoria: visiva, motoria

Fix: Implementare focus visible con CSS

Problema grave

Filtri news non navigabili da tastiera

Criterio WCAG: 2.1.1

Categoria: motoria

Fix: Correggere struttura semantica input

Problema grave

Focus non visibili sui filtri news

Criterio WCAG: 2.4.7

Categoria: visiva, motoria

Fix: Sistemare il focus con CSS

Focus order non coerente

Criterio WCAG: 2.4.3

Categoria: motoria

Fix: Verificare e correggere l'ordine del DOM (o l'uso di tabindex) perché coincida con l'ordine visivo su ogni pagina interessata.

Problema grave

Focus che si perde dopo un'interazione

Criterio WCAG: 2.4.3

Categoria: motoria

Fix: Dopo ogni interazione che cambia lo stato della pagina, spostare programmaticamente il focus su un elemento logico e visibile (es. il trigger dell'azione, o il primo elemento del nuovo contenuto).

Audit codice e tecnologie assistive

Problema grave

"View use case" identico su tutte e 3 le card Use Cases, "Learn more" nell'hero — chi naviga per lista di link sente lo stesso testo ripetuto senza modo di distinguere le destinazioni.

Criterio WCAG: 2.4.4

Categoria: visiva

Fix: Testo del link reso unico e descrittivo per ogni card/sezione.

I link con target blank (es. dropdown Resources) non hanno rel noopener né alcuna indicazione, visiva o per screen reader, che si apra una nuova scheda.

Criterio WCAG: 3.2.5

Categoria: visiva, universale

Fix: aria-label esplicito ("... opens in a new tab") più rel noopener su ogni link esterno del sito, come pattern standard anche per link futuri.

aria-expanded="false" scritto staticamente sul pannello del dropdown invece che sul bottone che lo apre/chiude.

Criterio WCAG: 4.1.2

Categoria: visiva

Fix: Spostare l'attributo sul bottone trigger, non sul contenuto controllato.

Problema grave

L'animazione GSAP scroll-linked del treno non ha nessun controllo sulla preferenza utente per il movimento ridotto — può causare disagio reale in utenti sensibili.

Criterio WCAG: 2.3.3

Categoria: cognitiva

Fix: Media query prefers-reduced-motion che disabilita o riduce drasticamente l'animazione.

Diverse sezioni a griglia di elementi ripetuti (card, statistiche, partner, feature) sono costruite con div consecutivi invece di ul/li

Criterio WCAG: 1.3.1

Categoria: visiva, ai_seo

Fix: Convertire il contenitore in ul e i singoli item in li dove la struttura è effettivamente una collezione, azzerando margini/padding di default via CSS.

Landmark semantici non definiti

Criterio WCAG: 1.3.1

Categoria: visiva

Fix: Inserire landmark semantici <header><nav> <main> <footer>

Icone social senza nome accessibile

Criterio WCAG: 1.1.1

Categoria: visiva

Fix: Implementare nome accessibile tramite aria-label

Problema grave

Filtri news non dentro form nativo

Criterio WCAG: 4.1.2

Categoria:

Fix: Usare struttura semantica adeguata per il form e i suoi elementi children (input)

Problema grave

Nessuna aria-live: risultati e reset non annunciati

Criterio WCAG: 4.1.3

Categoria: visiva

Fix: Implementare gestione annunci per screen reader.