What is Breadcrumbs?

Breadcrumbs: Breadcrumbs are a row of links showing where the current page sits in a site's hierarchy, letting users jump back to any parent level.

A breadcrumb trail lists the path from the root of a site to the current page, such as Home, Settings, Billing, Invoices. Each ancestor is a link and the last item is the current page. Breadcrumbs answer two questions at a glance: where am I, and how do I get to the level above. They are secondary navigation, so they sit above the page title and never replace the main menu. They describe location in a hierarchy, not the user's history, so they look the same no matter how someone arrived.

When to use it

  • Deep hierarchies of three or more levels: docs, admin consoles, file managers, e-commerce categories.
  • Landing on a deep page from search. Breadcrumbs give visitors who skipped the home page a way to explore upward.
  • Skip them on flat sites with one or two levels, where they only repeat the main navigation.

Accessibility

The WAI-ARIA breadcrumb pattern is plain HTML with two attributes. Wrap the trail in a nav element with aria-label="Breadcrumb" so it appears as a named landmark. Put the links in an ordered list, since order is the point. Mark the last item with aria-current="page". Separators such as chevrons or slashes are decoration: draw them with CSS or give the icons aria-hidden, so screen readers do not announce "slash" between every item.

html
<nav aria-label="Breadcrumb">
  <ol class="flex items-center gap-1 text-sm">
    <li><a href="/settings">Settings</a></li>
    <li aria-hidden="true">/</li>
    <li><a href="/settings/billing">Billing</a></li>
    <li aria-hidden="true">/</li>
    <li><span aria-current="page">Invoices</span></li>
  </ol>
</nav>

For search engines, add BreadcrumbList structured data in JSON-LD with the same items. Google can then show the path in results instead of a raw URL.

Common mistakes

  • Linking the current page. A link to where you already are is a dead end. Render it as text with aria-current.
  • Showing every level on mobile. Collapse the middle of long trails into an overflow menu and keep the first and last two items, as BreadcrumbEllipsis does.
  • Tiny tap targets. Breadcrumb links are often 12px text. Pad them so each target is at least 24 by 24 CSS pixels, the WCAG 2.2 minimum.
  • Using page titles that do not match the headings users see after clicking. Labels should match the destination's title.

MiniDev's Breadcrumb renders the named nav landmark and aria-current for you from an items array. Find related patterns in the navigation category, including pagination for moving across items at the same level.

BreadcrumbuiBreadcrumb navigation from an items array, with chevron separators, linked ancestors and the current page marked with aria-current. Built with React.npx shadcn@latest add ui.minidev.pro/r/breadcrumb.jsonBreadcrumb EllipsisuiEllipsis marker for collapsing the middle of long breadcrumb trails. Decorative and hidden from assistive tech, sized to sit between breadcrumb separators.npx shadcn@latest add ui.minidev.pro/r/breadcrumb-ellipsis.json