prefers‑reduced‑motion Tester - Online A11y Check
Simulate reduced motion preference and test your animations. Copy the media query snippet. Keep your users safe.
UD5 Toolkit
Simulate & preview how animations adapt to user accessibility preferences
@media (prefers-reduced-motion: reduce)
window.matchMedia('(prefers-reduced-motion: reduce)')
Detecting...
Full Motion (default)
prefers-reduced-motion is a CSS media feature and a user preference setting that allows websites to detect whether the user has requested minimal non-essential motion on their device. It was introduced as part of the Media Queries Level 5 specification and is widely supported across all modern browsers. When a user enables "Reduce Motion" in their operating system accessibility settings, websites can respond by disabling or minimizing animations, transitions, and parallax effects.
prefers-reduced-motion setting, developers create inclusive experiences that do not physically harm users who are sensitive to motion. It is a core requirement of WCAG 2.2 Success Criterion 2.3.3 (Animation from Interactions).
@media (prefers-reduced-motion: reduce) { ... } to wrap or override animation styles. In JavaScript, use window.matchMedia('(prefers-reduced-motion: reduce)').matches to conditionally trigger animations. Best practice is to design animations progressively: start with static designs, then add motion as an enhancement for users who have not opted out. Always ensure that no critical content or functionality depends on motion.
prefers-reduced-motion is the recommended technique to meet these criteria and ensure Level AA or AAA compliance.
no-preference (default): The user has not indicated any preference regarding motion. Websites are free to display animations as designed.reduce: The user has explicitly requested that non-essential motion be minimized. Websites should remove, pause, or significantly tone down animations. The only valid values are no-preference and reduce — there is no prefers-more-motion or similar option.
Simulate reduced motion preference and test your animations. Copy the media query snippet. Keep your users safe.
Apply realistic reverbs (cathedral, hall, room) to any audio using pre‑loaded impulse responses. Hear the difference instantly.
Compare all CSS easing presets side by side on a bouncing ball. See which curve fits your UI animation.
Load an animated GIF and adjust its frame delay to make it slower or faster. Download the modified GIF. All local.
Toggle between light and dark mode for a demo page. See how to use the media query. Copy the pattern.
Simulate forced‑colors mode and see how your site looks. Adjust CSS system colors. Make your design accessible.
Load an SRT file and shift all timestamps forward or backward by milliseconds or seconds. Fix out-of-sync subtitles instantly. Download corrected file.
Simulate adaptive bitrate logic by switching between different quality video segments. See how ABR algorithms work.
Test overscroll‑behavior: contain to prevent background scroll or pull‑to‑refresh. See the effect in a live demo.
Stack multiple background images and blend them with colors. Create unique textures. Copy the CSS code instantly.
New CSS text‑spacing property for fine control over punctuation spacing. See the effect live. For advanced typography.
Guided breathing exercises with animated circle for inhale/hold/exhale. Includes box breathing, 4-7-8, and resonant breathing patterns. Customizable intervals.
Reverse any short video clip and download the backward version. Fun for creative effects. Browser‑based.
Merge an SRT subtitle file onto a video directly in the browser. Preview and download the resulting video. All local.
Set start and end times for a video and trim it without re-encoding. Download the clip. Pure browser.
Start from a base color and use `oklch(from color l c h)` to create lighter or darker variants. Copy the code.
Drag a slider to compare your original image with a compressed version (e.g., WebP). See the quality difference and file size savings.
Encode or decode text using Base32 scheme. Ideal for legacy systems and data obfuscation. Works completely offline in your browser for maximum security.
Choose tabular‑nums, diagonal‑fractions, ordinal and see the effect on a numeric list. Elegant data presentation.
Enter a URL and a user‑agent to see if it is allowed or blocked by the robots.txt file. Quick bot validation.
Enter a URL and see a visual map of the tab order. Detect broken tabindex values. Improve keyboard navigation.
Enter Braille dot numbers (1‑6) or paste Unicode Braille to decode into English text. Companion to text‑to‑Braille.
Convert subtitle files between SRT and WebVTT formats. Also shift all timestamps forward/backward. Works locally.
Nest elements in 3D space with preserve‑3d vs flat. Rotate the parent and see children behave differently.
Enter a URL and extract tab‐index order violations and focusable elements. Quick accessibility audit. Client‑side fetch.
Create a pure CSS countdown timer with a flipping number effect. Adjust duration and style. No JavaScript needed for display.
Toggle scrollbar‑gutter: stable to reserve space for the scrollbar and avoid content jumps. Visual demo with two columns.
Compare width/height with block‑size/inline‑size in different writing modes. Understand intrinsic sizing. Copy best practices.
Convert normal text to Unicode mathematical bold, italic, script, fraktur, and double‑struck. Copy rich text for anywhere.
See the difference between :focus and :focus‑visible on interactive elements. Learn which to use for better UX.