Press-and-release diagnostic

Stuck Key Test

Watch which keys the browser currently reports as held, review hold and repeat behavior, or run a guided check for matching press and release events.

Live key state and release history stay in this browser.

Press/release monitor

Watch live key state

Currently detected as held0
Current keysNone
Longest current hold—No active hold
Recent release status—

Swipe sideways to view the full keyboard.

  • Esc
  • F1
  • F2
  • F3
  • F4
  • F5
  • F6
  • F7
  • F8
  • F9
  • F10
  • F11
  • F12
  • Prt Sc
  • Scr Lk
  • Pause
  • ~`
  • !1
  • @2
  • #3
  • $4
  • %5
  • ^6
  • &7
  • *8
  • (9
  • )0
  • _-
  • +=
  • Backspace
  • Tab
  • Q
  • W
  • E
  • R
  • T
  • Y
  • U
  • I
  • O
  • P
  • {[
  • }]
  • |\
  • Caps Lock
  • A
  • S
  • D
  • F
  • G
  • H
  • J
  • K
  • L
  • :;
  • "'
  • Enter
  • Shift
  • Z
  • X
  • C
  • V
  • B
  • N
  • M
  • <,
  • >.
  • ?/
  • Shift
  • Ctrl
  • Win
  • Alt
  • Space
  • Alt
  • Win
  • Menu
  • Ctrl
  • Num Lock
  • /
  • ×
  • −
  • Home7
  • ↑8
  • Pg Up9
  • +
  • ←4
  • 5
  • →6
  • End1
  • ↓2
  • Pg Dn3
  • Enter
  • Ins0
  • Del.

Modifier key state

Left and right positions are shown separately where the browser reports them.

Left ShiftReleased
Right ShiftReleased
Left CtrlReleased
Right CtrlReleased
Left AltReleased
Right AltReleased
Left MetaReleased
Right MetaReleased

Browser repeat events are counted as normal hold information. Blur or hidden-tab cleanup clears live state without creating a failed release result.

Key-state lifecycle

Follow keydown through keyup

A normal browser-observed cycle begins with keydown, remains held until release, and ends with keyup. The tool displays that lifecycle, its duration, and any repeat events that arrive while the key is down.

Held state

After a non-repeat keydown, the matching physical code remains listed as held until keyup arrives. Hold duration describes how long this page observed that state; it does not measure switch travel or electrical behavior.

Browser repeat

An intentionally held key may generate further keydown events with event.repeat. The repeat counter records them as context. Repetition alone is normal hold information, not a stuck-key finding.

Release detection

The guided check asks for one press and the matching release. A received keyup completes that browser-observed cycle. Left and right modifier positions remain separate when distinct codes are available.

Missing keyup

If no matching keyup reaches the page, the observation is incomplete. The release may have happened while browser UI, an operating-system shortcut, a connection interruption, or another window had control.

Focus interruption

Changing tabs or hiding the page can interrupt the event stream. The implementation clears live held state and marks the guided attempt interrupted, rather than manufacturing a failed release.

What the lifecycle cannot identify

Similar events can come from physical input, firmware, accessibility features, remapping, or other software. The page cannot inspect the switch or determine the source. Session state is temporary and is not uploaded.

Example interpretations

Examples of press-and-release interpretation

These examples explain possible outcomes. They are not results from your current session.

Normal lifecycle

Observed
A non-repeat keydown is followed by a matching keyup; held state clears and a duration is shown.
May mean
This page observed one complete press-and-release cycle.
Does not prove
That the key works in every application or has no intermittent fault.
Next step
Repeat the guided cycle if the original symptom is intermittent.

Suspicious observation

Observed
The same key repeatedly remains active during controlled checks without a matching release being observed.
May mean
The release path deserves comparison in another application or environment.
Does not prove
That the switch is physically stuck.
Next step
Retest without changing focus, then compare another browser or computer.

Inconclusive interruption

Observed
The tab loses focus or becomes hidden before the matching keyup reaches the page.
May mean
The browser event sequence was interrupted.
Does not prove
A missing physical release or hardware failure.
Next step
Return to the page and repeat one uninterrupted guided cycle.