Conformance Report - Desktop
The application features extensive accessibility interoperability and content customization, It performs well against WCAG 2.2, UAAG 2.0, and DAISY requirements, though some advanced features and interface zoom are still limited.
About This Report
- Product Name:
- Thorium Reader
- Version:
- 3
- Platform:
- Desktop (Windows, macOS, Linux)
- Evaluation Date:
- 2025-02-26
Changelog
- 2025-02-26: Initial conformance report for Thorium Reader Desktop 3
- 2025-01-15: Evaluation testing phase
- 2024-12-01: Accessibility audit and code review
More about this evaluation
Evaluation Methodology
The evaluation included the following testing approaches:
Tested Scenarios
- August 15, 2025: Thorium Reader 3 with NVDA on Windows
- August 15, 2025: Thorium Reader 3 on Windows
- August 15, 2025: Thorium Reader 3 on macOS
Standards & References
- Web Content Accessibility Guidelines (WCAG)
- Version: 2.2 - Reference: https://www.w3.org/WAI/WCAG22/
- User Agent Accessibility Guidelines (UAAG)
- Version: 2.0 - Reference: https://www.w3.org/TR/UAAG20/
- DAISY Reading Apps User Requirements (DAISY URS)
- Version: 1.0 - Reference: https://daisy.org/s/readingURS/FINAL-20251031
Detailed Reports
WCAG Conformance Results
Thorium Reader Desktop provides comprehensive access to assistive technologies and offers a variety of customisation options for content display and interface behaviour. In many cases, it meets the Level AAA criteria. However, there are certain limitations: the lack of a zoom function for the interface can detract from the reading experience, and some specialised features have not yet been tested.
WCAG Conformance Details
1.1.1 Non-text ContentAll non-text content that is presented to the user has a text alternative that serves the equivalent purpose. | A | passed | all visual information is also available as text |
1.2.1 Audio-only and Video-only (Prerecorded)Either an alternative for time-based media or an audio track is provided that presents equivalent information for prerecorded video-only content. | A | passed | Thorium Reader can restitue publications with pre-recorded audio or video. |
1.2.2 Captions (Prerecorded)Captions are provided for all prerecorded audio content in synchronized media, except when the media is a media alternative for text and is clearly labeled as such. | A | passed | Thorium Reader can restitue publications with pre-recorded captions. |
1.2.4 Captions (Live)Captions are provided for all live audio content in synchronized media. | AA | inapplicable | Live captions may be available depending on the video-service provided by the ebook creator. |
1.2.5 Audio Description (Prerecorded)Audio description is provided for all prerecorded video content in synchronized media. | AA | passed | Thorium Reader can restitue publications with pre-recorded Audio descriptions. |
1.2.6 Sign Language (Prerecorded)Sign language interpretation is provided for all prerecorded audio content in synchronized media. | AAA | passed | Thorium Reader can restitue publications with pre-recorded Sign language videos. An experimental feature allows the reading of authored-synchronisation between text and video. |
1.2.7 Extended Audio Description (Prerecorded)Where pauses in foreground audio are insufficient to allow audio descriptions to convey the sense of the video, extended audio description is provided for all prerecorded video content in synchronized media. | AAA | passed | Thorium Reader can restitue publications with pre-recorded extended audio descriptions. |
1.2.8 Media Alternative (Prerecorded)An alternative for time-based media is provided for all prerecorded synchronized media and for all prerecorded video-only media. | AAA | passed | Thorium Reader can restitue publications with pre-recorded media alternative. |
1.2.9 Audio-only (Live)An alternative for time-based media that presents equivalent information for live audio-only content is provided. | AAA | passed | Thorium Reader can restitue publications with live-audio only, depending of the streaming application chosen and implemented by the ebook-creator. |
1.3.1 Info and RelationshipsInformation, structure, and relationships conveyed through presentation can be programmatically determined or are available in text. | A | passed | Thorium Reader makes use of HTML markup with additional ARIA roles when necessary. It also fully restitues all XHTML and ARIA markup as authored in publications. |
1.3.2 Meaningful SequenceWhen the sequence in which content is presented affects its meaning, a correct reading sequence can be programmatically determined. | A | passed | |
1.3.3 Sensory CharacteristicsInstructions provided for understanding and operating content do not rely solely on sensory characteristics of components such as shape, color, size, visual location, orientation, or sound. | A | passed | |
1.3.4 OrientationContent does not restrict its view and operation to a single display orientation, such as portrait or landscape, unless a specific display orientation is essential. | AA | passed | |
1.3.5 Identify Input PurposeThe purpose of each input field collecting information about the user can be programmatically determined when the input field serves a purpose identified in the Input Purposes for user interface components section. | AA | passed | |
1.3.6 Identify PurposeIn content implemented using markup languages, the purpose of user interface components, icons, and regions can be programmatically determined. | AAA | passed | |
1.4.1 Use of ColorColor is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element. | A | passed | |
1.4.2 Audio ControlIf any audio on a web page plays automatically for more than 3 seconds, either a mechanism is available to pause or stop the audio, or a mechanism is available to control audio volume independently from the overall system volume level. | A | passed | |
1.4.3 Contrast (Minimum)The visual presentation of text and images of text has a contrast ratio of at least 4.5:1, except for large text (3:1), incidental, or logotypes. | AA | passed | |
1.4.4 Resize textExcept for captions and images of text, text can be resized without assistive technology up to 200 percent without loss of content or functionality. | AA | failed | The text from the interface cannot be resized. |
1.4.5 Images of TextIf the technologies being used can achieve the visual presentation, text is used to convey information rather than images of text except for customizable or essential cases. | AA | passed | |
1.4.6 Contrast (Enhanced)The visual presentation of text and images of text has a contrast ratio of at least 7:1, except for large text (4.5:1), incidental, or logotypes. | AAA | passed | |
1.4.7 Low or No Background AudioFor prerecorded audio-only content that contains primarily speech in the foreground, is not an audio CAPTCHA or audio logo, and is not vocalization intended to be primarily musical expression such as singing or rapping, at least one of the following is true: no background, turn off, or 20 dB. | AAA | passed | |
1.4.8 Visual PresentationFor the visual presentation of blocks of text, a mechanism is available to achieve the following: foreground and background colors can be selected, width is no more than 80 characters or glyphs, text is not justified, line spacing is at least space-and-a-half within paragraphs, paragraph spacing is at least 1.5 times larger than line spacing, and text can be resized without assistive technology up to 200 percent. | AAA | passed | |
1.4.9 Images of Text (No Exception)Images of text are only used for pure decoration or where a particular presentation of text is essential to the information being conveyed. | AAA | passed | |
1.4.10 ReflowContent can be presented without loss of information or functionality, and without requiring scrolling in two dimensions for vertical scrolling content at 320 CSS pixels width or horizontal scrolling content at 256 CSS pixels height. | AA | failed | The text from the interface cannot be resized. |
1.4.11 Non-text ContrastThe visual presentation of user interface components and graphical objects has a contrast ratio of at least 3:1 against adjacent color(s). | AA | passed | |
1.4.12 Text SpacingIn content implemented using markup languages that support the following text style properties, no loss of content or functionality occurs by setting line height to at least 1.5 times the font size, spacing following paragraphs to at least 2 times the font size, letter spacing to at least 0.12 times the font size, and word spacing to at least 0.16 times the font size. | AA | passed | |
1.4.13 Content on Hover or FocusWhere receiving and then removing pointer hover or keyboard focus triggers additional content to become visible and then hidden, the following are true: dismissible, hoverable, persistent. | AA | passed | |
2.1.1 KeyboardAll functionality of the content is operable through a keyboard interface without requiring specific timings for individual keystrokes, except where the underlying function requires input that depends on the path of the user's movement and not just the endpoints. | A | passed | |
2.1.2 No Keyboard TrapIf keyboard focus can be moved to a component of the page using a keyboard interface, then focus can be moved away from that component using only a keyboard interface, and, if it requires more than unmodified arrow or tab keys or other standard exit methods, the user is advised of the method for moving focus away. | A | passed | |
2.1.3 Keyboard (No Exception)All functionality of the content is operable through a keyboard interface without requiring specific timings for individual keystrokes. | AAA | passed | |
2.1.4 Character Key ShortcutsIf a keyboard shortcut is implemented in content using only letter (including upper- and lower-case letters), punctuation, number, or symbol characters, then at least one of the following is true: turn off, remap, or active only on focus. | A | passed | |
2.2.1 Timing AdjustableFor each time limit that is set by the content, at least one of the following is true: turn off, adjust, extend, real-time exception, essential exception, or 20 hour exception. | A | passed | |
2.2.2 Pause, Stop, HideFor moving, blinking, scrolling, or auto-updating information, a mechanism for the user to pause, stop, or hide it is available unless the movement is part of an activity where it is essential. | A | passed | |
2.2.3 No TimingTiming is not an essential part of the event or activity presented by the content, except for non-interactive synchronized media and real-time events. | AAA | passed | |
2.2.4 InterruptionsInterruptions can be postponed or suppressed by the user, except interruptions involving an emergency. | AAA | passed | |
2.2.5 Re-authenticatingWhen an authenticated session expires, the user can continue the activity without loss of data after re-authenticating. | AAA | inapplicable | |
2.2.6 TimeoutsUsers are warned of the duration of any user inactivity that could cause data loss, unless the data is preserved for more than 20 hours when the user does not take any actions. | AAA | inapplicable | |
2.3.1 Three Flashes or Below ThresholdWeb pages do not contain anything that flashes more than three times in any one second period, or the flash is below the general flash and red flash thresholds. | A | passed | |
2.3.2 Three FlashesWeb pages do not contain anything that flashes more than three times in any one second period. | AAA | passed | |
2.3.3 Animation from InteractionsMotion animation triggered by interaction can be disabled, unless the animation is essential to the functionality or information being conveyed. | AAA | passed | |
2.4.1 Bypass BlocksA mechanism is available to bypass blocks of content that are repeated on multiple web pages. | A | passed | |
| A | passed | ||
2.4.3 Focus OrderIf a web page can be navigated sequentially and the navigation sequences affect meaning or operation, focusable components receive focus in an order that preserves meaning and operability. | A | passed | |
2.4.4 Link Purpose (In Context)The purpose of each link can be determined from the link text alone or from the link text together with its programmatically determined link context, except where the purpose of the link would be ambiguous to users in general. | A | passed | |
2.4.5 Multiple WaysMore than one way is available to locate a web page within a set of web pages except where the web page is the result of, or a step in, a process. | AA | passed | |
| AA | passed | ||
2.4.7 Focus VisibleAny keyboard operable user interface has a mode of operation where the keyboard focus indicator is visible. | A | passed | |
| AAA | passed | ||
2.4.9 Link Purpose (Link Only)A mechanism is available to allow the purpose of each link to be identified from link text alone, except where the purpose of the link would be ambiguous to users in general. | AAA | passed | |
| AAA | passed | ||
2.4.11 Focus Not Obscured (Minimum)When a user interface component receives keyboard focus, the component is not entirely hidden behind author-created content. | AA | passed | |
2.4.12 Focus Not Obscured (Enhanced)When a user interface component receives keyboard focus, no part of the component is hidden behind author-created content. | AAA | passed | |
2.4.13 Focus AppearanceWhen the keyboard focus indicator is visible, an area of the focus indicator meets the following: is at least as large as the area of a 2 CSS pixel thick perimeter of the unfocused component or sub-component, and has a contrast ratio of at least 3:1 between the same pixels in the focused and unfocused states. | AAA | passed | |
2.5.1 Pointer GesturesAll functionality that uses multipoint or path-based gestures for operation can be operated with a single pointer without a path-based gesture, unless a multipoint or path-based gesture is essential. | A | passed | |
2.5.2 Pointer CancellationFor functionality that can be operated using a single pointer, at least one of the following is true: no down-event, abort or undo, up reversal, or essential. | A | passed | |
2.5.3 Label in NameFor user interface components with labels that include text or images of text, the name contains the text that is presented visually. | A | passed | |
2.5.4 Motion Actuation | A | passed | |
2.5.5 Target Size (Enhanced)The size of the target for pointer inputs is at least 44 by 44 CSS pixels except when equivalent, inline, user agent control, or essential. | AAA | passed | |
2.5.6 Concurrent Input MechanismsWeb content does not restrict use of input modalities available on a platform except where the restriction is essential, required to ensure the security of the content, or required to respect user settings. | AAA | passed | |
2.5.7 Dragging MovementsAll functionality that uses a dragging movement for operation can be achieved by a single pointer without dragging, unless dragging is essential or the functionality is determined by the user agent and not modified by the author. | AA | passed | |
2.5.8 Target Size (Minimum)The size of the target for pointer inputs is at least 24 by 24 CSS pixels, except when spacing, equivalent, inline, user agent control, or essential. | AA | passed | |
3.1.1 Language of PageThe default human language of each web page can be programmatically determined. | A | passed | |
3.1.2 Language of PartsThe human language of each passage or phrase in the content can be programmatically determined except for proper names, technical terms, words of indeterminate language, and words or phrases that have become part of the vernacular of the immediately surrounding text. | AA | passed | |
3.1.3 Unusual WordsA mechanism is available for identifying specific definitions of words or phrases used in an unusual or restricted way, including idioms and jargon. | AAA | failed | There is an ongoing discussion about Dictionary Integration in Thorium Reader |
3.1.4 AbbreviationsA mechanism for identifying the expanded form or meaning of abbreviations is available. | AAA | passed | If the abbr tag is present in a puiblication, it will be rendered as a tooltip and made available to assistive technologies. |
3.1.5 Reading LevelWhen text requires reading ability more advanced than the lower secondary education level after removal of proper names and titles, supplemental content, or a version that does not require reading ability more advanced than the lower secondary education level, is available. | AAA | inapplicable | |
3.1.6 PronunciationA mechanism is available for identifying specific pronunciation of words where meaning of the words, in context, is ambiguous without knowing the pronunciation. | AAA | inapplicable | |
3.2.1 On FocusWhen any user interface component receives focus, it does not initiate a change of context. | A | passed | |
3.2.2 On InputChanging the setting of any user interface component does not automatically cause a change of context unless the user has been advised of the behavior before using the component. | A | passed | |
3.2.3 Consistent NavigationNavigational mechanisms that are repeated on multiple web pages within a set of web pages occur in the same relative order each time they are repeated, unless a change is initiated by the user. | AA | passed | |
3.2.4 Consistent IdentificationComponents that have the same functionality within a set of web pages are identified consistently. | AA | passed | |
3.2.5 Change on RequestChanges of context are initiated only by user request or a mechanism is available to turn off such changes. | AAA | passed | |
3.2.6 Consistent HelpIf a web page contains any help mechanisms, and those mechanisms are repeated on multiple web pages within a set of web pages, they occur in the same order relative to other page content, unless a change is initiated by the user. | A | passed | |
3.3.1 Error IdentificationIf an input error is automatically detected, the item that is in error is identified and the error is described to the user in text. | A | passed | |
3.3.2 Labels or InstructionsLabels or instructions are provided when content requires user input. | A | passed | |
3.3.3 Error SuggestionIf an input error is automatically detected and suggestions for correction are known, then the suggestions are provided to the user, unless it would jeopardize the security or purpose of the content. | AA | passed | |
3.3.4 Error Prevention (Legal, Financial, Data)For web pages that cause legal commitments or financial transactions for the user to occur, that modify or delete user-controllable data in data storage systems, or that submit user test responses, at least one of the following is true: reversible, checked, or confirmed. | AA | inapplicable | |
| AAA | inapplicable | ||
3.3.6 Error Prevention (All)For web pages that require the user to submit information, at least one of the following is true: reversible, checked, or confirmed. | AAA | passed | |
3.3.7 Redundant EntryInformation previously entered by or provided to the user that is required to be entered again in the same process is either auto-populated, or available for the user to select. | A | passed | |
3.3.8 Accessible AuthenticationA cognitive function test is not required for any step in an authentication process unless that step provides at least one of the following: alternative, mechanism, object recognition, or personal content. | AA | inapplicable | |
3.3.9 Accessible Authentication (No Exception)A cognitive function test is not required for any step in an authentication process unless that step provides at least one of the following: alternative or mechanism. | AAA | inapplicable | |
4.1.1 Parsing | A | inapplicable | |
4.1.2 Name, Role, ValueFor all user interface components, the name and role can be programmatically determined; states, properties, and values that can be set by the user can be programmatically set; and notification of changes to these items is available to user agents, including assistive technologies. | A | passed | |
4.1.3 Status MessagesIn content implemented using markup languages, status messages can be programmatically determined through role or properties such that they can be presented to the user by assistive technologies without receiving focus. | AA | passed |
UAAG Conformance Results
Thorium Reader Desktop shows high conformance to UAAG 2.0, with strong support for keyboard operation, user preference controls, accessible documentation, and integration with platform accessibility services. Most criteria are passed across levels A to AAA; remaining non-conformances are concentrated in a limited set of user-adjustment features, notably configurable defaults for some alternative content behaviors and full interface-level scaling/zoom consistency.
UAAG Conformance Details
1.1.1 Render Alternative Content | A | passed |
|
1.1.2 Indicate Unrendered Alternative Content | A | failed |
|
1.1.3 Replace Non-Text Content | A | passed | Caption Clean view is available for TTS reading. It should be extended to visual reading (see Issue #3141 Extend Caption / Clean View to visual reading (UAAG1.1.3 Replace Non-Text Content)) |
1.1.4 Facilitate Clear Display of Alternative Content for Time-based MediaFacilitate Clear Display of Alternative Content for Time-based Media | A | passed | The video player indicates the presence of subtitles if they are available. Embed players are the responsibility of the ebook content creator. |
1.1.5 Provide Configurable Alternative Content Defaults | AA | failed | |
1.1.6 Use Configurable Text for Time-based Media Captions | AA | passed | |
1.1.7 Allow Resize and Reposition of Time-based Media AlternativesAllow Resize and Reposition of Time-based Media Alternatives | AAA | passed | |
1.2.1 Support Repair by Assistive Technologies | AA | passed | |
1.3.1 Distinguishable Highlighting | A | passed | |
1.3.2 Highlighting Options | AA | passed | |
1.3.3 Highlighting Active Keyboard Focus | AA | passed | |
1.3.4 Distinguishing Enabled Elements | AA | passed | |
1.3.5 Distinguishing Enabled Elements | AA | passed | |
1.4.1 Basic text formatting (Globally) | A | passed | |
1.4.2 Basic text formatting (by Element) | AA | passed | |
1.4.3 Blocks of text (Globally) | AA | passed | |
1.4.4 Configured and Reflowed Text Printing | AA | passed | |
1.4.5 Default to platform text settings | AA | passed | |
1.4.6 Advanced text formatting | AAA | passed | |
1.5.1 Global Volume | A | passed | |
1.6.1 Speech Rate, Volume, and Voice | AA | passed | |
1.6.2 Speech Pitch and Range | AA | passed | |
1.6.3 Synthesized Speech Features | AA | passed | |
1.6.4 Synthesized Speech Language | AA | passed | |
1.6.5 Advanced Speech Characteristics | AAA | passed | |
1.7.1 Disable Author Stylesheets | A | passed | |
1.7.2 Support User Stylesheet or User Style Modification MechanismSupport User Stylesheet or User Style Modification Mechanism | A | passed | |
1.7.3 Apply User Stylesheets | A | passed | |
1.7.4 Save Copies of Stylesheets | AA | passed | |
1.8.1 Highlight Viewport | A | passed | |
1.8.2 Move Viewport to Selection and Focus | A | passed | |
1.8.3 Provide Viewport Scrollbars | A | passed | |
1.8.4 Indicate Viewport Position | A | passed | |
1.8.5 Allow Zoom | A | failed | Additional Info: Reflowable contents can be adjusted in size and fixed layout contents can be zoomed. However the text from the interface cannot be resized. This is tracked in Issue Make the interface scalable |
1.8.6 Maintain Point of Regard | A | passed | |
1.8.7 Customize Viewport Highlighting | AA | passed | |
1.8.8 Allow Viewport Resize | AA | passed | |
1.8.9 Provide Viewport History | AA | passed | |
1.8.10 Allow Top-Level Viewport Open on Request | AA | passed | |
1.8.11 Allow Top-Level Viewport Focus Control | AA | passed | |
1.8.12 Allow Same User Interface | AA | passed | |
1.8.13 Multi-Column Text Reflow | AA | passed | |
1.8.14 Ignore Fixed Unit Dimensions | AA | passed | |
1.8.15 Linearize Content | AA | passed | |
1.8.16 Provide Web Page Bookmarks | AAA | passed | |
1.9.1 Outline View | AA | passed | |
1.9.2 Source View | AAA | failed | Source view is available only with development versions, without LCP protection support. |
1.10.1 Show Related Elements | AA | passed | |
1.10.2 Show Element Hierarchy | AAA | passed | |
2.1.1 Provide Full Keyboard Functionality | A | passed | |
2.1.2 Has Keyboard Focus | A | passed | |
2.1.3 Avoid Keyboard Traps | A | passed | |
2.1.4 Separate Selection from Activation | A | passed | |
2.1.5 Follow Text Keyboard Conventions | A | passed | |
2.1.6 Make Keyboard Access Efficient | A | passed | |
2.2.1 Sequential Navigation Between Elements | A | passed | |
2.2.2 Sequential Navigation Between Landmarks | A | passed | |
2.2.3 Default Navigation Order | AA | passed | |
2.2.4 Options for Wrapping in Navigation | AA | passed | |
2.3.1 Allow Direct Navigation to Enabled Elements | AA | passed | |
2.3.2 Allow Direct Activation of Enabled Elements | AA | passed | |
2.3.3 Present Direct Commands from Rendered Content | AA | passed | |
2.3.4 Present Direct Commands in User Interface | AA | passed | |
2.3.5 Allow Customized Keyboard Commands | AA | passed | |
2.4.1 Text Search | A | passed | |
2.4.2 Search Direction | A | passed | |
2.4.3 Match Found | A | passed | |
2.4.4 Alert on Wrap or No Match | A | passed | |
2.4.5 Alternative Content Search | AA | passed | |
2.5.1 Provide Structural Navigation by Heading and within Tables | AA | passed | |
2.6.1 Allow Persistent Accessibility Settings | A | passed | |
2.6.2 Allow Restore All to Default | A | passed | |
2.6.3 Allow Multiple Sets of Preference Settings | AA | passed | |
2.6.4 Allow Preference Changes from outside the User Interface | AAA | passed | |
2.6.5 Make Preference Settings Transferable | AAA | passed | |
2.7.1 Customize Display of Controls for User Interface Commands, Functions, and Add-onsCustomize Display of Controls for User Interface Commands, Functions, and Add-ons | AA | passed | |
2.8.1 Adjustable Time Limits | A | passed | |
2.9.1 Three Flashes or Below Threshold | A | passed | |
2.9.2 Three Flashes | AAA | passed | |
2.10.1 Time-Based Media Load-Only | A | passed | |
2.10.2 Execution Placeholder | A | passed | |
2.10.3 Execution Toggle | A | passed | |
2.10.4 Adjustable Playback Rate for Prerecorded Content | AA | passed | |
2.10.5 Stop/Pause/Resume Time-Based Media | A | passed | |
2.10.6 Navigation of Time-Based Media by Time | A | passed | |
2.10.7 Navigation of Time-Based Media by Semantics | AA | passed | |
2.10.8 Video Contrast and Brightness | AAA | passed | |
2.11.1 Text Input With Any Device | AA | passed | |
3.1.1 Text Entry Undo | A | passed | |
3.1.2 Settings Changes can be Reversed or Confirmed | A | passed | |
3.1.3 Retrieval Progress | A | passed | |
3.1.4 Spell Check | AA | passed | |
3.1.5 Back Button | AA | passed | |
3.1.6 Form Submission Confirm | AA | passed | |
3.1.7 Form Auto-Fill | AA | passed | |
3.1.8 Save Form Entries | AA | passed | |
3.2.1 Accessible Documentation | A | passed | |
3.2.2 Describe Accessibility Features | A | passed | |
3.2.3 Document All Features | AA | passed | |
3.2.4 Changes Between Versions | AA | passed | |
3.2.5 Centralized View | AAA | passed | |
3.3.1 Avoid Unpredictable Focus | A | passed | |
4.1.1 Support Platform Accessibility Services | A | passed | |
4.1.2 Expose Accessible Properties | A | passed | |
4.1.3 Provide Equivalent Accessible Alternatives | A | passed | |
4.1.4 DOMs Programmatically Available as fallback | A | passed | |
4.1.5 Make Content Interaction Programmatically Available | A | passed | |
5.1.1 Comply with WCAG | AA | passed | |
5.1.2 Implement Accessibility Features of Web Content Technology SpecificationsImplement Accessibility Features of Web Content Technology Specifications | A | passed | |
5.1.3 Implement Accessibility Features of the Platform | A | passed | |
5.1.4 Allow Content Elements to be Rendered in Alternative ViewersAllow Content Elements to be Rendered in Alternative Viewers | AA | passed | |
5.1.5 Enable Reporting of User Agent Accessibility Faults | AAA | passed |
DAISYURS Conformance Results
Thorium Reader Desktop demonstrates strong overall alignment with the DAISY Reading Apps User Requirements, with broad support across core navigation, read-aloud, screen reader interoperability, annotation, and library workflows. Most must-have requirements are passed, while remaining gaps are concentrated in selected advanced or potentially valuable capabilities such as citation support, fixed-layout reflow, tactile graphics support, and some export or recommendation features.
DAISYURS Conformance Details
3.1 Navigation: Forward and BackwardUser must have straightforward way to navigate forward and backward through content (text or audio-based). | must-have | passed | |
3.2 Navigation: Table of ContentsUser must be able to navigate publication using Table of Contents with focus matching current reading position, supporting hierarchical/nested structures. | must-have | passed | |
3.3 Navigation: By PagesUser must have way to navigate content by page numbers; may include pseudo-pages for publications without page markup. | must-have | passed | |
3.4 Navigation: Audio LocationUser must have way to go to specific location in audio-based content via time, percentage, or other approach. | must-have | passed | |
3.5 Navigation: Return to Last LocationUser must be able to return to last reading location when reopening publication; automatic saving required. | must-have | passed | |
3.6 Navigation: Determine Current LocationUser must be able to determine current position in content; minimum information is percentage progress. | must-have | passed | |
3.7 Navigation: Return to Previous LocationUser must be able to go back to previous location in content. | must-have | passed | |
4.1 Screen Reader: User InterfaceUser must be able to use screen reader in user interface; all components must provide semantic labels and roles per WCAG 2.1 and ARIA. | must-have | passed | |
4.2 Screen Reader: NavigationScreen reader users must be able to navigate through content by headings, block items, lines, words and characters. | must-have | passed | |
4.3 Screen Reader: Continuous ReadingScreen reader users must be able to read continuously from current position, pause, and resume from paused location. | must-have | passed | |
4.4 Screen Reader: Semantic MarkupUser must be able to leverage screen reader's ability to interpret semantic markup; headings, lists, tables, images must be exposed. | must-have | passed | |
4.5 Screen Reader: Scrolling ModeUser must be able to use screen reader in scrolling mode. | must-have | passed | |
4.6 Screen Reader: Internal HyperlinksScreen reader users must be able to navigate confidently between internal hyperlinks and read from new navigation position. | must-have | passed | |
4.7 Screen Reader: Actionable ContentScreen reader users must be able to activate actionable content such as links, buttons, expandable elements. | must-have | passed | |
4.8 Screen Reader: Footnotes/EndnotesScreen reader users must be able to detect footnote references, reach footnote content, read it, and return to original position. | must-have | passed | |
4.9 Screen Reader: Additional NavigationUser could use additional navigation features provided by reading app such as navigation by heading, landmarks, tables, figures, math. | could-have | passed | |
5.1 Read Aloud: Text-to-SpeechUser must be able to listen to text-based content using text-to-speech; seamless transition between embedded audio, TTS, and screen reader. | must-have | passed | |
5.2 Read Aloud: Starting PositionUser must control starting position of read aloud; starting from screen reader position, indicated position, or reading position. | must-have | passed | |
5.3 Read Aloud: Selected ContentUser must be able to select text (word, phrase, sentence, paragraph) and have it read aloud. | must-have | passed | |
5.4 Read Aloud: Continuous ReadingUser must listen to read aloud without manually advancing; continuous until end or user interruption. | must-have | passed | |
5.5 Read Aloud: Logical Reading OrderRead aloud must follow logical reading order of content rather than visual layout. | must-have | passed | |
5.6 Read Aloud: Appropriate PausesRead aloud must use appropriate pauses after headings, paragraphs, list items rather than continuous reading. | must-have | passed | |
5.7 Read Aloud: View TextUser must see text being read aloud with automatic display updates; text highlighted may move to different part while read aloud continues. | must-have | passed | |
5.8 Read Aloud: Visual EmphasisUser must be able to visually emphasize text being read aloud and turn feature off. | must-have | passed | |
5.9 Read Aloud: Emphasis CustomizationUser must be able to change color or style of visual emphasis; could adjust number of words highlighted. | must-have | passed | |
5.10 Read Aloud: LanguageUser must hear read aloud in correct language when reading content with language tags; could override language switching. | must-have | passed | |
5.11 Read Aloud: Playback SpeedUser must control playback speed of read aloud; speed adjustments maintain natural pitch and pronunciation. | must-have | passed | |
5.12 Read Aloud: Voice ControlUser must be able to control voice of read aloud. | must-have | passed | |
5.13 Read Aloud: Image Alt TextUser must be able to listen to image alt text included in read aloud. | must-have | passed | |
5.14 Read Aloud: Math ContentUser must be able to listen to math content when using read aloud. | must-have | passed | |
5.15 Read Aloud: Locked DeviceUser must be able to lock mobile device and use read aloud. | must-have | passed | |
5.16 Read Aloud: Media ControlsUser must control read-aloud playback using device media controls (play, pause, skip, stop). | must-have | passed | |
5.17 Read Aloud: TablesUser must use read aloud with tables; must read left to right, top to bottom. | must-have | passed | |
5.18 Read Aloud: Expandable ContentUser must use read aloud with expandable/collapsible content; expanded content read, collapsed not read. | must-have | passed | |
5.19 Read Aloud: Escape StructuresUser must escape from certain structures when using read aloud and continue from following item. | must-have | passed | |
5.20 Read Aloud: Skip ContentUser must configure app to not announce skippable elements. | must-have | passed | |
5.21 Read Aloud: Reading ModesUser could choose from range of read aloud modes such as word, sentence, paragraph, page, chapter. | could-have | passed | |
5.22 Read Aloud: Pause LengthUser could adjust pause length between content blocks during read aloud. | could-have | passed | |
5.23 Read Aloud: Semantic ExpressivenessUser could choose to have semantic expressiveness for read aloud. | could-have | passed | |
6.1 Embedded Audio: PlaybackUser must access and play pre-recorded audio; seamless transition between embedded audio, TTS read aloud, and screen reader. | must-have | passed | |
6.2 Embedded Audio: Starting PositionUser must control starting position of embedded audio via time, percentage, or other approach. | must-have | passed | |
6.3 Embedded Audio: Continuous PlaybackUser must listen to embedded audio without manually advancing; continuous playback with optional sleep timer. | must-have | passed | |
6.4 Embedded Audio: Logical Reading OrderUser must listen to embedded audio in correct logical reading order matching publication structure. | must-have | passed | |
6.5 Embedded Audio: Synchronized TextUser must view corresponding text while listening to embedded audio if synchronized text available. | must-have | passed | |
6.6 Embedded Audio: Visual Emphasis ToggleUser must enable or disable visual emphasis of synchronized text during embedded audio playback. | must-have | passed | |
6.7 Embedded Audio: Emphasis CustomizationUser must customize color and style of visual emphasis; could adjust number of words highlighted. | must-have | passed | |
6.8 Embedded Audio: Playback SpeedUser must adjust playback speed without distortion; speed adjustments maintain natural pitch and pronunciation. | must-have | passed | |
6.9 Embedded Audio: Alt TextUser must listen to alt texts included in embedded audio and skip if supported. | must-have | passed | |
6.10 Embedded Audio: Math ContentUser must listen to math content included in embedded audio if present. | must-have | passed | |
6.11 Embedded Audio: Locked DeviceUser must lock mobile device and continue listening to embedded audio. | must-have | passed | |
6.12 Embedded Audio: Device ControlsUser must control embedded audio playback using device-level media controls. | must-have | passed | |
6.13 Embedded Audio: Table StructureUser must listen to embedded audio that conveys structure and content of tables. | must-have | passed | |
6.14 Embedded Audio: Expandable ContentUser must listen to embedded audio reflecting current state of expandable content; only expanded content plays. | must-have | passed | |
6.15 Embedded Audio: Escape StructuresUser can escape from defined structures during embedded audio playback and resume from following item. | must-have | passed | |
6.16 Embedded Audio: Skip ContentUser must configure embedded audio playback to skip content marked as skippable. | must-have | passed | |
6.17 Embedded Audio: Selected PortionUser could play embedded audio for selected portion of text if content is synchronized. | could-have | passed | |
6.18 Embedded Audio: Playback ModesUser could choose different playback modes for embedded audio including non-continuous playback. | could-have | passed | |
6.19 Embedded Audio: Pause LengthUser could adjust pause length between content blocks during embedded audio playback. | could-have | passed | |
7.1 Visual: TypefaceUser must change typeface of all text, choosing from sans serif and serif fonts. | must-have | passed | |
| must-have | passed | ||
| must-have | passed | ||
7.4 Visual: Text JustificationUser must turn off justification and center alignment of blocks of text. | must-have | passed | |
| must-have | passed | ||
7.6 Visual: Margins and Line LengthUser must change margins and adjust line length for blocks of text. | must-have | passed | |
7.7 Visual: Scrolling ViewUser must view reflowable content in scrolling view. | must-have | passed | |
7.8 Visual: Platform FeaturesUser must use app with high contrast and magnification features of operating system platform. | must-have | passed | |
7.9 Visual: Math ExpressionsUser must adjust size and color of math expressions by adjusting text's font size and color. | must-have | passed | |
7.10 Visual: Background and Foreground ColorsUser must personalize background and foreground colors. | must-have | passed | |
| must-have | passed | ||
7.12 Visual: Hide ContentUser must visually hide certain content such as page breaks and footnotes. | must-have | passed | |
7.13 Visual: Text StylingUser should remove visual text styling (underline, italic, bold). | must-have | passed | |
7.14 Visual: Reading EmphasisUser should visually emphasize text being read using highlight, ruler lines, or other means. | should-have | passed | |
7.15 Visual: Math EnlargementUser should enlarge math expressions for closer inspection. | should-have | passed | |
7.16 Visual: CapitalizationUser could change capitalization of text to sentence style. | should-have | passed | |
| could-have | passed | ||
7.18 Visual: Math ColorUser could display mathematical expressions without color formatting using consistent text color. | could-have | passed | |
7.19 Visual: Additional FeaturesAdditional visual adjustment features provided by reading app. | could-have | passed | |
8.1 Bookmarking: CreateUser must create bookmarks at arbitrary positions within content. | must-have | passed | |
8.2 Bookmarking: DeleteUser must delete bookmarks individually; could delete all bookmarks at once. | must-have | passed | |
8.3 Bookmarking: OverviewUser must view overview of all bookmarks sorted by appearance order and navigate from there. | must-have | passed | |
8.4 Bookmarking: IdentifyUser must identify each bookmark via meaningful system-generated title; should be editable or taggable. | must-have | passed | |
8.5 Bookmarking: Auto-SaveUser bookmarks must be saved automatically including during offline use. | must-have | passed | |
| must-have | passed | ||
| must-have | passed | ||
| must-have | passed | ||
| must-have | passed | ||
| should-have | passed | ||
9.6 Highlighting: Auto-SaveUser highlights must be saved automatically including during offline use. | must-have | passed | |
| should-have | passed | ||
| must-have | passed | ||
10.2 Notes: View in ContextUser must view notes in context such as margin or overlay maintaining reading position. | must-have | passed | |
10.3 Notes: Auto-SaveUser notes must be saved automatically including during offline use. | must-have | passed | |
| should-have | passed | ||
10.5 Notes: FormattingUser should apply basic formatting to note content (bold, italic, underline). | should-have | passed | |
| should-have | passed | ||
10.7 Notes: Read AloudUser should have notes read aloud individually or in sequence. | should-have | passed | |
| should-have | passed | ||
10.9 Notes: Format VarietyUser could create notes in formats beyond text such as handwriting, math notation, or video. | could-have | passed | |
11.1 Answers: InputUser must enter, edit and review answers into input fields embedded within publication. | must-have | passed | |
11.2 Answers: SaveUser must save answers automatically; ideally online with offline support and syncing. | must-have | passed | |
11.3 Answers: View PreviousUser must see previously saved answers when reopening book. | must-have | passed | |
11.4 Answers: Navigate FieldsScreen reader users must navigate between input fields. | must-have | passed | |
11.5 Answers: Text FormattingUser should format answers in text fields using basic rich text editor. | should-have | passed | |
| should-have | passed | ||
11.7 Answers: Custom FieldsUser could add custom input fields where none exist. | could-have | passed | |
11.8 Answers: SynchronizeUser could synchronize answers across multiple devices. | could-have | passed | |
| could-have | passed | ||
| must-have | passed | this remains dependant of the feed provider | |
12.2 Library: Search and BrowseUser must search, browse and acquire titles in service provider's collection. | must-have | passed | this remains dependant of the feed provider |
12.3 Library: Add TitlesUser must add titles from diverse sources (sideload content). | must-have | passed | this remains dependant of the feed provider |
12.4 Library: Serial SubscriptionsUser must subscribe to and unsubscribe from serial publications. | must-have | passed | this remains dependant of the feed provider |
| must-have | passed | this remains dependant of the feed provider | |
| must-have | passed | this remains dependant of the feed provider | |
12.7 Library: Manage SourcesUser must be able manage titles from multiple sources. | must-have | passed | this remains dependant of the feed provider |
12.8 Library: Manage CollectionUser must manage diverse collection with search, sort, filter, categorization. | must-have | passed | this remains dependant of the feed provider |
12.9 Library: Synchronized BookshelfBookshelf must automatically reflect changes made in synchronized services, syncing across devices. | must-have | passed | this remains dependant of the feed provider |
12.10 Library: Publication PreviewUser should be able to preview publication when available. | should-have | passed | this remains dependant of the feed provider |
12.11 Library: Open EPUB from File ManagerUser should be able to open EPUB files directly from file manager. | should-have | passed | this remains dependant of the feed provider |
13.1 Misc: DocumentationUser must have user-friendly documentation for reading system. | must-have | passed | |
13.2 Misc: Error MessagesUser must receive clear and user-friendly error messages. | should-have | passed | |
13.3 Misc: Protected ContentUser must access and read protected content using assistive technologies. | must-have | passed | |
| should-have | failed | ||
14.1 Less distraction mode / Zen mode / Simplified interfaceA simplified or 'Zen' mode should be available, hiding most interface controls and presenting only essential reading functions. This reduces cognitive load and visual distractions, benefiting users with attention-related or cognitive disabilities. | potentially valuable | passed | |
14.2 Configurable reading preferencesThe application shall allow users to configure reading-related features both globally (via application settings) and locally (per document). Global settings (e.g. font size, contrast, voice speed) ensure consistency, while some features (e.g. layout or reading mode) may need to be overridden per document. | potentially valuable | passed | |
14.3 Follow external linksSome digital publications include hyperlinks to external web resources. Users should be able to follow these links and open them in an external web browser outside the reading system, supporting access to supplementary materials. | potentially valuable | passed | |
14.4 Parallel text viewing and navigation for linked contentUsers should be able to view multiple versions of a text side by side, such as an original and a translation, or a text with annotations, supporting comparative reading and study. | potentially valuable | Untested | No test file |
14.5 Display word counts in tables of contentsThe app should display the word count for each article or chapter in the table of contents, helping users estimate the length and effort required for each section. | potentially valuable | failed | |
14.6 Disclose text style properties to assistive technologiesText style properties such as font, line spacing, indentation, justification, and emphasis (bold, italic, underline) should be made available to assistive technologies, allowing screen readers and braille displays to convey visual structure and emphasis in non-visual ways. | potentially valuable | passed | |
14.7 Turn hyphenation on/offUsers should be able to enable or disable hyphenation. This customization supports a more accessible and comfortable reading experience, especially for users with dyslexia or low vision, by reducing visual clutter and improving text flow. | potentially valuable | cantTell | Hyphenation is turned off when text is not justified |
14.8 Reflow of text for fixed layout as wellText in fixed-layout documents should be able to reflow, allowing for better readability on small screens or when using magnification. | potentially valuable | failed | |
14.9 Regional navigation featuresThe app could provide region-based navigation which zooms in and steps the reader through a defined reading order. The reader could navigate between regions at their own pace. | potentially valuable | Untested | No test file |
14.10 Support for LLM inference or other processingThe app should allow integration of AI-powered features, such as summarization, question answering, or contextual assistance based on the content of the publication. | potentially valuable | failed | This would be subject to respect of copyrighted content by third party AI providers. |
14.11 Print or export specific contentUsers should be able to print or export selected parts of a publication, such as templates or activity pages. This supports hands-on learning and accessibility for users who benefit from physical or tactile formats. | potentially valuable | passed | PDF only |
14.12 Export content for alternative format productionThe app must allow users to export content in a digital format suitable for creating alternative accessible formats, such as braille or large print. | potentially valuable | failed | |
14.13 Support for tactile graphicsThe app should, where feasible, support the rendering of tactile graphics via compatible hardware such as refreshable Braille displays or pin-matrix devices, enabling users with visual impairments to access graphical content. | potentially valuable | failed | |
14.14 Dynamic content based on user inputThe user should be able to enter personal or contextual information—such as the number of servings in a recipe or a name for personalized narration—which then dynamically updates the content. This makes digital publications more engaging and helps reduce cognitive load. | potentially valuable | passed | |
14.15 Book recommendations based on personal preferencesThe app should provide personalized book recommendations based on the user's reading history, interests, or profile, making it easier to discover relevant content. | potentially valuable | failed | |
14.16 Book recommendation sharingUsers should be able to share book recommendations with others, for example via social media or within the reading platform, to encourage community and engagement. | potentially valuable | inapplicable | |
14.17 Borrowing history indicatorThe app should indicate which books a user has previously borrowed or read, helping them avoid duplicates and revisit favorites. | potentially valuable | cantTell | |
14.18 Digital clippings archiveThe app should allow users to save and organize excerpts or quotes from digital publications, functioning as a digital scrapbook for easy reference and study. | potentially valuable | cantTell |
