diff --git a/web/src/routes/requests/+page.svelte b/web/src/routes/requests/+page.svelte index 72c0d6b9..3907cc8c 100644 --- a/web/src/routes/requests/+page.svelte +++ b/web/src/routes/requests/+page.svelte @@ -35,6 +35,14 @@ return r.track_title ?? '—'; } + // Used in aria-labels — '—' is meaningless to screen readers, so when a + // title is missing fall back to a generic-but-intelligible phrase. + function rowAccessibleName(r: LidarrRequest): string { + if (r.kind === 'artist') return r.artist_name; + if (r.kind === 'album') return r.album_title ?? `this album by ${r.artist_name}`; + return r.track_title ?? `this track by ${r.artist_name}`; + } + // Keep the meta line short and readable. We always lead with the artist, // then a relative-ish date — locale formatting is good enough for v1 // and keeps tests deterministic without pinning Intl.RelativeTimeFormat. @@ -103,7 +111,7 @@ {#if r.status === 'pending'}