Web framework 5
5.0.0-rc.1 (2025-11-14)
These release notes describe the changes since version 4.6.0.
Known issues
When rendering PDFs using a ReaderView Element that is inside a Shadow DOM, offscreen
<canvas>elements may be added todocument.bodyinstead of the Shadow root. This will be fixed in5.0.0-rc.2.
New features
Added the new renderer
ContinuousScrollRendererthat shows all documents in a single vertical scrolling view.Added
ReaderView.getReadingAreaRange(). The Reading Area is a subset of the visible content that the renderer uses as the reference point for reading position calculations. Note that for paginated renderers the Reading Area range is the same as the visible range. Use thereadingAreaRangeChangedengine event to detect when this value changes.Note: We have marked
ReaderView.getReadingAreaRange()and its corresponding listenerreadingAreaRangeChangedas experimental APIs as we may change the definition of the Reading Area based on your feedback.
Added support for rendering the
ReaderViewin a Shadow DOM. Previously, our styles were not reaching theviewElementif it was inside a Shadow DOM but that has now been fixed.Added a new
ReaderView.goTo()optionscrollRendererScrollBehaviorto control how scroll renderers behave when the target position is already visible in theReaderView.Scroll renderers can now smoothly scroll to nearby positions. The duration of the smooth scrolling can be controlled with the renderer options
scrollAnimationDurationMsandscrollAnimationMaxDistance. Please refer to the API documentation for more information.Added a new event,
rendererScrollChanged, which is fired continuously while scroll renderers are scrolling.It is now possible to determine whether scrolling was initiated by the user using the
rendererScrollStartedevent by inspecting theuserGeneratedproperty.Added a new renderer option
swipeNavigationGestureThreshold. This option can be used to configure the swipe distance required to perform a swipe navigation. Additionally, swipe animations have been refined to start more smoothly.Added a new option to
ReaderView.scrollBy()calledsetReadingPositionToReadingAreaStart. When set totrue, the reading position moves to the start of the new Reading Area after scrolling, instead of staying until it leaves the visible range. This is now the default behavior ofscrollBy()Added support for EPUB switch/case elements.
Breaking changes
The minimum supported browser versions have changed to:
Safari 15
Firefox 128
Chrome 64
Edge 79
The distributed framework module files
.mjsare now real ES modules instead of importing the common JS version of the module.Typescript definition files are now built from Typescript 5.9.3
The distributed framework module files are now using ECMASCRIPT 2018 syntax.
Changed the
rendererScrollStartedevent type toIRendererScrollEngineEventReaderView.scrollBy()now returns aPromisethat resolves when the scrolling animation has finished.The
ContainerContentBlockTypeenum entryMATHML_SUB_SUPERSCRIPTwas renamed toMATHML_SUBSUP_SCRIPTto be consistent with its value.
Changes to default options
IEpubReaderPublicationOptions.documentSectioningOptions.enabledhas changed fromfalsetotrue.IReaderViewOptions.pageProgressionTimelineOptions.enabledhas changed fromtruetofalse.IReaderPublicationOptions.reflowOptions.unforcedTextBreak.widows.minLineshas changed from3to2.
If you are using PageProgressionTimeline, in addition to enabling it, you must also:
Set
IEpubReaderPublicationOptions.documentSectioningOptions.enabledto false
or
Set
IReaderViewOptions.pageProgressionTimelineOptions.forceCompleteRenditionto true
Removed old deprecated types and members
Removed
IReaderPublicationStorage.setStorageState()andIReaderPublicationStorage.getStorageState(). Please get the storage area instead usinggetStorageArea(), then useIReaderPublicationStorageArea.setItems()andIReaderPublicationStorageArea.getItems()instead.Removed
ISyncMediaPlayer.isPlaying(). Please use!isPaused() && isReady()instead.Removed
IReaderView.fetchRectsForVisibleContent(). Please useIVisiblePage.fetchRectsForVisibleContent()instead.Removed
ReadingSystemEngine.setOptions(). Pass options when callingnew ReadingSystemEngine()instead.Removed
IReaderDocument.fetchContentBlocks()Please useIReaderDocument.fetchContentBlockTree()instead.Removed
IReaderDocument.fetchLocatorForContentBlockData(). Please usefetchContentBlockTree(), and useIContentBlock.getLocator()instead.Removed the whole module
colibrio-readingsystem-indexengine. Please use the API available atReadingSystemEngine.getReaderDocumentSearch()instead.
Bugfixes
Fixed an issue with pinch-zooming in PDFs containing many links. Previously, if one finger was on a link, pinch-zooming failed.
Fixed an issue with publication CSS stylesheets not working on iOS 26.2 Beta 2.