this page lists what lowkey type actually does today to fit different ways of seeing, moving, and typing. it's deliberately plain. if something isn't here, it isn't supported yet — we'd rather say less than overclaim.
seeing
readable font (atkinson hyperlegible) and a set of color palettes: default, sepia (warm + low glare), two color-blind-safe sets (red-green and blue-yellow), and a high-contrast mode that pushes text past wcag aaa contrast and drops the blur. four text sizes that grow the typing line and the on-screen keyboard together. every accuracy band on the heatmap also carries a shape, so it reads without color. forced-colors / windows high-contrast mode is respected.
moving
reduced-motion mode that disables the background drift, the next-key pulse, and entrance fades. respects the system 'prefers-reduced-motion' setting by default. no animation in the app cycles faster than once a second, well under the wcag 2.3.1 flashing limit.
typing
an on-screen keyboard with real, focusable, labeled buttons — sticky shift, backspace, the same scoring + adaptive path as a physical keystroke. auto-detected on touch devices; turn-on / turn-off in settings. key sizes and the one place we don't meet the usual target size are explained below. repeat tolerance drops accidental double-presses and held-key auto-repeat. no-pressure pacing hides the speed pill, drops the error shake, and lets you mark any exercise done whenever you want — skipped exercises don't touch the per-key data.
never stuck
lowkey type never traps you on a character. if a key is hard, or your current keyboard cannot produce it, you can move past it and keep going — and moving past never counts as typing it correctly, never inflates your speed, and never marks the key as mastered.
the on-screen keyboard
the tap keyboard shows a real keyboard's arrangement, because where a key sits relative to its neighbours is the thing it is teaching. on the narrowest phones that means a row of keys can be smaller than the 24px minimum target size we hold everywhere else on the site — fourteen keys across a 320px screen leave no room to do both.
we don't drop keys to fit: losing a bracket would mean you couldn't type one at all with tap input. we don't scroll the board sideways either — hunting for an off-screen key is harder than reaching a small one.
what we do instead: each key's touch area is larger than the key you see, the board runs edge to edge on small screens, and text size in settings scales the whole board if you'd like it bigger. turning the phone sideways gives every key plenty of room. from about 355px wide — most phones — every row already clears the 24px spacing rule on its own.
every other control on the site — buttons, links, settings, cards — meets the full target size.
reading the keyboard
the next-key hint has four levels — auto, strong, subtle, off. auto fades per key as you settle a letter (the more accurate you get, the quieter the cue becomes). the on-screen keyboard relabels itself per keyboard type (windows / mac / chromebook) and scales with your chosen text size.
language
the page sets html lang per locale (english / español). practice text that doesn't match the page locale (e.g. english practice on the spanish ui) is tagged with its own lang so screen-reader voices know to switch.
privacy
no account, no analytics, no ad networks, no third-party scripts. your progress lives in localStorage and IndexedDB on this device. clearing them resets the app to a fresh state. no part of practice is sent over the network.
what isn't here yet: a verified screen-reader pass, self-voicing / by-ear operation, switch-scanning beyond what native assistive tech can drive through the keyboard buttons, and a formal wcag / vpat statement. when those land, they'll show up on this page first.