fix(breadcrumb): separator is not announced by narrators (#25796)

This commit is contained in:
Liam DeBeasi
2022-08-23 11:23:00 -05:00
committed by GitHub
parent d395a73cb6
commit 71fad3884b
2 changed files with 23 additions and 1 deletions

View File

@ -222,7 +222,12 @@ export class Breadcrumb implements ComponentInterface {
</button>
)}
{showSeparator && (
<span class="breadcrumb-separator" part="separator">
/**
* Separators should not be announced by narrators.
* We add aria-hidden on the span so that this applies
* to any custom separators too.
*/
<span class="breadcrumb-separator" part="separator" aria-hidden="true">
<slot name="separator">
{mode === 'ios' ? (
<ion-icon icon={chevronForwardOutline} lazy={false} flip-rtl></ion-icon>

View File

@ -34,3 +34,20 @@ it('should correctly provide the collapsed breadcrumbs in the event payload', as
expect(collapsedBreadcrumbs[1]).toBe(breadcrumb[2]);
expect(collapsedBreadcrumbs[2]).toBe(breadcrumb[3]);
});
it('should exclude the separator from narrators', async () => {
const page = await newSpecPage({
components: [Breadcrumbs, Breadcrumb],
html: `
<ion-breadcrumbs>
<ion-breadcrumb>First</ion-breadcrumb>
<ion-breadcrumb>Second</ion-breadcrumb>
</ion-breadcrumbs>
`,
});
const firstBreadcrumb = page.body.querySelector('ion-breadcrumb:first-of-type');
const separator = firstBreadcrumb.shadowRoot.querySelector('[part="separator"]');
expect(separator.getAttribute('aria-hidden')).toBe('true');
});