15

I have been looking at ways to prevent spam bots from posting, regstering and performing actions on my site.

Initially, I thought about implementing ReCAPTCHA using its API. However, I have found ReCAPTCHAs to be getting more difficult to read these days (some of the distorted letters aren't even legible!). I also found the audio option supplied for vision-impaired users to be frustrating and even harder to use.

I have been looking at other ways to prevent spam bots. The checkbox captcha and honeypot captcha are described on this site, so I won't go on and describe them.

I have ruled out a checkbox captcha because it is generated client-side using javascript. I only use Javascript for progressive enhancemet.

The honeypot captcha seems to be the best solution. However, I am interested in its accessibility with screen readers and other web browsing tools for the visually impaired, having no experience with those tools.

How good are screen readers/ visually impaired tools at parsing CSS? Do they even parse and apply css styles? Has anyone got any examples or implemented honeypot captchas that satisfies accessibility compliance?

3
  • 3
    If you look at the tag CAPTCHA there have been quite a few discussions on when and how to implement it.
    – dnbrv
    Jan 7, 2012 at 3:45
  • 2
    Agreed that they are getting harder and harder to read !
    – PhillipW
    Jan 7, 2012 at 12:07
  • Don't screenreaders hide things with display:none applied to them anyway?
    – Damon
    Apr 5, 2012 at 20:18

2 Answers 2

10

The typical honeypot CAPTCHA field has a proper label: "If you are a human, do not fill in this field." or some other clear label telling the user what it is.

And, as such, a screen reader should read it just fine.

If you're looking for true usability and accessibility, however, then realize any sort of CAPTCHA is a detriment. It's putting the burden on the site user rather than site owner.

Of course, that's often a tradeoff that has to be done for pragmatic reasons.

1
  • 2
    Limiting the application of the CAPTCHA (as Stack Overflow does) is great at limiting the acccessability issues they cause as well; by limiting CAPTCHAs to high-traffic/volume users you reduce the strain on everyone.
    – Ben Brocka
    Jan 9, 2012 at 4:40
1

There are number of screen readers around and they all do things differently. Some may work with CSS (although I do not know of one), some read in-line styles and some won't read styles at all.

For example JAWS (a very popular screen reader) only reads in-line styles in certain situations, http://www.freedomscientific.com/fs_support/BulletinView.asp?QC=1165.

Therefore you have to assume that the screen reader will see the text box and the user could get confused by it. So if you want your site to be accessible and useable then you should not use the Honeypot captcha.

Have you considered other alternatives? (Check out Can we do better than CAPTCHA? for some great suggestions and links). For example asking the users to answer a simple maths question, or do a simple task? Or better still don't have one at all.

2
  • 1
    "Therefore you have to assume that the screen reader will see the text box and the user could get confused by it." They could get confused if there's no label, obviously - but add a label, i.e. 'Please leave this field empty' (as suggested above) and it should be fine. I'm sure screenreader users wouldn't be inconvenienced, and would understand a site owner's need to prevent spam. And I'm sure they'd also appreciate the developer attempting to do that in a more accessible way. I don't see an issue with it.
    – user10864
    Jan 13, 2012 at 9:46
  • The user does not care about the developer's spam problems, they may not even know what spam robots are. Bottom line it is an extra field on the form that the user has to process. Some users will cope with it others will bail out and not use the site. Jan 16, 2012 at 10:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.