Browser Feature Checker
Find out instantly which Web APIs, graphics features, sensors, CSS features and modern JavaScript syntax your current browser supports, with a score per group and a copyable report. All tests run locally in your browser.
No features match your search.
How to use the Browser Feature Checker
- Open the page: the tests run automatically and the overall score appears at the top.
- Scan the groups: each card shows how many features of that group are supported; green ticks are supported, grey crosses are not.
- Filter or search to show only unsupported features or find a specific API such as WebGPU.
- Press Run test again after changing a browser flag or setting.
- Copy the report to paste into a bug report or support ticket.
How feature detection works
Instead of guessing from the browser name, modern websites check whether a feature actually exists before they use it. This tool runs the same kinds of checks:
| Type of check | Example | Used for |
|---|---|---|
| Property exists | 'serviceWorker' in navigator | Most Web APIs |
| Object can be created | canvas.getContext('webgl2') | WebGL, Canvas, storage |
| CSS.supports() | CSS.supports('container-type', 'inline-size') | CSS properties and values |
| Selector support | CSS.supports('selector(:has(a))') | New CSS selectors |
| Syntax compiles | new Function('return a?.b') | New JavaScript syntax |
| Media can play | video.canPlayType('video/webm; codecs="vp9"') | Video and audio codecs |
| Async probe | navigator.gpu.requestAdapter() | WebGPU, storage quota |
A codec reported as "maybe" by canPlayType is shown as partial support: the browser recognises the format but cannot promise that this exact profile will play.
Why results differ between browsers and devices
- Secure context: service workers, the async clipboard, Web Bluetooth, geolocation and many other APIs only exist on HTTPS pages (and on localhost).
- Cross-origin isolation:
SharedArrayBufferis only exposed when a site sends the COOP and COEP headers, so it often shows as unsupported on normal pages even though the browser has it. - Privacy decisions: Firefox and Safari intentionally do not ship Web Bluetooth, WebUSB, Web Serial, WebHID or the Battery Status API because they could be used for fingerprinting or attacks.
- Platform: Web NFC and the Vibration API are mostly available on Android, the Gamepad API needs a controller to be useful and touch support depends on your screen.
- Flags and policies: experimental features (for example some CSS or Temporal) may be behind a browser flag, and company devices can disable APIs by policy.
Using the report
When a web app does not work, the copied report gives a developer the browser version, user agent and a full list of supported features in one paste. Developers can compare it with the requirements of their app or with compatibility tables such as MDN and caniuse.com. To check other parts of your device, try the screen resolution checker, the webcam test or the gamepad tester.
Frequently asked questions
How does this browser compatibility test work?
Each test uses feature detection: it checks whether an API exists (for example 'gpu' in navigator), asks CSS.supports() whether a CSS feature is understood, or tries to compile a small piece of modern JavaScript syntax. This is the same technique websites use to decide which code to run, and it is more reliable than guessing from the browser name.
Why does a feature show as unsupported even though my browser has it?
Some APIs are only exposed on secure (HTTPS) pages, need cross-origin isolation (SharedArrayBuffer), sit behind a flag, are disabled by a policy or extension, or exist only on certain platforms, such as Web NFC on Android. Supported here means available to this page right now.
Does 'supported' mean the feature will work on my device?
Not always. An API can exist but still need permission or hardware: Web Bluetooth needs a Bluetooth adapter, the Vibration API needs a vibration motor and getUserMedia needs a camera or microphone and your permission. For WebGPU this tool also asks for a graphics adapter to confirm it really works.
Does this test ask for any permissions or send data?
No. The tests only check whether features exist; they never open your camera, microphone, location or devices and never send results anywhere. The report is only copied to your clipboard when you press the button.
What is the difference between WebGL, WebGL 2 and WebGPU?
WebGL is the long-standing 3D graphics API based on OpenGL ES 2.0. WebGL 2 is based on OpenGL ES 3.0 and adds features such as 3D textures and instancing. WebGPU is the modern successor, similar to Vulkan, Metal and Direct3D 12, with compute shaders and better performance.
Which browser supports the most features?
Current versions of Chrome and Edge usually pass the most tests because they ship hardware APIs such as Web Bluetooth, WebUSB and Web Serial. Firefox and Safari skip some of those APIs on purpose for privacy reasons but support nearly all modern CSS and JavaScript features.