Add a11y labels to star, fork, MR and issue links on vue project list
What does this MR do and why?
This MR adds the accessible aria labels already applied to HAML versions of project lists to the Vue version.
Why is this necessary?
In the current version on production, when a screen reader user focuses one of these links, the screen reader will announce "Stars" or "Forks" without context. Each of these links needs unique and descriptive accessible text. It is also common for a screen reader user to use the rotor in their screen reader of choice to browse a list of all of the links on a page, in which case the user would hear a repeated set of "Star" "Fork" "Merge requests" "Issues" with no indication of what they are links to.
References
- ✂️ UX Paper Cuts 17.10 → Accessibility & AI Age... (#512691 - closed)
- ✂️ UX Paper Cuts 17.11 → Verify (#512693 - closed)
- followup to #518823+
Screenshots or screen recordings
Note
There is no visual difference in the before and after, only a semantic one. See the aria-label attribute for the four links inspected in devtools in the following screenshots
| Before | After |
|---|---|
![]() |
![]() |
How to set up and validate locally
- Check out this branch
- Visit http://gdk.test:3000/dashboard/projects in the GDK
- Use devtools to inspect the star, fork, MR and issue links on a project listed on this page
- You will see that each has an
aria-labelattribute that is unique, and is formatted as$PROJECT has $COUNT $ITEM(s)(for example,Flightjs/Flight has 1 starorGitlab Org/Gitlab Test has 9 open merge requests)
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #518823

