IT Tool

Browser Feature Tester

Check browser support for media, clipboard, location, notifications, WebGL, WebRTC, Bluetooth, storage, and device APIs, and read the permission state of the gated ones without triggering a single prompt.

Instant 100% Client-Side No Login
PROCESSINGLOCAL
LIMITNONE
PRIVACYBROWSER-ONLY

Feature Matrix

Last run: Running checks…

13 capability checks · permission states read without prompting

"Supported" is a weaker claim than it looks

Every green check on this page means one thing on its own: the property or method exists on window or navigator right now. That is what feature detection can see from JavaScript, and it is not a promise that the feature will work when you call it.

Three separate gates sit between existence and a working feature. The API has to be present. The page has to be in a context where the browser is willing to expose it, usually HTTPS and often a top-level document rather than an iframe. And the user has to grant permission. Older capability testers could only inspect the first gate and told you to guess at the rest.

This one goes a step further on the third gate. For the features guarded by a permission, it reads that permission’s current state and prints it under the card, so a red result and a denied permission are no longer the same ambiguous shrug.

Reading permission without asking for it

The Permissions API, navigator.permissions.query, reports where a permission stands without ever showing a dialog. It returns one of three states: granted, denied, or prompt. Prompt means the user has not decided yet and will be asked the first time the feature is actually used. This tool queries camera, microphone, geolocation, notifications, and clipboard read that way, all on load, because reading a state is not the same as requesting access.

That distinction is the whole point. A permission dialog only appears when a site calls the feature itself, such as getUserMedia for the camera or geolocation.getCurrentPosition for location. Querying the state is a passive read, which is why it is safe to do automatically and why this page can tell you a permission is already denied without pestering you to confirm it.

Not every browser lists every permission name, and the ones it does not recognise are shown as not queryable rather than invented as granted. So when a card shows “permission denied by the user” you can trust it, and when it shows nothing extra, the browser simply would not tell the page. WebGL, storage, and the rest have no permission line because they are not gated by a user prompt in the same way.

Why results differ between browsers on the same machine

Secure context is upstream of everything

If Secure Context is red, expect a cascade of other reds that have nothing to do with the browser's real capabilities. Clipboard, service workers, and media capture are all withheld on plain HTTP. Testing over an IP address such as 192.168.1.20 counts as insecure even on your own network, which is why a feature can work on localhost and vanish the moment a colleague opens the same dev server from another device.

Privacy settings look like missing features

Local Storage is probed by actually writing and deleting a key, so it reports red when storage is blocked by strict privacy mode or a full disk quota, not only when the API is absent. Web Bluetooth is genuinely unimplemented in some browsers by deliberate policy rather than backlog. Neither is a bug to work around; both are states your code should expect to encounter.

Embedded and in-app browsers

Opening a link inside Instagram, LinkedIn, or a messaging app loads a stripped-down webview, not the system browser. Those environments commonly drop clipboard access, downloads, and camera permissions. If a user reports that your app is broken and this matrix looks unfamiliar to you, ask how they opened the link before debugging your code.

WebGL depends on the machine, not the browser

The WebGL card tries to create a real rendering context, so it can fail on a browser that fully supports WebGL: a blocklisted GPU driver, hardware acceleration switched off, or a virtual machine without a graphics device are all enough. This makes it the one card here that says more about the hardware than the software.

When to use a dedicated tester instead

This page is a breadth-first sweep: thirteen checks, no prompts, no hardware needed. Once you know which API to suspect, these go a level deeper and exercise the feature for real:

Clipboard Testerpermission states, secure-context gating, and read vs write behaviour
WebRTC Leak Testwhich IP addresses your browser actually reveals through ICE candidates
Bluetooth Device Checkerconnecting to a real device rather than checking the API exists
Gamepad Testerlive button, axis, stick drift, and range readings from a connected controller
Webcam & Mic Testera real capture preview and input levels, which needs a permission grant

What this matrix cannot tell you

A green API check with a granted permission still is not a guarantee the feature will work end to end. The hardware behind it can be missing or in use by another program, a corporate policy can block it at a layer the browser does not report, and an extension can interfere after the check has run. This page raises your confidence; it does not replace trying the real thing, which is what the dedicated testers above are for.

It also cannot see a permission the browser will not expose. Where a permission name is not recognised, the state is left blank rather than guessed, so the absence of a permission line means the browser stayed silent, not that access is open. And it reads a moment in time: grant or revoke a permission in browser settings and the card only updates when you re-run the checks.

The results above are computed in this tab from your browser's own properties and permission states, and are not sent anywhere. Nothing here triggers a permission prompt, so opening this page does not expose your camera, location, or clipboard to the site.

How to Use

1

The feature matrix runs automatically when the page loads — no prompts and no device access.

2

Read each card as two layers: whether the API exists, and for gated features, whether permission is already granted, denied, or still to be asked.

3

Check the Secure Context card first; if it is red, expect unrelated-looking failures below it.

4

Re-run the checks after changing a browser setting, granting a permission, or switching to another browser.

5

When a card is green but you need proof the feature actually works, follow the link to its dedicated tester.

Features

Thirteen capability checks covering media, clipboard, graphics, storage, device, and network APIs
Permission state for camera, microphone, geolocation, notifications, and clipboard read, queried without a prompt
Honest probes: WebGL creates a real rendering context and Local Storage actually writes a key
Runs automatically on load and re-runs on demand, entirely in the browser
Links out to dedicated testers that exercise a feature for real instead of only checking it exists
No capability or permission data is sent to a server

Common Questions

Use this browser feature tester to check whether Chrome, Edge, Firefox, Safari, mobile browsers, or embedded browsers support common web APIs, and to read the permission state of camera, microphone, location, notifications, and clipboard without triggering a prompt. It tells apart three different reasons a feature might fail: the API is missing, the context is insecure, or permission was denied.

About Browser Feature Tester

Inspect modern browser feature support across secure context, camera, microphone, clipboard, notifications, geolocation, WebGL, WebRTC, service workers, local storage, cookies, fullscreen, Gamepad API, and Web Bluetooth. Beyond checking that an API exists, it reads the permission state of the gated features, camera, microphone, geolocation, notifications, and clipboard read, through the Permissions API without ever triggering a prompt, so a denied permission is shown as denied rather than mistaken for missing support. Probes are honest: WebGL creates a real rendering context and local storage actually writes a key. Everything runs in the browser and no capability or permission data is uploaded.

Also known as: browser capabilities, test browser features, browser support check, web api support test, check permission state, does my browser support webgl, is this a secure context, in-app browser feature check, navigator permissions query test.

Processing Note

Browser Feature Tester runs in your browser, so the input you enter is processed locally on this page and is not uploaded to a ToolMintX account.

Tool Limits

IT tools provide quick diagnostics and transformations. They cannot see every private network, deployment setting, proxy, firewall, or production edge case.

Explore More