---
title: "Link without a name (a11y/link-name)"
description: "A link with only an icon, an image with empty alt, or nothing inside is announced as just \"link\" (Lighthouse: links do not have a discernible name)."
url: http://localhost:4173/rules/a11y/link-name
updated: 2026-11-11
---

# Link without a name

> `a11y/link-name` is a vetd rule. It flags: Link without a name. It runs on every `check`, together with the TypeScript check.

| Fact | Value |
| --- | --- |
| Rule id | `a11y/link-name` |
| Severity | error |
| Group | Accessibility |
| Tags | accessibility, lighthouse |

## Why it matters

A link with only an icon, an image with empty alt, or nothing inside is announced as just "link" (Lighthouse: links do not have a discernible name).

## How to fix it

Add aria-label, or visible or sr-only text inside the link.

## Credit

Based on work by:

- [Deque](https://www.deque.com): The axe rule link-name requires links to have discernible text.
- [W3C Web Accessibility Initiative](https://www.w3.org/WAI/): WCAG 2.4.4 requires the purpose of each link to be determinable.

## References

- [Links must have discernible text](https://dequeuniversity.com/rules/axe/4.10/link-name), Deque University
- [Understanding Success Criterion 2.4.4: Link Purpose (In Context)](https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context.html), W3C
- [<a> HTML anchor element](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/a), MDN Web Docs

## See it

Demos in the vetd Lab:

- [Name every control](http://localhost:4173/lab/web-guidelines/accessible-names)

## Related rules

- [`a11y/button-name`](http://localhost:4173/rules/a11y/button-name.md)
- [`seo/link-text`](http://localhost:4173/rules/seo/link-text.md)
- [`next/img-alt`](http://localhost:4173/rules/next/img-alt.md)

## Get this text from vetd

MCP: call `explain` with `{ "diagnosticId": "a11y/link-name" }`. CLI: `npx vetd explain a11y/link-name`.

---

[All 92 rules](http://localhost:4173/rules.md) · Previous: [`seo/noindex`](http://localhost:4173/rules/seo/noindex.md) · Next: [`a11y/button-name`](http://localhost:4173/rules/a11y/button-name.md)
