Media Key Tester

Verify Media Session action handlers and hardware media keys, and see whether your headset or keyboard buttons actually reach the page.

This browser does not expose the Media Session API.

Hardware key routing through navigator.mediaSession is not available here, so the action grid below cannot register handlers. Keyboard-only mode still works: press a media key and watch the event log below.

Media Session actions
Play
No Media Session API
Play/Pause media key, or the OS overlay's play button.
Pause
No Media Session API
Play/Pause media key, or the OS overlay's pause button.
Stop
No Media Session API
Stop media key (rare on modern keyboards).
Seek backward
No Media Session API
Rewind key, or holding the previous-track button.
Seek forward
No Media Session API
Fast-forward key, or holding the next-track button.
Seek to
No Media Session API
Dragging the OS media overlay's progress bar.
Previous track
No Media Session API
Previous track media key.
Next track
No Media Session API
Next track media key.
Skip ad
No Media Session API
A skip-ad control in a supporting app's OS overlay.
Toggle microphone
No Media Session API
The mute-mic control in a video call's OS overlay.
Toggle camera
No Media Session API
The camera control in a video call's OS overlay.
Hang up
No Media Session API
The hang-up control in a video call's OS overlay.
Previous slide
No Media Session API
The back button on a presentation remote.
Next slide
No Media Session API
The forward button on a presentation remote.
Enter picture in picture
No Media Session API
The picture-in-picture control in the OS media overlay.
Support
Output
Media Session API
Not supported by this browser: navigator.mediaSession is undefined, so only raw KeyboardEvents can be tested.
Supported actions
none reported
Unsupported actions
none reported
Action coverage
No actions were attempted.
Event log

No events yet. Click Start test, then press play/pause, stop, track skip, volume, or your headset buttons.

Most operating systems intercept these keys system-wide (to control whatever app is playing audio) before a web page's KeyboardEvent listeners ever run, so several of these may never appear here even on a keyboard that has the keys.

Summary

Press Summarize, or press any tested key, to see which handlers fired and how hardware keys are reaching this page.

Copies the full report as JSON (caps and events). Everything above runs in this tab: your files and inputs never leave your device.

Related tools

What it does

Media Key Tester registers a handler for every Media Session action (play, pause, seek, track skip, and the less common conferencing and slide actions) and listens for the raw KeyboardEvent media keys browsers sometimes fall back to. Press play/pause, stop, track skip, volume, or your headset buttons, and it shows exactly what fired, in what order, and which registered handlers never fired at all.

How to use it

Click the panel's play button first; a silent looping audio clip starts so the browser assigns this page a media session, which is required before the OS will route hardware keys here at all. Then press the keys or headset buttons you want to test. Each event is logged live, and the summary reports whether keys arrived through Media Session, through plain KeyboardEvents, or not at all, along with a support breakdown for this browser.

Why this one

Media key bugs are notoriously hard to isolate: is the OS eating the key, is another app holding the media session, or is the page's own handler code wrong? This tool isolates the page's own behavior with a live, labeled log instead of a demo video, and never sends what you type or press anywhere; the whole test runs on your device.

FAQ
Why does nothing happen until I click play?
Browsers only grant a page control of the OS media session while it has an active (or recently active) audio or video element, so the panel starts a silent looping clip on click to claim that session. Without it, the OS has no reason to route hardware keys to this tab at all.
Why do volume keys never show up here?
Volume is not a Media Session action and is not delivered to web pages as a KeyboardEvent either; the OS or the hardware handles it directly and never tells the page. The volume rows in the keyboard key list exist because some external keyboards can technically send AudioVolumeUp/Down/Mute key events, but on most laptops and phones you will never see them fire here, and that is expected, not a bug.
How do I make my headset or Bluetooth button work with this page?
Click play here so the browser owns the media session, then make sure no other app (a music player, a call app, another browser tab) currently holds it, since only one media session is usually active at a time. If your headset button still does nothing, try it while audio is actually playing: several operating systems only forward the button while something is audible.