Color Contrast Ratio Tester - Online WCAG AA/AAA Check
Enter foreground and background colors to instantly see the contrast ratio and pass/fail for AA and AAA. Simple and fast.
UD5 Toolkit
Detect your system's motion preference and preview how animations behave under
prefers-reduced-motion: reduce
Your system reports no-preference — full animations are applied.
no-preferencewindow.matchMedia('(prefers-reduced-motion: reduce)') to detect your OS-level accessibility setting. Changes are monitored in real-time.
These elements animate with standard motion. Toggle the Simulate Reduced switch above to preview the accessible alternative.
/* Standard animations */
.my-element {
animation: slideIn 0.5s ease;
}
@media (prefers-reduced-motion: reduce) {
.my-element {
animation: none;
transition: opacity 0.3s ease;
opacity: 1;
}
}
const mq = window.matchMedia(
'(prefers-reduced-motion: reduce)'
);
if (mq.matches) {
// Disable animations
disableAnimations();
}
// Listen for changes
mq.addEventListener('change', (e) => {
if (e.matches) {
disableAnimations();
} else {
enableAnimations();
}
});
reduce, it signals that the user prefers minimal or no animation. This is critical for accessibility — users with vestibular disorders, motion sensitivity, or cognitive conditions can experience dizziness, nausea, or disorientation from excessive animations. Respecting this preference is part of WCAG 2.2 Success Criterion 2.3.3 (Animation from Interactions) and demonstrates inclusive design practices.
@media (prefers-reduced-motion: reduce) media query to override animations. For example, set animation: none and transition: none (or use subtle opacity transitions). You can also reduce animation duration, disable parallax effects, and replace motion-heavy interactions with simple fades. A best practice is to define all animations inside a media query for no-preference so that reduced motion is the safer default.
window.matchMedia('(prefers-reduced-motion: reduce)'). Check the .matches property for the current state, and attach a change event listener to respond dynamically when the user toggles the setting. This is useful for JavaScript-driven animations, libraries like GSAP or Framer Motion, and for programmatically disabling video autoplay or carousels.
prefers-reduced-motion: reduce can be a signal to skip heavy animation workloads, reduce GPU usage, and serve lighter experiences. However, don't rely on it as the sole performance optimization — many users who would benefit from reduced motion (e.g., on low-power devices) may not have the setting enabled. Combine it with device memory APIs, battery status, or network conditions for a comprehensive adaptive loading strategy.
motion-reduce and motion-safe utility classes out of the box. Framer Motion (React) has a useReducedMotion() hook. GSAP allows checking the media query before creating tweens. Bootstrap 5 uses prefers-reduced-motion in its core to conditionally disable transitions. Most modern animation libraries now include built-in support — always check the docs for accessibility options before implementing custom animation solutions.
Enter foreground and background colors to instantly see the contrast ratio and pass/fail for AA and AAA. Simple and fast.
Open a test video in Picture‑in‑Picture mode. Control entering and leaving PiP. Copy the code snippet for your own app.
Write a media query and instantly see if it matches your current viewport. Width, height, orientation, and more.
Drop a video file and instantly see its container format, codec(s), resolution, duration, and bitrate. Browser‑based, no upload.
Enter a website URL and apply a protanopia/deuteranopia/tritanopia filter. Test full page accessibility.
Paste media queries and see a visual indicator of which rules apply at current viewport size.
Write a media query and see if it matches as you resize the iframe. Understand width, height, and resolution queries.
Paste a media query and instantly check for syntax errors. See if it's correctly formed. Quick developer tool.
Toggle between light and dark mode for a demo page. See how to use the media query. Copy the pattern.
Upload two images and see a diff overlay highlighting the pixel differences. Adjust tolerance. For regression testing.
Detect your current screen resolution, viewport dimensions, and device pixel ratio. Useful for responsive design testing. No data collection.
Quick reference of common shutter speeds and when to use them (freeze motion, long exposure). Static photographic guide.
Combine aspect‑ratio with min‑/max‑width/height and see how the box responds. Understand sizing constraints. Copy the pattern.
Select a folder of images and start a full‑screen slideshow right in your browser. Adjust interval and transition. No upload.
Decode individual video frames from a local file using the VideoDecoder API. Step through frames. Cutting‑edge browser feature.
Paste your article and see a table of the most frequent words with their density percentages. Help avoid keyword stuffing. Local.
Increase or decrease the color saturation of your photo with a slider. Preview instantly. Download the edited image. Canvas‑based.
Upload an image and see a slider comparison of different JPEG quality levels. Find the optimal file size vs. quality trade‑off.
Drop an image that might have wrong extension and see its real format (JPEG, PNG, WebP) based on header bytes.
Point your camera at an object and see the dominant color in real time. Click to copy the hex. Fun tool for designers.
Drop an audio file and instantly see its duration in seconds and formatted time. Read metadata without full playback.
Drag a virtual ruler across your screen to measure pixel distances. Horizontal and vertical guides. Useful for UI designers checking alignment.
Build a CSS media query by selecting feature, operator, and value. Copy the exact syntax for your stylesheet.
Convert video files between common formats using FFmpeg WASM. No upload required; all processing stays in your browser.
Enter two hex colors and compute the CIE76, CIE94, and CIEDE2000 color difference. Understand how humans perceive color similarity.
Upload one image and see it encoded in AVIF, WebP, and JPEG XL side‑by‑side. Compare quality and file size in your browser.
A horizontal photo gallery that scrolls with a smooth CSS animation using scroll‑timeline. Pure HTML/CSS. Copy the code.
Wrap text around an irregular shape and adjust the margin and alpha threshold. Magazines layout on the web.
Compare your image as JPEG, PNG, and WebP side by side at different quality levels. See the size savings visually.
Display your screen's current devicePixelRatio. See how it changes when you zoom. Useful for high‑res image decisions.