Repository navigation
feat: describe every picture in the deck library for screen readers - #238
Merged
Merged
Conversation
A flag on the front of a World flags card had no description, so a screen reader said only "Picture on the front of the card", and a card whose picture is the question could not be studied without sight. Version 3 describes each of the 254 flags in English and Swedish, the languages its cards are in: its stripes, colors and emblems, never the country, and never lettering that names it. The descriptions follow each flag's official design, checked against the colors and shapes of the SVG the card shows. No card's front or back changed. The version names the library's contact instead of an email, as new versions must. Refs: #234
A picture on the front of a Rijksmuseum collection card had no description, so a screen reader said only "Picture on the front of the card", and a card whose picture is the question could not be studied without sight. Version 2 describes each of the 93 pictures in the six languages its cards are in: what a sighted learner sees, never the title, maker or place asked for, nor a word of the title in any language. AI agents wrote them after looking at each picture, and the version's provenance says so in a review round of its own. No card's front or back changed. The version names the library's contact instead of an email, as new versions must. Refs: #234
A painting on the front of a Famous paintings card had no description, so a screen reader said only "Picture on the front of the card", and a card whose picture is the question could not be studied without sight. Version 4 describes each of the 150 paintings in the six languages its cards are in: what a sighted learner sees, never the title or painter asked for, nor a word of the title in any language. AI agents wrote them after looking at each picture, and the version's provenance says so in a review round of its own. No card's front or back changed. The version names the library's contact instead of an email, as new versions must. Refs: #234
A picture without a description is read out only as "Picture on the front of the card", so on a deck whose pictures are the questions a card cannot be studied without sight. The data has had a place for a description since card format 4, but nothing asked the library to use it, so a new deck with pictures could ship without any. The library's curation (LIBRARY_LANGUAGES) now asks each picture on a card to be described in English and in every other language the card's text is in, by its primary subtag. As with a deck's title, description and keywords, npm run library:check asks it of each deck's newest version only, since published versions are frozen, and the Studio's check for the library asks it of a draft. A missing description is a new problem, missingImageDescription, worded in the command and in each of the Studio's languages. The release model now carries a card's pictures and their descriptions so the rule can read them. Closes: #234
ixuz
enabled auto-merge
October 22, 2026 16:11
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 22, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 22, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 22, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 22, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 22, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Three of the four library decks with pictures described none of them, so a screen reader said only "Picture on the front of the card". On those decks the picture is the question, so a card couldn't be studied without sight. The data has had a place for a description since card format 4 (
solid-memo:frontImageDescription,backImageDescription), but nothing asked the library to use it.The rule. The library's curation (
LIBRARY_LANGUAGESincurationRules.ts) now asks for a description of every picture on a card, in English and in every other language the card's text is in, by its primary subtag: text insv-seasks forsv, and untagged text asks for nothing.npm run library:checkasks this only of each deck's newest version, since published versions are frozen.repoPolicy).missingImageDescription, worded in the command and in all six Studio languages.docs/deck-library.md(A version, Checks),docs/studio.mdanddocs/policy.md.The decks. Each new version describes every picture without giving the answer away: what a sighted learner sees, never the country, title, painter, maker or place being asked for, nor a word of the title in any language.
How the descriptions were checked:
The deck commits come before the rule, so the library check passes at every commit.
Follow-ups, not in this pull request:
famous-paintings#q674846) shows no picture, because its link returns 404. The file was renamed on Wikimedia Commons to "Van Gogh - The Night Café (1888).jpg".Closes: #234
Checklist
Refs:, notCloses:. Leave this unchecked otherwise.npm run checkpasses (lint, Markdown and spelling included),npm run lint:reusetoo if a file was added, andnpm run crosschecktoo ifns/ordecks/changed. (npm run checkpasses at every commit;npm run crosscheck: 247 of 247 documents conform; the new files are deck versions, covered by their decks' lines inREUSE.toml, whichnpm run check:reusechecks)docs/is listed in docs/docs.ttl. (no new page)packages/ui/src/i18n/).ns/was agreed in an issue first; no publishedns/shapes/*/vN.ttlordecks/*/vN.ttlwas edited; generated files were regenerated, not edited. (ns/is unchanged; the decks get new versions)!and aBREAKING CHANGE:footer).npm run check:breakingsees a line ofapi/that goes, but not a feature removed, nor a reader that reads less than before. (only additions: a problem code, fields of the release model)npm run lint:reuse), or a new deck its line inREUSE.toml; third-party content is credited. (each version keeps its deck's license and sources)npm run dev) and tried the change, and considered the user journeys.type(scope): subject,!and aBREAKING CHANGE:footer if it breaks something), with an imperative subject and a body that explains why (CONTRIBUTING.md).