Thorium Reader Changelog

What's new in Thorium Reader 2.4.1

Mar 25, 2024
  • HOTFIX: Some users experienced a regression bug in Thorium v2.4.0 where the bookshelf would be empty at application launch, accompanied with an error message popup. This is due to publications that were previously imported with missing metadata titles (an edge case that should never occur as valid EPUB files guarantee the presence of title). This bug is non-fatal in the sense that upgrading to version 2.4.1 (or even downgrading to Thorium v2.3.0) allows publications to load in the bookshelf without any loss. However there is a possibility of corrupting the library database if Thorium 2.4.0 is not immediately closed after the error. Therefore we strongly recommend upgrading to 2.4.1.

New in Thorium Reader 2.3.0 (Aug 7, 2023)

  • This release includes the following (notable) new features, improvements and bug fixes:
  • New and updated translations: Bulgarian, Greek, Croatian, Korean, Portuguese (Portugal).
  • Reader / image zoom: major feature update from initial proof of concept, better user experience (finger touch, trackpad gestures, mouse wheel, keyboard), support for raster/bitmap images as well as SVG markup.
  • Reader / MathML: native rendering in Chromium (Electron v25), Thorium 2.2.0 included a version of Chromium that did not support MathML natively (MathJax was the only way to display MathML).
  • Reader / MathML: MathJax dynamic aria-label (speech text) is overridden by authored alt-text (if present), Thorium TTS readaloud speaks it, screen readers do too but have the option to dig further / deeper into the MathML structure (useful with screen reader specialised plugins).
  • Reader / navigation history: hyperlink activation now correctly sets the landmark for previous/next navigation.
  • Reader / text display: fixed left/right/justify text alignement ("start" can be left or right depending on document language), "automatic" is now "default" with changed SVG icon to avoid confusion.
  • Reader / UX: finger swipe gesture can now be used to turn pages (requires touch screen).
  • Reader text selection: double-click now works (bookmarks label for now, later in upcoming annotations feature).
  • Reader / TTS: fixed aria-label support on img (alongside alt attribute), epub:type pagebreak (and role doc- prefix), title/label takes precedence over inner text, same with links. NOTE: this will need future update to match W3C specifications for computation of accessible label and description.
  • Reader / TTS: fixed voice selection based on user choice + language match (for example: fr-FR vs. fr-CA variants, en-US vs. en-UK, user wins over authored lang).
  • Reader / TTS: fixed paused / stopped state in playback controls.
  • Reader / TTS: fixed support for Japanese ruby, RT markup is now ignored.
  • Reader / TTS: captions / simplified view, initial text without active word boundary was not escaped (ampersand character).
  • Reader / Popup footnotes: fixed handling of SVG a@href links.
  • Reader / HTML5 audio: fixed visible controls visibility.
  • Reader / EPUB: navigator.epubReadingSystem object injection in iframes (including SVG).
  • Reader / EPUB: FXL fixed-layout rendition-prefixed page-spread-left/center/right properties on spine item, was only parsing non-prefixed variant.
  • Reader / Media Overlays: fixed click on non-synchronised HTML element which now preserves current playback location / timestamp (was reseting to begining of document).
  • Reader / UX: mouse middle-click was causing opening in external Electron window.
  • DAISY: fixed v2.02 and v3.0 import of ncc.html or *.opf, now works when loading from non-zipped publications.
  • OPDS: feed entry fallback cascade was too permissive (publication info was incorrectly fetching borrow/buy links in some cases).
  • OPDS: fixed "search" relative URLs in OPDS1(XML) and OPDS2(JSON), fixed URI Templates curly brace escaping in URL path.
  • OPDS: fixed publication title which was not displayed.
  • OPDS: added display of accessibility metadata.
  • GUI: fixed dark/night and sepia modes in audiobook playback rate chooser and TTS + Media Overlays rate/voice choosers.
  • GUI: fixed edge-case of auto-focus fail on default dialog button (e.g. invoking the delete action from the popup menu was failing to auto-focus the default ok button, whereas this worked when reaching the same modal dialog prompt via the publication info sheet).
  • GUI / accessibility: improved keyboard shortcuts editor usability, for both screen reader and keyboard users
  • GUI / UX: improved error message during file import, unsupported extension / document type.
  • TTS: now enabled by default on Linux (Electron command line parameter "enable-speech-dispatcher").

