Let's assume following workflow for logging in
a) On a device with keyboard:
- I type my username and password
- Press enter
- [realization] I made a typo
- Password field is cleared: not a big deal, I can type reasonably quick
b) On a device with touchscreen
- I type my username and password
- Press "logon"
- [realization] My password is "password2013", not "password2012"
- Password field is cleared: now we are talking - I would rather have my * * * * * values so I could just correct single character rather than typing whole password again, on some occasions even my username is cleared which is a complete waste of time
Few questions here:
- Is it valid user experience point to have asterisks retained in the password field?
- Is there any reason to clear field values or is it just pure laziness not to feed them back after round-trip to server?
- When using AJAX forms - would you preserve or clear the values?
- Does it make sense to use hybrid approach - preserve values and clear them after arbitrary timeout?
Is there a security risk to leave password as * * * * * ?
I leave my computer, attacker sees my open tab and can retrieve my wrongly typed password: http://jsfiddle.net/stefek99/2Uh9T/ BUT [logic kicks in] if an attacker has access to my computer there are more efficient ways of harming me than peeking the wrong password :)
Existing examples:
- Windows 7 logon screen - password is cleared
- Mac OS X logon screen - password is preserved
Should the password field be cleared after an unsuccessful login attempt?
password2012
while intendingpassword2013
is a common use case. More often, you won't know where you entered the typo, and need to retype the full password anyway.^U
whenever I realize I made a typo, since I'm always in a terminal. It really makes things a lot easier.