Rispettare prefers-reduced-motion

prefers-reduced-motion: Pattern CSS, JavaScript e React | We.Inc

Rileva l'impostazione di riduzione del movimento in CSS e JavaScript, guarda la tua impostazione dal vivo e copia pattern che sostituiscono i grandi movimenti con dissolvenze invece di eliminare le animazioni.

Rispettare prefers-reduced-motion

prefers-reduced-motion è una media feature CSS che indica se un visitatore ha chiesto al proprio dispositivo meno movimento. Ha due valori, no-preference e reduce. Racchiudi i movimenti ampi come parallax, zoom e scorrimenti in una query e, quando il valore è reduce, sostituiscili con una breve dissolvenza o con nessuna animazione.

Dove le persone attivano l'impostazione

Le persone attivano la riduzione del movimento perché scorrimenti, zoom e parallax possono provocare vertigini, nausea o mal di testa, soprattutto in chi soffre di disturbi vestibolari. Il badge qui sotto legge dal vivo l'impostazione del tuo dispositivo e la demo mostra la stessa animazione in versione completa e ridotta, così puoi confrontarle prima di scegliere un pattern.

Domande frequenti

Quali valori ha prefers-reduced-motion?

Due: no-preference, quando il visitatore non ha impostato nulla, e reduce, quando ha chiesto meno movimento. Scrivere @media (prefers-reduced-motion) da solo equivale a chiedere reduce.

Come controllo prefers-reduced-motion in JavaScript?

Chiama window.matchMedia("(prefers-reduced-motion: reduce)") e leggi la sua proprietà matches. Aggiungi un listener dell'evento change all'oggetto restituito per reagire quando l'impostazione cambia mentre la pagina è aperta.

Devo disattivare tutte le animazioni quando è impostato reduce?

No. La richiesta è di meno movimento, non di una pagina congelata. Mantieni cambi di colore, brevi dissolvenze e indicatori di avanzamento, e rimuovi o riduci movimenti come scorrimenti, ridimensionamenti, rotazioni e parallax.

Rispettare la riduzione del movimento è richiesto dalle WCAG?

Il criterio WCAG 2.3.3 Animazione da interazioni, livello AAA, chiede che il movimento attivato da un'interazione possa essere disattivato, a meno che non sia essenziale. Rispettare l'impostazione di sistema è uno dei modi indicati per soddisfarlo. Separatamente, il 2.2.2 Pausa, stop, nascondi di livello A riguarda il movimento che parte da solo.

Come gestisco la riduzione del movimento in Tailwind?

Usa la variante motion-safe: per applicare un'animazione solo quando non è impostata alcuna preferenza, oppure motion-reduce: per annullarne una quando è impostato reduce, per esempio motion-safe:animate-bounce.

Quali movimenti causano problemi

CSS senza movimento come base

Script e librerie

Pattern CSS

Il movimento come miglioramento

La card entra scorrendo solo quando non è impostata alcuna preferenza. Tutti gli altri vedono una dissolvenza delicata.

Una rete di sicurezza per i siti esistenti

Utile quando non puoi riscrivere ogni animazione. Le durate diventano quasi zero invece di none, così gli eventi animationend e transitionend scattano comunque.

JavaScript e React

Leggere l'impostazione e seguirne i cambiamenti

matchMedia restituisce una lista live. Il suo evento change scatta quando il visitatore cambia l'impostazione.

Hook React: usePrefersReducedMotion

Parte da true sul server così nulla si anima prima che il browser abbia risposto.

Con cosa sostituire ogni effetto

Alternative ridotte

La tua impostazione di movimento

Il badge legge l'impostazione del tuo dispositivo con matchMedia, e l'interruttore di anteprima mostra l'animazione ridotta senza cambiare il tuo sistema.

Modalità anteprima

Segui la mia impostazione

Anteprima movimento completo

Anteprima ridotta

Riproduci di nuovo

Ridotto: una breve dissolvenza sul posto.

Movimento completo: il pannello vola, ruota e si ingrandisce.

Inizia gratis · Nessuna carta di credito richiesta

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito