Skip to content

Underline links inside .frm-text-xs help text - #3350

Open
vivi-the-going-merry[bot] wants to merge 2 commits into
masterfrom
fix/issue-6663-gdpr-help-link-underline
Open

vivi-the-going-merry[bot] wants to merge 2 commits into
masterfrom
fix/issue-6663-gdpr-help-link-underline

Conversation

@vivi-the-going-merry

Copy link
Copy Markdown
Contributor

Fixes Strategy11/formidable-pro#6663

What was broken

Reported against formidable-pro, but the actual markup is in this repo: the GDPR settings knowledgebase link on Global Settings (General), .frm-text-xs > a[target="_blank"] in classes/views/frm-settings/general.php. It relied on color alone to read as a link against its surrounding grey help text — contrast falls below 3:1 with no underline — an axe link-in-text-block violation.

Fix

Added .frm-text-xs a:not(.frm-link-with-external-icon) { text-decoration: underline; } in resources/scss/admin/components/links/_link-styles.scss (next to the existing .frm-link-secondary underline rule), rather than just the one reported instance — the same low-contrast risk applies to any small help text using .frm-text-xs with an inline link. The :not() exclusion keeps this from also underlining install-addons-step.php's "Connect Account"/"Why Upgrade" icon+text CTA links, which have their own distinct treatment and were never meant to read as inline prose links (caught in self-review, not part of the original report).

Independent of any admin color-token change elsewhere, per the issue.

Verified

  • Live via formidable-preview-env + playwright-cli: before the fix, the GDPR link's computed text-decoration-line was none; after, underline. Confirmed the CTA icon-links elsewhere stay undecorated.
  • npx stylelint on both changed SCSS files: clean.
  • npm run build: compiled CSS committed alongside the SCSS source, per this repo's convention (checked prior "Run build" commits).
  • Self-review: 2 parallel Agent lenses (reuse/simplification/placement, correctness/security) against the diff — both findings (file placement, the CTA-link side effect) applied in a follow-up commit before opening this PR.

No before/after screenshot attached — verification is via the link's computed style (above) rather than a screenshot; no screenshot hosting mechanism is set up for this agent yet.

The GDPR settings knowledgebase link on Global Settings (General) relied
on color alone to read as a link against its surrounding grey help text
-- contrast falls below 3:1 and there's no underline, an axe
link-in-text-block violation. Underline any link inside .frm-text-xs
generally, not just this one instance, since the same low-contrast risk
applies to any small help text using this utility class.

Verified live via formidable-preview-env: before the fix the GDPR link's
computed text-decoration-line was "none", after it's "underline".
Self-review turned up two issues with the first pass:
- The rule belonged in components/links/_link-styles.scss (next to the
  existing .frm-link-secondary underline rule), not in a font-size-only
  utility file.
- The broad .frm-text-xs a selector also caught
  install-addons-step.php's "Connect Account" CTA, an icon+text link
  with its own distinct treatment that was never meant to look like an
  inline prose link. Excluded via :not(.frm-link-with-external-icon).

Re-verified live via formidable-preview-env: GDPR link still underlines,
the "Connect Account"/"Why Upgrade" icon-links stay undecorated.
@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: afffb4d8-0ef1-4c0b-bb99-f905124e227f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@deepsource-io

deepsource-io Bot commented Sep 16, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 2a2d8c1...55872ca on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
PHP Sep 16, 2026 9:35p.m. Review ↗
JavaScript Sep 16, 2026 9:35p.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.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants