On Tue, 26 Oct 2004 00:54:57 +0900, trans.  (T. Onoma)
<transami / runbox.com> wrote:
> On Monday 25 October 2004 11:35 am, Jamis Buck wrote:
> |
> | ASCII art will still suffer from accessibility issues, since a screen
> | reader will not be able to read the ASCII art in any intelligible way to
> | the user. :( However, it is an ingenious approach...I'm tempted to look
> | into that, JFTHOI.
> 
> There is no way to do otherwise for a captcha system. How would a blind person
> every be able to use a captcha system?

http://mookitty.co.uk/devblog/archives/2004/06/01/captchas-for-the-blind/

This is a simple captcha system that works for both blind and sighted
people. It got good reviews from the blind people who tried it; It was
said that it worked much better than audio versions.

a simple implementation (warning - untested):

class AccessibleCaptcha
  attr :string, :instructions
  def initialize
    char_bank = [*("3".."9"),*("A".."H"),*("J".."N"),*("P".."Z")]
    @string = ""
    8.times{ @showstr << char_bank[rand(char_bank.size)]
    methods = {
      "remove all letters" => [/[a-z]/i, ""],
      "remove all numbers" => [/\d/, ""]
    }
    @method_str, @gsub_args = methods.sort_by{rand}.first
  end
  def valid?(str)
    @string.gsub(*@gsub_args) == str
  end
end

Adding more obfuscation methods would make it more robust, but for
simple jobs, I think this could work nicely.

cheers,
Mark