← back to Thesetdecorator
TSD a11y + SEO: alt text on 3 dynamic imgs + meta description on decorator profile
0220d7a9edfdd9cb1a75cb4c7487f942bc5c2496 · 2026-06-03 07:48:39 -0700 · SteveStudio2
- alt on the 3 real JS-injected imgs (logo-agent room-setting + top-variant
preview, best-seller room-photo preview); catalog 'missing alt' was a JS
comment (cards use CSS bg-image + aria-label, no real <img>) → no change
- <meta name=description> on decorator.html; SKIPPED art-review.html (admin
Vision-AI surface, unlinked/non-public — don't SEO an internal page)
yolo-loop tick 2 · DTD verdict A (Claude+Codex 2/2) · local only, no deploy.
Files touched
M YOLO_BACKLOG.mdM public/_best-seller-detail.tpl.htmlM public/decorator.htmlM public/logo-agent.html
Diff
commit 0220d7a9edfdd9cb1a75cb4c7487f942bc5c2496
Author: SteveStudio2 <steve@designerwallcoverings.com>
Date: Wed Jun 3 07:48:39 2026 -0700
TSD a11y + SEO: alt text on 3 dynamic imgs + meta description on decorator profile
- alt on the 3 real JS-injected imgs (logo-agent room-setting + top-variant
preview, best-seller room-photo preview); catalog 'missing alt' was a JS
comment (cards use CSS bg-image + aria-label, no real <img>) → no change
- <meta name=description> on decorator.html; SKIPPED art-review.html (admin
Vision-AI surface, unlinked/non-public — don't SEO an internal page)
yolo-loop tick 2 · DTD verdict A (Claude+Codex 2/2) · local only, no deploy.
---
YOLO_BACKLOG.md | 16 ++++++++++------
public/_best-seller-detail.tpl.html | 2 +-
public/decorator.html | 1 +
public/logo-agent.html | 4 ++--
4 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/YOLO_BACKLOG.md b/YOLO_BACKLOG.md
index ab8d906..6478f32 100644
--- a/YOLO_BACKLOG.md
+++ b/YOLO_BACKLOG.md
@@ -19,13 +19,17 @@ reversible local commit** marked `[x]` w/ hash, then ScheduleWakeup ~1800s.
pages & 2 templates; idempotent `scripts/og-image-backfill.js`; 0 SVG social images
left. DTD verdict B (Claude+Codex 2/2).
+## Done (cont.)
+- [x] **a11y · alt text** — 2026-06-03 · `d874bbc` · added descriptive alt to the 3 real
+ JS-injected imgs (logo-agent room-setting + top-variant, _best-seller-detail room
+ preview). catalog.html's "missing-alt" hit was a JS COMMENT — cards use CSS
+ background-image + existing `aria-label`, no real `<img>` → no change needed.
+- [x] **SEO · meta description** — 2026-06-03 · `d874bbc` · added `<meta name=description>`
+ to decorator.html. art-review.html SKIPPED: it's an admin Vision-AI/bulk-attest surface
+ (not linked from any page, not public) → don't SEO an internal page. DTD verdict A.
+
## Open (prioritized)
-- [ ] **a11y · alt text** — `<img>` missing `alt` on logo-agent.html (×2), catalog.html
- (×1), _best-seller-detail.tpl.html (×1). Add descriptive alt (decorative → `alt=""`).
-- [ ] **SEO · meta description** — pages with no `<meta name=description>`: art-review.html,
- decorator.html. Add a concise, accurate description (decorator.html is a real profile
- surface; art-review is admin-ish — confirm it's public before bothering).
-- [ ] **next-tick audit** — when the above are done, audit a fresh dimension (broken
+- [ ] **next-tick audit** — when resumed, audit a fresh dimension (broken
internal links, empty-state copy, focus styles, `loading="lazy"` on grid imgs,
duplicate H1s) and append concrete items here before implementing.
diff --git a/public/_best-seller-detail.tpl.html b/public/_best-seller-detail.tpl.html
index e31d7c9..d0dba15 100644
--- a/public/_best-seller-detail.tpl.html
+++ b/public/_best-seller-detail.tpl.html
@@ -171,7 +171,7 @@
<p class="bd-hint" style="margin:0 0 10px">Upload a photo of the set you're dressing and we'll render this wallcovering onto its walls — for storyboarding and approval review.</p>
<input type="file" id="bd-room-file" accept="image/*" style="font:13px var(--font-ui); color:var(--fg); margin-bottom:8px">
<div id="bd-room-preview" style="display:none; margin:8px 0">
- <img id="bd-room-preview-img" style="max-width:100%; max-height:300px; border:1px solid var(--rule); border-radius:6px">
+ <img id="bd-room-preview-img" alt="Uploaded room photo preview for this design" style="max-width:100%; max-height:300px; border:1px solid var(--rule); border-radius:6px">
<div class="bd-hint" id="bd-room-meta" style="margin-top:4px"></div>
</div>
<div class="bd-cta">
diff --git a/public/decorator.html b/public/decorator.html
index deb939e..c6d05f8 100644
--- a/public/decorator.html
+++ b/public/decorator.html
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<title>Set Decorator Profile — The Set Decorator</title>
+ <meta name="description" content="Set decorator profile on The Set Decorator — film & TV credits, awards, SDSA membership, and contact details for production designers and studios.">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@400;500;600&display=swap">
<link rel="stylesheet" href="/css/main.css">
<meta property="og:type" content="website">
diff --git a/public/logo-agent.html b/public/logo-agent.html
index a55c90e..3285e2d 100644
--- a/public/logo-agent.html
+++ b/public/logo-agent.html
@@ -332,7 +332,7 @@
async function renderRoomSetting() {
$('#room-setting').style.display = '';
- $('#room-svg-wrap').innerHTML = `<img src="/api/logo-agent/room-setting/${session.session_id}?_=${Date.now()}" style="width:100%;display:block">`;
+ $('#room-svg-wrap').innerHTML = `<img src="/api/logo-agent/room-setting/${session.session_id}?_=${Date.now()}" alt="Generated room setting featuring the selected logo" style="width:100%;display:block">`;
}
// ── Set & Go autopilot ────────────────────────────────────────────────
@@ -358,7 +358,7 @@
$('#iter-score').textContent = d.top.score.total;
$('#score-bar').style.width = (d.top.score.total * 100) + '%';
$('#plateau').textContent = d.plateau;
- $('#live-svg-wrap').innerHTML = `<img src="${variantSvgUrl(d.top)}" style="width:100%;border-radius:10px">`;
+ $('#live-svg-wrap').innerHTML = `<img src="${variantSvgUrl(d.top)}" alt="Top-ranked logo variant from this iteration" style="width:100%;border-radius:10px">`;
});
es.addEventListener('locked', async e => {
const d = JSON.parse(e.data);
← 226ae28 TSD yolo-loop backlog: envelope + tick-1 done + open items
·
back to Thesetdecorator
·
backlog: correct tick-2 commit hash (post-amend 0220d7a) 5fdf022 →