feat(credits): restore the CC BY-SA declaration as "License & reuse" (Option D1)

s0031 removed "About this work" to avoid duplicating it on the separate About
page, but that section WAS the D1 compliance — it declares the altered work is a
derivative offered under CC BY-SA 4.0, which is what satisfies the ShareAlike
obligation for the BY-SA source clips. Without it the live site credited the
BY-SA authors but never declared the derivative share-alike.

Restore the declaration on the credits page, under the heading "License & reuse"
instead of "About this work" so it isn't confused with the separate About page
(which covers the project's intent). Tests assert the declaration is present and
that the heading is NOT "About this work".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
BenStullsBets
2026-06-30 09:23:57 -07:00
parent 8277417583
commit ee7c65a0f2
3 changed files with 27 additions and 9 deletions
+19 -1
View File
@@ -13,12 +13,30 @@
<p><a href="index.html" class="back-link">← Back to the experience</a></p>
</header>
<!-- Option D1: the altered work's own license + the "modified" statement that
CC BY / CC BY-SA attribution requires. Heading deliberately NOT "About" — the
separate About page covers the project's intent. -->
<section class="declaration">
<h2>License &amp; reuse</h2>
<p>
The <em>Human Experience Filter</em> alters its source footage in real time
(overlays, an emotion/affect channel, and a WebGL “dream” shader), so every
frame you see is a <strong>derivative</strong> of the original clip.
</p>
<p>
This altered work is offered under
<a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license">Creative
Commons Attribution-ShareAlike 4.0 (CC BY-SA 4.0)</a>. The original sources it
builds on are credited below. This is a non-commercial art installation.
</p>
</section>
<section>
<h2>Footage</h2>
<p class="note">
Original video sources and their licenses. Public-domain (US-government) and
CC0 clips need no attribution; the names below for CC BY / CC BY-SA clips are
required credit. All footage is altered in real time in the experience.
required credit. All footage is altered as described above.
</p>
<div id="video-credits" class="credits-list">
<p class="loading">Loading credits…</p>
+7 -5
View File
@@ -55,10 +55,12 @@ test("credits.html wires config.js + credits.js, the attributions container, and
assert.match(html, /href="index\.html"/); // back into the experience
});
test("credits.html notes footage is altered; the work-license declaration lives on the About page", () => {
test("credits.html carries the CC BY-SA derivative declaration (Option D1)", () => {
const html = fs.readFileSync(path.join(__dirname, "../static/credits.html"), "utf8");
assert.match(html, /altered/i); // modification indicated alongside the attributions
// The CC BY-SA work-license declaration ("About this work") moved off the credits
// page onto the About page — it must NOT be duplicated here.
assert.doesNotMatch(html, /CC BY-SA 4\.0/);
assert.match(html, /CC BY-SA 4\.0/); // the altered work's own license
assert.match(html, /altered/i); // states the footage is modified
// The section is NOT titled "About this work" — that name belongs to the separate
// About page; here the declaration lives under "License & reuse".
assert.doesNotMatch(html, /About this work/i);
assert.match(html, /License &amp; reuse/);
});
+1 -3
View File
@@ -68,9 +68,7 @@ def test_credits_page_lists_video_attributions(browser_page):
body = page.inner_text("body")
assert "NASA, ESA, CSA, STScI" in body
assert "Joe Mabel" in body # a CC BY-SA clip's required author credit
# The CC BY-SA work-license declaration ("About this work") moved to the About
# page — it is intentionally no longer on the credits page.
assert "CC BY-SA 4.0" not in body
assert "CC BY-SA 4.0" in body # the Option-D1 derivative declaration ("License & reuse")
def test_experience_links_to_credits(browser_page):