A11y: give the dashboard guarantee icon a real accessible name - #3372
Conversation
img_alt_valid (IBM Equal Access): the guarantee badge on the dashboard's Pro-features promo panel had alt="" with no adjacent text conveying its meaning, so it was invisible to screen readers. The same icon is also used in the "no views" upsell alongside a visible heading that already states the guarantee, where alt="" is correct and stays unchanged. guarantee_icon() now takes an optional $alt, passed only at the dashboard call site.
|
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 18, 2026 12:05a.m. | Review ↗ | |
| JavaScript | Sep 18, 2026 12:05a.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.
Closes Strategy11/formidable-pro#6700
What was broken
img_alt_valid(IBM Equal Access): the guarantee badge icon shown on thedashboard's Pro-features promo panel (
frm-testimonial__guarantee-icon)had
alt=""with no adjacent text describing it, so it was invisible toscreen readers despite conveying real information (the money-back
guarantee).
The same icon is reused in the "no views" upsell panel, right next to a
visible "100% No-Risk, Money Back Guarantee!" heading — there
alt=""iscorrect since the text already covers it, and that call site is
unchanged.
What changed
FrmAddonsHelper::guarantee_icon()now takes an optional$altparam(default
'', preserving the existing decorative behavior). The dashboardcall site passes a real accessible name; the other call site is untouched.
Markup-only — no CSS/visual change, no JS.
How it was verified
Live before/after check against a disposable
formidable-preview-envinstance: fetched
/wp-admin/admin.php?page=formidable-dashboardauthenticated —
alt=""before,alt="100% No-Risk, Money Back Guarantee"after, page byte count otherwise unchanged (no structural side effects).
CI can't confirm either way —
cy.checkIbmAccessibilityis currentlynon-blocking (
assertCompliance(false)).