Overview
Introduction
Human typos have a distinct shape: they cluster around adjacent keys, dropped or doubled letters, and swapped neighbors, very different from the random bit-level noise a transmission error produces.
This tool generates that specific, human-shaped kind of error at a configurable rate, while staying strictly within plain ASCII so the output is always safe to feed to a system that can't handle stray non-ASCII lookalike characters.
What Is ASCII Typo Generator?
A realistic typo generator for strict 7-bit ASCII text: for a configurable percentage of alphabetic words, it applies one of four typing-mistake styles, adjacent-key substitution, double-letter insertion, dropped letter, or transposed adjacent letters.
Its defining constraint is that every substitute character comes from a QWERTY-adjacency map containing only plain ASCII letters, so it can never introduce a curly quote, em dash, or accented character the way a more general Unicode-aware typo tool could.
How ASCII Typo Generator Works
Input is validated as strict ASCII, then the text is scanned word by word (runs of A-Z/a-z characters); each word with 2 or more letters has an independent chance, based on your rate, of receiving exactly one typo.
An affected word gets one randomly chosen mutation: a letter is swapped for a same-case QWERTY-adjacent letter, a letter is duplicated, a letter is dropped, or two adjacent letters are transposed, all using a seeded pseudorandom generator for reproducibility.
When To Use ASCII Typo Generator
Use it to generate realistic, human-shaped typo test data for a spell-checker, fuzzy search, or autocorrect feature, where you specifically need typing mistakes rather than random corruption.
It's also useful whenever your downstream system requires strictly ASCII-safe input, ruling out a general Unicode typo tool that might introduce a non-ASCII lookalike character.
Often used alongside Text Error Introducer, ASCII Error Injector and List Error Injector.
Features
Advantages
- Models real typing-mistake patterns (adjacent keys, drops, duplicates, transpositions) instead of generic random substitution.
- Guarantees every substitute character is plain ASCII, drawn from a fixed QWERTY-adjacency map, never a curly quote or accented lookalike.
- Seeded and reproducible, with a Regenerate button for drawing a fresh round of typos on demand.
Limitations
- Only mutates runs of alphabetic characters; digits and punctuation are never affected, even though real typing mistakes occasionally hit those too.
- Applies at most one typo per affected word per pass; it won't compound multiple mistakes onto the same word in a single run.
Examples
Best Practices & Notes
Best Practices
- Use a moderate rate (10-25%) to generate realistic, sparse typos rather than an unreadable wall of mistakes.
- Use the Regenerate button to build a varied batch of typo'd variants from the same clean input for a broader test suite.
Developer Notes
Word-level mutation mirrors the string category's `text-error-introducer.ts` shape (regex-scan alphabetic runs, one seeded mutation per affected word) but adds a fourth mutation type (adjacent-key substitution) and constrains all substitutions to a hand-written QWERTY-adjacency map (`QWERTY_ADJACENCY`) containing only plain ASCII letters, which is the tool's core differentiator: a substitution can never resolve to anything outside 7-bit ASCII, unlike a generic typo generator that might pull from a broader 'visually similar characters' set.
ASCII Typo Generator Use Cases
- Generating realistic typo test data for a spell-checker or fuzzy-search feature
- Building ASCII-safe fuzz input for a system that would reject or mishandle non-ASCII lookalike characters
- Demonstrating the specific shape of human typing mistakes versus random character corruption
Common Mistakes
- Expecting digits or punctuation to ever be affected, only alphabetic runs are eligible for a typo.
- Assuming this is interchangeable with Text Error Introducer, that tool doesn't guarantee ASCII-safe substitutions the way this one does.
Tips
- Keep the rate low if you need the typo'd text to remain mostly readable for a human-facing demo.
- Pair with ASCII Error Injector if you want both human-style typos and bit-level corruption applied to the same base text.