Transparent, effective form-bot stopping.
July 12th, 2007As a user, I absolutely hate captcha images. As a matter of fact, I have actually stopped an online transaction in its place because of a captcha. I just won’t fill one out unless its mission-critical. It’s not that I don’t agree that form-bots are a pain in the ass, I just don’t think that captchas are friendly or well thought out.
Aside from the obvious accessibility issues, they are just a pain to deal with.
Here’s a simple solution. I came up with this after saying to myself “ok, captchas suck, what can you do instead…” and in 5 minutes, i had it.
<div style="display: none;"> <label for="email">Leave this field blank:</label> <input type="text" name="email"> </div>
That simple. Now, just check that its blank on the back-end, and you will be good to go. I used “email” because 1) I try to avoid using such obvious names for form fields…it helps some of the spam right there… and 2) it makes it irresistible to bots. Obviously, don’t name it “email” if you have one named email, but make it something that sounds obvious. A lot of bots wont fill out all of the fields, just ones they “think” are important.
Is it bulletproof? No. Some bots might still get through. But I think its a great compromise between stopping bots, and keeping a friendly experience for your users.