Accessibility: Missing aria-label on some hero CTA links #193
Labels
No Label
P0
P1
P2
P3
accessibility
backend
bug
content
data-integrity
enhancement
frontend
infra
integration
owner
owner-input
performance
phase-7
phase-8
release-blocker
security
seo
ui
ux
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: null/Queue-North-Website#193
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Severity: Minor
Description: Some hero section CTA links lack explicit
aria-labelattributes. Screen readers will only announce button text without destination context.Files:
src/pages/Home.jsx,src/pages/Services.jsxFix direction: Add
aria-labelconsistently to all hero CTA links.Fixed in
9fdc6b6, but by doing the OPPOSITE of what this issue asked. Recording that in full, because the fix direction here would have made the site less accessible.This issue asked to 'add aria-label consistently to all hero CTA links'. The aria-labels already present were themselves WCAG 2.5.3 Label in Name failures — Level A, which is a higher bar than the AA items in this batch.
2.5.3 requires the accessible name to CONTAIN the visible label text. It did not:
Home.jsx:128 aria-label 'Schedule a consultation' visible 'Schedule Consultation'
Home.jsx:132 aria-label 'View our services' visible 'View Services'
Home.jsx:244 aria-label 'Request a consultation' visible 'Request Consultation'
Home.jsx:375 aria-label 'Request a consultation' visible 'Request Consultation'
Footer.jsx:67 aria-label 'Request a free consultation' visible 'Get a Free Quote'
Header.jsx:145 aria-label 'Request a consultation' visible 'Request Consultation'
A speech-input user saying 'click Schedule Consultation' — the words on screen — does not activate that link, because the accessible name is 'Schedule a consultation'. Adding more labels in that style would have propagated the failure.
Removed those six. Kept the eight that are correct and genuinely add context, each of which does contain its visible text: the two 'Queue North Technologies Home' logo links, 'Read the Queue North Technologies Privacy Policy', the three 'Follow Queue North on X' social links, 'Get a free quote', and the icon-only header logo link whose visible text is empty and which therefore REQUIRES its label.
Verified: a script re-checking every / carrying aria-label across Home, Services, Footer and Header now reports 0 failures and 8 correctly kept. dist/index.html no longer contains any of the six removed labels, and the visible CTA text still renders (Schedule Consultation x1, View Services x1, Request Consultation x3).