| Component name | reduced_transparency |
|---|---|
| In the visitorId | no (reported, kept out of both ids) |
| structuredId group | none |
| Hashing | plain value; a digest only when longer than 128 characters or not printable ASCII |
| Excluded under | no browser class |
| Inner timeout | 1000 ms |
| Added in | signalsVersion 14 |
| Collector revision | 1 (reported as revision with every result) |
macOS, iOS and Windows have an accessibility setting that makes see-through panels solid. Some browsers tell web pages whether it is on. WhiskerJS records reduce or none.
What it reads
The CSS prefers-reduced-transparency media feature through window.matchMedia().
How the technique works
| Order | Query | Value reported |
|---|---|---|
| 1 | (prefers-reduced-transparency: reduce) |
reduce |
| 2 | (prefers-reduced-transparency: no-preference) |
none |
The first match is reported. When neither matches, the browser does not answer the query: unavailable with no_match.
Why it helps
Few people change this setting, so reduce is rare. Whether a browser answers at all also tells engines apart: Chromium answers, while Firefox (without its pref) and WebKit do not.
Stability
A setting the user can change at any time, so it is reported outside both ids. Added in library PR #36 (2026-10-27) at signalsVersion 14: it is outside both ids, so adding it changed no id and needed no version bump.
Browser support and what blocks it
- Chromium browsers answer it (Chrome 118 and later). In the self-hosted CI browser matrix of PR #36 (23 browsers and channels on Linux, no value varied between collections) every Chromium browser reported
none. - Firefox answers it only with the
layout.css.prefers-reduced-transparency.enabledpref; Safari and WebKit do not answer it. Both wereunavailable/no_matchin the CI matrix. - No browser class excludes it.
Privacy
An accessibility setting is a setting of the user. Leave it out with collect({ exclude: ['reduced_transparency'] }) if you do not need it; no id changes.
How WhiskerJS handles noise and failures
| Status | ruleId | When |
|---|---|---|
ok |
reduce or none |
|
unavailable |
no_api |
no matchMedia |
unavailable |
no_match |
neither query matched: the browser does not answer it |
blocked |
threw, security_error |
matchMedia throws |
excluded |
caller_excluded |
you excluded it |
timed_out |
timeout, aborted |
budget or abort |
Example value
"reduced_transparency": { "status": "ok", "value": "none", "hashed": false, "durationMs": 0.1, "revision": 1 }
Questions and answers
Which browsers answer prefers-reduced-transparency?
Chromium browsers (Chrome 118 and later, Edge, Brave, Opera, Samsung Internet 25 and later). Firefox only with a pref, Safari not at all; there the component is unavailable with no_match.
Why is it not in the visitorId?
It is a setting the user can change at any time, so an id built on it could change without the device changing.