Hacker News new | ask | show | jobs
by soneil 18 days ago
I'm curious if there's a reason this six-cell mechanism has become the defacto?

It seems this should just be a single input field styled appropriately, but it feels like there must be an underlying reason I'm missing.

4 comments

First off: I’m not really well-versed in terms of UX design, so these next guesses are as good as anyone’s:

- Six boxes communicate “== six digits, != password” (try to imagine the least tech-savvy user)

- Some people might not be able to quickly hold six digits in their head at once (especially seems to be the case with older people, from my experience), so seeing “I’ve already got two/three/four” visually is potentially an efficiency boost. This also correlates (again, just from my anecdotal experience) with the population that doesn’t have a password manager handling 2FA for them automatically…

- This is probably down to preference, but IMO it also feels faster somehow than a single input field with six digits, when it works properly (with the caveat that it feels much worse/slower if it doesn’t work)

- Now that everyone does it, you’re kinda forced to adopt it as well for recognizability.

But it’s an interesting question – we can’t ever imagine entering postal ZIP codes like that and yet that’s an area where it’d actually make more sense since there’s usually some notion of “more significant” digits at the start vs. end, so you could perhaps do some cool tricks with regard to pre-filtering state, city etc. names. Whereas OTP codes are (AFAIK) essentially fully random digits with no meaningful distinction.

My equally uninformed guess is that the presence of six empty boxes communicates that the code entered must be exactly six digits long in a way that a generic text input doesn't. It clearly delineates the digits which makes it easy to see how many you've entered and how many are empty, and the presence of an empty box suggests that it needs to be filled while a number that's simply shorter than the input field doesn't. At least, that's my steelman; maybe browsers should check if a field's min-length and max-length are the same and style them similarly?
I think people were entering the SMS short code the digits were sent from instead of the digits so they wanted to make it clearer that it was 6 digits they want you to look for.
When I get sent a verification code from myGov (via text message), the message contains the 6 digit code, AND a 6 digit phone number for the help desk. I have to stop and double check which is the code, because I have accidentally entered the phone number many times.
> It seems this should just be a single input field styled appropriately

Anecdotally, this seems to be the case on the majority of websites where I have to use such 2FA codes.

Santander's banking website uses both in some places, e.g. confirming a new payment. "Enter your 5-digit PIN and the 6-digit 2FA code we've just sent you", with 5 little input fields for the former, and a single standard input field for the latter. Perhaps a deliberate decision to make them look different, but it just looks like they couldn't make up their mind.
Or the input fields are provided by different widgets they downloaded from different places on the Internet.
I wish they were just regular inputs. A significant portion of them I encounter have some kind of cursor navigation or paste bug. I think this mechanism is the perfect Goldilocks-zone control of simple enough that people rewrite it from scratch, but text input has enough hidden complexity that it's easy to get something wrong.
I'm guessing someone at some point thought that preventing copy and paste would stop bots, then everyone copied them.
That sounds quite likely. Not the stopping bots part, just the idea that someone chose to do it for some reason, and everybody copied them without knowing the reason. Happens all too often.
Describes religion. Code is a type of religion I guess