Firefox Tomorrow

http header

Sec-CH-Prefers-Reduced-Motion header

View on MDN ↗

Limited availabilitySecure context

The HTTP Sec-CH-Prefers-Reduced-Motion request header is a user agent client hint which indicates the user agent’s preference for animations to be displayed with reduced motion.

If a server signals to a client via the Accept-CH header that it accepts Sec-CH-Prefers-Reduced-Motion, the client can then respond with this header to indicate the user’s preference for reduced motion. The server can send the client appropriately adapted content, for example, JavaScript or CSS, to reduce the motion of any animations presented on subsequent rendered content. This could include reducing the speed or amplitude of movement to reduce discomfort for those with vestibular motion disorders.

This header is modeled on the prefers-reduced-motion media query.

Header type [Request header](https://developer.mozilla.org/en-US/docs/Glossary/Request%20header), Client hint
[Forbidden request header](https://developer.mozilla.org/en-US/docs/Glossary/Forbidden%20request%20header) Yes (Sec- prefix)

Syntax

Sec-CH-Prefers-Reduced-Motion: <preference>

Directives

  • <preference>
    • : The user agent’s preference for reduced-motion animations. This is often taken from the underlying operating system’s setting. The value of this directive can be either no-preference or reduce.

Examples

Using Sec-CH-Prefers-Reduced-Motion

The client makes an initial request to the server:

GET / HTTP/1.1
Host: example.com

The server responds, telling the client via Accept-CH that it accepts Sec-CH-Prefers-Reduced-Motion. In this example Critical-CH is also used, indicating that Sec-CH-Prefers-Reduced-Motion is considered a critical client hint.

HTTP/1.1 200 OK
Content-Type: text/html
Accept-CH: Sec-CH-Prefers-Reduced-Motion
Vary: Sec-CH-Prefers-Reduced-Motion
Critical-CH: Sec-CH-Prefers-Reduced-Motion

[!NOTE] We’ve also specified Sec-CH-Prefers-Reduced-Motion in the Vary header to indicate to the browser that the served content will differ based on this header value, even if the URL stays the same, so the browser shouldn’t just use an existing cached response and instead should cache this response separately. Each header listed in the Critical-CH header should also be present in the Accept-CH and Vary headers.

The client automatically retries the request (due to Critical-CH being specified above), telling the server via Sec-CH-Prefers-Reduced-Motion that it has a user preference for reduced-motion animations:

GET / HTTP/1.1
Host: example.com
Sec-CH-Prefers-Reduced-Motion: "reduce"

The client will include the header in subsequent requests in the current session unless the Accept-CH changes in responses to indicate that it is no longer supported by the server.

Specifications

SpecificationsStandards references are available on the canonical MDN page.

Browser compatibility

Browser compatibilityCompatibility data is available on the canonical MDN page.

See also