Device Test
MediaEverything runs locally in your browser — nothing is uploaded
Click here, then press any key
Move, click and scroll inside this box
Touch and drag inside this box
Orientation and motion come from sensors in the device itself. Most desktops have none, so seeing no data is normal. When nothing arrives this page says so instead of showing a row of zeros.
Everything is read locally; nothing is sent anywhere. ⚠️ Each tab cleans up when you leave it: the camera and microphone are opened only while their tab is active, and stopped on the way out.
One page tests everything the device can report: keyboard, mouse, touch, camera, microphone, sensors, battery and gamepads, in eight tabs. ⚠️ Two deliberate decisions. First, each tab asks for permission and binds its listeners only while it is active, and cleans up on the way out — opening the camera and microphone the moment the page loads is alarming and leaves a record in the browser that this site keeps using the camera. Switching to the camera tab and pressing Open is what asks, and leaving it calls track.stop(). Second, these APIs are missing unevenly across browsers and devices, and when they are missing the symptom is usually no events and empty values; the page says outright that the browser does not provide them instead of showing a 0, because a 0 sends people off to fix hardware that is not broken. Everything is read locally; nothing is uploaded.
Features
- Keyboard: code, key, keyCode and modifier state on every press, plus how much of the main block you have not tried yet
- Mouse: left, middle, right and both side buttons, wheel direction and converted steps, double-click detection, pointer position and speed, pointerType
- Touch: maximum contact points and the coordinates of each current contact, plus whether pressure is really reported (always 0.5 means it is not)
- Camera: list the devices, then report only the resolution and frame rate actually negotiated; preview is off by default and can be hidden at any time
- Microphone: a live level bar driven by the RMS of the analyser, with one-click stop
- Sensors: deviceorientation and devicemotion readings, saying they are unavailable rather than showing 0 when nothing arrives
- Battery: level and charging state from getBattery, with a clear note when the API is absent (most browsers have removed it)
- Gamepad: button and stick state from getGamepads; connect a pad and press any button for it to appear
- Every tab removes its listeners and stops its media tracks on the way out; the camera and microphone open only while their tab is active
How to use
- Use the tabs at the top; the keyboard and mouse tabs need no button press to report
- The camera and microphone tabs only ask for permission when you press Open, so nothing opens until you agree
- Sensors and gamepads often have no data on a desktop, and the page explains why when that happens
- Switch away or close the page and the camera and microphone stop automatically
FAQ
- Why does it not open the camera as soon as the page loads?
- Because opening the camera and microphone on page load is alarming and leaves a record in the browser that this site keeps using the camera. Permission is requested only after you switch to the tab and press Open, and leaving the tab calls track.stop() at once. Getting this wrong is the worst mistake a tool like this can make.
- Why does the battery tab say it is unavailable?
- The Battery Status API has been removed by most browsers for privacy reasons, since it is useful for fingerprinting: Firefox never implemented it and Chrome has removed it on most platforms. So the message is browser behaviour, not a fault in your hardware.
- Why does touch pressure say it is not supported?
- The touch event specification requires devices without pressure support to report pressure: 0.5, which means "unknown" rather than "half pressed". This page therefore treats a constant 0.5 as unsupported instead of drawing a half-full bar that would mislead you.
- Why is there no sensor data?
- Orientation and motion come from sensors built into the device, and most desktops have none. After a short wait with no data the page says the browser does not provide it rather than showing a row of zeros.
Related tools
Your Browser Info
WebSee what your browser exposes to websites: user agent, screen, time zone, CPU cores, WebGL renderer and feature probes — all read locally, never sent.
HTML5 Detect
LookupsMeasure HTML elements, CSS capabilities, browser APIs and media formats in the browser you are using right now, and copy the result as a report.
Key Codes
LookupsPress any key to see its key, code, keyCode and ASCII value, plus a reference of 100+ keys and the full 0–127 ASCII table. Everything runs in your browser.
Video to GIF
MediaTurn part of a video into a GIF with adjustable frame rate, width, colours and looping. Pick the range from the preview; nothing is uploaded.
Video Frame
MediaExport the exact frame at any moment, at the video's own resolution, as PNG, JPEG or WebP. Sharper than a screenshot: no controls, no display scaling.
Audio to WAV
MediaConvert MP3 / M4A / FLAC and more to WAV, with an optional sample rate (16k speech, 48k video), mono downmix and peak normalisation. All in the browser.