Keyboard Repeat Rate Test
Hold one key and this page measures two separate things as your browser receives them: how long your system waits before it starts repeating, and how fast it repeats after that.
Hold a key to measure auto-repeat
Focus this panel, then press and hold a single key for two to three seconds and let go. Arrow keys, letters and Backspace all work. Press Tab or Escape to leave the panel.
Waiting for a key hold.
This browser rounds its clock to whole milliseconds. Repeat intervals below are quantised, so small differences between them cannot be resolved here.
Live character stream
Every key event the panel receives while you hold a key is appended here, exactly as a text field would receive it. Non-printing keys are shown in brackets.
1 Initial delay — before repeating starts
2 Repeat interval and rate — steady state
Timeline: no samples yet. Hold a key to record the gap between repeat events.
Read left to right: the first tall point is the initial delay, and everything after it is the steady repeat interval. That step down from one long gap to a flat cadence is exactly what two separate settings look like.
Advanced data — every hold, every sample, every exclusion
Collect at least one hold to see a quality assessment.
Holds
| # | Key | Code | Initial delay (ms) | Repeats | Median interval (ms) | Rate (chars/sec) |
|---|---|---|---|---|---|---|
| No holds recorded yet. | ||||||
Repeat samples
| # | Key | Gap type | Gap (ms) | Event latency (ms) |
|---|---|---|---|---|
| No repeat events recorded yet. | ||||
Event accounting
No key events observed yet.
Auto-repeat events are deliberately excluded from press-latency statistics elsewhere on this site and routed to the repeat channel instead. On this page that routed channel is the measurement, so it is counted rather than discarded.
Measurement environment
Timer resolution: — High-resolution timing: — Browser: — Platform: —
These conditions affect your result. A browser that rounds its clock to 1 ms cannot resolve sub-millisecond differences, so jitter will look artificially quantised. How we measure.
Repeat rate is not polling rate
They are both quoted in hertz, which is most of why they get confused, but they are unrelated numbers produced by different parts of the system.
| Repeat rate | Polling rate | |
|---|---|---|
| Produced by | Your operating system | The keyboard and the USB host |
| What it controls | How fast a held key repeats | How often the keyboard is asked for its state |
| Typical figure | Roughly 2–30 characters per second, adjustable in your OS settings | 125–8000 Hz, a property of the device |
| Affects gaming? | Rarely — most games ignore auto-repeat entirely | Contributes a small, bounded transport delay |
| Measurable here? | Yes — this page | No, and no web page can |
Why a browser cannot see polling rate is covered in polling rate vs browser event cadence. To convert a polling rate into an interval and a realistic average wait, use the polling rate calculator.
What this test cannot tell you
Auto-repeat is generated by your operating system, not by your keyboard, so nothing here describes your hardware. This page sees repeat events only after the OS has created them and the browser has delivered them, which means it cannot isolate switch actuation, keyboard firmware, matrix scanning, USB or Bluetooth transmission, or your display's response time. It also cannot tell you the repeat rate a different application will use: browsers, games, terminals and remote sessions each decide for themselves whether to honour, ignore or re-synthesise repeats.
The numbers are also bounded by the browser clock. Where timer resolution is 1 ms, every interval is rounded to a whole millisecond before you ever see it.
The two numbers this test reports
Auto-repeat has two independent settings, and mixing them together is the most common way to misread it. The initial delay is how long a key must stay down before the system decides you meant to hold it. The repeat interval is the steady gap between every repeat after that. A typical hold produces one long gap followed by a flat run of short, near identical gaps.
The repeat rate in characters per second is just the interval expressed the other way round: 1000 divided by the interval in milliseconds. A 33 ms interval is about 30 characters per second. Settings dialogs usually expose the rate; event timing exposes the interval; they are the same setting seen from two directions.
Key repeat is an operating system setting
On an ordinary keyboard the hardware reports only two things: this key went down, and this key came up. It does not send a stream of repeats. The operating system starts a timer when the key goes down and manufactures repeat events for as long as the key stays held. That is why changing keyboards usually changes nothing here, and why changing a system setting changes everything.
| System | Where to change it | What you get |
|---|---|---|
| Windows | Control Panel › Keyboard (run control keyboard) | A Repeat delay control with a few discrete steps and a continuous Repeat rate slider, plus a text box to try them in. |
| macOS | System Settings › Keyboard | Delay Until Repeat and Key Repeat. Key Repeat has an Off position that disables auto-repeat entirely, which is what allows holding a letter to open the accented-character picker instead. |
| Linux | Your desktop environment's keyboard settings; on X11 sessions also xset r rate delay rate | Delay in milliseconds and rate in repeats per second. Wayland sessions are configured through the desktop environment or compositor rather than xset. |
Change a setting, come back and hold a key again: the two numbers above should move in step with what you set. That round trip is the most useful thing this page does.
Why the browser may see something different
What reaches a web page is not guaranteed to be a faithful copy of what the OS emitted. Browsers deliver repeat events on the main thread, so a busy page can bunch several arrivals together and stretch the gaps between others. Some applications and web apps swallow repeats entirely, and some re-synthesise their own on a timer that has nothing to do with your settings. Remote desktop sessions, virtual machines and software keyboards frequently generate repeats at the far end of the connection, so the cadence you measure belongs to that layer instead.
Modifier keys are a special case: Shift, Control, Alt and Command normally do not repeat at all, so holding one produces no measurement here. That is expected behaviour, not a fault. If you want to see the raw event fields behind any of this, the keyboard event tester shows every property, and browser keyboard event timing explains what the timestamps mean.
Why a high repeat rate does not make gaming input faster
Games almost always ignore auto-repeat. Instead of counting key events they check, once per frame, whether a key is currently held, so movement continues smoothly regardless of whether the OS is manufacturing repeats at 2 per second or 30. Cranking the repeat rate up changes how fast text deletes and how fast a cursor slides through a document; it does not change how quickly your first keypress reaches the game.
Repeat rate is also unrelated to polling rate. Polling rate describes how often the keyboard is queried over its connection; repeat rate is a software timer running afterwards in the OS. The event cadence test covers the first of those, and the keyboard latency test measures how quickly a single press reaches the browser.
How to read your result
Take several holds rather than one. A single hold can be disturbed by a background task on the main thread, and the jitter figure only becomes meaningful once there are enough intervals to compare. If the intervals are labelled consistent and cluster tightly around the median, your system is delivering repeats at a stable cadence and the browser is keeping up.
Widely scattered intervals usually point at load rather than at the keyboard: a heavy tab, a background export, or a compositor under pressure will all show up as occasional long gaps. Duplicate events far faster than your repeat interval are a different phenomenon entirely, and belong on the keyboard chatter test. A key that keeps repeating after you release it belongs on the stuck key test.
Related keyboard tests
Frequently asked questions
Is the key repeat rate a keyboard setting or an operating system setting?
On a standard keyboard it is an operating system setting. The keyboard reports that a key is down, and the operating system decides when repeating starts and how fast it runs. Windows, macOS and Linux each have their own repeat delay and repeat rate controls, and changing them changes what this test measures. Some programmable keyboards can generate repeats in firmware instead, but that is the exception rather than the rule.
What is a normal initial repeat delay?
Desktop systems commonly ship with an initial delay in the region of a quarter of a second to about half a second, and the settings usually allow anywhere from roughly 200 to 1000 milliseconds. There is no correct value. A short delay makes held keys start repeating sooner, and a long delay makes accidental repeats less likely. Compare your measured delay against the setting you actually chose, not against someone else's number.
Why did my key not repeat at all?
Several things stop auto-repeat. macOS can disable key repeat entirely, and for letters that take accents it may show an accent picker instead of repeating. Some browsers and web pages suppress repeated key events, remote desktop and virtual machine sessions often handle repeats differently, and modifier keys normally never repeat. If nothing repeats anywhere on your system, check your operating system's keyboard settings first.
Does a higher repeat rate make me faster in games?
Usually not. Most games ignore auto-repeat and instead read whether a key is currently held down, frame by frame, so the operating system's repeat rate never enters that loop. Auto-repeat matters for text editing, arrow-key navigation and holding backspace. It is not a measure of input latency and it is not the same thing as a polling rate.
Why is the measured interval slightly different from the rate I configured?
The number here is the gap between key events as this browser received them, so it carries operating system scheduling, browser event delivery and main-thread timing on top of the raw setting. Browsers also coarsen their clocks for security, and some round every timestamp to a whole millisecond. Expect the measured interval to sit near your configured rate rather than exactly on it.
Does this test measure anything about my keyboard hardware?
No. Everything on this page is measured in the browser, after the operating system has already decided when to emit each repeat event. The test cannot see switch actuation, keyboard firmware, USB or Bluetooth transmission, or how quickly your screen updates. What it does show is the auto-repeat behaviour your applications actually receive.