You might reach for
<input type="number>when you’re, you know, trying to collect a number in a form. But it’s got all sorts of issues. For one, sometimes what you want kinda looks like a number, but isn’t one (like how a credit card number has spaces), because it’s really just a string of numbers. Even more importantly, there are a variety of screen reader problems.
(We discuss the uncanny valley of
number inputs on this JS Party episode about the stale parts of browsers.)
Turns out the best practice (just use
text inputs) has a twist to it: inputmode!