James Aylett: Accessibility Advent: don't punish errors

Published at
Tuesday 11th December, 2012

(Throughout Advent I’m sharing some hints as to how web developers can make my life as a speech recognition user easier.)

All users make errors; depending on tiredness, concentration, complexity of task, and so on people can make input errors using keyboard, mouse, voice or whatever. I find that my input error rate is significantly higher by voice, sometimes due to ways the voice system doesn’t quite match up with the way an application works, sometimes due to plain recognition errors where Dragon thinks I said something else, and sometimes due to user error (I think the most common one for me is to dictate text while in Spelling Mode, which means Dragon spins for a while trying to figure out what letters I said and then blasts line noise into whatever has focus).

I’m okay with making errors; that’s just going to happen. But please, please, please don’t punish me for those errors. Here’s one way you should avoid: one form with multiple different things I have to get right.

I came across this while registering for the Santander online banking system, which manages to break almost every rule I could consider writing to make voice users’ lives easier. One, large, scrolling form rather than several sequential requires concentration for longer; I can feel myself getting tired with having to navigate around a large form trying to get all the inputs right. What’s worse than that is that a single form tends to get validated all at once, and either passes or fails. So something like this is bad:

In an earlier step I’d had to input a temporary ID code and pass phrase, which was bad enough (because they were all numbers, and triggered the leading space problem and the US phone number formatting problem as previously discussed). To then have to create two new ones, which of course had requirements such as length and use of punctuation characters, and repeat them, was a huge effort. (Even creating them in a temporary document separate from the web browser and copying them in, which is what I did eventually, is a pain, because switching back and forth to select two different pieces of information is time consuming and runs the risk that you don’t actually copy the second one, pasting the first into all boxes.)

And they’d made it even worse, of course: if you got anything wrong, even the correct values weren’t carried onto the form again. (This was also true of entering the temporary ID and pass phrase, if I remember correctly.) So I’d get the ID code right, twice, but mess up getting the confirmation pass phrase, and then have to do the whole lot again. I got it wrong I think three times in total. If this had been split into two separate steps, setting the ID code and pass phrase on different screens, it would have been much easier.

By the time I’d finished registering I was sufficiently frustrated I just transferred most of my money out of Santander into an account with a bank that has a somewhat more usable online banking interface. If it’d been for anything where I didn’t already have a vested interest, I’d have given up.

So please don’t punish errors; any error I make I should be able to correct independently of any other information I give you. (Another example: if you build one form for shipping information and payment, don’t clear the shipping address if I put in a credit card number that doesn’t validate, and vice versa.)

Also, consider very carefully whether you actually need confirmation of anything the user inputs. For passwords, you should never have to (password reset to the email address on file will work); I’d argue that for banking registration codes you don’t have to either, because I can always get you to send temporary ones out by post. Email addresses, however, probably are important to confirm; anecdotally I saw a fair number of typos in Artfinder signups while I was there (as well as a fair number of deliberate bad emails, but you’re not trying to avoid them by having them input twice).