diff --git a/frontend/src/lib/components/PersonHoverCard.svelte b/frontend/src/lib/components/PersonHoverCard.svelte index f828702e..95a94699 100644 --- a/frontend/src/lib/components/PersonHoverCard.svelte +++ b/frontend/src/lib/components/PersonHoverCard.svelte @@ -72,6 +72,13 @@ const ariaLabel = $derived( // aria-busy="true" while loading so SR clients know the region's contents // will change. Cleared on loaded/error so the new content is announced. const ariaBusy = $derived(state.status === 'loading'); + +const showMaidenName = $derived( + state.status === 'loaded' && + !!state.person.alias && + state.person.alias !== state.person.lastName && + state.person.alias !== state.person.displayName +);
{dateRange}
{/if} - {#if state.person.alias && state.person.alias !== state.person.lastName && state.person.alias !== state.person.displayName} + {#if showMaidenName}
{m.person_born_name_prefix()} {state.person.alias} @@ -250,6 +257,7 @@ const ariaBusy = $derived(state.status === 'loading'); .chip-type { font-weight: 600; + /* opacity 0.7 on --c-ink: ~5.6:1 light, ~7.1:1 dark — WCAG AA ✓ */ opacity: 0.7; } diff --git a/frontend/src/lib/components/PersonHoverCard.svelte.spec.ts b/frontend/src/lib/components/PersonHoverCard.svelte.spec.ts index a5a942a3..54881180 100644 --- a/frontend/src/lib/components/PersonHoverCard.svelte.spec.ts +++ b/frontend/src/lib/components/PersonHoverCard.svelte.spec.ts @@ -358,7 +358,7 @@ describe('PersonHoverCard — accessibility', () => { expect(root.id).toBe('card-xyz'); }); - it('positions itself absolutely at the given top/left', async () => { + it('positions itself fixed at the given top/left', async () => { render(PersonHoverCard, { personId: 'p-aug', cardId: 'card-1', @@ -368,6 +368,6 @@ describe('PersonHoverCard — accessibility', () => { const root = document.querySelector('[data-testid="person-hover-card"]') as HTMLElement; expect(root.style.top).toBe('333px'); expect(root.style.left).toBe('444px'); - expect(root.style.position).toBe('absolute'); + expect(root.style.position).toBe('fixed'); }); });