An accessible EPUB can be read by everyone — including people who use screen readers, refreshable braille, magnification, or keyboard-only navigation. Two standards set the bar: WCAG 2.1 AA for the content inside each chapter, and EPUB Accessibility 1.1 for how the package as a whole exposes that content. Since the European Accessibility Act took effect in June 2025, meeting both is also a legal requirement for ebooks sold in the EU.
This checklist walks through the eight things reviewers look at most. Work through it before you publish, and run Ace by DAISY to catch the machine-checkable issues automatically. Origami runs Ace on every file and repairs the mechanical problems with AI — the judgement calls, like whether an image needs a description, stay with you.
What the standards actually require
WCAG 2.1 AA was written for the web, but an EPUB is web content in a box: every chapter is an XHTML document, so the same criteria apply — text alternatives, contrast, structure, and predictable navigation. EPUB Accessibility 1.1 adds the packaging layer: a valid navigation document, a declared reading order, and machine-readable metadata in the OPF.
You claim conformance with the dc:conformsTo property. A claim you cannot back up is worse than none, so the metadata you publish must match what is actually inside the file.
How it gets checked
Roughly two thirds of the criteria are machine-checkable: missing alt attributes, empty headings, undeclared languages, tables without header cells, and absent metadata all surface in an automated report. Ace by DAISY, the open-source checker from the DAISY Consortium, is the tool most retailers trust for this pass.
The rest needs a person: only a human can judge whether alt text conveys what the image shows, whether the reading order makes sense, or whether contrast holds up for text over a photo. Treat the automated report as the floor, not the finish line.
The checklist
-
1
Give informative images meaningful alt text
Every image that carries meaning needs an alt attribute that conveys the same information, not the file name. Mark purely decorative images as such with an empty alt attribute (alt="") or role="presentation" so assistive technology skips them. Complex figures and charts also need a longer description nearby.
-
2
Use headings and landmarks in order
Structure each document with a logical heading hierarchy — one h1, then h2, then h3, without skipping levels — so readers can navigate by heading. Add epub:type and ARIA landmarks to identify chapters, the table of contents, footnotes, and page breaks.
-
3
Declare a logical reading order and navigation
Every EPUB needs a navigation document (nav) with a working table of contents that reflects the real structure of the book. Make sure the spine lists content in the intended reading order and that nothing meaningful is marked linear="no".
-
4
Declare the language of the content
Set the primary language on the package and on each XHTML document with xml:lang and lang so screen readers use the right pronunciation. Mark inline passages in another language with their own lang attribute.
-
5
Build data tables with real headers
Use th cells with a scope attribute (col or row) so assistive technology can associate each cell with its headers. Never use tables purely for visual layout — that is what CSS is for — and reserve tables for tabular data.
-
6
Check contrast and never rely on color alone
Body text needs a contrast ratio of at least 4.5:1 against its background (3:1 for large text). Make sure information carried by color — links, warnings, required fields — is also signalled another way, such as text or an icon.
-
7
Publish accessibility metadata
Add schema.org accessibility metadata to the OPF: accessMode, accessModeSufficient, accessibilityFeature, accessibilityHazard, and a plain-language accessibilitySummary. Retailers surface these fields to readers, so they are how an accessible book gets discovered.
-
8
Handle math, media, and motion
Encode formulas as MathML rather than images so they can be read and reflowed. Give audio and video captions or transcripts, and avoid anything that flashes more than three times per second, which can trigger seizures.