Accessible links: This applies to link text, icons and images.

Published: 20. March 2026

Autor: Nina Jameson

Reading time: 7 Minuten

Accessible links and link text. Next to the text is a detailed link description with a green checkmark above it. Below that is a card consisting of an image, a heading, text, and a button with the brief link text "More". There is also a green checkmark above the card. Both are examples of accessible links.

When we think of links, many people first picture the classic blue, underlined text. But a link can be much more: a clickable image, a linked icon, or even an entire card. What matters is not the appearance but the function: anything that opens a new page or view when clicked is considered a link. In this article, we'll look at which elements can be linked, how to make them recognizable for users and assistive technologies, and how to implement them in a technically accessible way.

Table of Contents

In HTML, links are <a>marked up with the `<link>` element. This element is intended to link resources together, for example, to redirect users to another page. To transform text into a clickable and keyboard-operated link, the ` <a><link>` element additionally needs the href`target` attribute. This attribute contains the link’s target, such as another web page.

A correct link might look like this, for example:

<a href=”https://Website.de/Product overview”>To the product overview</a>
A text link "To the product overview" with a green checkmark. Below it is the code: an a-element with an href attribute and a descriptive name.

Make sure your links are implemented correctly from a technical standpoint. Mistakes often occur in practice, especially when distinguishing between links and buttons. Our article “Accessibility in Focus: Buttons and Links Compared” explains why this is problematic.

Links simply consist of link text.

First, let’s look at what you need to consider when choosing your link text.

Visibility & Contrast

Link text is essentially just text and must adhere to the text contrast requirement. In most cases, this means a 4.5:1 ratio to the background.

You also want people to click your links. For this to work, the links need to stand out from the surrounding text. The most reliable way to do this is with an underline. If the underline is a different color than the link text, it must itself have a contrast of at least 3:1 with the background.

Less obvious, but also acceptable: Link text is distinguished from its surroundings by color. Color alone is never sufficient, so an additional feature is always necessary, such as contrast. This means the link should have a contrast ratio of at least 3:1 to the body text. You are free to choose this additional feature. The important thing is to ensure it is distinguishable: If you use bold text, make sure you use it only for links, not for regular text.

Two boxes containing text and links. The top box has a green checkmark and contains a link with a contrast ratio greater than 3:1. The bottom box has a red X and contains a link with a contrast ratio less than 3:1.

Label clearly

Links should be labeled so that it’s immediately clear where they lead. Link texts like “Home,” “Legal Notice,” or “Privacy Policy” are good choices. You know right away what to expect from these links. “Here,” “Learn More,” or “Details” are not good link texts because context is needed to understand the link’s destination or purpose. 

It’s not the best user experience, but it’s permitted under WCAG if the link’s purpose is clear from the immediate context. The only important thing is that the context is correctly defined in the code so that screen readers can recognize it and users understand what they’ll learn more about when they click the link.

Context could include, for example:

  • A heading before the link
  • A text in the same paragraph
  • The text of the list item (if the link is part of a list)
  • The content of the table cell and associated column or row headings (e.g., in td and th)
  • Additional text hidden via CSS
  • The alternative text of an image that is contained in the same link element (<a>).
  • An aria-label or aria-labelledby

You can find more information in criterion 2.2.4 Link texts in context (German).

Here are three examples of how a link can be used in context even without a meaningful title: a link as part of a list, a link placed under a heading, and a link as part of a paragraph that provides the necessary context.

Sometimes, for space or design reasons, the visible link text needs to be short. In such cases, you can aria-labelextend the name with a hidden text that is only visible to screen readers.

Example extension via aria-label:

<a href=”https://...” aria-label=”Learn more about accessibility”>Learn more</a>

Example of extending the text via hidden text:

<a href=”https://...” aria-labelledby=”visible-lbl hidden-lbl”> <span id=”visible-lbl”>Learn more/span> <span id=”hidden-lbl” hidden>über Accessibility</span> </a>

This keeps the page visually uncluttered while ensuring everyone gets the necessary information. It’s important that the extension includes the visible text and also meaningfully complements it. There’s a specific WCAG criterion for this: 2.5.3 Label in the name.

PS: Best practice is to put the visible text at the beginning and append the extension at the end.

A link with the visible name: Learn more. Below it are two fields containing code snippets. The upper one has the extension "More about accessibility" in its aria-label. The lower one has the aria-label "Learn more about accessibility". Only the lower one is correct because it fully includes the link name "Learn more"

Icons that are part of a link and contain information not included in the link text must have an alternative.

For example, you have a link that includes a PDF icon and the text “A price list”. The format information “PDF” is not included in the link text. Therefore, the icon is the sole source of information, and you must specify the format in a way that everyone can understand. For example, by adding the following to the link text: “A price list (PDF)”.

