PrivCaptcha.com

An accessible path, not an apology.

Screen-reader and keyboard visitors get a non-visual challenge that is a first-class route through, rather than an audio clip or a dead end.

How it works

No image and no sound

The accessible challenge needs neither. It is keyboard operable and relies on no colour cues, so it also works for colour-blind visitors and on high-contrast settings.

On by default

Every site has it enabled unless the owner turns it off, and the choice is enforced server-side - a site that has opted out cannot be pushed into the accessible path by a crafted request, and one that offers it cannot have it taken away by one.

The cost moves, it does not vanish

There is no visual task to complete, so the proof-of-work is the whole challenge, at a fixed 22 bits - above the 12-to-20 band a visual challenge draws from. A person waits a couple of seconds and is asked nothing. It is a different price for the same thing, chosen because the usual alternative, a distorted audio clip, is miserable to use and has been beaten by commodity speech-to-text for years.

What that means concretely

Each of these is a statement about how the product behaves, not a description of how we feel about it.

Keyboard operable end to end.
No image, no audio CAPTCHA, no colour-dependent step.
Enabled per site by default; the setting is enforced on the server.

Accessible challenge in PrivCaptcha: common questions

What accessible challenge actually does, and where it stops.

No. It is a first-class challenge in its own right, not a degraded second route bolted on after the visual one. Distorted-audio fallbacks are the part of the old captcha experience we deliberately did not copy.
It is a different price for the same thing, not a way past it. The visual task is dropped, because a screen reader cannot click a triangle, and the whole cost moves into the proof-of-work: the non-visual path carries a fixed 22 bits, above the 12-to-20 band a visual challenge draws from. A person waits a couple of seconds and is asked nothing. A script that takes this path skips the solve and pays the hashing instead - which is the trade we chose deliberately, because the alternative is a distorted-audio challenge that commodity speech-to-text has been beating for years.
Yes. Every challenge type is reachable and solvable without a pointer, and the non-visual path is what a screen reader gets by default.
Every request is challenged - there is no invisible pass to aim a script at, and no allowlist that skips the check. What changes is the form the challenge takes and what it costs. The server scores each request and picks one of five difficulty levels, so an ordinary visitor gets a couple of seconds and a client that looks automated gets tight tolerances and a heavier proof-of-work. On the non-visual path, taken by screen-reader and keyboard visitors, there is no puzzle to solve at all: the proof-of-work is the whole challenge, at a fixed 22 bits.

Change two lines. Keep the rest.

10,000 verifications a month are free, and the integration is the one you already have.