WIP: redesign 09 — a11y & print sweep (stack tip) #14

Closed
michalvankodev wants to merge 5 commits from redesign/09-a11y-print into redesign/08-syndication-perf

What

Slice 9/9 of the selected redesign (base: #13). Accessibility + print sweep — closes the stack.

  • Skip-to-content — first tab stop, jumps to <main id="main-content">; visually hidden until focused.
  • aria-current="page" on the active masthead nav item (+ active styling). Tiny inline script — the header is a static include.
  • Contrast — slate-500 metadata on blue-50 bumped to slate-600 (hero date, TOC label, ↑ top, footer links, year counts).
  • Per-post lang — optional lang front matter (en|sk, Decap select added); <article lang="…"> defaults to en. Correct screen-reader voice for Slovak content.
  • Print audit — white page background; the print:hidden set (header, footer, TOC rail, further reading, progress bar, year headers, back-to-top) verified; cover plate and definition rows print as flowing text; portfolio raw-URL contact swaps inherited.
  • Reduced-motion verified by construction — the four social brand hovers are now gated behind prefers-reduced-motion: no-preference (smooth scrolling, progress bar, and the anime.js logo were already gated in earlier slices).
  • View-transition polish — authored morph hero cover ↔ article cover plate (post_cover_<slug> on both ends); list-row ↔ title names preserved throughout the stack.

Preview: https://redesign-09-a11y-print.dev.michalvanko.dev


This is the tip of the stack: #5 → #6 → #7 → #8 → #9 → #10 → #11 → #12 → #13 → this. Each preview shows everything below it plus its slice.

## What Slice 9/9 of the selected redesign (base: #13). Accessibility + print sweep — closes the stack. - **Skip-to-content** — first tab stop, jumps to `<main id="main-content">`; visually hidden until focused. - **`aria-current="page"`** on the active masthead nav item (+ active styling). Tiny inline script — the header is a static include. - **Contrast** — slate-500 metadata on blue-50 bumped to slate-600 (hero date, TOC label, `↑ top`, footer links, year counts). - **Per-post `lang`** — optional `lang` front matter (`en`|`sk`, Decap select added); `<article lang="…">` defaults to `en`. Correct screen-reader voice for Slovak content. - **Print audit** — white page background; the `print:hidden` set (header, footer, TOC rail, further reading, progress bar, year headers, back-to-top) verified; cover plate and definition rows print as flowing text; portfolio raw-URL contact swaps inherited. - **Reduced-motion verified by construction** — the four social brand hovers are now gated behind `prefers-reduced-motion: no-preference` (smooth scrolling, progress bar, and the anime.js logo were already gated in earlier slices). - **View-transition polish** — authored morph hero cover ↔ article cover plate (`post_cover_<slug>` on both ends); list-row ↔ title names preserved throughout the stack. **Preview:** https://redesign-09-a11y-print.dev.michalvanko.dev --- This is the tip of the stack: **#5 → #6 → #7 → #8 → #9 → #10 → #11 → #12 → #13 → this**. Each preview shows everything below it plus its slice.
redesign: a11y + print sweep — skip link, aria-current, contrast, lang
All checks were successful
test / cargo test (push) Successful in 1m0s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 1m17s
c3901354dd
- Skip-to-content link as the first tab stop → <main id=main-content>
  landmark (visually hidden until focused)
- aria-current=page + active styling on the masthead nav item for the
  current section (tiny inline script — the header is a static include)
- Contrast: slate-500 metadata on blue-50 bumped to slate-600 (hero
  date, TOC label, ↑ top, footer /portfolio, year counts slate-400→600)
- Per-post lang: optional 'lang' front matter (en|sk, Decap select
  added), <article lang> defaults to en — correct screen-reader voice
  for SK content
- Print: white page background; print:hidden set already covers
  header/footer/TOC/further-reading/progress/year headers/back-to-top;
  portfolio raw-URL contact swaps inherited; cover plate and rows print
  as flowing content
- Reduced-motion satisfied by construction + verified: social brand
  hovers (twitch shift, youtube scale, instagram dim, tiktok glitch)
  now wrapped in prefers-reduced-motion: no-preference
- View-transition polish: authored hero cover ↔ article cover plate
  morph (post_cover_<slug> on both); list-row ↔ title names preserved
  throughout
michalvankodev force-pushed redesign/09-a11y-print from c3901354dd
All checks were successful
test / cargo test (push) Successful in 1m0s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 1m17s
to 658fdd9154
All checks were successful
test / cargo test (push) Successful in 49s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 1m20s
2026-08-21 16:17:23 +02:00
Compare
michalvankodev force-pushed redesign/09-a11y-print from 658fdd9154
All checks were successful
test / cargo test (push) Successful in 49s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 1m20s
to 7e5e009a48
Some checks failed
test / cargo test (push) Successful in 1m0s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Has been cancelled
2026-08-23 12:37:21 +02:00
Compare
michalvankodev force-pushed redesign/09-a11y-print from 7e5e009a48
Some checks failed
test / cargo test (push) Successful in 1m0s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Has been cancelled
to c76988397c
Some checks failed
preview / preview hostname (pull_request) Has been cancelled
preview / build + deploy preview (pull_request) Has been cancelled
preview / teardown preview (pull_request) Has been cancelled
test / cargo test (push) Has been cancelled
2026-08-23 12:49:48 +02:00
Compare
michalvankodev force-pushed redesign/09-a11y-print from c76988397c
Some checks failed
preview / preview hostname (pull_request) Has been cancelled
preview / build + deploy preview (pull_request) Has been cancelled
preview / teardown preview (pull_request) Has been cancelled
test / cargo test (push) Has been cancelled
to b0866b580b
All checks were successful
test / cargo test (push) Successful in 50s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 1m13s
2026-08-23 12:58:11 +02:00
Compare
michalvankodev force-pushed redesign/09-a11y-print from b0866b580b
All checks were successful
test / cargo test (push) Successful in 50s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 1m13s
to 3443ccf401
All checks were successful
test / cargo test (push) Successful in 53s
preview / preview hostname (pull_request) Successful in 0s
preview / build + deploy preview (pull_request) Has been skipped
preview / teardown preview (pull_request) Successful in 0s
2026-08-24 10:19:57 +02:00
Compare
Author
Owner

Closing — superseded by #15 (rebuilt from intent on the current base and merged as 68c5ba2). This branch carried stale pre-rebase copies of slices 5–8 and conflicted with its base; the slice content it introduced lives on in #15.

Closing — superseded by #15 (rebuilt from intent on the current base and merged as 68c5ba2). This branch carried stale pre-rebase copies of slices 5–8 and conflicted with its base; the slice content it introduced lives on in #15.
michalvankodev closed this pull request 2026-09-09 15:36:45 +02:00
All checks were successful
test / cargo test (push) Successful in 53s
preview / preview hostname (pull_request) Successful in 0s
preview / build + deploy preview (pull_request) Has been skipped
preview / teardown preview (pull_request) Successful in 0s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
michalvankodev/michalvankodev-site!14
No description provided.