Skip to developer tool
DEVELOPER TOOLKIT INSPECT & UNDERSTAND

Keyboard & Pointer Event Tester

See the input events your browser receives. Inspect key values, physical codes, modifiers and pointer details in one focused test area.

No uploads · No account · Focused input only

BUILT FOR THE DETAILS
  1. 01Add your input
  2. 02Focus & test
  3. 03Review the event log
Explore all developer tools

Focus the area, then test your input

Keyboard · Mouse · Touch · Pen

Click, tap or Tab into the test area. Keyboard input elsewhere is not captured. Escape exits. Touch gestures inside the area test pointer input rather than scroll the page.

Click or focus here to startPress keys, combine modifiers, click buttons or use touch/pen input.
Escape releases the area. Browser and OS shortcuts may not reach this page.

Keyboard: held keys & last event

Pointer: last event

Newest events first. Holds the latest 200 logged events; older events are dropped.
#ElapsedEventDetailsModifiersOrigin flag

Key values may reveal typed characters. Do not type passwords or private text here. Events stay in page memory; only an explicit download saves a report.

How to test keyboard and pointer events

  1. Focus the test area and press/release keys or combine modifiers.
  2. Click mouse buttons or use a touch or pen pointer. Movement logging is optional.
  3. Review live held states and filter the log. Pause freezes history while live input state can still update.
  4. Prepare a JSON snapshot and download it. Clear removes events, live states and the prepared report.

Keys, codes and modifiers

KeyboardEvent.key reflects the interpreted value and keyboard layout. code identifies a physical-key position where available; its name does not guarantee the printed label. Location is standard (0), left (1), right (2) or numpad (3), where reported. Repeat and composing flags are browser-provided. This is not a text editor and does not reconstruct IME composition text.

Keyboard handlers operate only while the pad has focus. Escape records its received event, releases the pad and disables action prevention; its release may happen after focus has left. Blur, hidden page and lost capture clear held states to avoid stuck keys or pointers after missed releases.

Pointer and wheel fields

Pointer Events represent mouse, touch and pen input. Button identifies the changed button; buttons is a bitmask: primary 1, secondary 2, auxiliary 4, back 8, forward 16. Chorded mouse-button changes can arrive as pointermove. Coordinates are CSS pixels relative to the area's outer border. JSON also includes available pressure, tilt, contact size, pointer ID/type and primary flag.

Pressure is browser-reported and can be a fallback rather than measured force. Pointer capture is requested on a press so releases can reach the pad after moving outside. Touch gestures in the area are dedicated to testing; scroll the page outside it.

Movement and wheel log entries are sampled at most once per 50 ms per event type, with live pointer state updating independently. Wheel deltas retain pixel, line or page units from deltaMode; they are not physical distances.

Action prevention and browser limits

Prevention is off by default. When enabled, cancelable events received inside the pad are prevented, which helps inspect Tab, Space, context-menu actions and some shortcuts. Escape always exits. Browser/OS-reserved actions may be intercepted before JavaScript receives them; this tester cannot bypass that behavior.

The origin flag reflects isTrusted, labeled Browser-origin or Synthetic. It does not prove physical input or human activity. Tool-generated reset rows are synthetic. This page reports received events; it does not certify hardware health, polling rate or input latency.

Bounds and privacy

The latest 200 logged events are kept, with a dropped-event count and 50/100/200-row views. Strings are limited to 128 UTF-16 units. Elapsed time uses a monotonic page timer rounded to hundredths of a millisecond; browser timing/sampling limits apply. A paused log does not record events, but live state still works in the focused area.

No events are uploaded or saved in browser storage. Details use literal text. JSON snapshots include retained key values, modifiers and pointer coordinates, so they may contain private input. Later events do not change a prepared snapshot. Clear and page exit revoke its URL and clear the log.

References: MDN KeyboardEvent.code, PointerEvent and isTrusted.

Frequently asked questions

Why did a shortcut not appear?

The area must have focus, and the browser or operating system can reserve shortcuts. The tool does not capture global keyboard input.

Does a missing event mean a broken key?

No. Focus, browser/OS handling, device support and hardware all affect delivered events. This page does not diagnose the cause of an absent event.

Will a mobile keyboard open?

The pad is a focusable region rather than a text field, so it may not summon a virtual keyboard. Hardware keyboard and pointer support depends on the device/browser.

Continue your workflow

Observe events delivered to the focused area

Focus the test region and inspect delivered key or pointer events. Pause or clear the log before preparing a report snapshot.

Scope of this workflow

The browser or operating system can reserve shortcuts. Missing events do not diagnose broken hardware, and exported logs may contain entered keys and coordinates.

Case Converter — camelCase, snake_case & Text · All developer tools · Privacy policy · Contact PixelOkay