Error symbol and a link with a PDF icon, below which is a confirmation symbol and a link with an icon; this link has the addition "PDF" next to it.

Images are used as links.

A link is not always just text; often, images or icons are also used as links.

Visibility & Contrast

Images and icons used as links are often, for example, the logo linking to the homepage or an arrow symbol to navigate to the next page. Linked graphics must be clearly recognizable and sufficiently distinguishable from the background. The contrast should be at least 3:1.

While a visual change on hover is not mandatory, we still recommend it. This makes it easier for more users to recognize that the element is clickable – for example, through shading, a border, or a color change.

A comparison of two icons. The first is yellow and does not meet the 3:1 contrast requirement with the background. The second, black icon does.

Everything you need to know about creating accessible content!

  • What types of content actually need to be accessible: social media, websites, newsletters?
  • What requirements apply to content, and how do you implement them—without missing anything?
  • How do you integrate accessibility into your daily workflow without it becoming a major extra burden?

Through theory and practice, we’ll show you what we’ve taught participants—from Aktion Mensch to Deutsche Bahn—over the past three years!

Learn more about the Content Workshop

Label clearly

Screen readers don’t see with their eyes, so images and icons need to be clearly labeled. Ideally, you should combine icons with visible text. You can learn more about icons in our article Accessible Icons: A Guide for Designers.

Images as <img>

When 
<img>displaying images using a `<img>` element, you can altuse the `alt` attribute. The content of the alt`alt` attribute should describe what is shown in the image and where the link leads. For example: “Product image: FlotterRoppelt sneakers, linked to the product details page.” You can learn more about alt text in our article: Alt Text: Your Images for Everyone.

Other formats such as <svg>

If you use other HTML tags, such as the `<div> ` element, to display, for example, a download arrow or a magnifying glass icon for a search function, you also need a text alternative. Here , ` <div>` or a textual description that is visually hidden via CSS <svg>is suitable .aria-labelaria-labelledby

A good example is our logo with the following alternative: “Brain-friendly logo. Links to the homepage. This makes it clear that it is a logo, which logo is being shown exactly, and that clicking on it leads to the homepage.

The image shows a website with the Brain-Friendly logo in the upper left corner. A text box with an arrow points to this logo. The text reads: Alt="Brain-Friendly logo. Linked to the homepage".

For more complex link elements like cards – clickable boxes with an image, heading, and text – it’s crucial to know exactly which element is linked. The contrast requirements for text and images that are links apply as previously described.
Ideally, you should only use the heading as a link and choose clear link text for it. However, you can still make the entire card clickable using CSS tricks. Our article “Creating Accessible Cards – A Step-by-Step Guide” shows you how.

That’s also okay, but it’s harder to understand if you <a>nest the entire map in a `<map>` element. The reason: Every link needs an accessible name , a label that screen readers can read aloud. For example, if you link an image with alt text, that text will be read aloud – the link then has a clear name.

However, if you link the entire card, this name will be automatically generated from all visible content: image, title, text, and everything else that appears in your cards. This can quickly become long, cluttered, or even confusing.

Support for assistive technologies

Now that we’ve clarified what a link can be, let’s briefly look at assistive technologies such as screen readers and keyboard accessibility.

For a link to function barrier-free, it must be correctly created in the code using the ` <a><link>` element and a valid href`–interactive` attribute. Only then does it become an interactive element that can be recognized by screen readers and operated with the keyboard. This means users can navigate the link using the Tab key and activate it with the Enter key.

If this is missing hrefor if a different HTML element is used instead (e.g. a styled <a> <div>), the screen reader and keyboard do not recognize the content as a link – and many users cannot use it.

It’s also important that the focus state of the link is clearly visible when navigating with the keyboard – for example, by a border. This way, keyboard users can also see where they are. More information can be found in WCAG criterion 2.4.7: Focus Visible.

Summary

  • Links should always be marked with the ` <a><link>` element and a valid `<link> href` attribute – only then are they accessible.
  • For link text to be recognizable, it needs a clear visual identifier – e.g., underlining, color, or bolding.
  • Colored link text needs sufficient contrast to the body text (3:1) and the background (4.5:1).
  • Link texts should be formulated so that their purpose is clear – ideally without additional contextual information.
  • Images and icons may also be used as links, but they must then have a meaningful text alternative.
  • Complex link elements such as cards must be easily accessible both visually and technically – different requirements apply depending on the structure.
  • Screen reader and keyboard users rely on correctly marked links – otherwise, they cannot recognize and use them.

Frequently Asked Questions

About Nina Jameson

Nina has contributed to both small and large software projects, working with teams of all sizes. She uses her expertise to help you understand the technical details of digital accessibility and put them into practice effectively.

Profilfoto von Nina Jameson, sie hat schulterlange braune Haare und lächelt in die Kamera

You have Questions?

Send us an email!