Test Suite — VA-025
Visibility Filter
Tests that hidden links are excluded from the duplicate-link-text relational check. All fixtures use a single named nav so landmark boundary is constant. Only the visibility condition varies.
VA025-vis-01 — Both links visible
FAIL — vesper-duplicate-link-text. Two fully visible links share accessible name "Visit section" but point to different destinations. Baseline positive case.
VA025-vis-02 — Second link inside display:none
PASS — no duplicate-link-text. The second link is inside a display:none container and must be excluded from the relational check.
VA025-vis-03 — Second link inside visibility:hidden
PASS — no duplicate-link-text. The second link is inside a visibility:hidden container and must be excluded.
VA025-vis-04 — Second link inside aria-hidden="true"
PASS — no duplicate-link-text. The second link is inside an aria-hidden container and is not in the accessibility tree.
VA025-vis-05 — Second link parent has hidden attribute
PASS — no duplicate-link-text. The second link's parent has the HTML hidden attribute and must be excluded.
VA025-vis-06 — Second link is sr-only (clip-path)
FAIL — vesper-duplicate-link-text. Screen-reader-only content is still in the accessibility tree. The sr-only link must NOT be excluded — it is a real link for AT users. This is the critical over-filter test.
VA025-vis-07 — Second link at position absolute top:-9999px
FAIL — vesper-duplicate-link-text. Off-screen-positioned links (skip-link pattern) remain in the accessibility tree. Must NOT be excluded.
VA025-vis-08 — Second link in offscreen translateX drawer
FAIL — vesper-duplicate-link-text. A link inside a CSS transform offscreen drawer is still in the accessibility tree. Must NOT be excluded.