Respecter prefers-reduced-motion

prefers-reduced-motion : modèles CSS, JavaScript et React | We.Inc

Détectez le réglage de réduction des animations en CSS et en JavaScript, voyez votre propre réglage en direct, et copiez des modèles qui remplacent les grands mouvements par des fondus au lieu de supprimer l'animation.

Respecter prefers-reduced-motion

prefers-reduced-motion est une media feature CSS qui indique si un visiteur a demandé à son appareil moins d'animations. Elle a deux valeurs, no-preference et reduce. Placez les grands mouvements comme le parallaxe, les zooms et les glissements dans une requête, et quand la valeur est reduce, remplacez-les par un fondu court ou aucune animation.

Où activer ce réglage

Les gens activent la réduction des animations parce que les glissements, les zooms et le parallaxe peuvent provoquer vertiges, nausées ou maux de tête, en particulier chez les personnes atteintes de troubles vestibulaires. Le badge ci-dessous lit en direct le réglage de votre appareil, et la démo montre la même animation en version complète et réduite, pour comparer avant de choisir un modèle.

Questions fréquentes

Quelles valeurs prend prefers-reduced-motion ?

Deux : no-preference, quand le visiteur n'a rien réglé, et reduce, quand il a demandé moins d'animations. Écrire @media (prefers-reduced-motion) seul revient à tester reduce.

Comment vérifier prefers-reduced-motion en JavaScript ?

Appelez window.matchMedia("(prefers-reduced-motion: reduce)") et lisez sa propriété matches. Ajoutez un écouteur d'événement change à l'objet renvoyé pour réagir si le réglage change pendant que la page est ouverte.

Faut-il désactiver toutes les animations quand reduce est activé ?

Non. La demande porte sur moins de mouvement, pas sur une page figée. Gardez les changements de couleur, les fondus courts et les indicateurs de progression, et supprimez ou atténuez les mouvements comme les glissements, les changements d'échelle, les rotations et le parallaxe.

Respecter la réduction des animations est-il exigé par les WCAG ?

Le critère WCAG 2.3.3 Animation from Interactions, niveau AAA, demande que les animations déclenchées par une interaction puissent être désactivées, sauf si elles sont essentielles. Respecter le réglage système est l'un des moyens prévus pour y satisfaire. Par ailleurs, le critère 2.2.2 Pause, Stop, Hide de niveau A couvre les animations qui démarrent d'elles-mêmes.

Comment gérer la réduction des animations avec Tailwind ?

Utilisez la variante motion-safe: pour appliquer une animation uniquement quand aucune préférence n'est définie, ou motion-reduce: pour en remplacer une quand reduce est activé, par exemple motion-safe:animate-bounce.

Quels mouvements posent problème

Un CSS sans mouvement par défaut

Scripts et bibliothèques

Modèles CSS

Le mouvement comme amélioration

La carte n'entre en glissant que si aucune préférence n'est définie. Les autres voient un léger fondu.

Un filet de sécurité pour les sites existants

Utile quand vous ne pouvez pas réécrire chaque animation. Les durées deviennent presque nulles plutôt que none, pour que les événements animationend et transitionend se déclenchent toujours.

JavaScript et React

Lire le réglage et suivre ses changements

matchMedia renvoie une liste dynamique. Son événement change se déclenche quand le visiteur modifie le réglage.

Hook React : usePrefersReducedMotion

Démarre à true côté serveur, pour que rien ne s'anime avant que le navigateur ait répondu.

Par quoi remplacer chaque effet

Alternatives réduites

Votre réglage d'animation

Le badge lit le réglage de votre appareil avec matchMedia, et le sélecteur d'aperçu montre l'animation réduite sans modifier votre système.

Mode d'aperçu

Suivre mon réglage

Aperçu mouvement complet

Aperçu réduit

Rejouer

Réduit : un fondu court sur place.

Mouvement complet : le panneau s'envole, pivote et grandit.

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site