New in Thorium Reader 2.1.1 Alpha 0 (96e502f) (Nov 26, 2022)

  • Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions/checkout@v2, actions/setup-node@v2

New in Thorium Reader 2.1.1 Alpha 0 (8a01dc6) (Nov 23, 2022)

  • Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions/checkout@v2, actions/setup-node@v2

New in Thorium Reader 2.1.1 Alpha 0 (86e3d4a) (Nov 17, 2022)

  • Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions/checkout@v2, actions/setup-node@v2

New in Thorium Reader 2.1.0 (Aug 11, 2022)

  • This release includes the following (notable) new features, improvements and bug fixes:
  • Added support for Dilicom library connector (not OPDS, special API).
  • Localisation: fixed French, Spanish, Portuguese (Portugal) and Swedish translations. Added the EDRLab.org documentation website link to all locales, in the "about Thorium" XHTML (the link currently redirects to a GitHub microsite that hosts Thorium's user guide).
  • Added basic "telemetry" feature: anonymous system information sent to EDRLab server on application startup.
  • Fixed reader window menus which were not closed automatically when switching to fullscreen.
  • Fixed README documentation, updated supported languages.

New in Thorium Reader 2.0.0 (May 30, 2022)

  • This release includes the following (notable) new features, improvements and bug fixes:
  • Electron v19, Chromium v102
  • Thorium's internal database format changed from native LevelDown/SQLite3 modules to JSON serialisation (this migration started several releases ago, but this major upgrade marks the point at which the native DB is not accessed anymore).
  • Updated locales: Swedish, Dutch, Spanish, Chinese, Japanese, Portugese
  • New translations: Basque, Galician, Catalan
  • New major bookshelf functionality: interactive "data grid", i.e. table graphical user interface that features filtered rows based on keyword search (instant for visual find-as-you-type, or deferred for screen reader usage with submit button + ARIA live assertive annoucement), paginated list of results, alphanumerical sortable columns (descending / ascending), basic vs. advanced choice of columns (e.g. title, author, publication format, publishing date, etc.), clickable cell contents to automatically search for selected text (includes support for user-provided tags), etc. etc.
  • Improved accessibility feature: alternative "where am I" for screen readers in speech mode only (i.e. assertive ARIA live region via toast notification) using the SHIFT-CTRL-K keyboard shortcut (this is equivalent to the existing "where am I" via SHIFT-CTRL-I popup modal dialog, with the advantage of not loosing focus in the publication HTML document)
  • Fixed a bug where publication HTML documents were reset to the first page when ALT-TAB between application windows.
  • Fixed issue with HTTP downloader, stream read/write pipe was causing invalid ZIP directory parsing (unwaited filesystem buffer flush), also improved request timeout handling.
  • EPUB metadata accessibility summary is exposed in publication info popup modal dialog, and several under-the-hood mechanics to pave the way to proper presentation of the full set of a11y metadata.
  • Several key improvements in user interface structure / semantics to ensure more confortable experience with screen readers.
  • Updated MathJax integration to support MathML alt text with special treatment of screen readers (specialised Math plugins offer structural exploration of Math markup), and separate treatment for Thorium's built-in TTS read aloud feature.
  • Fixed footnotes issue where the note contents inside "aside" HTML elements weren't hidden.
  • Fixed DAISY 2.02 support (NCC HTML file picker), and fixed XML/HTML parsing issues.
  • Fixed a Readium CSS bug where some publication document height was not fully extended Also fixed a performance issue with CSS columns.
  • Fixed night / dark mode GUI inconsistencies.
  • Improved visual rendering of Table Of Contents.
  • Improved toast notifications placement to avoid obscuring critical GUI parts, added keyboard focus and mouse click handling, easier clipboard copy of message, and fixed the overflow text clipping.
  • LCP META-INF/license.lcpl now excluded from hash computation to eliminate duplicates during EPUB import.
  • Fixed a Windows bug where drive letters other than C: were not supported when opening publications directly from the file explorer.
  • New image zoom feature with CTRL-click in publication HTML documents.
  • Fixed HTML5 audio controls mis-renderering due to CSS overrides.
  • Better, clearer presentation of "borrow" links and other publication acquisition details in the publication info modal popup dialog.
  • Fixed a PDF metadata bug related to date format parsing + timezone calculations.
  • Major update under the hood to support latest package dependencies, notably WebPack and associated build / development plugins, but also critical application components such as React, Router, etc. (Thorium remains on React 17 so that forks do not experience upgrade issues to React 18)

New in Thorium Reader 1.8.0 (Jan 10, 2022)

  • Electron v16
  • New feature: URL protocol handler (opds:// in addition to thorium://) and fixed command line interface / file browser actions, open multiple files
  • EPUB popup footnotes: added support for external documents
  • Accessibility feature: "where am i?" information in publication popup, including headings trail leading to current reading location in "where am I" section of publication info popup modal dialog, CTRL+i keyboard shortcut with SHIFT modifier key to focus
  • Accessibility: much improved accessibility support in content webview, keyboard focus management with screen readers
  • Accessibility: bookmark add/remove screen reader notifications (ARIA live via visual "toast" user interface), also fixed the bookmark add/remove logic based on keyboard interaction versus icon button, current text selection (for bookmark name), etc.
  • Accessibility fix: screen reader hyperlink activation was causing mouse interaction in some cases, which in turn triggered false positives in some critical user interaction detection logic to establish the current reading location (for bookmarking, resuming, etc.)
  • Accessible visual indicator of current reading location in table of content (navigation panel) as well as keyboard shortcut SHIFT CTRL N to focus directly on the current heading (existing CTRL N shortcut remains, which only opens the navigation panel, doesn't focus on the TOC tree)
  • TTS: synthetic speech readaloud of hidden DOM fragments now skipped, also improved mouse click hit testing and handling of deep MathML text nodes when alttext is present
  • TTS: MathML synthetic speech read aloud without MathJax via alttext attribute or fallback to element textual contents
  • TTS: synthetic speech read aloud of MathJax / MathML + added image / SVG playback highlight
  • DAISY: support for v2.02 ncc.html import and packaged / zipped fileset, audio-only with TOC and phrase granularity, as well as full-text full-audio (EPUB3 Media Overlays equivalent)
  • DAISY: fixed regression bug with exploded / unzipped fileset import (publication from OPF package file was failing)
  • Fixed EPUB pagebreaks (ARIA role and epub:type attributes)
  • GUI fix: OPDS add dialog text input keyboard default focus + button submit click on enter, also added OPDS URL to hover tooltip
  • GUI fix: keyboard usability of LCP passphrase input dialog (default focus of text input, default submit button on enter key)
  • CSS fix for dialogs, scrollbars were visible even when no overflow (Windows and Linux, or MacOS with optional "show always" system setting)
  • Fix for EPUBs with scripted drag-drop interactions
  • Improvement of CSS styles in library window, significant refactoring under the hood to ease maintenance
  • Bugfix: fixed-layout (FXL) zoom now with crisp text / vector graphics font scaling
  • OPDS: fixed a bug in W3C LPF acquisition
  • OPDS: fullscreen authentication window
  • OPDS: improved title+summary user interface (Atom XML)
  • OPDS: import of catalog of feeds from system ENV variable
  • Developer workflow: CSS styles are now "typed", i.e. static analysis of available classnames + compile-time checking, improved CSS loader / hashed classnames syntax
  • Documentation: updated French readme
  • LCP: localisation fixes (multilingual information)
  • Full Change Log

New in Thorium Reader 1.7.3 (Oct 23, 2021)

  • This release includes the following (notable) new features, improvements and bug fixes:
  • Electron version 14.x (fixes HTTPS LetsEncrypt + OpenSSL/BoringSSL certificate expiry bug)
  • Localisation: Georgian localization ('ka')
  • Accessibility: fixes screen reader ARIA labels on HTML controls
  • Keyboard interaction: left/right arrows (etc.) in contenteditable=true and textarea HTML elements must not interrupt typing / must not turn pages
  • OPDS error handling: support for "problem details" HTTP response JSON
  • Library search: lookup title and author data in publication bookshelf
  • OPDS search: URL with {searchTerms} curly braces query/path syntax must not be escaped, due to automatic URI percent encoding
  • OPDS authentication: OAuth response body was JSON content-type, must be form-urlencoded as per RFC6749