Secure and accessible contact form
Saturday, March 8, 2008 10:54:08 PM
I just stumbled upon this contact form script — written in PHP by Mike Cherim, with lots and lots of options, secure (anti-spam measures) and at the same time accessible: look at that long list of features, and try it out in the demo.
This version 3 is very new (11 February) and doesn't exist in plugin form yet, but version two (demo) is also available as a Wordpress plugin.
I can use this on some of my sites! Downloading as I write…














DavidSchalandra # Thursday, March 20, 2008 7:28:54 AM
Marjolein KatsmaJavaWoman # Thursday, March 20, 2008 9:00:38 AM
Besides which, it's just source
DavidSchalandra # Thursday, March 20, 2008 10:35:12 AM
Or catcha-questions... "Is a ruby red or blue?".
That should be pretty hard to break.
Marjolein KatsmaJavaWoman # Thursday, March 20, 2008 12:41:55 PM
The very reason I blogged about this form is not only that it's very flexible and has good anti-spam support, but is user-friendly regardless (read what it does when the Captcha isn't answered correctly!) and remains completely accessible.
DavidSchalandra # Thursday, March 20, 2008 4:32:57 PM
I know that sounds cold-hearted but at least I am honest. I try to make webpages as good and user friendly as possible. But the people paying my bills are rarely the ones that need such optimizing. They care about a nice design, google ranking, no spam and some cool effects.
Marjolein KatsmaJavaWoman # Thursday, March 20, 2008 6:03:20 PM
Of course, there are people who can't read, not so many who can't read at all, but dyslexics have trouble reading in various gradations - but they can use screen reader software as well (there are free programs for that now), so they will hear the prompts. Many can write (never mind spelling mistakes), and will be able to copy-and-paste their email address for instance, and thus still be able to use a contact form. Except when they are confronted with a Captcha image, because a screen reader can do nothing with that.
If they speak a very rare language (and none the form supports) - then would they even land at your site and try to use a contact form?
Accessibility is not about optimizing for 1%, and forgetting the rest, it's about being as all-inclusive as possible, and not forgetting those 15% or so who need some aspect of accessibility (certainly not only 1%). And it's not hard to do if you know what to do. And get a lovely form as a result: this form script "knows" what to do already. Use the form as is, and even someone who is blind and deaf can use it, and you won't get floods of spam. So why do work to exclude those people when with no work at all you can include them?
And those who care about Google ranking - tell them that Google is blind. If you write accessibile pages, they will not only tend to be more usable as well, but search engines can "use" them better, too.
You can have it all, nice design, Google ranking, no spam, cool effects, and be accessible as well.
Marjolein KatsmaJavaWoman # Thursday, March 20, 2008 6:38:54 PM
Try the demo with lynx, links, or if you don't have those (you should have at least one of them), try it with the lynx viewer.
And you may want to check out my other posts relating to accessibility - more developer tools!
Anonymous # Friday, March 21, 2008 5:34:03 AM
Marjolein KatsmaJavaWoman # Friday, March 21, 2008 7:27:52 AM
I found the backup you provide for those who don't know the answer to the anti-spam question very clever: rather than posing a very hard question and thus testing the "intelligence" of your readers, a simple question will do, and those who are human but don't understand the question or its intention - maybe because the language they're reading the form in is not their primary language - are not excluded immediately and get another chance. There has been a lot of discussion about whether such security questions could not themselves exclude people, but this is a very good solution for that. But bots don't come back, they just shoot off a form submission and are gone, they generally don't hang around to see if there was an error.
Meanwhile, I tried out the new WAVE toolbar on your demo form, and it spotted two (small) problems: a case of too much of a good thing. There are two locations on the form with two label elements for a single ID, and that's not valid. I'm not sure whether that would hinder usage of the form in practice, but worth mentioning, and easily fixed.