Copyright © 2021-2022 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and permissive document license rules apply.
Description of the EPUB 3.3 tests.
This document is merely a W3C-internal document. It has no official standing of any kind and does not represent consensus of the W3C Membership.
w3c/epub-tests is the repository for the the tests to validate the implementability of W3C's EPUB 3.3 specifications, specifically the core EPUB 3.3 (the specification for the EPUB format itself) and the EPUB Reading Systems 3.3 (the specification for applications that read and render EPUB files).
The development of the tests is a community effort (see the list of contributors). Everyone is welcome to contribute tests; please read the separate contribution guidelines if you are interested.
This document provides a short overview for each test, grouped into separate tables by test categories. For each test, the columns in the tables are as follows:
must
, should
, or may
).By default, the table rows are ordered (alphabetically) by the test identifier values. By clicking on the headers (except for the two columns with the references) the tables can be dynamically reordered either in decreasing or increasing alphabetical order. This can be used, for example, to search for the tests that have been modified recently.
Strictly speaking, the should
and may
tests are not necessary for the official CR testing of
the specifications. These tests are currently visible in the tables; to change their visibility, click the
switch visibility button below.
Id | Req | Title | Description | Date | Specs | Ref |
---|---|---|---|---|---|---|
pub-data-urls_browsing-context | must | Data URL does not open in top-level context | The XHTML content contains an img element where the src attribute is given as a data URL. The reading system must display the image rather than opening it in a new top-level browsing context. | ’21.01.01 | (1) (2) | ❐ |
pub-data-urls_top-level-content | must | Data URL not opening as a top-level content document | The reading system must display an img (where src is a data URL) positioned at the bottom of the first page of a fixed layout ebook rather than opening the data URL as thought it were its own top-level content document. | ’21.12.03 | (1) (2) | ❐ |
pub-foreign_bad-fallback | must | Manifest fallback with unsupported fallback | This is a test of manifest fallbacks where both the spine item and the fallback are likely to be unsupported. The spine item is a DMG, with a fallback to a PSD file. | ’21.01.22 | (1) | ❐ |
pub-foreign_image | must | Manifest fallback with image | An HTML content file contains a PSD image, with a manifest fallback to a PNG image. This tests fallbacks for resources that are not in the spine. | ’21.01.12 | (1) | ❐ |
pub-foreign_json-spine | must | Manifest fallback With JSON content document in spine | This EPUB uses a JSON content file in the spine, with a manifest fallback to an HTML document. If the reading system does not support JSON, it should display the HTML. | ’21.01.12 | (1) | ❐ |
pub-foreign_xml-spine | must | Manifest fallback with XML in spine | This EPUB uses an ordinary XML content file with mimetype application/xml in the spine, with a manifest fallback to an HTML document. If the reading system does not support XML, it should display the HTML. | ’21.01.12 | (1) | ❐ |
pub-foreign_xml-suffix-spine | must | Manifest fallback with XML with suffix in spine | This EPUB uses an custom XML content file with mimetype application/dtc+xml in the spine, with a manifest fallback to an HTML document. If the reading system does not support XML, it should display the HTML. | ’21.01.12 | (1) | ❐ |
pub-xml-external-id | must | XML external entity not resolved | The XHTML content document contains a reference to an external entity. The reading system must not resolve it. | ’21.01.05 | (1) | ❐ |
pub-xml-names | must | Invalid XML element name | An XHTML element has an invalid name with two successive colons. The reading system must produce an error. | ’21.01.04 | (1) | ❐ |
pub-xml-non-validating_invalid | must | Invalid XML navigation document | The spine XML is invalid. The reading system must not display the navigation document. | ’21.01.05 | (1) | ❐ |
pub-xml-non-validating_unclosed | must | Unclosed XML tag | An XHTML element does not have a closing tag. The reading system must produce an error. | ’21.01.05 | (1) | ❐ |
pub-external-links | should | External Links open a new browser instance | The XHTML content document contains a link to an external website. The reading system should open it in a new browser instance after the reader's consent. | ’22.06.21 | (1) | ❐ |
pub-external-links_consent | should | Reader's consent for a 'mailto:' link | The XHTML content document contains a 'mailto:' link. The reading system should ask for the reader's consent before opening an email application. | ’22.06.21 | (1) | ❐ |
Id | Req | Title | Description | Date | Specs | Ref |
---|---|---|---|---|---|---|
pub-cmt-gif | must | GIF image | A GIF image is displayed as part of the XHTML content. | ’21.04.01 | (1) (2) | ❐ |
pub-cmt-jpeg | must | JPEG image | A JPEG image is displayed as part of the XHTML content. | ’21.04.01 | (1) (2) | ❐ |
pub-cmt-mp3 | must | MP3 audio | An MP3 audio file is displayed as part of the XHTML content. | ’21.04.07 | (1) (2) | ❐ |
pub-cmt-mp4 | must | MP4 audio | An MP4 audio file is displayed as part of the XHTML content. | ’21.04.07 | (1) (2) | ❐ |
pub-cmt-opus | must | OPUS audio | An OPUS audio file is displayed as part of the XHTML content. | ’21.04.07 | (1) (2) | ❐ |
pub-cmt-png | must | PNG image | A PNG image is displayed as part of the XHTML content. | ’21.04.01 | (1) (2) | ❐ |
pub-cmt-svg | must | SVG image | An SVG image is displayed as part of the XHTML content (as a reference, not embedded). | ’21.04.07 | (1) (2) | ❐ |
pub-cmt-webp | must | WEBP image | A WEBP image is displayed as part of the XHTML content. | ’21.04.01 | (1) (2) | ❐ |
Id | Req | Title | Description | Date | Specs | Ref |
---|---|---|---|---|---|---|
pkg-collections-unknown | must | Collection with unknown role | The package document contains a collection with an unknown role. The reading system must open the EPUB successfully. | ’21.01.26 | (1) | ❐ |
pkg-creator-order | must | Creators listed in order | Several creators are listed in the package document. The reading system must not display them out of order (but it may display only the first). | ’21.01.11 | (1) | ❐ |
pkg-linked-records | must | Package processed with linked metadata record | Reading System must process and display the title and creator metadata from the package document. An ONIX 3.0 format linked metadata record exists, but contains neither title nor creator metadata. | ’22.06.23 | (1) (2) | ❐ |
pkg-linked-records_link-order | must | Package processed with two linked metadata records containing title | Reading System must process and display the title and creator metadata from the package document. Two ONIX 3.0 format linked metadata records exist, and both contain a title; the first (in document order) must take precedence. | ’22.06.23 | (1) (2) | ❐ |
pkg-linked-records_link-priority | must | Package processed with linked metadata record containing title | Reading System must process and display the title and creator metadata from the package document. An ONIX 3.0 format linked metadata record exists, and contains a title; this must take precedence over the title set in the package document. | ’22.06.23 | (1) (2) | ❐ |
pkg-manifest-unknown | must | Manifest item with unknown properties | The package document contains a manifest item with unknown properties. The reading system must open the EPUB successfully. | ’21.01.18 | (1) | ❐ |
pkg-meta-unknown | must | Meta tag with unknown property | The package document contains a meta tag with an unknown property. The reading system must open the EPUB successfully. | ’21.01.11 | (1) | ❐ |
pkg-meta-whitespace | must | Whitespace removed from package metadata | The package document's title and creator contain leading and trailing spaces along with excess internal whitespace. The reading system must render only a single space in all cases. | ’21.01.11 | (1) | ❐ |
pkg-spine-duplicate-item-hyperlink | must | Hyperlink to duplicate items in spine | The spine contains several references to the same content document. The reading system must move to the position of the first duplicate in the reading order when following a hyperlink. | ’21.11.18 | (1) | ❐ |
pkg-spine-duplicate-item-rendering | must | Duplicate items in spine render | The spine contains several references to the same content document. The reading system must not skip the duplicates when rendering the reading order. | ’21.11.18 | (1) | ❐ |
pkg-spine-duplicate-item-ui | must | UI recognizes duplicate items in spine | The spine contains several references to the same content document. The reading system must allow the duplicates to be independently bookmarked or otherwise recognized in the UI. | ’21.11.18 | (1) | ❐ |
pkg-spine-nonlinear-activation | must | Non-linear spine item is reachable | An itemref in the spine is marked as non-linear. Although it (possibly) cannot be accessed through the table of contents, it can be reached from a link in the XHTML content. | ’21.01.21 | (1) | ❐ |
pkg-spine-order | must | Spine items in order | Basic test of whether a reading system can display spine items in the correct order. The test fails if the reading system presents content in the order in which the file names sort, or if it presents files in manifest order rather than spine order. | ’21.10.14 | (1) | ❐ |
pkg-spine-order-svg | must | SVG spine items in order | Basic test of whether a reading system can display SVG spine items in the correct order. | ’21.11.22 | (1) | ❐ |
pkg-spine-unknown | must | Spine item with unknown properties | The package document contains a spine item with unknown properties. The reading system must open the EPUB successfully. | ’21.01.26 | (1) | ❐ |
pkg-title-order | must | First title in package | Several titles are listed in the package document. The reading system must use the first title (and whether to use other titles is not defined). | ’21.01.11 | (1) | ❐ |
pkg-unique-id | must | Unique identifier not unique | The package document's dc:identifier is identical across two publications. The reading system should display both publications independently. | ’21.01.18 | (1) | ❐ |
pkg-unique-id | must | Unique identifier reused | The package document's dc:identifier is identical across two publications. The reading system should display both publications independently. | ’21.01.18 | (1) | ❐ |
pkg-version-backward | must | Package version less than 3.0 | “Reading Systems MUST attempt to process an EPUB Publication whose Package Document version attribute is less than "3.0"”. This is an EPUB with package version attribute set to "0", to see if a reading system will open it. | ’21.10.15 | (1) | ❐ |
pkg-flow-paginated | should | rendition:flow set to paginated | Tests on handling overflow content with the "rendition:flow" property set to "paginated". The content should be dynamically paginated (i.e., not scrolled) by the reading system. | ’21.11.21 | (1) (2) | ❐ |
pkg-flow-scrolled-continuous | should | rendition:flow set to scrolled-continuous | Tests on handling overflow content with the "rendition:flow" property set to "scrolled-continuous". The content should be presented as one continuous scrolling document (i.e., not paginated). | ’21.11.21 | (1) (2) | ❐ |
pkg-flow-scrolled-doc | should | rendition:flow set to scrolled-doc | Tests on handling overflow content with the "rendition:flow" property set to "scrolled-doc". Each of the chapters in this publication should be vertically scrollable, and swiping horizontally should moves from one to the next. | ’21.11.21 | (1) (2) | ❐ |
pkg-manifest-unlisted-resource | should | Resource not listed in manifest | The XHTML content references an image that does not appear in the manifest. The image should not be shown. | ’21.11.08 | (1) | ❐ |
Id | Req | Title | Description | Date | Specs | Ref |
---|---|---|---|---|---|---|
pkg-dir-auto_root-rtl | must | Correct 'dir=rtl' on the package, incorrectly overwritten by 'dir=auto' on title | The 'dc:title' element contains text whose proper rendering requires bidi control. The element's 'dir' attribute is set to 'auto' and the 'dir' attribute is set to 'rtl' on the package element; the title should display incorrectly. | ’21.09.22 | (1) (2) (3) | ❐ |
pkg-dir-auto_root-unset | must | Incorrect 'dir=auto' on the title | The 'dc:title' element contains text whose proper rendering requires bidi control. The element's 'dir' attribute is set to 'auto'; the title should display incorrectly. | ’21.09.22 | (1) (2) (3) | ❐ |
pkg-dir_but_not_content | must | Content document must not inherit package dir settings | The package document's language is set to 'he' and direction 'rtl' but the content document is not annotated for language and direction. The content document should not become automatically 'he' and 'rtl'. | ’22.01.21 | (1) | ❐ |
pkg-dir_creator-rtl | must | 'dir=rtl' on the creator | The 'dc:creator' element's 'dir' attribute is set to 'rtl'; the creator's name should display right-to-left. | ’21.02.03 | (1) (2) (3) | ❐ |
pkg-dir_rtl-root-ltr | must | Incorrect 'dir=ltr' on the package, correctly overwritten by 'dir=rtl' on title | The 'dc:title' element contains text whose proper rendering requires bidi control. The element's 'dir' attribute is set to 'rtl' and the 'dir' attribute is set to 'ltr' on the 'package' element; the title should display correctly. | ’21.09.22 | (1) (2) (3) | ❐ |
pkg-dir_rtl-root-unset | must | Correct 'dir=rtl' on the title | The 'dc:title' element contains text whose proper rendering requires bidi control. The element's 'dir' attribute is set to 'rtl'; the title should display correctly. | ’21.09.22 | (1) (2) (3) | ❐ |
pkg-dir_unset-root-rtl | must | Correct 'dir=rtl' on the package | The 'dc:title' element contains text whose proper rendering requires bidi control. The root's 'dir' attribute is set to 'rtl'; the title should display correctly. | ’21.09.22 | (1) (2) (3) | ❐ |
pkg-dir_unset-root-unset | must | No 'dir' on the title | The 'dc:title' element contains text whose proper rendering requires bidi control. The element's 'dir' attribute is not set; the title should display incorrectly. | ’21.09.22 | (1) (2) (3) | ❐ |
pkg-lang_but_not_content | must | Content document must not inherit package language settings | The package document's language is set to 'fr' but the content document is not annotated for language. The content document should not become automatically 'fr' but should be the default 'en'. | ’22.01.21 | (1) | ❐ |
pkg-spine-progression-default | must | RTL publication's spine has implicit 'page-progression-direction="default"' | In a publication set as using an RTL language, the spine does not set 'page-progression-direction', so it is implicitly 'default'. The pages must appear from right to left. | ’21.01.21 | (1) | ❐ |
pkg-spine-progression-pre-paginated | must | Pre-paginated publication's spine sets 'page-progression-direction="ltr"' | In a pre-paginated publication whose XHTML content sets 'dir="rtl"', the spine sets 'page-progression-direction="ltr"'. The pages must appear from left to right. | ’21.01.25 | (1) | ❐ |
pkg-spine-progression_ltr | must | Spine sets 'page-progression-direction="ltr"' | The spine sets 'page-progression-direction="ltr"'. The pages must appear from left to right. | ’21.01.21 | (1) | ❐ |
pkg-spine-progression_rtl | must | Spine sets 'page-progression-direction="rtl"' | The spine sets 'page-progression-direction="rtl"'. The pages must appear from right to left. | ’21.01.21 | (1) | ❐ |
Id | Req | Title | Description | Date | Specs | Ref |
---|---|---|---|---|---|---|
cnt-css-fonts | must | CSS support for font resources | TrueType, OpenType, WOFF, and WOFF2 font resources are referenced from @font-face rules. | ’22.05.13 | (1) | ❐ |
cnt-mathml-support | must | Support for Presentation MathML | A Presentation MathML equation is displayed as part of the XHTML content. | ’21.05.26 | (1) (2) | ❐ |
cnt-svg-css | must | CSS in SVG content document | CSS styling is applied to an SVG content document. | ’22.05.13 | (1) | ❐ |
cnt-svg-css-inclusion | must | CSS applied to included SVG | CSS changes the color of an SVG image that is embedded in the XHTML content by inclusion. | ’21.05.25 | (1) (2) | ❐ |
cnt-svg-css-reference | must | CSS not applied to referenced SVG | CSS does not change the color of an SVG image that is embedded in the XHTML content by reference. | ’21.05.25 | (1) (2) | ❐ |
cnt-svg-embedded | must | SVG embedded in XHTML content | An SVG image is embedded in the XHTML content (as inline SVG). | ’21.05.25 | (1) | ❐ |
cnt-svg-support | must | SVG content document | An SVG image is displayed as a content document (not as part of an XHTML file). | ’21.05.26 | (1) | ❐ |
css-epub-hyphens | must | EPUB CSS hyphens | Tests for the prefixed CSS property -epub-hyphens | ’22.03.28 | (1) (2) | ❐ |
css-epub-line-break | must | EPUB CSS line-break | Tests for the prefixed CSS property -epub-line-break | ’22.03.28 | (1) (2) | ❐ |
css-epub-text-align-last | must | EPUB CSS text-align-last | Tests for the prefixed CSS property -epub-text-align-last | ’22.03.28 | (1) (2) | ❐ |
css-epub-text-combine-horizontal | must | EPUB CSS text-combine-horizontal | Tests for the prefixed CSS property -epub-text-combine-horizontal | ’22.03.28 | (1) (2) | ❐ |
css-epub-text-emphasis | must | EPUB CSS text-emphasis | Tests for the prefixed CSS properties -epub-text-emphasis-color, -position, and -style | ’22.03.28 | (1) (2) (3) (4) | ❐ |
css-epub-text-orientation | must | EPUB CSS text-orientation | Tests for the prefixed CSS property -epub-text-orientation | ’22.03.28 | (1) (2) | ❐ |
css-epub-text-transform | must | EPUB CSS text-transform | Tests for the prefixed CSS value -epub-fullwidth | ’22.03.28 | (1) (2) | ❐ |
css-epub-text-underline-position | must | EPUB CSS text-underline-position | Tests for the prefixed CSS properties -epub-text-underline-position | ’22.03.28 | (1) (2) | ❐ |
css-epub-word-break | must | EPUB CSS word-break | Tests for the prefixed CSS property -epub-word-break | ’22.03.28 | (1) (2) | ❐ |
css-epub-writing-mode | must | EPUB CSS writing-mode | Tests for the prefixed CSS property -epub-writing-mode | ’22.03.28 | (1) (2) | ❐ |
cnt-xhtml-support | should | XHTML content document | An XHTML file is displayed as a content document. | ’21.05.26 | (1) | ❐ |
Id | Req | Title | Description | Date | Specs | Ref |
---|---|---|---|---|---|---|
scr-readingsystem-features | must | epubReadingSystem object features | Checks whether the reading system implements the required epubReadingSystem feature string queries. | ’21.12.10 | (1) (2) (3) | ❐ |
scr-readingsystem-support | must | epubReadingSystem object support | Checks whether the reading system implements the epubReadingSystem object. | ’21.12.10 | (1) (2) (3) | ❐ |
scr-readingsystem-support_iframe | must | epubReadingSystem object support in an iframe | Checks whether the reading system implements the epubReadingSystem object in container-constrained document (e.g., an iframe). | ’21.12.10 | (1) (2) | ❐ |
scr-readingsystem-support_iframe_svg | must | epubReadingSystem object support in an SVG within an iframe | Checks whether the reading system implements the epubReadingSystem object in container-constrained SVG document (e.g., an iframe). | ’21.12.10 | (1) (2) | ❐ |
scr-readingsystem-support_svg | must | epubReadingSystem object support in a spine-level SVG | Checks whether the reading system implements the epubReadingSystem object in a spine-level SVG document. | ’21.12.10 | (1) (2) (3) | ❐ |
scr-support_origin | must | Unique origin shared by spine-level scripted contents | The origin values of scripted content files are displayed. They must be shared by all spine-level scripts in the publication. | ’21.03.08 | (1) | ❐ |
scr-support_scrolled-doc | must | rendition:flow set to scrolled-doc when scripting is supported | Tests on handling overflow content with the "rendition:flow" property set to "scrolled-doc". Each of the chapters in this publication should be vertically scrollable, and swiping horizontally should moves from one to the next. This feature is required if the reading system supports scripting. | ’22.06.02 | (1) | ❐ |
scr-support | should | Scripting support | Checks whether the reading system implements scripting in a spine-level document (i.e., whether a simple inline script is executed at all). | ’21.12.10 | (1) | ❐ |
scr-support_iframe | should | Support for container-constrained scripts | Checks whether the reading system implements container-constrained scripts (i.e., whether a simple inline script is executed at all in an iframe). | ’21.12.10 | (1) | ❐ |
scr-support_scrolled-continuous | should | rendition:flow set to scrolled-continuous when scripting is supported | Tests handling overflow content with the "rendition:flow" property set to "scrolled-continuous". The publication is presented as one continuous scroll from spine item to spine item. This feature is optional if the reading system supports scripting. | ’22.06.02 | (1) | ❐ |
scr-support_svg | should | Scripting support in spine-level SVG | Checks whether the reading system implements scripting in a spine-level SVG document (i.e., whether a simple inline script is executed at all). | ’21.12.10 | (1) | ❐ |
Id | Req | Title | Description | Date | Specs | Ref |
---|---|---|---|---|---|---|
fxl-layout-duplication | must | rendition:layout duplication | When rendition:layout is duplicated, EPUBCheck must return an error. | ’21.11.24 | (1) | ❐ |
fxl-layout-pre-paginated | must | rendition:layout pre-paginated spine order | When rendition:layout is pre-paginated, reading systems must display one page per spine item. | ’21.09.24 | (1) | ❐ |
fxl-layout-pre-paginated-spreads | must | rendition:layout pre-paginated spreads | When the layout is pre-paginated, pages are displayed with no gaps when in synthetic spreads. | ’21.09.22 | (1) | ❐ |
fxl-orientation_default | must | rendition:orientation default | rendition:orientation is not specified. Therefore, it has the value "auto" and reading systems should display the EPUB in the orientation of the device. | ’21.11.18 | (1) (2) | ❐ |
fxl-orientation_duplication | must | rendition:orientation duplication | rendition:orientation is specified twice. EPUBCheck should produce an error. | ’21.11.18 | (1) | ❐ |
fxl-spread_default | must | rendition:spread default | The default value for rendition:spread should be "auto" if not specified. When rendition:spread is "auto", the reading system can choose to display spine items in a synthetic spread. | ’21.11.24 | (1) | ❐ |
fxl-spread_none | must | rendition:spread none | When rendition:spead is "none", spine items must not appear in synthetic spreads. | ’21.11.24 | (1) (2) | ❐ |
fxl-xhtml-icb | must | XHTML content clipped outside viewport | XHTML content outside the initial containing block (ICB) is clipped. | ’21.01.27 | (1) (2) | ❐ |
mol-timing-synchronization_fxl | must | Basic media overlay in fixed layout | Tests whether the Reading System implements media overlays in fixed layout publications. | ’22.02.11 | (1) (2) | ❐ |
page-layout-both-spread | must | page-layout-both spread | If a reflowable spine item has a page-spread-* value, it must be honored. | ’22.07.01 | (1) (2) (3) | ❐ |
fxl-orientation-landscape | should | rendition:orientation landscape | rendition:orientation is landscape, Reading Systems should either display the content in landscape or inform the user it should be. | ’21.11.18 | (1) | ❐ |
fxl-page-spread-center | should | rendition:page-spread-center | When rendition:page-spread-center is applied to a spine item, the document should be displayed in the center of the screen and not in a synthetic spread. | ’21.11.24 | (1) | ❐ |
fxl-page-spread-combined | should | rendition:page-spread combined | When rendition:page-spread-right and -left are applied to adjacent spine items, they should be displayed in a synthetic spread. | ’21.11.24 | (1) | ❐ |
fxl-page-spread-left | should | rendition:page-spread-left | When rendition:page-spread-left is applied to a spine item, it should be displayed on the left side of the synthetic spread. | ’21.11.24 | (1) | ❐ |
fxl-page-spread-right | should | rendition:page-spread-right | When rendition:page-spread-right is applied to a spine item, it should be displayed on the right side of the synthetic spread. | ’21.11.24 | (1) | ❐ |
fxl-spread-both | should | rendition:spread both | When rendition:spread is "both", the content should appear in a synthetic spread regardless of reading system orientation. | ’21.11.24 | (1) | ❐ |
fxl-spread_landscape | should | rendition:spread landscape | If rendition:spread is "landscape", synthetic spreads should be rendered only when the reading system is in landscape orientation. | ’21.11.24 | (1) | ❐ |
page-layout-both | should | page-layout-both | If a reflowable spine item follows a pre-paginated one, it should appear on the next page. | ’21.11.24 | (1) (2) | ❐ |
fxl-spread-auto | may | rendition:spread auto | When rendition:spread is "auto", the reading system can choose to display spine items in a synthetic spread. | ’21.11.24 | (1) | ❐ |
Id | Req | Title | Description | Date | Specs | Ref |
---|---|---|---|---|---|---|
ocf-metainf-inc | must | Extra configuration file in META-INF | An extra configuration file, not in the reserved files' list, is added to the META-INF folder; this file must be ignored. | ’22.05.28 | (1) | ❐ |
ocf-metainf-manifest | must | Manifest information is ignored | An ancillary manifest file, containing an extra spine item, is present in the META-INF directory; this extra item must be ignored by the reading system. | ’22.05.28 | (1) | ❐ |
ocf-package_arbitrary | must | Package in arbitrary directory | The EPUB contains three valid package files and three corresponding sets of content documents, but only one of the packages, in an unusual subdirectory, is referenced by the container.xml file. The reading system must use this package. | ’21.01.21 | (1) | ❐ |
ocf-package_multiple | must | Multiple packages in container file | The EPUB contains three valid package files and three corresponding sets of content documents, all referenced by the container.xml file. The reading system must use the first package. | ’21.01.21 | (1) | ❐ |
ocf-url_link-leaking-relative | must | Relative image reference exceeds depth of hierarchy | Use a relative link with several double-dot path segments from the content to a photograph. The folder hierarchy containing the photograph starts at the root level; the relative image reference exceeds depth of hierarchy. | ’22.03.06 | (1) (2) | ❐ |
ocf-url_link-path-absolute | must | Path-absolute link to an image | Use a path-absolute link, i.e., beginning with a leading slash, from the content to a photograph. The folder hierarchy containing the photograph starts at the root level. | ’22.03.06 | (1) (2) | ❐ |
ocf-url_link-relative | must | Simple relative link to an image | A simple relative link from the content to a photograph. The folder hierarchy containing the photograph starts at the root level. | ’22.03.06 | (1) (2) (3) | ❐ |
ocf-url_manifest | must | Content in arbitrary directory | The manifest refers to an XHTML file in an arbitrary subfolder. The reading system must be able to find the content. | ’21.01.18 | (1) (2) | ❐ |
ocf-url_origin | must | Unique origin for each instance | The origin value is displayed. The origin must be unique for each user-specific instance of the publication. | ’21.03.05 | (1) (2) | ❐ |
ocf-url_parse-leaking-relative | must | Relative URL that exceeds depth of hierarchy, parsed by JS | Parse, in Javascript, a relative link with several double-dot path segments from the content to a photograph. The folder hierarchy containing the photograph starts at the root level; the number of segments exceeds the depth of the folder hierarchy. | ’21.03.05 | (1) (2) | ❐ |
ocf-url_parse-path-absolute | must | Root-relative URL, parsed by JS | Parse, in Javascript, a path-absolute URL, i.e., beginning with a leading slash, from the content to an image. The folder hierarchy containing the image starts at the root level. | ’21.03.05 | (1) (2) | ❐ |
ocf-url_relative | must | Content in relative subdirectory | The manifest refers to an XHTML file in an arbitrary subfolder that is relative to the package's own arbitrary folder. The reading system must be able to find the content. | ’21.11.12 | (1) (2) (3) (4) | ❐ |
Id | Req | Title | Description | Date | Specs | Ref |
---|---|---|---|---|---|---|
mol-audio | must | Rendering an audio track from clipBegin to clipEnd | Tests whether the Reading System obeys the clipBegin and clipEnd attributes. | ’22.05.24 | (1) | ❐ |
mol-audio-exceeding-clipend | must | Audio track stops if clipEnd exceeds length | Tests whether the Reading System ignores the clipEnd attribute in the smil file's par element if it exceeds the length of the audio file. | ’22.02.14 | (1) | ❐ |
mol-audio-no-clipbegin | must | Start at beginning of audio if clipBegin is missing | Tests whether the Reading System starts at the beginning of the audio track in the absence of a clipBegin attribute in the smil file. | ’22.02.10 | (1) | ❐ |
mol-audio-no-clipend | must | Audio track plays until end if clipEnd is missing | Tests whether the Reading System plays until the end of the audio track in the absence of a clipEnd attribute in the smil file. | ’22.02.10 | (1) | ❐ |
mol-navigation | must | Navigation with media overlays | When navigating to another page, the media overlay playback position updates accordingly. | ’22.02.21 | (1) | ❐ |
mol-timing-synchronization | must | Basic media overlay | Tests whether the Reading System implements media overlays. | ’22.02.10 | (1) | ❐ |
mol-timing-synchronization_multiple_audio | must | Media overlay with two audio files | Tests whether the Reading System implements media overlays with a SMIL file referring to two audio files. | ’22.02.14 | (1) | ❐ |
mol-timing-synchronization_svg | must | Basic media overlay in SVG | Basic media overlay test in SVG content with CSS styling. | ’22.06.16 | (1) (2) | ❐ |
mol-css | should | Basic media overlay test with CSS styling | Tests whether the Reading System implements the associated CSS styling for media overlays. | ’22.02.10 | (1) (2) (3) | ❐ |
mol-embed | should | Media overlay with embedded video | Tests whether the reading system implements the control of embedded videos via media overlay. | ’22.02.18 | (1) (2) (3) | ❐ |
mol-embed_deactivate_playback | should | Media overlay with embedded video; no playback control | Tests whether the reading system implements the control of embedded videos via media overlay. The playback control of the videos are deactivated. | ’22.02.18 | (1) | ❐ |
mol-embed_fxl | should | Media overlay with embedded video in fixed layout | Tests whether the reading system implements embedded video in media overlays in a fixed layout publication. | ’22.02.18 | (1) (2) (3) | ❐ |
mol-tts_multi | should | Text-to-speech fallback for multiple fragments | Tests whether the reading system implements Text-to-Speech as a fallback when no audio content is provided. Several fragments are defined in the SMIL file. | ’22.02.17 | (1) | ❐ |
mol-tts_single | should | Text-to-speech fallback for a single fragment | Tests whether the reading rystem implements text-to-speech as a fallback when no audio content is provided. Only one fragment is defined in the SMIL file. | ’22.02.17 | (1) | ❐ |
The following experts contributed to the test suite: