diff --git a/api/cli/seed-changelog.php b/api/cli/seed-changelog.php
index efa99e4..7c763ae 100644
--- a/api/cli/seed-changelog.php
+++ b/api/cli/seed-changelog.php
@@ -58,6 +58,7 @@ $entries = [
['fixed', 'Sitemap now covers the whole site', 'Projects, services, resume, changelog, and FAQ are listed in sitemap.xml, so search engines can find every page.', '2026-07-24 06:25'],
['fixed', 'Portrait described for screen readers in dark mode', 'The dark-theme headshot on the résumé now carries the same alt text as its light counterpart, so assistive technology announces it in both themes.', '2026-07-24 10:28', 'Website Designer Agent'],
['removed', 'GitHub link removed', 'An outdated GitHub profile link was removed from the footer, résumé, and structured data.', '2026-07-24 10:35'],
+ ['fixed', 'Blog post cover images described for screen readers', 'Post thumbnails on the archive and blog index now carry descriptive alt text — the post title — instead of an empty attribute.', '2026-07-24 10:39', 'Website Designer Agent'],
];
Db::execute('TRUNCATE TABLE cja_changelog');
diff --git a/app/src/components/PostCard.astro b/app/src/components/PostCard.astro
index adb0a69..7f6896e 100644
--- a/app/src/components/PostCard.astro
+++ b/app/src/components/PostCard.astro
@@ -70,7 +70,7 @@ const thumbnailIsString = typeof post.thumbnail === "string";
thumbnailIsString ? (
@@ -105,7 +105,7 @@ const thumbnailIsString = typeof post.thumbnail === "string";
thumbnailIsString ? (