◧ UX e accessibilità

Animazioni accessibili: movimento utile senza malessere

Quando le animazioni aiutano l'utente e quando lo danneggiano: disturbi vestibolari, lampeggiamenti, prefers-reduced-motion e regole pratiche.

Le animazioni, se usate bene, rendono un'interfaccia più comprensibile. Una finestra che si apre partendo dal pulsante premuto fa capire da dove arriva; un elemento che scivola nel carrello conferma l'azione; una transizione morbida tra due schermate aiuta a non perdere l'orientamento. Ma il movimento ha anche un costo. Per alcune persone può causare nausea, vertigini, mal di testa o, nei casi più gravi, crisi epilettiche. E per molte altre è soltanto una distrazione.

A cosa serve il movimento

Prima di aggiungere un'animazione conviene chiedersi quale problema risolve. Le funzioni legittime sono poche e precise:

  • dare continuità: mostrare che un elemento si trasforma o si sposta, invece di sparire e riapparire;
  • dare riscontro: confermare che un'azione è stata ricevuta, come un pulsante che reagisce al tocco;
  • attirare l'attenzione su un cambiamento importante, con moderazione;
  • indicare uno stato, come un caricamento in corso.

Se un'animazione non svolge nessuna di queste funzioni ed è solo decorativa, va valutata con molta più cautela.

Chi ha problemi con il movimento

Disturbi vestibolari

Il sistema vestibolare, nell'orecchio interno, contribuisce all'equilibrio e alla percezione del movimento. Chi ha un disturbo vestibolare, temporaneo o cronico, può stare male davanti a movimenti ampi sullo schermo: effetti di parallasse, sfondi che scorrono a velocità diverse dal contenuto, zoom improvvisi, rotazioni, pagine che scorrono da sole. Il malessere può durare ore dopo l'esposizione.

Epilessia fotosensibile

Alcune persone possono avere crisi epilettiche in risposta a luci lampeggianti. Il criterio WCAG 2.3.1, di livello A, stabilisce che nessun contenuto deve lampeggiare più di tre volte in un secondo, a meno che il lampeggiamento resti sotto determinate soglie. È uno dei pochi criteri in cui un errore può causare un danno fisico diretto, e va rispettato senza eccezioni.

Difficoltà di attenzione

Per chi fatica a concentrarsi, un elemento in movimento nel campo visivo rende difficile leggere il resto. Il criterio 2.2.2 chiede che i contenuti in movimento, lampeggianti o in scorrimento che partono da soli e durano più di cinque secondi possano essere messi in pausa, fermati o nascosti.

La preferenza «riduci movimento»

I principali sistemi operativi offrono un'impostazione per ridurre il movimento: in macOS e iOS si chiama «Riduci movimento», in Windows «Effetti di animazione», in Android «Rimuovi animazioni». I browser espongono questa preferenza alle pagine web tramite la media query prefers-reduced-motion, che permette di adattare il comportamento del sito.

Un approccio prudente è partire senza movimento e aggiungerlo solo per chi non ha chiesto di ridurlo:

.pannello {
  opacity: 0;
  transition: opacity 150ms ease-out;
}

@media (prefers-reduced-motion: no-preference) {
  .pannello {
    transform: translateY(16px);
    transition: opacity 200ms ease-out, transform 200ms ease-out;
  }
}

In questo esempio, chi ha attivato la preferenza vede una semplice dissolvenza breve; gli altri vedono anche lo scorrimento. Ridurre il movimento non significa per forza eliminare ogni transizione: le dissolvenze e i cambi di colore sono in genere ben tollerati, mentre gli spostamenti ampi e gli zoom sono i più problematici.

Lo stesso principio vale in JavaScript, per esempio per lo scorrimento animato verso un'ancora o per un carosello: si controlla la preferenza con window.matchMedia prima di avviare il movimento.

Regole pratiche

Situazione Indicazione
Transizioni di interfaccia Brevi, in genere tra 150 e 300 millisecondi; più lunghe sembrano lente
Effetti di parallasse Evitarli o disattivarli con la preferenza di movimento ridotto
Caroselli Niente avvio automatico; se c'è, deve esserci un pulsante di pausa visibile
Video di sfondo Fermi per impostazione predefinita, o con un controllo di pausa ben visibile
Indicatori di caricamento Accettabili, ma senza lampeggiamenti rapidi
Scorrimento della pagina Mai prendere il controllo dello scorrimento dell'utente

Le durate indicate sono un riferimento di uso comune tra i progettisti, non una regola normativa: vanno provate sul prodotto reale.

Animazioni attivate dall'interazione

Il criterio WCAG 2.3.3, di livello AAA, chiede che le animazioni attivate da un'interazione, come lo scorrimento della pagina, possano essere disattivate, a meno che non siano essenziali. Anche se il livello AAA non è sempre un obiettivo obbligatorio, rispettare la preferenza di movimento ridotto è un modo semplice per soddisfare questo criterio nella maggior parte dei casi.

Come verificare

  1. Attivare la preferenza di movimento ridotto nel sistema operativo e navigare il sito: le animazioni ampie spariscono o si attenuano?
  2. Cercare elementi che si muovono da soli: si possono fermare?
  3. Controllare i contenuti che lampeggiano, compresi video e GIF caricati dagli utenti.
  4. Chiedersi, per ogni animazione, quale funzione svolge.

In sintesi

  • Il movimento è utile quando dà continuità, riscontro o indica uno stato; da solo come decorazione ha un costo.
  • Movimenti ampi, parallasse e zoom possono causare malessere a chi ha disturbi vestibolari.
  • Nessun contenuto deve lampeggiare più di tre volte al secondo.
  • La media query prefers-reduced-motion permette di rispettare la scelta dell'utente con poche righe di CSS.
  • Tutto ciò che si muove da solo per più di cinque secondi deve poter essere fermato.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica e in psicologia, unisce l'analisi tecnica alla comprensione del fattore umano.

Leggi anche