From 0a7b1655e6f1f7da91d54033dca99e765726f272 Mon Sep 17 00:00:00 2001 From: Marcel Date: Fri, 8 May 2026 12:47:22 +0200 Subject: [PATCH] fix(a11y): Aktualisiert badge passes WCAG AA contrast MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit text-ink-3 on bg-ink-3/10 (low-saturation grey on lighter grey) gave roughly 2.8:1 contrast — below the 4.5:1 AA threshold for normal-weight small text. Switching the foreground to text-ink-1 keeps the muted background but lifts the text contrast well above 7:1. Co-Authored-By: Claude Opus 4.7 --- frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte | 2 +- .../lib/shared/dashboard/ReaderRecentDocs.svelte.spec.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte b/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte index 4052fc8a..d569b57c 100644 --- a/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte +++ b/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte @@ -40,7 +40,7 @@ function isNew(doc: Document): boolean { {:else} {m.dashboard_badge_updated()} diff --git a/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte.spec.ts b/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte.spec.ts index 502a10d9..8960a5fa 100644 --- a/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte.spec.ts +++ b/frontend/src/lib/shared/dashboard/ReaderRecentDocs.svelte.spec.ts @@ -49,6 +49,14 @@ describe('ReaderRecentDocs', () => { await expect.element(badge).toBeInTheDocument(); }); + it('renders the "Aktualisiert" badge with high-contrast text-ink-1', async () => { + render(ReaderRecentDocs, { documents: [updatedDoc] }); + const badge = page.getByText(/^Aktualisiert$/i); + const cls = ((await badge.element()) as HTMLElement).className; + expect(cls).toMatch(/text-ink-1/); + expect(cls).not.toMatch(/text-ink-3(?!\/)/); + }); + it('does not show "Neu" badge when updatedAt differs from createdAt', async () => { render(ReaderRecentDocs, { documents: [updatedDoc] }); const badge = page.getByText(/^Neu$/i);