Accessible Alternatives for CAPTCHA
You have probably seen forms where you need to enter a string of characters in order to submit the form. This is to ensure that only people can submit a form, but automatic systems cannot, in order to prevent spam. This original solution is, however, not accessible for many people with disabilities. In this article I will offer solutions which you can implement to ensure access to all.
If you are a web developer, you might also be interested in:
The original CAPTCHA
Captcha stands for "Completely Automated Public Turing test to tell Computers and Humans Apart". This originally was done by displaying an image on the screen with letters, where the users have to type these letters into an edit field. There were two problems with this solution: visually impaired people were not able to read the letters, however, spammers used automated character recognition systems to decode the picture and place the letters into the field. This way, the opposite was achieved, those who wanted to submit forms couldn't, but spammers had no problems getting around it. Later developers started using distorted letters, which made it more difficult for people with learning disabilities to submit a form, where, visually impaired people were still not able to use it. This is still the case today, major companies still use this solution. In order to provide access to visually impaired people, developers started attaching a sound file to the image, but soon after this, voice recognition systems were able to automatically recognize the information in the sound file. This was prevented by distorting the sound file and adding background noise to it, but this was very hard for humans to recognize, especially for those with learning disabilities.
It is not commonly agreed if the image/sound solution is the only way to prevent computer access to forms. There are several other ways to get around the problem. One is implementing an e-mail notification system, where the users will only get access to information when they submit their e-mail address, receive a response e-mail, from which they have to activate a link. This way only one person per e-mail can have access to information, and while computer systems are still able to get around it, they cannot submit automated information in large quantities.
Another way to ensure human interaction is to ask a user different questions. Make sure that these questions are not hard to answer, and people with different cultural backgrounds can answer them. For example, asking users what is the capital city of California will most likely not be an appropriate question for people outside the United States. But asking people if fire is hot or cold is common knowledge across cultures. Another commonly used method is a simple mathematical question, for example what is 2 + 2. This can be problematic, because automated systems will be able to interpret this question. But you ask users to spell out what is 2 + 2, or just simply ask them to spell "4".
Another way of providing human interaction is placing a check box on the screen and asking users to check it. Better yet, place a checkbox which is checked by default and ask users to uncheck it before submitting a form.
The number of solutions is endless. You can come up with anything that you think computers won't be able to interpret, and people with different disabilities will still be able to answer. First ask your self, if you really need such a solution. If not, don't use it. If you do, ask your self if visually impaired people will e able to use it, if hearing impaired people will be able to use it, if it is not too complex to understand, and if it requires a certain cultural background.