CSS Fogli Di Stile

Preferenze Per Il Movimento Ridotto

Preferenze per il movimento ridotto: teoria, esempi e sperimentazione nel browser.

Prerequisiti: Animazioni con @keyframes.

Adattare il movimento alle preferenze

Adattare il movimento alle preferenze: fondamenti.

La media query prefers-reduced-motion: reduce segnala una preferenza per movimento ridotto. Può derivare da una scelta dell’utente nel sistema. Non identifica una diagnosi e non deve essere usata per cambiare o nascondere il contenuto: serve a rendere più adatti effetti e transizioni.

Come funziona: adattare il movimento alle preferenze

Adattare il movimento alle preferenze: comportamento nel browser.

Per una decorazione non essenziale puoi disattivare animation e transition e rimuovere uno spostamento. Per una comunicazione funzionale mantieni un’alternativa percepibile, per esempio un cambiamento immediato di colore o testo. Evita l’assunto che ogni animazione debba durare sempre almeno qualche secondo per essere comprensibile.

Scelte di utilizzo e limiti

Adattare il movimento alle preferenze: progetto e verifica.

Prova entrambe le condizioni nei DevTools o nelle impostazioni di sistema. La pagina deve rimanere utilizzabile con tutti gli effetti disattivati. Un focus visibile e contenuti leggibili sono necessari indipendentemente dalla preferenza di movimento.

Idea chiave: La query elimina il piccolo movimento, ma non toglie il link né il focus.

Esempio commentato

Adattare il movimento alle preferenze: HTML e CSS.

Esempio con stile esterno. Il documento index.html collega il file stile.css mediante il tag link nella head.

Documento HTML completo

<!doctype html>
<html lang="it">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Preferenze per il movimento ridotto</title>
<link rel="stylesheet" href="stile.css">
</head>
<body>
<a class="azione" href="#fine">Vai al contenuto</a>
<p id="fine">Il contenuto resta sempre disponibile.</p>
</body>
</html>

File stile.css

.azione { display: inline-block; padding: 1rem; background-color: #eef4fa; transition: transform 150ms ease; }
.azione:hover { transform: translateY(-3px); }
.azione:focus-visible { outline: 3px solid navy; }
@media (prefers-reduced-motion: reduce) {
  .azione { transition: none; }
  .azione:hover { transform: none; }
}

La query elimina il piccolo movimento, ma non toglie il link né il focus.

ProprietàValore nell’esempioSignificato
displayinline-blockTipo di scatola e contesto di layout.
padding1remSpazio interno fra contenuto e bordo.
background-color#eef4faColore dello sfondo dell’elemento.
transitiontransform 150ms easeProprietà e tempi del passaggio fra valori.
transformtranslateY(-3px)Trasformazione visuale della scatola.
outline3px solid navyContorno che non occupa spazio come un bordo.
Attenzione: Non nascondere informazioni quando reduce è attivo. Rimuovere il movimento non deve togliere le funzioni.

LABORATORIO

Sperimentare: Adattare il movimento alle preferenze

La query elimina il piccolo movimento, ma non toglie il link né il focus.

Obiettivo: Comprendere e applicare adattare il movimento alle preferenze attraverso esempi e verifica nel browser.

Software: editor di testo e browser con DevTools; Tempo: 15 minuti.

Preparazione: scarica l’esempio completo e estrai lo ZIP. Apri index.html nel browser. Puoi anche aprire l’esempio online.

Apri il file stile.css nell’editor. Le lezioni iniziali usano un documento già preparato per concentrarsi sulle regole; il collegamento esterno e lo stile interno vengono spiegati nelle lezioni dedicate. Le modifiche nei DevTools sono normalmente temporanee.

Procedura passo passo

  1. Osserva il punto di partenza: apri l’esempio, confronta markup e regole e individua il selettore o il contesto di layout rilevante.
  2. Esegui la modifica: Emula reduce e confronta il comportamento in hover e da tastiera.
  3. Salva e ricarica la pagina dopo ogni modifica. Confronta gli elementi che devono cambiare con quelli che devono restare invariati.
  4. Ispeziona il risultato: usa il menu Ispeziona e controlla Styles/Regole e Computed/Calcolato. Per layout Flex o Grid attiva l’overlay, se disponibile.
  5. Annota causa ed effetto: scrivi il valore o la struttura iniziale, il cambiamento e il risultato. Ripristina il punto di partenza prima dell’esercizio autonomo.
Cosa devi vedere — Output atteso

Il link non si muove; la navigazione e il focus continuano a funzionare.

Il font e alcuni dettagli dell’interfaccia dipendono dal browser. Valuta la proprietà e il comportamento descritti, non una corrispondenza perfetta con uno screenshot.

Verifica del risultato

ControlloCriterio
Effetto specificoIl link non si muove; la navigazione e il focus continuano a funzionare.
Corrispondenza del codiceIndividua la dichiarazione o la relazione HTML responsabile della differenza.
PersistenzaRiporta la modifica nel file e verifica dopo un ricaricamento.
SpiegazioneMotiva la differenza senza affidarti soltanto a uno screenshot.
Se il risultato non coincide: verifica file aperto, salvataggio, percorso del CSS, selettore e validità dei valori. Controlla poi la cascata e le dimensioni del viewport. Cambia una sola causa alla volta.

Esercizio autonomo

Mantieni uno sfondo diverso in hover anche quando il movimento è ridotto.

Consegna: file modificati e una breve spiegazione di selettore, proprietà e risultato. Criterio di riuscita: il cambiamento richiesto funziona dopo il ricaricamento e non taglia informazioni indispensabili.

Una possibile soluzione dell’esercizio
.azione:hover { background-color: #dbe8f5; }
@media (prefers-reduced-motion: reduce) { .azione:hover { transform: none; } }

Integra la soluzione nel punto pertinente: modifica o sostituisci le regole coinvolte invece di accumulare dichiarazioni contraddittorie. Le altre parti dell’esempio restano necessarie.

Verifica dei concetti

Adattare il movimento alle preferenze: interpretazione e applicazione.

Seleziona una domanda per visualizzare la risposta e confrontarla con la tua.

1. Che cosa segnala prefers-reduced-motion: reduce? ▾
Risposta: Una preferenza per meno movimento. La media query prefers-reduced-motion: reduce segnala una preferenza per movimento ridotto. Può derivare da una scelta dell’utente nel sistema. Non identifica una diagnosi e non deve essere usata per cambiare o nascondere il contenuto: serve a rendere più adatti effetti e transizioni.
2. Come si interpreta il codice dell’esempio? ▾
Risposta: La query elimina il piccolo movimento, ma non toglie il link né il focus.
3. Quale risultato permette di verificare la modifica del laboratorio? ▾
Risposta: Il link non si muove; la navigazione e il focus continuano a funzionare.
4. Quale attenzione evita un’interpretazione sbagliata? ▾
Risposta: Non nascondere informazioni quando reduce è attivo. Rimuovere il movimento non deve togliere le funzioni.

Riferimento tecnico: MDN — riferimento CSS. Cerca le proprietà o i selettori utilizzati nell’esempio.