The 2026 reality: firmware is helping you type faster (and easier)
Modern keyboard firmware doesn’t just scan a matrix—it helps. QMK’s Auto Shift turns a slightly longer press into a capital or symbol without holding Shift; Tap Dance maps multiple actions to one key by tap count; and One Shot Modifiers (aka “sticky keys”) let you tap Shift/Ctrl/Alt once and have it apply to your next keypress. ZMK, the other major open‑source firmware, provides equivalent behaviors like hold‑tap, sticky key/layer, and combos with fine‑grained timing controls. These features reduce pinky strain, cut finger travel, and can trim wasted motion that shows up as extra milliseconds in a typing test. (docs.qmk.fm)
What the big three helpers really do
- QMK Auto Shift
- If you hold a key beyond an Auto Shift timeout, QMK emits the shifted character (no Shift key required). The docs recommend starting around a 175 ms default and tuning from there. That explicitly targets reduced pinky reach and potential RSI. (docs.qmk.fm)
- Tap Dance
- One key, many outputs: single tap vs. double vs. triple (etc.). You enable it in QMK and often tune it alongside your tapping‑term. (docs.qmk.fm)
- One Shot Modifiers (OSM)
- “Sticky” Shift/Ctrl/Alt that engage for a single subsequent keypress or can be configured to lock after N taps. In QMK these are called One Shot Keys; in ZMK they’re implemented via the sticky‑key and sticky‑layer behaviors. (docs.qmk.fm)
ZMK’s timing defaults provide helpful context for how these aids behave under the hood: hold‑tap’s tapping‑term‑ms defaults to 200 ms; mod‑tap resolves to a hold if you exceed ~200 ms or interrupt it with another key; and its configuration surface includes options like quick‑tap‑ms, require‑prior‑idle‑ms, and multiple “interrupt flavors” (hold‑preferred, balanced, tap‑preferred, tap‑unless‑interrupted) to fit home‑row mods and other patterns. (zmk.dev)
QMK’s own tap/hold ecosystem uses a TAPPING_TERM whose common default is 200 ms (tunable per key, with dynamic on‑keyboard adjustment), and it adds options such as QUICK_TAP_TERM and permissive/hold‑on‑other‑key‑press variants—critical when you start mixing tap‑dance, mod‑tap, and Auto Shift. (docs.qmk.fm)
Finally, ZMK exposes behavior limits that underscore how “assistance” can be layered: for example, the default maximum simultaneous held hold‑taps is 10, and sticky keys can also be held up to 10 simultaneously by default. Tap‑dance has its own configurable tapping window (default 200 ms). These are powerful affordances if you want them—but they also leave a data signature that typing tests can observe. (zmk.dev)
Why these features nudge WPM upward
- Auto Shift eliminates the two‑key coordination for capitals and many symbols, often saving a few dozen modifier actuations per minute on quote‑heavy or code‑like texts and smoothing finger rhythm. The intent—even called out in QMK’s docs—is to reduce pinky reach and RSI, and some users see fewer timing hiccups on shifted punctuation. (docs.qmk.fm)
- One Shot Modifiers remove the need to hold modifiers during combos, so your down‑up sequences compress; ZMK even allows quick‑release variants so the sticky key releases on the next key press rather than on its release. (zmk.dev)
- Tap Dance and ZMK’s combos/hold‑taps reduce travel and decision time by collapsing multi‑key operations into rhythmic micro‑taps within a predictable window (~200 ms by default). (docs.qmk.fm)
These efficiencies aren’t “cheats”—they’re ergonomic accelerators. But because many leaderboards historically assumed vanilla keyboards, the gap shows up in WPM and can trigger anti‑cheat flags meant for bots.
What typing tests already do about fairness
Typing platforms have long used keystroke replay and human‑in‑the‑loop checks (e.g., CAPTCHA) to curb scripts and macros. TypeRacer publicly documents keystroke replays and a CAPTCHA challenge for unusually high results; its Terms of Service also prohibit artificially enhancing results. 10FastFingers requires an anti‑cheat test to unlock certain scores. And open‑source projects like Monkeytype ship releases that account for stenography users in anticheat rules (e.g., limiting which results can be saved), with community reports noting checks over keydown/keyup timing. (en.wikipedia.org)
The takeaway for 2026: tests already look at timing telemetry; they just need to distinguish ergonomic firmware assistance from automation.
A friendlier way forward: disclose, detect, normalize
1) Assistance disclosure (opt‑in, not accusatory)
- Add a visible “Assistance” tag to results with user‑selected toggles: Auto Shift (timeout X ms), One Shot Mods, Tap‑Dance/combos, home‑row mods, steno, OS sticky keys, etc. Leaderboards can filter by assistance class, much like split rankings for hardware categories in esports. This mirrors how firmware names its features (Auto Shift, OSM, Tap Dance; ZMK hold‑tap/sticky/combos), reducing confusion. (docs.qmk.fm)
2) Telemetry‑based heuristics that spot assistance without witch‑hunts
- Shifted‑symbol dwell patterning
- Auto Shift tends to produce shifted characters with no preceding Shift keydown and key dwell clustering near the configured timeout (often 135–175 ms defaults). When many capitals/symbols arrive without modifier events—and dwell times peak near a single threshold—it suggests Auto Shift, not a bot. Weight this as “assisted,” not “cheating.” (docs.qmk.fm)
- One‑shot cadence fingerprints
- OSM usually sends the modifier keydown just before the assisted key, then releases immediately after. Bursts where a modifier’s press and release wrap the next key in the same 8–16 ms frame are a strong OSM hint. QMK documents OSM behavior and timeouts; ZMK implements parallel sticky‑key semantics. (docs.qmk.fm)
- Multi‑tap clustering for Tap Dance/combos
- Repeated taps at sub‑200 ms intervals with low variance that trigger different outputs from the same physical key are classic tap‑dance signatures; ZMK exposes tap‑dance and combo windows explicitly (default ~200 ms). (docs.qmk.fm)
- Hold‑tap decision timing
- Home‑row mods typically resolve as “tap unless interrupted within tapping‑term,” so sequences where a letter is pressed, another key interrupts within ~200 ms, and the firmware flips that letter into a modifier reflect legitimate hold‑tap logic (ZMK’s flavors make this explicit). Score as assisted, not automated. (zmk.dev)
Caution: telemetry differs by OS/browser; keep thresholds loose and combine multiple features before tagging a run as “assisted.” Provide a link explaining the tag so users can replicate or disclose settings.
3) Normalize, don’t ban: two scoring ideas
- Effort‑weighted WPM
- Treat characters that would ordinarily need a simultaneous modifier (Shifted symbols/capitals) as higher “effort units” when no modifier key was actually held. Example: if Auto Shift produced 30 capitals with no Shift events, up‑weight those characters by +0.25 effort each and compute an “effort‑normalized WPM” alongside raw WPM. This preserves leaderboards while acknowledging mechanical assistance.
- Keystroke‑normalized CPS
- Publish both characters‑per‑second (CPS) and keystroke‑events‑per‑second (KPS). Users with OSM/Auto Shift may show lower KPS for the same CPS; normalizing lets viewers compare rhythm and physical workload directly.
Practical tips
For typists
- If you enable Auto Shift, start with the QMK‑recommended 175 ms and work down cautiously; test on texts heavy in quotes/parentheses to ensure you don’t get false capitals. Consider disabling Auto Shift on special keys if needed. (docs.qmk.fm)
- For Tap Dance, begin near a 200 ms tapping window and tighten only after you can reliably double/triple‑tap without misses. (docs.qmk.fm)
- With OSM/sticky keys, set a short timeout or quick‑release to avoid multi‑letter capitalization bursts. ZMK exposes quick‑release and release‑after‑ms for sticky behaviors. (zmk.dev)
- Before submitting a PB, consider toggling “Assistance: On” in your profile so tests can label it correctly.
For test builders
- Capture per‑event keydown/keyup timestamps and modifier state; store only aggregates (e.g., histograms) to minimize privacy concerns. Existing typing sites already use replays/CAPTCHA or gatekeeping tests for suspect runs—build on that tradition. (en.wikipedia.org)
- Implement an “Assistance score” that lights up when: (a) high ratio of shifted characters without Shift events, clustered near one dwell threshold; (b) many modifier wraps in same‑frame; (c) repeated low‑variance multi‑taps from one key. Explain that this affects normalization, not validity.
- Offer assisted‑only and unassisted‑only leaderboards, plus a unified view with both raw and normalized WPM/KPS.
Bottom line
Auto Shift, OSM, Tap Dance, hold‑taps and friends are now normal parts of enthusiast (and even commercial) keyboards. Rather than banning them, typing tests can recognize assistance, disclose it clearly, and normalize scores so skill still shines. That’s how we keep 2026 fair—and fun. (docs.qmk.fm)