skills/link/SKILL.md
Use when you need to create accessible and interactive links.
npx skillsauth add thedaviddias/ux-patterns-for-developers linkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create accessible and interactive links
Links are the fundamental building blocks of web navigation, connecting pages, resources, and actions through clickable text or elements. They are the most basic and ubiquitous interactive pattern on the web.
Getting links right means choosing between <a> and <button>, styling clear interactive states, ensuring color contrast, and providing context about where the link leads — especially for external destinations, downloads, and new-tab behavior.
Use Links to navigate users to another page, resource, or section within the current page. Common scenarios include:
mailto:) or phone numbers (tel:)<button> instead)<button type="submit">)references/pattern.md, then choose the smallest viable variation.Do's ✅
<a> element with a valid href for all navigation linksaria-label or aria-describedby when the visible text is insufficient (e.g., icon-only links)target="_blank") with visible text or aria-label<span> or <div> with click handlers as a link substitutePrefetching for Internal Links
<link rel="prefetch" href="/pricing" />
<!-- Or use framework-specific prefetch on hover -->
The Problem: Screen readers can list all links on a page. Multiple "click here" links are meaningless out of context.
How to Fix It: Write descriptive link text. Instead of "Click here to view pricing", write "View pricing plans".
The Problem:
A link with href="#" or javascript:void(0) that triggers a JavaScript action instead of navigating. Breaks expected browser behavior.
How to Fix It:
Use <button> for in-page actions. Use <a> only when there is a real URL destination.
The Problem:
Links with target="_blank" open in a new tab without warning, disorienting users — especially screen reader users.
How to Fix It:
Add visible text like "(opens in new tab)" or use aria-label to include the warning: aria-label="W3C guidelines (opens in new tab)".
For full implementation detail, examples, and testing notes, see references/pattern.md.
Pattern page: https://uxpatterns.dev/patterns/navigation/link
tools
Use when implementing help users understand their current location.
tools
Use when implementing multi-step forms and processes.
content-media
Use when implementing video playback with controls.
development
Use when choosing, comparing, or implementing UX patterns across the UX Patterns for Developers corpus.