Browser & OS Detection · Browser Tests

Operating System Test

Detect your operating system and see where the UA string, platform value and client hints disagree.

Comparing three OS signals…
—
UA string
—
navigator.platform
—
Client hints
Reading your system…
Comparing the user-agent string, the platform value and client hints.

Source by source

Version detail

Where the sources disagree

Three sources, read live and compared in your browser. Where they disagree, the disagreement itself is the finding — an emulated or spoofed setup usually trips on exactly this.

On this page
  1. What this test detects
  2. The three sources
  3. When they disagree
  4. Why the version is vague
  5. What your OS tells a site

What this test detects

This page answers “what operating system am I on?” by asking three separate parts of the browser, and then showing you where they disagree. Each one reports the same underlying machine in a different vocabulary, and the gaps between those vocabularies are where the interesting detail lives.

The name alone — Windows, macOS, Linux, Android, iOS — is rarely useful on its own, since hundreds of millions of people share it. What matters is the version detail and whether the three sources are consistent, because a machine whose sources contradict each other is unusual.

Three answers, one machine

Most tools show a single guessed OS name. Showing all three, side by side, is more honest: you can see exactly which one said what, and judge the answer yourself.

The three sources a browser reports from

The user-agent string is the oldest and most specific source. It carries a compact token — Windows NT 10.0, Mac OS X 10_15_7, Android 14, CPU OS 17_0 — alongside the browser and engine tokens. Our user-agent test breaks that whole line apart.

navigator.platform is a much shorter string such as Win32, MacIntel or Linux x86_64. Its names date from the Netscape era and have been deprecated for years, but no browser has removed it, so it stays as a second opinion.

User-Agent Client Hints is the modern source, and only Chromium browsers have it. It reports a clean platform name and, when a page asks for the high-entropy set, a platform version alongside the architecture and bitness. On Firefox and Safari this row reads Not exposed, which tells you something in itself.

When the sources disagree

Two kinds of disagreement are worth separating. The first is expected: Android reports Linux armv8l through navigator.platform because that is the kernel underneath, and an iPad in desktop mode reports MacIntel because that is the identity it asked Safari to present. These are documented, and the panel above marks them as quirks rather than conflicts.

The second kind is a genuine contradiction, and it is the signature of a spoofed or emulated setup. If the user-agent string claims Windows while both other sources say macOS, nothing normal produces that combination. A careful detector treats it as a flag, which is exactly why changing your user agent without changing everything else tends to make you more distinctive, not less.

Consistency beats disguise

The fingerprint test applies the same logic to graphics, timezone and fonts. A set of values that agree with one another is far less interesting to a tracker than a set that does not.

This is also why modern guidance tells developers to stop reading the operating system at all. Detecting a platform by string matching leads to code that breaks the moment a browser freezes a version or a new device appears, which is the entire history of the user-agent string. Testing for the feature you actually need, and letting the operating system stay unknown, is both more reliable and less revealing.

Why the version is deliberately vague

Operating-system versions are among the first things browsers started rounding off, because the exact build is a strong fingerprinting signal and almost never useful to a website. macOS is the clearest example: the user-agent string has reported 10_15_7 since Big Sur, no matter which release you actually installed. Similarly, Windows 10 and Windows 11 both report NT 10.0, so the string cannot separate them.

Where a precise version is still available, it is in the client-hints platform version. That value is more useful but not always readable: on Android it looks like the release you know, 14.0.0, while on Windows Chromium reports a mapped value that is not the build number shown in Settings. Treat any version shown here as the browser's own summary, not as an inventory of your machine.

What your operating system tells a website

Knowing you run Windows is unremarkable. Knowing you run Windows on an ARM chip with a 64-bit browser, an unusual platform version and a specific build, combined with your screen, graphics and font signals, is a much narrower description. That is the pattern across every tool on this site: each value is common, the combination is not.

The practical upshot is to keep your browser current and leave its defaults alone. An up-to-date browser on a mainstream version shares its OS profile with a very large crowd, while an old version or a hand-edited user agent puts you in a much smaller group. The device and hardware test and the browser information test fill in the rest of that picture.

Frequently Asked Questions

How does this tool detect my operating system?
It reads three independent sources and compares them: the operating-system token inside your user-agent string, the value of navigator.platform, and navigator.userAgentData.platform where the browser exposes client hints. Detection means interpreting each of those; the comparison between them is the more useful part.
Why does it say Android and Linux at the same time?
Because both are true. Android is built on the Linux kernel, and navigator.platform on an Android phone reports something like Linux armv8l — the kernel — while the user-agent string reports the operating system, Android. This is documented behaviour rather than a conflict, and the panel above flags it as a known quirk rather than a mismatch.
It says Windows 10 when I am running Windows 11. Why?
The user-agent string reports Windows NT 10.0 for both. Microsoft kept the same NT version for Windows 11, so the string physically cannot tell them apart. Only the higher-entropy client hints platform version distinguishes the two, and even that reports a mapped value rather than the NT number.
What does navigator.platform actually return?
A short, legacy string such as Win32, MacIntel or Linux x86_64. The names are historical and no longer describe the hardware — Win32 is reported on 64-bit Windows, and MacIntel appears on iPads asking for the desktop site. It is deprecated but still present in every major browser.
Can I be identified by my operating system alone?
Not by the name — Windows and Android each cover hundreds of millions of people. The identifying value is in the detail around it: the exact platform version, the build number in a fingerprint, and the arch and bitness from client hints. The browser fingerprint test shows how much that narrows you.