There are a variety of different forms of CAPTCHA and other strategies in order to prevent spam. To briefly list a few:
- Simple math or word questions.
- Obfuscated text.
- Image CAPTCHAs.
- Audio CAPTCHAs.
- Rule-based filtering like Akismet.
- Gradual increase in privileges based on trust.
- Community moderation like StackExchange.
- Spam disincentives like nofollow attributes to links.
- Incentives for posting good content.
- Admin moderation.
- IP whitelists and blacklists.
- Public shaming and disgrace.
Each one of these approaches has obstacles to overcome due to accessibility issues, technical limitations, time restrictions, conversion problems, or size of community. The systems that I've seen working best are a combination of several of the above techniques. However, I can't help but feel as if we're missing something important when it comes to combating spam.
I know that it may be too much to wish for a single one-size-fits-all solution, but perhaps spam prevention could be approached from a different angle. I suspect that there may be more to explore in terms of the way the user interface influences human behavior.
I find that having constraints often triggers creativity, so given the following constraints, can we come up with any new tools to add to our arsenal against spam from a user interface perspective?
- It must be accessible.
- It must be non-disruptive and transparent to the end user.
- It cannot detract or distract from the primary purpose of the page.
- It must be automated or require very little moderation on a large scale.
- It cannot be a 3rd-party service.