v0.5.0 – accessibility pass, pagination, EmDash 0.31.1
An accessibility and correctness pass over the theme, plus a move to EmDash 0.31.1.
Heads up
This release requires Node 22 or newer. The pinned pnpm already refused to run on Node 20, so the previous "Node 20+" claim could not be honoured — engines now says what is actually true.
Added
- A "Skip to content" link — the first stop when you tab into any page, so reaching the article no longer means tabbing the entire header and menu.
- The blog archive is paginated, ten per page, using the same numbered pager as search. Previously every post on the site rendered on a single page.
Fixed
- The fullscreen search overlay and the burger menu now keep the keyboard inside them while open. Tabbing off the end used to walk invisibly into the page behind the layer.
- The sidebar tabs widget and the product page tabs respond to arrow, Home and End keys, and the tab strip is a single tab stop rather than one per tab. Screen readers are now told which tab belongs to which panel.
- The footer's light/dark/system buttons announce which one is active; they previously sounded like three identical buttons.
- Reduce motion now also calms in-page scrolling, the back-to-top jump, the header slide-down, and the burger menu's item-by-item entrance.
- Post dates no longer shift by a day depending on where the site is hosted.
- Editing a page or publishing a post now refreshes the footer navigation and recent-posts widgets instead of leaving stale copies on cached pages.
- Products whose options or reviews were saved in an unexpected shape no longer take the product page down.
- Archive pages no longer nest one
<main>inside another, and widget areas no longer render a stray heading for widget types the theme does not handle. - Restored the intended hover colour on portfolio meta links in dark mode.
Changed
- emdash 0.29.0 → 0.31.1, and the Cloudflare adapter alongside it. No template changes were needed.
- The theme plugin version was declared as
0.4.0in two places against a0.4.5package; all version numbers are now synced.
Documentation
- The README carries the design-token cheat sheet and the note that the palette deliberately reproduces the original Bravada demo rather than meeting WCAG contrast — previously only in the agent-facing
AGENTS.md. - Documented the Cloudflare Workers deployment path and the bundler pin it depends on.
- Added EmDash version, Node, CI, and licence badges.
- CI now runs typecheck and the test suite on every push and pull request.
Note for Safari users
Safari only tabs to links once "Press Tab to highlight each item on a webpage" is enabled in its Advanced settings. Without it, Option+Tab reaches them. This affects the skip link on every site, not just this one.
Full changelog: v0.4.5...v0.5.0