Graphical Anti-Spam Challenge

Much like millions of other people with websites, I want my email address to be obtainable so that others can contact me, but I don't want it available in plaintext in order to prevent spam bots from harvesting the address.

The most common solution to this problem is putting up a challenge that is very simple for humans to solve, but hard for automated scripts. Usually, this challenge is a textual question such as "Enter the current year".

The drawback is that these textual questions are annoying, repetitive (since so many people use them) and no fun at all. That's what got me thinking about alternatives.

What I came up with is a graphical test rather than a textual one. Using Javascript, I created a trivial "puzzle" game that users can solve using drag & drop in order to "win" my email address. I think this is a refreshingly new take onto the common CAPTCHA subject.

By a design decision, the piece snaps into place once it has been dragged sufficiently close to its target position. This is because I want to make the test as effortless as possible, so that the "fun" and "innovative" character is retained without putting any more burden onto the shoulders of my users than absolutely necessary.

Additionally, I think it's important to fall back gracefully if Javascript is disabled. To achieve this, I put a second DIV element onto the page that contains textual instructions to deduct my email address constructively. This DIV is shown by default, whereas another DIV containing the Javascript-powered version has its "display" attribute set to none. A Javascript snippet sets the Javascript version DIV's "display" attribute to "block" on page load, while setting the other DIV's to "none". This way, the Javascript-powered test will only be shown if Javascript is enabled. Otherwise, the textual test gets its turn.

However, users can also switch to the textual test by themselves if they happen to have Javascript enabled, but prefer a textual test. This is sensible because some platforms have trouble with the puzzle test (iPhones, etc.), or some users might have difficulties with it (visually impaired people using screen readers, people not being able to drag & drop due to handicaps, etc.).

Check out the puzzle game CAPTCHA on my new "Contact me" page.