Skip to content

Accessibility content sweep: media titles, video aria-labels, image alt text (#110)#112

Merged
jonfroehlich merged 3 commits into
mainfrom
feat/a11y-sweep
Jun 23, 2026
Merged

Accessibility content sweep: media titles, video aria-labels, image alt text (#110)#112
jonfroehlich merged 3 commits into
mainfrom
feat/a11y-sweep

Conversation

@jonfroehlich

@jonfroehlich jonfroehlich commented Jun 23, 2026

Copy link
Copy Markdown
Member

What

Accessibility content sweep (V2.0 item D) fixing 103 mechanically-detectable a11y issues across 16 published pages.

module iframe (no title) video (no aria-label) empty image alt total
cpx 0 14 34 48
electronics 0 19 0 19
advancedio 0 7 7 14
sensors 11 0 1 12
arduino 7 2 0 9
signals 0 0 1 1
total 18 42 43 103

The exemplar modules (communication, esp32) were already clean.

How

Surgical edits: each change adds only the missing title= / aria-label attribute or alt text on the flagged element — no reformatting (101 lines changed, 1:1). Text describes the actual media using each page's surrounding context and captions (e.g. "A potentiometer's raw analog input oscillating between 142 and 143 while untouched, with the noise removed by a moving average filter"), not generic placeholders.

Enforcement → html-proofer (follow-up, not this PR)

The content-QA gate will be a follow-up using the off-the-shelf, Jekyll-native html-proofer gem — run against the built _site/ it flags missing image alt, broken links, and malformed HTML, with no new toolchain (Ruby is already in the stack). Tracked in #110.

scripts/check_a11y.py is included only as a deprecated, local-only spot-check (the audit that found these 103 issues). It is explicitly not wired into CI and is documented as such in its docstring and scripts/README.md; it will be deleted once html-proofer lands.

Verification

Full bundle exec jekyll build succeeds (no errors); spot-checked the rendered _site/ HTML to confirm the new title= / aria-label / alt= attributes emit correctly.

Out of scope

Color-only wiring/circuit instructions (not auto-detectable) are tracked in #111.

Part of #110.

🤖 Generated with Claude Code

@jonfroehlich jonfroehlich added content Lesson content: errata, corrections, new sections, pedagogy infrastructure Build, deploy, CI, performance, tooling v2.0 Targeted for the Version 2.0 release accessibility Accessibility (a11y): alt text, ARIA, contrast, keyboard/screen-reader support labels Jun 23, 2026
Fix 103 mechanically-detectable accessibility issues across 16 published
pages: add descriptive `title=` to YouTube `<iframe>`s, `aria-label` to
`<video>` heroes, and alt text to images with empty alt. Text describes the
actual media (derived from each page's context/captions), not placeholders.
Exemplar modules (communication, esp32) were already clean.

Content-only: enforcement is deferred to a pa11y-ci CI gate in a follow-up
(off-the-shelf, axe-core based) rather than a bespoke checker.

Part of #110.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jonfroehlich jonfroehlich removed the infrastructure Build, deploy, CI, performance, tooling label Jun 23, 2026
@jonfroehlich jonfroehlich changed the title Accessibility sweep: media titles, video aria-labels, image alt text + CI gate (#110) Accessibility content sweep: media titles, video aria-labels, image alt text (#110) Jun 23, 2026
Document that it is NOT a CI gate and must not be wired into content-lint.yml;
accessibility enforcement is moving to off-the-shelf pa11y-ci (axe-core). Kept
only as a fast dependency-free local audit; deletable once pa11y-ci lands (#110).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Decided to standardize on the Jekyll-native html-proofer gem for content QA
(missing alt + broken links + HTML validity, no new toolchain) rather than a
Node/Chromium pa11y stack. Update the deprecation notes accordingly (#110).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jonfroehlich jonfroehlich merged commit 3fb62f2 into main Jun 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

accessibility Accessibility (a11y): alt text, ARIA, contrast, keyboard/screen-reader support content Lesson content: errata, corrections, new sections, pedagogy v2.0 Targeted for the Version 2.0 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant