prefers-reduced-motion
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Januar 2020.
Warnung: Ein eingebettetes Beispiel am Ende dieser Seite enthält eine Skalierungsbewegung, die für einige Leser problematisch sein könnte. Leser mit vestibulären Bewegungsstörungen sollten die Reduzierung der Bewegungen auf ihrem Gerät aktivieren, bevor sie die Animation betrachten.
Das prefers-reduced-motion CSS Medienmerkmal wird verwendet, um zu erkennen, ob ein Benutzer auf seinem Gerät eine Einstellung aktiviert hat, um die Menge an nicht wesentlichen Bewegungen zu minimieren. Diese Einstellung wird verwendet, um dem Browser auf dem Gerät mitzuteilen, dass der Benutzer eine Benutzeroberfläche bevorzugt, die bewegungsbasierte Animationen entfernt, reduziert oder ersetzt.
Solche Animationen können Unwohlsein bei Personen mit vestibulären Bewegungsstörungen auslösen. Animationen wie das Skalieren oder Schwenken großer Objekte können vestibuläre Bewegungsauslöser sein.
Syntax
no-preference-
Gibt an, dass ein Benutzer keine Präferenz auf dem Gerät angegeben hat. Dieser Schlüsselwortwert wird als falsch bewertet.
reduce-
Gibt an, dass ein Benutzer die Einstellung für reduzierte Bewegung auf seinem Gerät aktiviert hat. Der
reduce-Schlüsselwortwert wird als wahr bewertet; daher ist@media (prefers-reduced-motion)äquivalent zu@media (prefers-reduced-motion: reduce).
Benutzerpräferenzen
Für Firefox wird die reduce-Anfrage berücksichtigt, wenn:
-
In GTK/GNOME: Einstellungen > Barrierefreiheit > Sehen > Reduzierte Animation ist eingeschaltet.
- In älteren Versionen von GNOME, GNOME Tweaks > Allgemein-Tab (oder Darstellung, je nach Version) > Animationen sind ausgeschaltet.
- Alternativ fügen Sie
gtk-enable-animations = falsezum[Settings]Block der GTK 3-Konfigurationsdatei hinzu. - Zudem versuchen Sie,
gsettings set org.gnome.desktop.interface enable-animations falseauszuführen, damit Firefox (und andere Programme, die auf GTK Version 4 angewiesen sind) diereduce-Einstellung respektieren.
-
In Plasma/KDE: Systemeinstellungen > Arbeitsbereich-Verhalten -> Allgemeines Verhalten > "Animationsgeschwindigkeit" ist ganz nach rechts auf "Sofort" gestellt.
- Alternativ fügen Sie
AnimationDurationFactor=0zum[KDE]Block von~/.config/kdeglobalshinzu. - Oder führen Sie einfach
kwriteconfig6 --key AnimationDurationFactor 0in Ihrem Terminal aus.
- Alternativ fügen Sie
-
In Windows 10: Einstellungen > Erleichterte Bedienung > Anzeige > Animationen in Windows anzeigen.
-
In Windows 11: Einstellungen > Barrierefreiheit > Visuelle Effekte > Animationseffekte
-
In macOS: Systemeinstellungen > Bedienungshilfen > Anzeige > Bewegung reduzieren.
-
In iOS: Einstellungen > Bedienungshilfen > Bewegung.
-
In Android 9+: Einstellungen > Bedienungshilfen > Animationen entfernen.
-
In Firefox
about:config: Fügen Sie eine Nummernpräferenz namensui.prefersReducedMotionhinzu und setzen Sie ihren Wert auf0für volle Animation oder auf1, um eine Vorliebe für reduzierte Bewegung anzugeben. Änderungen an dieser Präferenz treten sofort in Kraft.
Beispiele
Dieses Beispiel verwendet eine Skalierungs-Animation, um prefers-reduced-motion zu demonstrieren. Wenn Sie die Einstellung zur Reduzierung von Bewegungen in den Barrierefreiheitseinstellungen auf Ihrem Gerät aktivieren, erkennt die prefers-reduced-motion-Media-Query Ihre Präferenz, und die CSS innerhalb der Regeln für reduzierte Bewegung, mit derselben Spezifität aber später in der CSS-Quellreihenfolge, wird Vorrang haben. Dadurch wird die Animation auf der Box auf die dissolve-Animation abgeschwächt, eine gedämpftere Animation, die kein vestibulärer Bewegungsauslöser ist.
Abschwächung der Skalierungsanimation
HTML
<div class="animation">animated box</div>
CSS
.animation {
animation: pulse 1s linear infinite both;
background-color: purple;
}
/* Tone down the animation to avoid vestibular motion triggers. */
@media (prefers-reduced-motion: reduce) {
.animation {
animation: dissolve 4s linear infinite both;
background-color: green;
text-decoration: overline;
}
}
Ergebnis
Sie können die Einstellung zur Reduzierung von Bewegungen auf Ihrem Gerät aktivieren, um die Änderung der Animationsskalierung zu sehen. Dieses Beispiel verwendet die Hintergrundfarbe und die Linie über dem Text, um visuell hervorzuheben, wann die Keyframe-Animation wechselt, als Reaktion auf das Aktivieren oder Deaktivieren der Einstellung.
Spezifikationen
| Specification |
|---|
| Media Queries Level 5> # prefers-reduced-motion> |
Browser-Kompatibilität
Siehe auch
Sec-CH-Prefers-Reduced-MotionHTTP Header User Agent Client Hint- Eine Einführung in die Media Query für reduzierte Bewegung auf CSS-Tricks (2019)
- Responsive Design für Bewegung auf dem WebKit-Blog (2017)