Reading systems: summarized test results

These tests check how far EPUB reading systems support the internationalization features covered by the browser test suite. Each test is a single EPUB book. Reading systems also apply their own stylesheets and user settings, so browser results are not a reliable guide to what a reading system does.

Download a book, open it in the reading system, and score it by hand against the pass criteria inside the book. A reader appears in the table as soon as it has at least one result; a dash means that reader has not run that test.

Results

Status key
Key pass fail partial blocked skipped – not run

How to run the tests

The EPUB books are built from the sources in readers/ and committed alongside them, so each test can be downloaded from this page. If you change a book, rebuild it with node tools/make-epubs.mjs (Node.js 18 or later and the zip command are required), then commit the rebuilt .epub file.

Open the .epub itself, not the content_001.xhtml source. Compare what you see with the pass criteria at the top of the book.

How to add a result

Add an entry to readers/readers-data.js, under the identifier of the test you ran. Use the reading system's name in the reader field, its version, the platform and operating system you ran it on, and one of the pass, fail, partial, blocked or skipped status values. The latest result for a reader and test wins, so add new results rather than editing old ones; use the notes field to explain a partial or blocked result.

Use blocked when an unmet prerequisite prevents assessment of the feature under test (for example, vertical layout is unavailable), and explain the prerequisite in notes. Use partial when some but not all pass criteria are met. Reserve skipped for tests that were not run.

A result entry looks like this (the platform, settings, tester and evidence fields are optional):

{"reader":"Thorium", "version":"3.5.1", "platform":"macOS", "os":"macOS 26.6.2", "settings":"", "status":"pass", "date":"2026-10-19", "notes":"", "tester":"", "evidence":""}