From 5d4fe564b48800df855a72b291223f910beb1c8c Mon Sep 17 00:00:00 2001 From: Alexander Payne Date: Wed, 29 Apr 2026 23:33:35 -0400 Subject: [PATCH] docs/test: verify #548 green inline links already fixed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The WCAG 1.4.3 contrast fix — dark green (#507020) with underline — has been present in deploy/gitea-a11y/custom/public/css/a11y-fixes.css since grafted commit aae8b59, but no PR ever linked it to issue #548. Add: - docs/issue-548-verification.md — acceptance criteria check, evidence, origin - tests/test_issue_548_a11y_green_links.py — regression guard ensuring the CSS fix remains This closes the open issue by documenting the already-deployed solution. Closes #548 --- docs/issue-548-verification.md | 51 ++++++++++++++++++++++++ tests/test_issue_548_a11y_green_links.py | 30 ++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 docs/issue-548-verification.md create mode 100644 tests/test_issue_548_a11y_green_links.py diff --git a/docs/issue-548-verification.md b/docs/issue-548-verification.md new file mode 100644 index 00000000..9ae3c093 --- /dev/null +++ b/docs/issue-548-verification.md @@ -0,0 +1,51 @@ +# Issue #548 Verification — Green Inline Links Contrast Fix + +**Status:** ✅ **ALREADY IMPLEMENTED** — Fix present on `main` since commit `aae8b59` + +**A11y finding:** V4 — Green inline links (~#609926) on white background fail WCAG 1.4.3 (contrast). Severity: Medium. Affected pages: all. + +## Acceptance Criteria Check + +| # | Criterion | Evidence | +|---|-----------|----------| +| 1 | Inline links in rendered markdown satisfy WCAG 2.1 AA contrast (≥ 4.5:1) | `deploy/gitea-a11y/custom/public/css/a11y-fixes.css` sets `.markdown-body a` to `color: #507020` + `text-decoration: underline`. Contrast ratio ~5.5:1 on white (safe) | +| 2 | Non-color differentiation (underline) added for accessibility | `text-decoration: underline !important` present on plain links | +| 3 | Fix deployed to Gitea public CSS skin | File resides in `deploy/gitea-a11y/custom/public/css/` — applied to Gitea forge | + +## Files Verified + +- `deploy/gitea-a11y/custom/public/css/a11y-fixes.css` (lines 7–11) + ```css + .markdown-body a, + .markdown-body a:not(.label):not([class]) { + color: #507020 !important; + text-decoration: underline !important; + } + ``` + Hover/focus darkens to `#3a5518`. + +## Verification Commands + +```bash +# Fresh clone verified +git clone --depth 1 https://forge.alexanderwhitestone.com/Timmy_Foundation/timmy-config.git +grep -n "507020" deploy/gitea-a11y/custom/public/css/a11y-fixes.css +# → color rule present +grep -n "underline" deploy/gitea-a11y/custom/public/css/a11y-fixes.css +# → text-decoration rule present +``` + +Contrast calculation verified via standard WCAG luminance formula: `#507020` vs white = ~5.5:1 (passes AA 4.5:1 minimum). + +## Origin + +This fix was added in grafted commit `aae8b59` (skills/memory hygiene contraction), but its commit message only referenced #881 and #958. The code comment inside explicitly names `V4 (#548)`. No open PR ever tied this artifact to issue #548 — leaving the issue erroneously open. + +## Recommendation + +Close issue #548 as **already implemented**. The code is live on the forge, meets WCAG, and requires no further repository changes. + +--- + +*Generated by STEP35 FREE BURN verification for #548* +*Date: 2026-04-29* diff --git a/tests/test_issue_548_a11y_green_links.py b/tests/test_issue_548_a11y_green_links.py new file mode 100644 index 00000000..e6bef0a7 --- /dev/null +++ b/tests/test_issue_548_a11y_green_links.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +"""Regression test for #548 — green inline links contrast (WCAG 1.4.3) fix. + +Verifies that deploy/gitea-a11y/custom/public/css/a11y-fixes.css +contains the V4 fix: darker green (#507020) + underline for +markdown-body inline links, ensuring ≥4.5:1 contrast on white. +""" + +from pathlib import Path + +REPO_ROOT = Path(__file__).parent.parent +CSS_PATH = REPO_ROOT / "deploy/gitea-a11y/custom/public/css/a11y-fixes.css" + + +def test_a11y_fix_548_exists(): + """CSS file with green-link contrast fix must exist on main.""" + assert CSS_PATH.exists(), f"Missing accessibility CSS: {CSS_PATH}" + + +def test_a11y_fix_548_color_value(): + """Fix uses WCAG-compliant darker green (#507020) not the old #609926.""" + content = CSS_PATH.read_text() + assert "#507020" in content, "Expected color #507020 not found in CSS" + assert "text-decoration: underline" in content.lower(), "Underline rule missing for non-color differentiation" + + +def test_a11y_fix_548_targets_markdown_body_links(): + """Selector targets .markdown-body a for rendered markdown inline links.""" + content = CSS_PATH.read_text() + assert ".markdown-body a" in content, "Selector .markdown-body a not present"