Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CAPTCHAs are horrible #558

Closed
plinss opened this issue Sep 19, 2020 · 8 comments
Closed

CAPTCHAs are horrible #558

plinss opened this issue Sep 19, 2020 · 8 comments

Comments

@plinss
Copy link
Member

plinss commented Sep 19, 2020

Form submission abuse is a real issue, but the current solution of CAPTCHAs is a horrible and error-prone user experience.

CAPTCHAs are an accessibility nightmare, provide an inconsistent UX, leak information to centralized services, and are abused as mechanical turks.

The UA knows that a human is driving it, can we provide a better mechanism that allows UAs to automatically prove human action and provide a consistent, accessible UX when needed?

One thought, add an <input type=captcha> that provides a trust token or the like in form submission. It would have no display, but the first time a form containing it is submitted, the UA can provide a UX to authenticate the user and obtain the token (querying the value from script would also yield the token/trigger the UX). The token could then be stored and auto-submitted in the future without any UX. Authors would need to be able to feature detect and fall back to other CAPTCHA mechanisms when not implemented.

@plinss plinss added Progress: untriaged Review type: CG early review An early review of general direction from a Community Group labels Sep 19, 2020
@torgo torgo added this to the 2020-11-02-week milestone Oct 14, 2020
@hober
Copy link
Contributor

hober commented Nov 9, 2020

I love the idea of declaratively integrating the Trust Token API with HTML form submission. It would be very straightforward to polyfill, too. I wonder what @annevk & the Trust Token API folk (@dvorak42, @csharrison) think.

@annevk
Copy link
Member

annevk commented Nov 10, 2020

Seems reasonable. I think the bigger question is where we are at with the underling protocol and to what extent its properties and implications are acceptable.

cc @TanviHacks @johannhof @arthuredelstein

@dvorak42
Copy link

Generally seems reasonable to integrate with HTML forms (there's already some futzing with the API to support embedding it in iframe requests), though you'd need some more complicated scheme to indicate what Trust Token issuer you want to communicate with, and other parameters.

One issue is what the UX should be when there isn't a Trust Token/previous CAPTCHA result. Are you imagining the UX would be some sort of frame that displays a particular CAPTCHA provider's UI, or something that is wholly browser controlled?

@csharrison
Copy link

There may also be room for <form> integration where the browser does not control the UX for issuance. e.g. I am imagining some way to configure a form declaratively in two modes:

  • If the user does not have trust tokens, the form renders as a site-controlled CAPTCHA and performs an issuance request on submit
  • If the user has trust tokens, the CAPTCHA is never rendered and the form automatically performs redemption on submit

@dvorak42
Copy link

Yeah, I suspect that might be a good first-step, before trying to solve the browser-controlled UX side of things.

One change to support that would be to allow an issuance request to also return something equivalent to a redemption (WICG/trust-token-api#49) to avoid needing to do both the issuance and redemption steps when they're happening in the same context/top-level origin.

@Malvoz
Copy link

Malvoz commented Dec 28, 2020

CAPTCHAs are an accessibility nightmare

Inaccessibility of CAPTCHA: https://www.w3.org/TR/turingtest/

@plinss
Copy link
Member Author

plinss commented Mar 15, 2021

@hober hober mentioned this issue Sep 14, 2021
5 tasks
@torgo
Copy link
Member

torgo commented Sep 16, 2021

It looks like this has been taken up in the reference Trust Token API issue hence we are going to close.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment