When to use
- When a user’s location in the app requires mutliple levels and would benefit from a clear orientation and hierarchical understanding of the app’s structure.
- When users need to quickly navigate to a parent page.
When to use something else
- Implementing a navigational flow for your product: Breadcrumbs should not be used as the primary source of navigation across pages.
- The page structure is flat: When users need to swap between different content or views at the same level, consider a Menu, Tabs, or Segmented control.
Dos and don’ts
- Don’t make the current (active) breadcrumb item navigable.
- Don’t pair with a back button. Research shows users are familiar with using a browser back button.
- Don’t wrap page names onto a second line. Truncate instead and reveal the entire name with a Tooltip.
- Don’t use multiple breadcrumbs per page.
Behavior
- All links within a Breadcrumb should be navigable, except the current page, and should link to their respective pages on click or with keyboard navigation (Tab / Shift+Tab and Enter).
- The separators between page links are not interactive.
- The current breadcrumb page may optionally have a dropdown menu to house additional file management actions such as renaming, duplicating or deleting the file. Review Topbar guidelines for recommended menu structure.
- When space becomes limited, use an overflow menu to truncate the Breadcrumbs. Ensure the following logic is implemented:
- The first and last two page links should be shown, but the remaining breadcrumbs links in between are condensed into an overflow menu.
- If needed, all links, including the first, can collapse into an overflow menu. However, the active (current) page name should always be visible.
Often used with
Tooltip on truncated crumb labels; Menu for ”…” overflow of middle segments.Accessibility
- Semantic structure: Wrap components in
<nav aria-label="Breadcrumb">containing an ordered list (<ol>). - Active state: Set
aria-current="page"on the last breadcrumb item representing the current location. - Separators: Hide visual separator icons (slashes, chevrons) from screen reader tree flows using
aria-hidden="true".