Accessibility
This page says what the site aims for, what has actually been measured, what has not been done yet, and how to tell me when something is broken for you.
What this site aims for
PANIM aims to meet WCAG 2.2 Level AA. That is the standard this site is built and checked against.
This is a statement of intent and of current status, not a claim of full conformance. Where the site falls short of AA today, it is listed below rather than left out.
What has been measured
These are done and were checked with numbers rather than by eye:
- Text contrast. The three ink tiers run 14.7:1, 6.0:1 and 4.7:1 against the darkest paper stock in the book (chapter VIII), so they clear AA against all ten stocks, not just the warm ones. Corrected 2026-08-28: the numbers previously published here were measured against a paper colour that is only a fallback and is never actually rendered. Against the real darkest stock the faintest tier was 4.25:1 — a genuine failure, in eleven places carrying real text. It has been darkened and now clears AA on every stock.
- The Listening Room's dim states were raised off 3.2:1 and 2.0:1, both of which were failures carrying real text.
- Tap targets are 44×44 px, with two measured exceptions named under Known limitations below.
- The smallest type on the site is 10.24 px and is only ever used for tracked-out uppercase. Nothing renders under 10 px; eleven declarations used to.
- Every accent colour in the palette was measured against its own paper stock before it shipped.
- Motion respects
prefers-reduced-motion. - Focus inside every overlay. The About and Sleep sheets, the chapter-complete dialog, the Listening Room and the image lightbox now each move focus in on open, hold it there while open, close on Esc, and hand focus back to whatever opened them. Before 2026-08-28 the chapter-complete dialog and the Listening Room did none of that, and background controls stayed reachable by Tab while invisible behind an overlay.
- The image lightbox is reachable by keyboard. It opened on a mouse click only, with nothing marking the picture as interactive. It now takes focus, announces itself, and opens on Enter or Space.
- Nothing focused hides under the fixed bars. The running head and the player bar now reserve their own height in the browser's scroll-into-view calculation (WCAG 2.2 Focus Not Obscured).
- The chapter ticks on the seek bar were raised from 1.9:1 to 3.1:1. They carry read/unread state, so they are a graphic that has to meet the same 3:1 floor a control does.
- The outline on a button now clears 3:1 (2026-08-28). It was 1.8:1 — and because the buttons on this site carry no fill, that hairline was the only thing drawing them. The line was darkened and the buttons were given a 3 % ink wash at the same time, so a control reads as a soft filled chip rather than as a harder empty box. Measured 3.25:1 against the darkest paper stock and 3.08:1 against the wash. Containers — cards, sheets, dialogs — are not controls and keep the lighter frame.
- The chapter links in the closing section clear the 24 px target floor (2026-08-28). They were about 22 px tall, in a row of roman numerals whose shared baseline could not take padding. That section is now a set of expandable entries: the numerals stayed in the summary as text and the links moved down into the body, where they are ordinary links at a full 44 px. The accessibility fix and the reading improvement were the same change.
- Search is a dialog, not a widget (2026-08-28). It opens from the running head or from /, moves focus into the field, holds focus while open, closes on Esc and hands focus back. It is the same sheet plumbing every other overlay on this site uses, because there is exactly one implementation of it. The result count is announced in a live region. A result is a real link to a real fragment, so it survives being middle-clicked or copied.
- The verse notes are notes, not landmarks — corrected 29 August
2026. There are a hundred and thirteen of them, one under each
quotation. This page said yesterday that each one is an
<aside>“so a screen reader can step over the apparatus”, and that was the wrong way round: a landmark is not stepped over one at a time, it is listed, so a hundred and thirteen of them turned the landmark rotor into a wall of identical “complementary” entries and buried the six landmarks that mean something. They carryrole="note"now, which announces the apparatus as a note and adds no landmark at all. The two labels are text, not icons. - Four contrast failures were found on 29 August 2026, and all four were
an
opacityon text. A ratio can only be measured on the colour that actually reaches the screen, and a translucent ink over paper is a colour nobody had calculated. Composited against all eleven paper stocks: the chapter mark — the Hebrew or Greek word above each chapter title, which is content — ran 2.58:1 to 2.95:1 in every chapter; the player's running time 4.31:1; the suspended Follow button 3.69:1; the sheet footnote 2.91:1. All four now take a measured ink token instead (--accent,--ink-soft,--ink-faint), and the lowest of them is 4.72:1 at its worst stock. - Follow now has a state you can see. The button was given an
is-activeclass in script that no stylesheet ever matched, so Follow-on and Follow-off were the same button — while the degraded state was styled. Sighted readers could see the fault and not the mode. - The overlays are dialogs the whole way down. The four sheets
declared
role="dialog"on an<aside>, which ARIA does not allow — an<aside>'s complementary role cannot be overridden, so a modal could be announced as a landmark. They are<div role="dialog">now. - Everything added on 2026-08-28 was measured against every
one of the twelve paper stocks in the dawn arc, not against one. The
accent used by the note labels, the search result kinds and the closing
section's numerals runs 5.19:1 at its worst (chapter VIII) and 7.07:1 at
its best; the note body and the result text sit on
--ink-softat 6.01:1 and the quieter apparatus on--ink-faintat 4.72:1. All clear AA for normal text. - The closing section's span rail is decoration with a caption.
The ten ticks are
aria-hiddenand a visually-hidden sentence carries the same fact in words, planted in chapter IV, paid off in chapter VI, because ten absolutely-positioned elements are not something to make a screen reader assemble.
What has not been done yet
Being straight about this is the point of the page. None of the following has had a full pass:
- Every image's alt text judged rather than counted — confirming each one says what the picture is doing, not just that a string is present.
- Keyboard navigation walked end to end, including every skip and every reading path. Partly done 2026-08-28 — see below.
- The audio player and the Listening Room driven with a screen reader.
- Every player state — playing, loading, error, sleep — checked for whether it is actually announced.
This work is scheduled. Until it is finished, assume there are real problems in those areas.
Known limitations
- The book is a long single reading surface. It is navigable by keyboard, but a screen reader user has not yet confirmed the experience end to end.
- Audio is the primary medium here. Every chapter has a full read-along text on the page, so the words are available without the audio — but the recordings are not separately captioned or transcribed as timed text.
Telling me something is broken
If any part of this site does not work for you, I want to know, and a specific report is worth more than a general one. Useful details: the page, what you were trying to do, what happened instead, and the browser and assistive technology you were using.
I read every one of these and I will tell you what I am able to fix and when.
How this site is tested
- Contrast ratios calculated against each chapter's own paper stock, not against a single reference background.
- Layout and type sizes measured at a 402 px viewport — a real phone width, not a desktop window narrowed down.
- An automated axe-core pass
over the whole page — with the Listening Room, all four sheets and the
lightbox forced open, so the overlays are audited and not just the page behind
them — at 402 px, 900 px and 1440 px, plus this page,
the 404 and the ten chapter link pages under
/c/. It reported zero violations when it was last run, on 29 August 2026. That is a floor, not a pass, and it is also a date: night mode, the plate ribbon, the Listening Room's chapter colours, the resume notice and the quote-share control all shipped after it and have not been through an automated pass yet. Night mode's contrast was measured by hand instead — every ink tier against all twelve of its own paper stocks, worst pair 5.23:1, which clears AA for body text. Automated checking cannot hear whether a state is announced, whether a label makes sense, or whether the reading order is the order the book is in — which is exactly why the screen-reader item above is still on the not-done list. - A full WCAG 2.2 AA audit, finding by finding, is in progress; this page will be updated with its results rather than replaced.