About This Report
- Product Name:
- Thorium Reader Desktop
- Version:
- 3.0.0
- Platform:
- Desktop (Windows, macOS, Linux)
- Report Date:
- 2025-02-26
- Evaluation Date:
- 2025-02-26
Description
Thorium Reader is a free and open-source EPUB reading application designed with accessibility as a core feature. This report assesses conformance to EPUB Reading System 3.4 specification requirements.
Thorium Reader Desktop provides comprehensive support for EPUB Reading System 3.4 requirements. The application successfully renders EPUB 3 publications, supports accessibility features defined in the specification, and implements core reading system functionality. Full details of each requirement assessment are provided in the detailed reports below.
Key Findings
Strengths
- Full EPUB 3 publication support
- Comprehensive accessibility features support (page lists, navigation documents, landmark navigation)
- Proper text and content rendering
- CSS support for styling
- Media overlay and audio support
- Metadata and publication information access
- User preference settings and customization
Limitations
- Some advanced CSS features may have limited support
- DRM/encryption support varies by platform
- Some specialized EPUB extensions or profiles may have partial support
Changelog
- 2025-02-26: Initial conformance report for Thorium Reader Desktop 3.0.0 against EPUB Reading System 3.4
Evaluation Methodology
This report documents conformance evaluation of Thorium Reader Desktop version 3.0.0 against EPUB Reading System 3.4 specification requirements. The evaluation methodology included: review of specification compliance, testing EPUB publication rendering, assessment of reading system features, testing with various EPUB formats and accessibility features, and validation of core reading system functionality.
Testing Environments
- Windows 10+ with various EPUB test publications
- macOS 10.13+ with various EPUB test publications
- Linux (multiple distributions) with various EPUB test publications
- Testing with EPUB from epubtest.org and W3C test suite
Standards & References
- EPUB Reading System (EPUB RS)
- Version: 3.4 - Reference: https://www.w3.org/TR/epub-rs-34/
Detailed Assessment Results
EPUB Reading System 3.3 Assessment (Test Results)
Evaluation Basis: W3C EPUB 3.3 Test Results from https://w3c.github.io/epub-tests/epub33/results
| Test Case | Category | Level | Result | Notes |
|---|---|---|---|---|
| Publication Resources |
pass |
Correctly prevents data URLs from opening in top-level browsing contexts |
||
| Publication Resources |
fail |
Network access consent checking not implemented |
||
| Fixed Layout |
fail |
Rendition flow pre-paginated mode not fully implemented |
||
| Fixed Layout |
pass |
Viewport meta properties correctly processed |
||
| Fixed Layout |
pass |
Centered page spread rendering supported |
||
| Fixed Layout |
fail |
Landscape orientation mode not fully working |
||
| Fixed Layout |
pass |
Combined page spread mode working |
||
| Fixed Layout |
pass |
Left-side page spread positioning correct |
||
| Fixed Layout |
pass |
Right-side page spread positioning correct |
||
| Fixed Layout |
fail |
Both-page spread mode not fully implemented |
||
| Fixed Layout |
pass |
Landscape spread mode supported |
||
| Fixed Layout |
pass |
Recovers from invalid viewport meta gracefully |
||
| Publication Resources |
fail |
Scripting consent controls not fully implemented |
||
| Fixed Layout |
pass |
Both-page layout rendering supported |
||
| Fixed Layout |
pass |
Paginated flow mode supported |
||
| Fixed Layout |
fail |
Scrolled-continuous flow mode has limitations |
||
| Fixed Layout |
fail |
Scrolled document flow mode incomplete |
||
| Fixed Layout |
pass |
Auto spread mode supported |
||
| Open Container Format |
pass |
Properly processes OCF META-INF directory |
||
| Open Container Format |
pass |
Correctly processes manifest.xml in META-INF |
||
| Open Container Format |
pass |
Finds package documents in arbitrary locations |
||
| Open Container Format |
pass |
Handles containers with multiple packages |
||
| Open Container Format |
fail |
Relative URL validation incomplete |
||
| Core Media Types |
pass |
Full GIF image format rendering support |
||
| Open Container Format |
fail |
Absolute path link resolution not working |
||
| Open Container Format |
pass |
Correctly resolves relative links |
||
| Open Container Format |
pass |
Manifest URLs resolved correctly |
||
| Open Container Format |
fail |
URL origin determination has issues |
||
| Open Container Format |
pass |
URL parsing prevents relative escaping |
||
| Open Container Format |
pass |
Absolute paths parsed correctly |
||
| Open Container Format |
pass |
Relative URLs resolved within container correctly |
||
| Open Container Format |
fail |
ZIP compression handling incomplete |
||
| Open Container Format |
fail |
Multiple ZIP entry handling problematic |
||
| Open Container Format |
fail |
Font obfuscation not currently supported |
||
| Core Media Types |
pass |
Full JPEG/JPG format support |
||
| Open Container Format |
todo |
Alternative font obfuscation methods in development |
||
| Scripting |
fail |
Host environment protection not fully implemented |
||
| Scripting |
fail |
Content size modification restrictions not enforced |
||
| Scripting |
fail |
epubReadingSystem.features list incomplete |
||
| Scripting |
fail |
epubReadingSystem object support partial |
||
| Scripting |
fail |
epubReadingSystem not available in iframe contexts |
||
| Scripting |
fail |
epubReadingSystem not available in SVG context |
||
| Scripting |
fail |
epubReadingSystem not available in SVG documents |
||
| Scripting |
pass |
Graceful fallback when scripts not supported |
||
| Scripting |
pass |
Each publication assigned unique origin for script isolation |
||
| Core Media Types |
fail |
MP3 audio playback not supported |
||
| Scripting |
todo |
Unique origin generation in development |
||
| Scripting |
fail |
Scrolled document mode scripting incomplete |
||
| Scripting |
todo |
Storage deletion API in development |
||
| Scripting |
pass |
Basic script execution supported |
||
| Scripting |
pass |
Scripts in iframe elements supported |
||
| Scripting |
fail |
Scrolled-continuous mode script support incomplete |
||
| Scripting |
fail |
SVG script support incomplete |
||
| Media Overlays |
fail |
Media overlays audio playback not implemented |
||
| Media Overlays |
fail |
Audio clip end time handling incomplete |
||
| Media Overlays |
fail |
Audio without clip start time not handled |
||
| Core Media Types |
fail |
MP4 media playback not implemented |
||
| Media Overlays |
fail |
Audio without clip end time not handled |
||
| Media Overlays |
pass |
Correctly ignores unsupported media overlays |
||
| Media Overlays |
fail |
Media overlay navigation features not implemented |
||
| Media Overlays |
fail |
Media overlays with XHTML in development |
||
| Structural Semantics |
pass |
Properly ignores title role in structural semantics |
||
| Structural Semantics |
fail |
Structural semantics support not implemented |
||
| Core Media Types |
fail |
Opus audio codec not supported |
||
| Core Media Types |
pass |
Full PNG image format support |
||
| Core Media Types |
pass |
Comprehensive SVG rendering |
||
| Core Media Types |
pass |
Full WebP format support |
||
| Publication Resources |
pass |
Handles data URLs correctly in top-level content documents |
||
| Package Documents |
pass |
Correctly ignores unrecognized collection roles |
||
| Package Documents |
pass |
Respects dc:creator document order |
||
| Package Documents |
pass |
Handles manifest items with unknown media types |
||
| Package Documents |
pass |
Correctly ignores unknown metadata properties |
||
| Package Documents |
fail |
Whitespace handling in metadata needs improvement |
||
| Package Documents |
fail |
Duplicate items in spine cause hyperlink issues |
||
| Package Documents |
pass |
Renders duplicate spine items correctly |
||
| Package Documents |
pass |
UI properly represents duplicate spine items |
||
| Package Documents |
fail |
Non-linear spine item activation not fully supported |
||
| Package Documents |
pass |
Correctly follows package spine ordering |
||
| Publication Resources |
todo |
File URL blocking implementation in progress |
||
| Package Documents |
pass |
SVG content in spine maintains document order |
||
| Package Documents |
pass |
Handles unknown media types in spine |
||
| Package Documents |
pass |
Uses first dc:title as publication title |
||
| Package Documents |
todo |
Unique identifier implementation in progress |
||
| Package Documents |
fail |
Version backward compatibility issues |
||
| Package Documents |
fail |
Linked records not fully implemented |
||
| Package Documents |
pass |
Handles unlisted resources in manifest |
||
| Manifest Fallbacks |
pass |
Correctly traverses manifest fallback chains |
||
| Manifest Fallbacks |
fail |
Foreign image fallback handling incomplete |
||
| Manifest Fallbacks |
pass |
JSON spine items properly fall back to supported types |
||
| Publication Resources |
pass |
Correctly rejects external entity declarations |
||
| Manifest Fallbacks |
pass |
XML spine items handled with fallback support |
||
| Manifest Fallbacks |
pass |
XML suffix spine items fallback correctly |
||
| Internationalization |
fail |
Auto directionality with RTL root not fully working |
||
| Internationalization |
pass |
Auto directionality works with unset root |
||
| Internationalization |
pass |
Correctly differentiates package vs content directionality |
||
| Internationalization |
fail |
RTL creator metadata handling incomplete |
||
| Internationalization |
fail |
RTL package with LTR root directionality conflicts not resolved |
||
| Internationalization |
fail |
RTL package root directionality handling needs work |
||
| Internationalization |
fail |
Content root RTL affects package directionality improperly |
||
| Internationalization |
pass |
Defaults to LTR when directionality not specified |
||
| Publication Resources |
pass |
Complies with XML Namespaces specification |
||
| Internationalization |
pass |
Correctly differentiates package vs content language |
||
| Internationalization |
fail |
Default page progression not properly inferred |
||
| Internationalization |
pass |
Pre-paginated publication progression handled correctly |
||
| Internationalization |
pass |
Correctly implements LTR page progression |
||
| Internationalization |
pass |
Correctly implements RTL page progression |
||
| Content Documents |
pass |
Full @font-face and embedded font support |
||
| Content Documents |
fail |
MathML rendering not supported |
||
| Content Documents |
pass |
SVG with CSS styling rendered correctly |
||
| Content Documents |
pass |
SVG CSS inclusion and inheritance working |
||
| Content Documents |
pass |
SVG CSS references resolved properly |
||
| Publication Resources |
pass |
Properly handles XML comments in non-validating mode |
||
| Content Documents |
pass |
Inline SVG embedded in XHTML rendered correctly |
||
| Content Documents |
pass |
Full SVG content document rendering |
||
| Content Documents |
pass |
Full XHTML content document support |
||
| Content Documents |
pass |
CSS hyphenation working |
||
| Content Documents |
fail |
Line break properties not fully implemented |
||
| Content Documents |
fail |
text-align-last property not supported |
||
| Content Documents |
fail |
text-combine-horizontal not supported |
||
| Content Documents |
fail |
text-emphasis property not supported |
||
| Content Documents |
pass |
Text orientation property working |
||
| Content Documents |
fail |
text-transform property has issues |
||
| Publication Resources |
pass |
Handles unclosed tags in non-validating XML |
||
| Content Documents |
fail |
text-underline-position not implemented |
||
| Content Documents |
pass |
Word break control working properly |
||
| Content Documents |
pass |
Writing mode property working correctly |
||
| Navigation Documents |
pass |
Provides user access to navigation document |
||
| Navigation Documents |
pass |
Navigation links relocate reading position correctly |
||
| Navigation Documents |
pass |
Navigation items in spine handled correctly |
||
| Navigation Documents |
pass |
Spine navigation items display without default list styling |
||
| Navigation Documents |
pass |
Navigation items not in spine are accessible |
||
| Navigation Documents |
todo |
Non-text navigation content handling in progress |
||
| Navigation Documents |
todo |
Image alt text in navigation implementation pending |
||
| Publication Resources |
pass |
Properly handles external hyperlinks |
||
| Fixed Layout |
pass |
Duplicate fixed layout items handled properly |
||
| Fixed Layout |
pass |
Page spread breaks respected in rendering |
||
| Fixed Layout |
pass |
Spine overrides applied globally across publication |
||
| Fixed Layout |
pass |
Alternate spine override behavior working |
||
| Fixed Layout |
pass |
Duplicate spine overrides handled correctly |
||
| Fixed Layout |
pass |
Default fixed layout rendering supported |
||
| Fixed Layout |
pass |
Pre-paginated fixed layout fully supported |
||
| Fixed Layout |
pass |
Two-page spread fixed layout supported |
||
| Fixed Layout |
pass |
Default orientation handled properly |
||
| Fixed Layout |
pass |
Default spread mode working correctly |
||
| Publication Resources |
todo |
User consent for external navigation implementation pending |
||
| Fixed Layout |
pass |
Single page spread mode supported |
||
| Fixed Layout |
pass |
SVG with multiple ICB viewports rendered correctly |
||
| Fixed Layout |
pass |
XHTML viewport creates proper ICB |
||
| Fixed Layout |
fail |
Device-specific viewport sizing not fully implemented |
||
| Fixed Layout |
pass |
Multiple ICB containers in XHTML handled correctly |
||
| Fixed Layout |
fail |
Multiple viewport declarations not properly handled |
||
| Fixed Layout |
fail |
Repeated viewport meta handling incomplete |
||
| Fixed Layout |
pass |
Various viewport unit types handled correctly |
||
| Fixed Layout |
fail |
Two-page spread layout mode incomplete implementation |
||
| Fixed Layout |
fail |
X-axis center alignment in reflow mode not working |
EPUB Reading System 3.4 Assessment (Specification)
Evaluation Basis: W3C EPUB Reading System 3.4 Specification
| Requirement | Level | Result | Notes |
|---|