aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-05-15 11:48:59 +0000
committerFuwn <[email protected]>2026-05-15 11:48:59 +0000
commit9c77d2cb559757806b7fb30c5a63d1a2f99be22d (patch)
tree78ed8ecffd36d46105de69897922193584ae0489 /src
parentperf(transitions): narrow the universal * selector (diff)
downloaddue.moe-9c77d2cb559757806b7fb30c5a63d1a2f99be22d.tar.xz
due.moe-9c77d2cb559757806b7fb30c5a63d1a2f99be22d.zip
fix(a11y): drop redundant alts and the landing em dash
Replace generic alt="Avatar" / alt="Character" with empty alts on images that visually duplicate a name already present as adjacent text (Wrapped activity avatar, Hololive stream icon, three Birthdays covers); screen readers stop announcing "Avatar" / "Character" twice. Also swap the em dash in the landing subheadline for a comma per the project copy rule.
Diffstat (limited to 'src')
-rw-r--r--src/lib/Hololive/Stream.svelte2
-rw-r--r--src/lib/LandingHero.svelte2
-rw-r--r--src/lib/Tools/Birthdays.svelte2
-rw-r--r--src/lib/Tools/BirthdaysTemplate.svelte2
-rw-r--r--src/lib/Tools/UmaMusumeBirthdays.svelte2
-rw-r--r--src/lib/Tools/Wrapped/Top/Activity.svelte2
6 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/Hololive/Stream.svelte b/src/lib/Hololive/Stream.svelte
index d8122f50..1d464d7a 100644
--- a/src/lib/Hololive/Stream.svelte
+++ b/src/lib/Hololive/Stream.svelte
@@ -39,7 +39,7 @@ export let icon: string;
<span class="opaque">|</span>
{#if icon}
<a href={root(`/hololive/${encodeURIComponent(live.streamer)}`)}>
- <img src={icon} alt="Avatar" loading="lazy" decoding="async" class="stream-icon" />
+ <img src={icon} alt="" loading="lazy" decoding="async" class="stream-icon" />
</a>
{/if}
<a href={root(`/hololive/${encodeURIComponent(live.streamer)}`)} class="streamer-link">
diff --git a/src/lib/LandingHero.svelte b/src/lib/LandingHero.svelte
index 9f5d0368..c1d8a5aa 100644
--- a/src/lib/LandingHero.svelte
+++ b/src/lib/LandingHero.svelte
@@ -23,7 +23,7 @@ const scrollPastHero = () => {
<h1 class="headline">Never miss what's due.</h1>
<p class="subheadline">
- Track airing episodes, new manga chapters, and subtitle releases—all in one place.
+ Track airing episodes, new manga chapters, and subtitle releases, all in one place.
<br />
<br />
diff --git a/src/lib/Tools/Birthdays.svelte b/src/lib/Tools/Birthdays.svelte
index a41064f9..3f02eb97 100644
--- a/src/lib/Tools/Birthdays.svelte
+++ b/src/lib/Tools/Birthdays.svelte
@@ -155,7 +155,7 @@ async function resolveBirthdays(
{birthday.name}
<img
src={birthday.image}
- alt="Character (Large)"
+ alt=""
class="character-image"
loading="lazy"
decoding="async"
diff --git a/src/lib/Tools/BirthdaysTemplate.svelte b/src/lib/Tools/BirthdaysTemplate.svelte
index 3dc5c4fd..8db7b442 100644
--- a/src/lib/Tools/BirthdaysTemplate.svelte
+++ b/src/lib/Tools/BirthdaysTemplate.svelte
@@ -86,7 +86,7 @@ onMount(() => clearAllParameters(["month", "day"]));
{birthday.name}
<img
src={birthday.pictureURL}
- alt="Character"
+ alt=""
class="character-image"
loading="lazy"
decoding="async"
diff --git a/src/lib/Tools/UmaMusumeBirthdays.svelte b/src/lib/Tools/UmaMusumeBirthdays.svelte
index fc773bcb..ddb3045c 100644
--- a/src/lib/Tools/UmaMusumeBirthdays.svelte
+++ b/src/lib/Tools/UmaMusumeBirthdays.svelte
@@ -105,7 +105,7 @@ onMount(() => {
{name}
<img
src={birthday.sns_icon}
- alt="Character"
+ alt=""
class="character-image"
loading="lazy"
decoding="async"
diff --git a/src/lib/Tools/Wrapped/Top/Activity.svelte b/src/lib/Tools/Wrapped/Top/Activity.svelte
index 15b646e0..16edeaec 100644
--- a/src/lib/Tools/Wrapped/Top/Activity.svelte
+++ b/src/lib/Tools/Wrapped/Top/Activity.svelte
@@ -15,7 +15,7 @@ const currentYear = new Date(Date.now()).getFullYear();
<div class="grid-item image-grid avatar-grid category top-category">
<a href={`https://anilist.co/user/${$identity.name}`} target="_blank">
- <img src={proxy(wrapped.avatar.large)} alt="User Avatar" loading="lazy" decoding="async" onload={updateWidth} />
+ <img src={proxy(wrapped.avatar.large)} alt="" loading="lazy" decoding="async" onload={updateWidth} />
</a>
<div>
<div>