A11y: group the captcha-type radio buttons on Global Settings - #3371
vivi-the-going-merry[bot] wants to merge 1 commit into
Conversation
The recaptcha/hcaptcha/turnstile radio set on the Global Settings > Captcha tab had no programmatic grouping, so assistive tech couldn't announce them as a set (IBM Equal Access input_checkboxes_grouped). Add role="radiogroup" to the existing wrapper, referencing the existing heading via aria-labelledby. No fieldset/legend (avoids default browser chrome), no CSS or JS changes.
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
|
Overall Grade |
Security Reliability Complexity Hygiene |
Code Review Summary
| Analyzer | Status | Updated (UTC) | Details |
|---|---|---|---|
| PHP | Sep 17, 2026 11:52p.m. | Review ↗ | |
| JavaScript | Sep 17, 2026 11:52p.m. | Review ↗ |
Important
AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.
What was broken
The recaptcha/hcaptcha/turnstile radio set on Formidable's Global Settings > Captcha tab had no programmatic grouping — assistive tech couldn't announce them as a related set (IBM Equal Access
input_checkboxes_grouped, flagged by the Cypress a11y run informidable-pro).What changed
classes/views/frm-settings/captcha/captcha.php: addedrole="radiogroup"to the existing wrapper div, witharia-labelledbypointing at the existing "Select Captcha Type" heading (given a matchingid). Markup-only — no fieldset/legend (would add unwanted browser chrome), no CSS or JS changes. Same pattern already used elsewhere in this codebase, e.g.classes/views/frm-fields/front-end/gdpr/gdpr-field.php.How it was verified
Reproduced and confirmed locally via a disposable
formidable-preview-envinstance (Playground CLI) — before the fix, the rendered Global Settings page carried norole="radiogroup"/role="group"on this wrapper; after,role="radiogroup"appears exactly once with a correctly-resolvingaria-labelledbyreference, and the page's total line count is unchanged (no other markup/visual side effects). The repo's owncy.checkIbmAccessibilityassertion is non-blocking in CI (assertCompliance(false), seeformidable-forms#3356), so this couldn't be confirmed via a CI red/green signal.Closes Strategy11/formidable-pro#6699
🤖 Generated with Claude Code