View Issue Details

This bug affects 3 person(s).
 24
IDProjectCategoryView StatusLast Update
18309Bug reportsAccessibilitypublic2025-02-13 10:08
Reporterkeunes Assigned ToDenisChenu  
PrioritynoneSeveritypartial_block 
Status assignedResolutionopen 
Product Version5.3.x 
Summary18309: Built-in captcha not passable by respondent relying on screen reader
Description

In a survey, via Settings > Publication & access > "Use CAPTCHA for survey access" I enabled a captcha for a survey. I got a comment back from a blind user who was using a screen reader, and notified us that the captcha equation was not visible/usable for them:
https://devin.masto.host/@devinprater/108797844560678426

The problem is that they don't see the equation, as no alt text to the image is provided. I guess adding the alt text would kinda defeat the purpose of the captcha (making it very easy for machines to read.

A solution might be to offer integration hcaptcha, which does have a way for visually impaired users to get through: https://www.hcaptcha.com/accessibility
Or, their solution (email verification + encrypted cookie) might be implemented directly in LimeSurvey.

I selected severity level 'partial block' as it impedes users that rely on screen readers from accessing the survey.

Steps To Reproduce

Steps to reproduce

As a visually impaired user, open a survey that has built-in captcha enabled and use a screen reader to navigate the page.

Expected result

Have a way to pass the captcha without visual input.

Actual result

Passing the captcha requires visual input.

Tagsa11y, accessibility, captcha
Bug heat24
Complete LimeSurvey version number (& build)5.3.27
I will donate to the project if issue is resolvedYes
Browser
Database type & versionunknown
Server OS (if known)
Webserver software & version (if known)
PHP Versionunknown

Users monitoring this issue

keunes, tassoman

Activities

Mazi

Mazi

2024-10-29 21:50

updater   ~81317

@tibor.pacalat this can be a show stopper especially for governments using Limesurvey because it fully breaks screen reader support and make surveys absolutely inaccessible for handicapped people.
Are there any plans to replace the ugly and not accessible Captchas by a different library?
@DeniChenu, how do you deal with this as Skelvanilla?

tibor.pacalat

tibor.pacalat

2024-10-31 11:02

administrator   ~81325

@Mazi thank you for notifying me about this. However, I am not aware of any plans to replace the Captchas by a different library.
There is definitely some work to be done to improve accessibility, but we need to set time and man power to do it. I will assign this ticket to me and let you know how are the things standing, when I collect more information.

DenisChenu

DenisChenu

2024-11-08 10:46

developer   ~81360

Fr gouv need/want to put this : https://api.gouv.fr/les-api/api-captchetat

Maybe it's quick for me to create plugin event for Captcha (Can always create some workaround with replacing twig file and controller/action)
@tibor.pacalat : if i create a PR the event : OK to get in stable version and not in dev ?

I think there are 2 steps :

  1. Create 2 events (maybe 3):
    • captchaView (twig + js)
    • Validate captcha answer
  2. Move core current captcha to plugin core
tassoman

tassoman

2025-02-12 13:03

reporter   ~82009

Captcha in general is a wrong choice for accessibility and inclusion. Public Sector websites must be accessible mandatory.
hCaptcha is not a free software but paid service, although served free (as a beer) also. So, it's a bad choice too.

I suggest to use mCaptcha https://mcaptcha.org/ because it's free (as a bird) software. More, it serve "proof of work" security level. But stills providing dependency on 3rd party software (you still need to install on premise, or use online service)

The better modern choice is to implement a "proof of work" system https://github.com/topics/proof-of-work?l=javascript with no user interaction, inside the core and get rid of un usable unreadable old captcha system.
I think ALTCHA is a good choice https://github.com/altcha-org/altcha the problem it's working on frontend frameworks, not obsolete jQuery.

DenisChenu

DenisChenu

2025-02-12 13:17

developer   ~82011

@tassoman : i still think best is to implement Plugin event for Captcha management :) Default activated can be mcaptcha :)

tassoman

tassoman

2025-02-12 16:20

reporter   ~82013

@DenisChenu thank you for your reply. I suppose I didn't fully get your proposal. I guess you mean to expose ability to hook custom javascript code to twig functions connected to backend.
Maybe is enough code implementation for allowing theme developers to use their own captcha or spam validation system.
I'm still in favour of "proof of work" feature as core element since implementation.

tibor.pacalat

tibor.pacalat

2025-02-12 16:30

administrator   ~82015

Hey @DenisChenu!
The best choice would be to make the captcha plug-able, so anyone can implement their favourite method of captcha, even select a different captcha type per survey.

Tasks:

  • Move existing captcha functionality to a plugin. A new plugin of type 'Captcha'
  • Ability to select a default Captcha plugin in global settings
  • Allow the user to select the captcha plugin per survey - however captcha settings are only configurable inside the particular captcha plugin

Goal is that any coder should be able to create captcha plugin, if they don't the default captcha plugin.

The default can stay what we currently have.

DenisChenu

DenisChenu

2025-02-12 19:28

developer   ~82020

Allow the user to select the captcha plugin per survey - however captcha settings are only configurable inside the particular captcha plugin

Really need this part ?

tibor.pacalat

tibor.pacalat

2025-02-13 10:08

administrator   ~82021

This info was from chat with Carsten, so I would say yes.

Issue History

Date Modified Username Field Change
2022-08-11 21:19 keunes New Issue
2022-08-11 21:19 keunes Issue Monitored: keunes
2022-08-11 21:19 keunes Bug heat 0 => 2
2022-08-12 15:42 gabrieljenik Status new => acknowledged
2024-10-29 21:50 Mazi Note Added: 81317
2024-10-29 21:50 Mazi Bug heat 2 => 10
2024-10-31 11:02 tibor.pacalat Note Added: 81325
2024-10-31 11:02 tibor.pacalat Bug heat 10 => 12
2024-10-31 11:02 tibor.pacalat Assigned To => tibor.pacalat
2024-10-31 11:02 tibor.pacalat Status acknowledged => assigned
2024-11-08 10:46 DenisChenu Note Added: 81360
2024-11-08 10:46 DenisChenu Bug heat 12 => 14
2025-02-12 12:52 tassoman Tag Attached: captcha
2025-02-12 12:52 tassoman Tag Attached: a11y
2025-02-12 12:52 tassoman Tag Attached: accessibility
2025-02-12 12:56 guest Bug heat 14 => 20
2025-02-12 13:03 tassoman Note Added: 82009
2025-02-12 13:03 tassoman Bug heat 20 => 22
2025-02-12 13:05 tassoman Issue Monitored: tassoman
2025-02-12 13:05 tassoman Bug heat 22 => 24
2025-02-12 13:17 DenisChenu Note Added: 82011
2025-02-12 16:20 tassoman Note Added: 82013
2025-02-12 16:30 tibor.pacalat Note Added: 82015
2025-02-12 16:30 tibor.pacalat Assigned To tibor.pacalat => DenisChenu
2025-02-12 19:28 DenisChenu Note Added: 82020
2025-02-13 10:08 tibor.pacalat Note Added: 82021