CAPTCHA (Completely Automated Public Turing test to tell Computers and
Humans Apart) tests in on-line forms are a frustration, but seemingly
necessary to prevent spam and malicious activities. Often it is difficult
to read the characters that are displayed, and sometimes require a number
Is there a better way to determine if a form is being submitted by a
We've put together a short list of some alternative methods to determine
if the user is a Bot or a real person:
Hidden form fields - Hidden from the human user using CSS or
it can create a problem for screen readers.
Confirmation Check-boxes - Like the hidden field, a human can
distinguish between "Is a human" and "Is a robot", only selecting one
option. Bots aren't able to tell between the two questions and fill
both check-boxes, allowing you to reject the submission.
Timestamps on forms - A human takes time to read the form, and fill in
their information. A Bot will fill in all the fields much faster. If a
form is submitted in under a certain amount of time, you can almost
determine that it is from a bot.
Verified Sign In - Require your users to sign into your website
beforehand. This allows you to remove the need for any testing as the
human user has already been verified.
The logic test - Create a simple logic test like match the colour
displayed, or complete a simple puzzle or game that a human could
easily solve but a Bot can't determine. This one could also create
problems for screen-readers however.