Migrating from tgBreadcrumbs
Your <ol>tg2Breadcrumbs<nav><ol>
Checklist
- Remove
from thetgBreadcrumbs , and put<ol> on atg2Breadcrumbs around it. If you already have a<nav> wrapper, add it there.<nav> - Replace
withtgBreadcrumbsItem . Your projectedtg2BreadcrumbsItem links don't change.<a routerLink> - Move any
from thetitle onto its link.<li> - If your trail ends with the current page as plain text, add
to theincludesCurrentPage . Leave it off if every item is a link (an ancestors-only trail).<nav> - Import
andTg2BreadcrumbsComponent instead ofTg2BreadcrumbsItemComponent andTgBreadcrumbsComponent .TgBreadcrumbsItemDirective - To keep the
look, settgBreadcrumbs (see below).data-tg-theme="tg-light"
<!-- Before -->
<ol tgBreadcrumbs>
<li tgBreadcrumbsItem><a routerLink="/motors">Motors</a></li>
<li tgBreadcrumbsItem><a routerLink="/motors/cars">Cars</a></li>
<li tgBreadcrumbsItem>Toyota</li>
</ol>
<!-- After -->
<nav tg2Breadcrumbs includesCurrentPage>
<ol>
<li tg2BreadcrumbsItem><a routerLink="/motors">Motors</a></li>
<li tg2BreadcrumbsItem><a routerLink="/motors/cars">Cars</a></li>
<li tg2BreadcrumbsItem>Toyota</li>
</ol>
</nav>Why tg2Breadcrumbs goes on the <nav>
A breadcrumb needs both elements, and each does a different job for screen reader users:
is a landmark. It shows up in the screen reader's landmarks list, so people can jump straight to it.<nav aria-label="Breadcrumb"> with<ol> items is a list. Screen readers announce its size and each item's position, e.g. "list, 4 items" and "2 of 4", which tells people how deep they are.<li>
With tgBreadcrumbs<nav>tg2Breadcrumbs<nav><ol><li><ol>
Custom elements such as <tg2-breadcrumbs-item><li><ol>
If you already have a <nav>
Put tg2Breadcrumbs<nav>aria-label
<!-- Before -->
<nav aria-label="Listing location" class="listing__breadcrumbs">
<ol tgBreadcrumbs>
<li tgBreadcrumbsItem><a routerLink="/motors">Motors</a></li>
<li tgBreadcrumbsItem>Toyota</li>
</ol>
</nav>
<!-- After: tg2Breadcrumbs on your existing <nav>, not a second one inside it -->
<nav tg2Breadcrumbs includesCurrentPage aria-label="Listing location" class="listing__breadcrumbs">
<ol>
<li tg2BreadcrumbsItem><a routerLink="/motors">Motors</a></li>
<li tg2BreadcrumbsItem>Toyota</li>
</ol>
</nav>Current page
tgBreadcrumbstg2BreadcrumbsincludesCurrentPagearia-current="page"tgBreadcrumbs
<!-- The trail ends with the current page: aria-current="page" goes on the last item -->
<nav tg2Breadcrumbs includesCurrentPage>
<ol>
<li tg2BreadcrumbsItem><a routerLink="/motors">Motors</a></li>
<li tg2BreadcrumbsItem>Toyota</li>
</ol>
</nav>
<!-- Ancestors only (the default): every item is a link, none is marked -->
<nav tg2Breadcrumbs>
<ol>
<li tg2BreadcrumbsItem><a routerLink="/">Home</a></li>
<li tg2BreadcrumbsItem><a routerLink="/property">Property</a></li>
<li tg2BreadcrumbsItem><a routerLink="/property/taupaki">Taupaki</a></li>
</ol>
</nav>Truncated and title
truncatedtitletg2BreadcrumbsItemtitletitleautoTruncate<nav>title
<!-- Before -->
<li tgBreadcrumbsItem [truncated]="true" title="Vintage bookcases">
<a routerLink="/furniture/bookcases">Vintage bookcases</a>
</li>
<!-- After: title moves onto the link -->
<li tg2BreadcrumbsItem truncated>
<a routerLink="/furniture/bookcases" title="Vintage bookcases">Vintage bookcases</a>
</li>Styling the <ol>
Classes on your <ol>tgBreadcrumbstg2Breadcrumbs<nav>
Matching the tgBreadcrumbs look
To keep the tgBreadcrumbsdata-tg-theme="tg-light"<nav>
There's no themetg2Breadcrumbsdata-tg-theme
When not to migrate
Only use tg2BreadcrumbstgBreadcrumbstg2Breadcrumbs