Why HTML feels repetitive
An opening tag costs four shifted presses before you have typed any content: less-than, greater-than, then the same pair again for the closing tag. Multiply that by every element on a page and the repetition starts to show up in your score.
The letters in HTML are easy. It is the surrounding punctuation, repeated hundreds of times per file, that separates a comfortable 60 WPM from a tiring 35.
The expensive characters
- Angle brackets — less-than and greater-than share one key, so every tag is two shift presses.
- Forward slashes in closing tags — a reach that always arrives right after a greater-than.
- Equals signs and quotes for attributes — three characters of overhead for every class, href or id.
- Hyphens in class names — cheap alone, relentless across a real markup file.
- Prefixes such as aria and data — long, lowercase and easy to transpose under time pressure.
Reading your result
HTML scores usually land below prose and near SQL. That is expected: the ratio of punctuation to letters is the highest of any language here. Anything above 40 WPM is a solid working pace.
If you also write JSX or Vue templates, the symbols here transfer, but expect braces and camelCase props to add a little more overhead on top.