EPUB Reading Systems 3.3

W3C Working Draft

This version:
https://www.w3.org/TR/2021/WD-epub-rs-33-20210406/
Latest published version:
https://www.w3.org/TR/epub-rs-33/
Latest editor's draft:
https://w3c.github.io/epub-specs/epub33/rs/
Previous version:
https://www.w3.org/TR/2021/WD-epub-rs-33-20210224/
Editors:
Dave Cramer
Matt Garrish (DAISY Consortium)
Ivan Herman (W3C)
Former editors:
Garth Conboy (Google)
Marisa DeMeglio (DAISY Consortium)
Daniel Weck (DAISY Consortium)
Participate:
GitHub w3c/epub-specs
File a bug
Commit history
Pull requests

Abstract

EPUB® 3 defines a distribution and interchange format for digital publications and documents. The EPUB format provides a means of representing, packaging, and encoding structured and semantically enhanced Web content — including HTML, CSS, SVG and other resources — for distribution in a single-file container.

This specification defines the conformance requirements for EPUB® 3 Reading Systems — the user agents that render EPUB Publications.

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.

This document was published by the EPUB 3 Working Group as a Working Draft. This document is intended to become a W3C Recommendation.

GitHub Issues are preferred for discussion of this specification. Alternatively, you can send comments to our mailing list. Please send them to public-epub-wg@w3.org (subscribe, archives).

Publication as a Working Draft does not imply endorsement by the W3C Membership.

This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

This document is governed by the 15 September 2020 W3C Process Document.

1. Introduction

1.1 Overview

The EPUB 3 standard is separated into two distinct concerns: the authoring of EPUB Publications is defined in the core specification [EPUB-33], while this specification details the rendering requirements for them in EPUB Reading Systems.

An EPUB Reading System can take many forms. It might have a visual display area for rendering the content to users, for example, or it might only provide audio playback of the content. As a result, there is no single set of rules that all Reading Systems have to follow. Rather, the rendering requirements are broken down based on the Reading System's capabilities and the features its supports.

Moreover, a great deal of flexibility is provided to developers to create unique user interfaces, such as their bookshelves. As a result, metadata processing requirements are often quite minimal, for example.

So, although this specification identifies the formal requirements for Reading Systems, it is not possible to read this document in isolation. Developers will also need to familiarize themselves with the full content structure of an EPUB Publication to understand the complete range of information that is available.

Note

A conforming Reading System is not necessarily a single dedicated program or device but might exist as a distributed system.

1.2 Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words MAY, MUST, MUST NOT, NOT REQUIRED, OPTIONAL, RECOMMENDED, SHOULD, and SHOULD NOT in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

1.3 Relationship to Other Specifications

This section is non-normative.

1.3.1 Relationship to HTML

The [HTML] standard is continuously evolving — there are no longer versioned releases of it. That standard, in turn, references various technologies that continue to evolve, such as MathML, SVG, CSS, and JavaScript.

Reading System developers will need to keep track of the changes to HTML, and the technologies it references, and ensure that their systems are kept up to date.

This specification does not require EPUB Reading Systems to support scripting, HTML forms or the HTML DOM. Reading Systems conformant with this specification are only expected to be able to process a conforming EPUB Content Document. As support for scripting and HTML forms is not compulsory, a conformant Reading System might not be a fully-conformant HTML user agent.

1.3.2 Relationship to SVG

This specification does not reference a specific version of [SVG], but instead uses an undated reference. Whenever there is any ambiguity in this reference, the latest recommended specification is the authoritative reference.

This approach ensures that EPUB will always keep pace with changes to the SVG standard. Reading System developers will need to keep track of changes to the SVG standard and ensure that their systems are kept up to date.

2. Publication Resource Processing

Reading Systems MUST process Publication Resources [EPUB-33].

2.1 Foreign Resources

Reading Systems MAY support an arbitrary set of Foreign Resource types, and MUST process fallbacks for unsupported Foreign Resources as defined in Foreign Resources [EPUB-33] if not.

2.2 Remote Resources

Reading Systems SHOULD support remote resources, as defined in Resource Locations [EPUB-33].

2.3 Data URLs

Reading Systems MUST prevent data URLs [RFC2397] from opening in top-level browsing contexts [HTML], except when initiated through a Reading System affordance such as a context menu. If a Reading System does not use a top-level browsing context for Top-level Content Documents, it MUST also prevent data URLs from opening as though they are Top-level Content Documents.

Issue 1592 : Find the best terminology to restrict the usage of data urls Cat-SecuritySpec-ReadingSystemstag-tracker

There is no final agreement in the WG on how to precisely formulate the restrictions on the usage of data-url-s. The current formulation relies on the top-level browsing contexts term but that may not be adequate (e.g., if the top level document is an SVG file).

The generic goal is to disallow (for, e.g., security reasons) using, e.g., an <a> element referring to a data URL, while still making it possible to, use a data url in, say, an <img> element. Browsers implement similar restrictions, but the WG would need a generic, browser-independent terminology to include in the EPUB Reading System specification.

2.4 Core Media Types

If a Reading System has a Viewport, it MUST support the image Core Media Type Resources [EPUB-33].

If it has the capability to render pre-recorded audio, it MUST support the audio Core Media Type Resources [EPUB-33] and SHOULD support Media Overlays [EPUB-33].

Note

It is recommended that Reading Systems support at least one of the H.264 [H264] and VP8 [RFC6386] video codecs, but this is not a conformance requirement — a Reading System may support other video codecs, or none at all. Reading System developers need to take into consideration factors such as breadth of adoption, video playback quality, and technology usage royalty requirements when making the choice to implement video in either format, or both.

2.5 XML Processing

A Reading System MUST be all of the following:

In addition, when processing XML documents, it MUST NOT resolve external identifiers [XML].

3. Package Document Processing

Reading Systems MUST process the Package Document [EPUB-33].

3.1 Presentation Logic

Reading Systems MUST honor all presentation logic expressed through the Package Document [EPUB-33] (e.g., the reading order, fallback chains, page progression direction and fixed layouts).

3.2 Resolving Relative IRIs

To obtain an absolute IRI reference from a relative IRI reference [RFC3987] in the Package Document, Reading Systems MUST use the Base IRI [RFC3986] of the Package Document.

The Base IRI of the Package Document is the combination of the Base IRI of the EPUB Container together with the path to Package Document (relative to the Root Directory) when an EPUB Publication is zipped.

This specification does not require a specific IRI scheme for referencing the path to the Package Document within the EPUB Container.

3.3 Base Direction

If the dir attribute is set and indicates a base direction of ltr or rtl, Reading Systems MUST override the bidi algorithm per the higher-level protocols defined in [BIDI], setting the paragraph embedding level to 0 if the base direction is ltr, or 1 if the base direction is rtl.

Otherwise the base direction is auto, in which case Reading Systems MUST determine the text's direction by applying the Unicode Bidi Algorithm, beginning with Rule P2 of [BIDI].

3.4 Unique Identifier

Reading Systems SHOULD NOT depend on the unique-identifier attribute being unique to one and only one EPUB Publication. Determining whether two EPUB Publications with the same Unique Identifier represent different versions of the same publication, or different publications, might require inspecting other metadata, such as the titles or authors.

3.5 Metadata

White Space

Reading Systems MUST strip and collapse ASCII whitespace [Infra] from Dublin Core [DC11] and meta element values [EPUB-33] before processing.

The identifier element

To determine whether an identifier conforms to an established system or has been granted by an issuing authority, Reading Systems SHOULD check for an identifier-type property [EPUB-33].

The title element

Reading Systems MUST recognize the first title element in document order as the main title of the EPUB Publication and present it to users before other title elements.

This specification does not define how to process additional title elements.

The language element

The language(s) of the EPUB Publication specified in language elements are advisory. Reading Systems MUST use the language information associated with a resource to determine its language.

The creator element

When determining display priority, Reading Systems MUST use the document order of creator elements in the metadata section, where the first creator element encountered is the primary creator. If a Reading System exposes creator metadata to the user, it SHOULD include all the creators listed in the metadata section whenever possible (e.g., when not constrained by display considerations).

The meta element

If a Reading System does not recognize the scheme attribute value, it SHOULD treat the value of the element as a string.

Reading Systems SHOULD ignore all meta elements whose property attributes define expressions they do not recognize. A Reading System MUST NOT fail when encountering unknown expressions.

Retrieval of Remote Resources is OPTIONAL.

The language identified in an hreflang attribute is not authoritative. Language information defined in a linked resource determines its language.

Reading System do not have to use or present linked resources, even if they recognize the relationship defined in the rel attribute.

In the case of a linked metadata record [EPUB-33], Reading Systems MUST NOT skip processing the metadata expressed in the Package Document and only use the information expressed in the record. Reading Systems MAY compile metadata from multiple linked records; they do not have to select only one record.

When it comes to resolving discrepancies and conflicts between metadata expressed in the Package Document and in linked metadata records, Reading Systems MUST use the document order of link elements in the Package Document to establish precedence (i.e., metadata in the first linked record encountered has the highest precedence and metadata in the Package Document the lowest, regardless of whether the link elements occur before, within or after the package metadata elements).

Reading Systems MUST ignore any instructions contained in linked resources related to the layout and rendering of the EPUB Publication.

Proprietary Metadata

It MUST ignore proprietary metadata properties that pertain to layout expressions if they conflict behaviorally with the property semantics defined in § 6.1 Fixed-Layout Properties.

3.6 Manifest

When an href attribute contains a relative IRI, Reading Systems MUST use the IRI of the Package Document as the base when resolving to an absolute IRI.

Reading Systems MAY optimize the rendering depending on the properties set in the properties attribute (e.g., disable a rendering process or use a fallback). Reading Systems MUST ignore values of the properties attribute they do not recognize.

It SHOULD NOT use non-Publication Resources in the rendering of an EPUB Publication due to the inherent limitations and risks involved (e.g., lack of information about the resource and how to process it, security risks from remotely-hosted sources, lack of fallbacks, etc.).

A Reading System that does not support the Media Type of a given Publication Resource MUST traverse the fallback chain until it has identified at least one supported Publication Resource to use in place of the unsupported resource. If the Reading System supports multiple Publication Resources in the fallback chain, it MAY select the resource to use based on specific properties [EPUB-33] of that resource, otherwise it SHOULD honor the EPUB Creator's preferred fallback order. If a Reading System does not support any resource in the fallback chain, it MUST alert the reader that content could not be displayed.

When manifest fallbacks [EPUB-33] are provided for Top-level Content Documents, Reading Systems MAY choose from the available options in order to find the optimal version to render in a given context (e.g., by inspecting the properties attribute for each).

3.7 Spine

Reading Systems MUST provide a means of rendering the EPUB Publication in the order defined in the spine, which includes: 1) recognizing the first primary itemref as the beginning of the default reading order; and, 2) rendering successive primary items in the order given in the spine.

When a user traverses the default reading order defined in the spine [EPUB-33], a Reading System MAY automatically skip itemref elements marked as non-linear (excluding when a user specifically activates a hyperlink to such items). Reading Systems MAY also provide the option for users to select whether non-linear content is skipped by default or not.

When the default value of the page-progression-direction attribute is specified, the Reading System can choose the rendering direction. The default value MUST be assumed when the attribute is not specified. In this case, the reading system SHOULD choose a default page-progression-direction value based on the first language element.

Reading Systems MUST ignore the page progression direction defined in pre-paginated XHTML Content Documents. The page-progression-direction attribute defines the flow direction from one fixed-layout page to the next.

Reading Systems MUST ignore all metadata properties expressed in spine itemref properties attribute that they do not recognize.

3.8 Collections

In the context of this specification, support for collections in Reading Systems is OPTIONAL. Reading Systems MUST ignore collection elements that define unrecognized roles.

4. Content Document Processing

4.1 XHTML Content Documents

Reading Systems MUST process XHTML Content Documents [EPUB-33].

Unless explicitly defined in this section as overridden, Reading Systems MUST process XHTML Content Documents using semantics defined by the [HTML] specification and honor any applicable user agent conformance constraints expressed therein.

4.1.1 HTML Extensions

4.1.1.1 ARIA

Reading Systems SHOULD recognize embedded ARIA markup and support exposure of any given ARIA roles, states and properties to platform accessibility APIs [WAI-ARIA].

4.1.1.2 Structural Semantics

In addition to the requirements in § 9. Processing Structural Semantics, a Reading System has to process the epub:type attribute as follows in XHTML Content Documents:

  •   It MUST ignore semantics expressed on the [HTML] head element or its descendants.

4.1.1.3 RDFa

Reading System support for the attribute processing model [RDFA-CORE] is OPTIONAL.

4.1.1.4 Microdata

Reading System support for the attribute processing model is OPTIONAL, as is the conversion to JSON [Microdata].

4.1.1.5 SSML Attributes

Reading Systems with Text-to-Speech (TTS) capabilities SHOULD support SSML attributes [EPUB-33].

The ssml:ph attribute

Reading Systems that support the SSML Attributes and PLS documents [EPUB-33] MUST honor the defined precedence rules for these two constructs.

The ssml:alphabet attribute

Reading Systems that support the SSML Attributes feature of this specification SHOULD support the IPA alphabet [IPA], as expressed by the value "ipa".

4.1.1.6 Content Switching (Deprecated)

Use of the switch element is deprecated [EPUB-33]. Refer to its definition in [EPUBContentDocs-301] for implementation information.

4.1.1.7 The epub:trigger Element (Deprecated)

Use of the trigger element is deprecated [EPUB-33]. Refer to its definition in [EPUBContentDocs-301] for implementation information.

4.1.1.8 Custom Attributes

Vendors MAY introduce functionality not defined in this specification to enhance the rendering of EPUB Publications.

To facilitate this experimentation, vendors MAY define custom attributes for use in XHTML Content Documents provided they are from a foreign namespace, which is defined as a namespace [XML-NAMES] that does not include either of the following domains in its URI's authority component [RFC3986]:

  • w3.org

  • idpf.org

Custom attributes, and the behaviors associated with them, MUST NOT alter the integrity of an EPUB Publication.

Note

To facilitate interoperability of custom attributes across Reading Systems, vendors are strongly encouraged to document any extensions they implement in [AttributeExtensions].

4.1.2 HTML Deviations and Constraints

4.1.2.1 MathML

A Reading System has to support MathML embedded in XHTML Content Documents as follows:

  •   It MUST be an input-compliant renderer for Presentation MathML, as defined in the [MATHML3] specification.

  •   It MAY support rendering of Content MathML found in annotation-xml elements.

  •   If it has a Viewport, it MUST support visual rendering of Presentation MathML.

Note

Reading Systems may choose to use third-party libraries such as MathJax to provide MathML rendering.

4.1.2.2 Embedded SVG

Reading Systems MUST process SVG embedded in XHTML Content Documents as defined in § 4.2 SVG Content Documents.

4.1.2.2.1 Embedded SVG and CSS

For the purposes of styling SVG embedded in XHTML Content Documents by reference, Reading Systems MUST NOT apply CSS style rules of the containing document to the referenced SVG document.

For the purposes of styling SVG embedded in XHTML Content Documents by inclusion, Reading Systems MUST apply applicable CSS rules of the containing document to the included SVG elements.

Note

SVG included by reference is processed as a separate document, and can include its own CSS style rules just like an SVG Content Document would. Note that this is consistent with situations where an [HTML] object element references an external [HTML] element.

4.1.2.3 Form Submission

Reading System support for the submission of [HTML] forms is OPTIONAL. A Reading System might, for example, prevent form submissions by limiting access to networking.

4.2 SVG Content Documents

Reading Systems MUST process SVG Content Documents [EPUB-33].

A Reading System has to process SVG Content Documents and SVG embedded in XHTML Content Documents as follows:

4.3 Cascading Style Sheets (CSS)

If a Reading System has a Viewport, it MUST support the visual rendering of XHTML Content Documents via CSS [EPUB-33].

A Reading System that supports CSS has to process it as follows:

Reading System developers are strongly encouraged to implement CSS support at the level of major browsers and to publicly document their user agent style sheets and how they interact with EPUB Creator's style sheets.

Reading Systems with Text-to-Speech (TTS) capabilities SHOULD support [CSS3-Speech].

4.4 Scripting

Reading Systems SHOULD support scripting [EPUB-33].

Reading System support for scripting depends on the context in which it is used:

If a Reading System supports scripting:

If a Reading System that does not support scripting, it MUST process fallbacks for scripted content as defined in Fallbacks for Scripted Content Documents [EPUB-33].

4.5 Pronunciation Lexicons

Reading Systems with Text-to-Speech (TTS) capabilities SHOULD support PLS lexicons [EPUB-33].

A Reading System that supports PLS lexicons has to process them as follows:

5. Navigation Document Processing

Reading Systems MUST process EPUB Navigation Documents [EPUB-33].

A Reading System has to process EPUB Navigation Documents as follows:

6. Fixed-Layout Documents Processing

Reading Systems MUST support the rendering of Fixed-Layout Documents [EPUB-33].

6.1 Fixed-Layout Properties

6.1.1 The rendition:layout Property

The default global value is reflowable if no meta element carrying this property occurs in the metadata section [EPUB-33].

When the rendition:layout property is set to pre-paginated, Reading Systems MUST NOT include space between the adjacent content slots when rendering Synthetic Spreads.

The rendition:layout property values have the following processing requirements:

reflowable

Reading Systems MAY apply dynamic pagination when rendering.

pre-paginated

Reading Systems MUST produce exactly one page per spine itemref [EPUB-33] when rendering.

6.1.2 The rendition:orientation Property

The default global value is auto if no meta element carrying this property occurs in the metadata section.

Reading Systems that support multiple orientations SHOULD convey the intended orientation to the user unless the given value is auto. The means by which the intent is conveyed is implementation specific.

6.1.3 The rendition:spread Property

The default global value is auto if no meta element carrying this property occurs in the metadata section.

The rendition:spread property values have the following processing requirements:

none

Reading Systems MUST NOT incorporate spine items in a Synthetic Spread.

landscape

Reading Systems SHOULD render a Synthetic Spread for spine items only when the device is in landscape orientation.

portrait (deprecated)

Reading Systems SHOULD treat the value "portrait" as a synonym of "both" and create spreads regardless of orientation.

both

Reading Systems SHOULD render a Synthetic Spread regardless of device orientation.

auto

Reading Systems MAY use Synthetic Spreads in specific or all device orientations as part of a Content Display Area utilization optimization process.

6.1.4 The rendition:page-spread-* Properties

The rendition:page-spread-left property indicates that the given spine item SHOULD be rendered in the left-hand slot in the spread, and rendition:page-spread-right that it SHOULD be rendered in the right-hand slot. The rendition:page-spread-center property indicates that the synthetic spread mode SHOULD be overridden and a single viewport rendered and positioned at the center of the screen.

The rendition:page-spread-left, rendition:page-spread-right, and rendition:page-spread-center properties apply to both pre-paginated and reflowable content, and they only apply when the Reading System is creating Synthetic Spreads.

The rendition:page-spread-* properties take precedence over whatever value of the page-break-before property [CSSSnapshot] has been set for an XHTML Content Document.

Note

The presence of rendition:page-spread-center does not change the viewport dimensions. It does not indicate that a viewport with the size of the whole spread has to be created. This is important so that the scale factor stays consistent between regular and center-spread pages.

When a reflowable spine item follows a pre-paginated one, the reflowable one SHOULD start on the next page (as defined by the page-progression-direction [EPUB-33]) when it lacks a rendition:page-spread-* property value. If the reflowable spine item has a rendition:page-spread-* specification, it MUST be honored (e.g., by inserting a blank page).

Similarly, when a pre-paginated spine item follows a reflowable one, the pre-paginated one SHOULD start on the next page (as defined by the page-progression-direction) when it lacks a rendition:page-spread-* property value. If the pre-paginated spine item has a rendition:page-spread-* specification, it MUST be honored (e.g., by inserting a blank page).

When a Reading System encounters two spine items that represent a true spread (i.e., two adjacent spine items with the rendition:page-spread-left and rendition:page-spread-right properties), it SHOULD create the spread with no space between the adjacent pages.

6.2 Initial Containing Block Dimensions

XHTML

Reading Systems MUST use the width and height expressions as defined in Expressing in HTML [EPUB-33] to render XHTML Content Documents.

Reading Systems MUST clip XHTML content to the initial containing block (ICB) dimensions declared in the viewport meta tag — content positioned outside of the initial containing block will not be visible. When the ICB aspect ratio does not match the aspect ratio of the Reading System Content Display Area, Reading Systems MAY position the ICB inside the area to accommodate the user interface; in other words, added letter-boxing space MAY appear on either side (or both) of the content.

SVG

Reading Systems MUST use the dimensions as defined in Expressing the ICB in SVG [EPUB-33] to render SVG Content Documents.

6.3 Viewport Rendering

When rendering Fixed-Layout Documents, the default intent is that the Content Display Area SHOULD occupy as much of the available Viewport area as possible. Reading Systems SHOULD NOT inject additional content such as border, margins, headers, or footers into the Viewport.

Note

This specification does not define how the initial containing block [CSS2] is placed within the Reading System Content Display Area.

Note

The exposure of Reading System control widgets to the user is implementation-specific and not included in the above behavioral expectations.

7. Open Container Format Processing

Reading Systems MUST process the EPUB Container [EPUB-33].

Note

It is not required that an application that processes OCF Containers be a full-fledged Reading System (e.g., an application might only extract the content of a container or check the validity of the packaged content). In these cases, the rendering requirements for Reading Systems defined in this section can be ignored.

7.1 OCF Abstract Container

7.1.1 Relative IRIs for Referencing Other Components

For relative IRI references, Reading Systems MUST determine the Base IRI [RFC3986] according to the relevant language specifications for the given file formats. For example, CSS defines how relative IRI references work in the context of CSS style sheets and property declarations [CSSSnapshot].

Note

Some language specifications reference Requests For Comments [RFC] that preceded [RFC3987], in which case the earlier RFC applies for content in that particular language.

Unlike most language specifications, Reading Systems MUST use the Root Directory of the OCF Abstract Container as the default Base IRI as the Base IRI for all files within the META-INF directory.

7.1.2 File Names

This specification does not specify how a Reading System that is unable to represent OCF File and Path Names would compensate for this incompatibility.

7.1.3 META-INF Directory

Container File (container.xml)

A Reading System MUST, by default, use the Package Document referenced from first rootfile element to render the EPUB Publication. If the Reading System recognizes a means of selecting from the other available options, it MAY choose a more appropriate Package Document.

Other Files

Reading Systems MUST NOT fail when encountering configuration files in the META-INF directory not listed in Reserved Files [EPUB-33].

7.2 OCF ZIP Container

The following constraints apply to specific fields in the OCF ZIP Container archive:

7.3 Resource Obfuscation

Reading Systems MUST support deobfuscation of resources as defined in Resource Obfuscation [EPUB-33].

8. Media Overlays Processing

Reading Systems MAY support Media Overlays [EPUB-33].

If a Reading System does not support Media Overlays, it MUST ignore both the media-overlay attribute on Manifest item elements [EPUB-33] and the manifest item elements where the media-type attribute value equals application/smil+xml.

8.1 Loading the Media Overlay

When a Reading System loads a Package Document, it MUST refer to the Manifest item elements' [EPUB-33] media-overlay attributes to discover the corresponding Media Overlays for EPUB Content Documents.

Reading Systems MUST support playback for XHTML Content Documents, and MAY support SVG Content Documents.

Playback MUST start at the Media Overlay element which corresponds to the desired EPUB Content Document starting point. Note that the start of an EPUB Content Document MAY correspond to an element at the start or in the middle of a Media Overlay. When the Media Overlay Document has finished playing, the Reading System SHOULD load the next EPUB Content Document (as specified in the Package Document spine) and also load its corresponding Media Overlay Document, provided that one is given.

8.2 Basic Playback

8.2.1 Timing and Synchronization

Reading Systems MUST render immediate children of the body element [EPUB-33] in a sequence. A seq element's [EPUB-33] children MUST be rendered in sequence, and playback completes when the last child has finished playing. A par element's [EPUB-33] children MUST be rendered in parallel (with each starting at the same time), and playback completes when all the children have finished playing. When the body element's last child has finished playing, playback of the Media Overlay Document is done.

8.2.2 Rendering Audio

When presented with a Media Overlay audio element [EPUB-33], Reading Systems MUST play the audio resource referenced by the src attribute, starting at the clip offset time given by the clipBegin attribute [EPUB-33] and ending at the clip offset time given by the clipEnd attribute [EPUB-33]. The following rules MUST be observed:

  • If clipBegin is not specified, its value is assumed to be "0".

  • If clipEnd is not specified, its value is assumed to be the full duration of the physical media.

  • If clipEnd exceeds the full duration of the physical media, then its value is assumed to be the full duration of the physical media.

User-controllable audio playback options SHOULD include timescale modification, in which the playback rate is altered without distorting the pitch. The suggested range is half-speed to double-speed.

8.2.3 Rendering EPUB Content Document Elements

When presented with a Media Overlay text element [EPUB-33], Reading Systems SHOULD ensure the EPUB Content Document element referenced by the src attribute is visible in the Viewport. During Media Overlays playback, Reading Systems with a Viewport SHOULD add the class names given by the metadata properties active-class and playback-active-class [EPUB-33] to the appropriate elements in the EPUB Content Document. Conversely, the class names SHOULD be removed when the playback state changes, as described in Associating Style Information [EPUB-33].

The active-class and playback-active-class metadata properties are OPTIONAL, and if omitted, Reading System behavior is implementation-specific.

8.3 Interacting with the EPUB Content Document

8.3.1 Navigation

Because the Media Overlay is closely linked to the EPUB Content Document, it is very easy for Reading Systems to locate a position in the EPUB Content Document based on the current position in the Media Overlay playback. If the user pauses synchronized playback and navigates to a different part of the EPUB Publication, synchronized playback MUST resume at that point. For example, if a specific page number in the EPUB Content Document is the desired location, then this same point is located in the Media Overlay and playback started there.

This same approach allows for synchronizing the Media Overlay playback with user selection of a navigation point in the EPUB Navigation Document. The Reading System loads the Media Overlay for that file and finds the correct point for starting playback based on the ID [XML] of the navigation point target.

Note

A Media Overlay Document can be associated directly with a Navigation Document in order to provide synchronized playback of its contents, regardless of whether the XHTML Content Document in which it resides is included in the spine. See EPUB Navigation Document [EPUB-33] for more information.

Note

Media Overlay Document elements can be associated with EPUB Content Document structures such as tables. Reading Systems need to ensure that Media Overlay playback remains synchronized with user navigation of table rows and cells. The Reading System might also play the corresponding table header preceding the contents of the cell.

8.3.2 Embedded Audio and Video

An EPUB Content Document with which a Media Overlay is associated MAY itself contain embedded video and audio media, which MAY be pointed to by Media Overlay elements. Unlike text and images, video and audio media have an intrinsic duration. Consequently, when a Reading System renders the synchronization described by a Media Overlay, the default playback behavior of audio and video media embedded within the associated EPUB Content Document MUST be overridden.

Note that the rules below apply only to referenced [HTML] video or audio elements within the associated EPUB Content Document. That is to say, the rules apply to only those elements pointed to by text elements [EPUB-33] within the Media Overlay (i.e., via the src attribute). Embedded media that is not referenced by Media Overlay elements is not subject to these rules.

  • All referenced audio and video media embedded within an EPUB Content Document MUST have their public playback interface deactivated (typically: play/pause control, time slider, volume level, etc.). This behavior is necessary to avoid interference between the scheduled playback sequence defined by the Media Overlay, and the arbitrary playback behavior due to user interaction or script execution. As a result, when the Reading System is in playback mode, it SHOULD:

    • Hide the individual video/audio UI controls from the page, which overrides the default behavior defined by the [HTML] controls attribute.

    • Prevent scripts embedded within the EPUB Content Document from invoking the JavaScript audio/video playback API (i.e., authored as part of the default behavior). It is RECOMMENDED that content producers avoid publishing embedded scripts dedicated to controlling the playback of embedded audio/video media. The published Media Overlay can then retain full control of the synchronized presentation without any risk of interference from script-enabled custom behaviors.

  • All referenced audio and video media embedded within an EPUB Content Document MUST be initialized to their "stopped" state, and be ready to be played from the zero-position within their content stream (possibly displaying the image specified using the [HTML] poster attribute). This requirement overrides the default behavior defined by the [HTML] autoplay attribute.

  • When an EPUB Content Document element becomes active, the CSS Style Sheet visual highlighting rules apply regardless of the content type referred to by that element's src attribute (e.g., the CSS class name defined by the active-class metadata property [EPUB-33] SHOULD be applied to visible video and audio player controls within the host EPUB Content Document).

  • In addition to the default behavior of Media Overlay activation for textual fragments and images, audio and video playback MUST be started and stopped according to the duration implied by the authored Media Overlay synchronization (as per the standard [SMIL3] timing model). There are two possible scenarios:

    • When a Media Overlay text element has no audio [EPUB-33] sibling within its par [EPUB-33] parent container, the referenced EPUB Content Document audio or video media MUST play until it ends, at which point the text element's lifespan terminates. In this case, the implicit duration of the text element (and by inference, of the parent par container) is that of the referenced audio or video clip.

    • When a Media Overlay text element has an audio sibling within its par parent container, the playback duration of the referenced EPUB Content Document audio or video media MUST be constrained by the duration of the audio sibling. In this case, the actual duration of the parent par container is that of the child audio clip, regardless of the duration of the video or audio media pointed to by the text element. This behavior can result in embedded video or audio media ending playback prematurely (before reaching its full duration), or ending before the playback of the parallel Media Overlay audio is finished (in which case the last-played video frame SHOULD remain visible until the parent par container finally ends). This behavior is equivalent of the Media Overlay audio element implicitly carrying the behavior of the [SMIL3] endsync attribute.

      Furthermore, Reading Systems SHOULD expose user controls for the volume levels of each independent audio track (i.e., from the audio element of the Media Overlay, and from the embedded audio or video media within the EPUB Content Document), so that audio output can be adjusted to match listeners' requirements. Note that having overlapping audio tracks is typically an authoring-time concern: content producers usually add a layer of audio information over a video track for description purposes. It is RECOMMENDED that overlapping audio situations are carefully examined and dealt with at production stage, as Reading Systems are NOT REQUIRED to handle simultaneous volume levels in any specific way.

  • When a text element becomes inactive in the Media Overlay, and when it points to embedded video or audio media, that referenced media MUST be reset to its initial "stopped" state, ready to be played from the zero-position within their content stream (possibly displaying the poster image specified using the [HTML] markup).

8.3.3 Text-to-Speech

When a Media Overlay text element [EPUB-33] with no audio [EPUB-33] sibling element references text within the target EPUB Content Document, Reading Systems capable of Text-to-Speech (TTS) SHOULD render the referenced text using TTS.

As per Reading System conformance requirements, the speech-related information provided in the target EPUB Content Document SHOULD be used to play the audio stream as part of the Media Overlay rendering. (See SSML, Pronunciation Lexicons, and CSS3 Speech support requirements.)

The Media Overlay text element's lifespan corresponds to the rendering time of the associated speech synthesis. The implicit duration of the text element (and by inference, of the parent par element) is therefore determined by the execution of the Text-to-Speech engine, and cannot be known at authoring time (factors like speech rate, pauses and other prosody parameters influence the audio output).

8.4 Skippability and Escapability

8.4.1 Skippability

Reading Systems SHOULD use the semantic information provided by Media Overlay elements' epub:type attribute to determine when to offer users the option of skippable features.

8.4.2 Escapability

Reading Systems SHOULD allow escaping of nested structures. Reading Systems MUST determine the start of nested structures by the value of the epub:type attribute and SHOULD offer users the option to skip playback of that structure and resume with whatever content comes after it.

9. Processing Structural Semantics

Reading Systems MAY support structural semantics [EPUB-33] in EPUB Content Documents.

A Reading System that supports structural semantics has to process the epub:type attribute as follows:

When Reading System behavior associated with a given epub:type value conflicts with an element's native behavior, the behavior associated with the element MUST be given precedence.

10. Vocabulary Association Mechanisms

Reading Systems MUST support vocabulary association mechanisms [EPUB-33].

Reserved Prefixes

Reading Systems MUST resolve all reserved prefixes used in Package Documents using their predefined URIs unless a local prefix is declared. Reading Systems MUST use locally overridden prefixes in the prefix attribute when encountered.

As changes to the reserved prefixes and updates to Reading Systems are not always going happen in synchrony, Reading Systems MUST NOT fail when encountering unrecognized prefixes (i.e., not reserved and not declared using the prefix attribute).

The prefix attribute

If the prefix attribute includes a declaration for a predefined prefix, Reading Systems MUST use the URI mapping defined in the prefix attribute, regardless of whether of it maps to the same URI as the predefined prefix.

The property Data Type

A Reading System MUST use the following rules to create an IRI [RFC3987] from a property:

  • If the property consists only of a reference, the IRI is obtained by concatenating the IRI stem associated with the default vocabulary [EPUB-33] to the reference.

  • If the property consists of a prefix and reference, the IRI is obtained by concatenating the IRI stem associated with the prefix to the reference. If no matching prefix has been defined, the property is invalid and MUST be ignored.

The resulting IRI MUST be valid to [RFC3987]. Reading Systems do not have to resolve this IRI, however.

11. Package Rendering Metadata Processing

Reading Systems SHOULD process the general package rendering properties [EPUB-33].

11.1 The rendition:flow Property

If a Reading System supports the specified rendering, it SHOULD use that method to handle overflow content, but MAY provide the option for users to override the requested rendering.

The default global value is auto if no meta element carrying this property occurs in the metadata section [EPUB-33]. Reading Systems MAY support only this default value.

If a Reading Systems supports the rendition:layout property, it MUST ignore the rendition:flow property when it has been set on a spine item that also specifies the rendition:layout value pre-paginated.

The rendition:flow property values have the following processing requirements:

paginated

The Reading System SHOULD dynamically paginate all overflow content.

scrolled-continuous

The Reading System SHOULD render all Content Documents such that overflow content is scrollable, and the EPUB Publication SHOULD be presented as one continuous scroll from spine item to spine item (except where locally overridden [EPUB-33]).

scrolled-doc

The Reading System SHOULD render all Content Documents such that overflow content is scrollable, and each spine item SHOULD be presented as a separate scrollable document.

auto

The Reading System MAY render overflow content using its default method or a user preference, whichever is applicable.

For the rendition:flow-scrolled-continuous property, the scroll direction is defined relative to the block flow direction of the root element of the XHTML Content Document referenced by the itemref element [EPUB-33]. The scroll direction is vertical if the block flow direction is downward (top-to-bottom). It is horizontal if the block flow direction of the root element is rightward (left-to-right) or leftward (right-to-left).

11.2 The rendition:align-x-center Property

When the rendition:align-x-center property is set on a spine item, Reading Systems SHOULD render the content centered horizontally within the Viewport or spread, as applicable. This property does not affect the rendering of the spine item, only the placement of the resulting content box.

For reflowable content, Reading Systems that support this property MUST center each virtual page.

This version of this specification does not define a default rendering behavior when this property is not supported or specified. Reading Systems MAY render spine items by their own design.

12. Backward Compatibility

Reading Systems MUST attempt to process an EPUB Publication whose Package Document version attribute is less than "3.0".

EPUB Publications with older version numbers will not always render exactly as intended unless processed according to their respective specifications. Reading Systems SHOULD support such EPUB Publications as defined by those specifications.

13. Forward Compatibility

Reading Systems SHOULD attempt to process an EPUB Publication whose Package Document version attribute is greater than "3.0".

14. Accessibility

Reading Systems SHOULD meet the accessibility requirements for Reading Systems in [EPUB-A11Y-10].

15. Security and Privacy

Editor's note

This section currently combines an overview of security and privacy considerations with issues previously cited in the specification.

The Working Group intends to develop this section throughout the revision to further expand on the issues and provide it with a more structured narrative.

The particularity of an EPUB Publication is its structure. The EPUB format provides a means of representing, packaging, and encoding structured and semantically enhanced Web content — including HTML, CSS, SVG, and other resources — for distribution in a single-file container. This specification does not add any new features, APIs, etc. This also means that, essentially, the security and privacy issues are reliant on the features of those formats. In particular:

Additionally, the security considerations that apply to XML [XML] and ZIP [ZIP] files also apply to the Package Document and the Open Container Format, respectively. See the "Security Consideration" sections of the Media Type registrations for the application/oebps-package+xml and the application/epub+zip formats for further details.

15.1 Scripting Considerations

EPUB Creators and Reading System developers must be aware of the security issues that arise when scripted content is executed by a Reading System. As the underlying scripting model employed by Reading Systems and browsers is the same, the same kinds of issues encountered in Web contexts have to be taken into consideration.

Each Reading System has to establish if the scripts in a particular document are to be trusted or not. It is advised that all scripts be treated as untrusted (and potentially malicious), and that all vectors of attack be examined and protected against. In particular, the following need to be considered:

The following recommendations are provided as a guide to handling untrusted scripts:

Note that compliance with these recommendations does not guarantee protection from the possible attacks listed above; developers have to examine each potential vulnerability within the context of their Reading System.

15.2 Event Model Considerations

Reading Systems need to follow the DOM Event model as per [HTML] and pass UI events to the scripting environment before performing any default action associated with these events. Reading System implementers need to ensure that scripts cannot disable critical functionality (such as navigation) to constrain the extent to which a potentially malicious script could impact their Reading Systems. As a result, although the scripting environment needs to be able to cancel the default action of any event, some events either might not be passed through or might not be cancelable.

A. JavaScript epubReadingSystem Object

A.1 Interface Definition

This specification extends the [HTML] Navigator object as follows.

WebIDL[Exposed=(Window)]
interface EpubReadingSystem {
    [LegacyUnforgeable] readonly attribute DOMString name;
    [LegacyUnforgeable] readonly attribute DOMString version;
    boolean hasFeature(DOMString feature, optional DOMString version);
};

partial interface Navigator {
    [LegacyUnforgeable, SameObject] readonly attribute EpubReadingSystem epubReadingSystem;
};

[WEBIDL] notation.

Note

This specification does not define an epubReadingSystem property extension for the WorkerNavigator object [WebWorkers]. Reading Systems therefore do not have to expose the epubReadingSystem object in the scripting context of Workers, and EPUB Creators cannot rely on its presence.

A.2 Description

The Navigator.epubReadingSystem object provides an interface through which a Scripted Content Document can query information about a user's Reading System.

The object exposes properties of the Reading System (its name and version), and provides the hasFeature method which can be invoked to determine the features it supports.

Reading Systems MUST expose the epubReadingSystem object on the navigator object of all loaded Scripted Content Documents, including any nested container-constrained scripting contexts [EPUB-33]. Reading Systems MUST ensure that the epubReadingSystem object is available no later than when the DOMContentLoaded event is triggered [HTML].

Note

Reading systems implementations might create cloned instances of the epubReadingSystem object in Scripted Content Documents for technical feasibility reasons. In such cases, the Reading System has to ensure that the object’s state — as reflected by the values of its properties and methods — is consistently maintained across all copied instances.

A.3 Properties

The following properties MUST be made available for retrieving information about the Reading System.

Name Description
name Returns a String value representing the name of the Reading System (e.g., "iBooks", "Kindle").
version Returns a String value representing the version of the Reading System (e.g., "1.0", "2.1.1").
layoutStyle Use of the layoutStyle property is deprecated [EPUB-33]. Refer to its definition in [EPUBContentDocs-301] for usage information.

A.4 Methods

A.4.1 hasFeature

A.4.1.1 Description

The hasFeature method returns a boolean value indicating whether any version of the specified feature is supported, or undefined if the specified feature is not recognized.

The OPTIONAL version parameter is included for querying custom features that could change in incompatible ways over time. The return value indicates support only for the specified version of the feature.

EPUB Creators SHOULD NOT include the version parameter when querying features defined in this specification — these features are considered versionless. If a Reading System supports a feature defined in this specification, it MUST ignore any supplied version parameter and return a true value.

A.4.1.2 Features

The following table lists the set of features that Reading Systems that support the epubReadingSystem object MUST recognize (i.e., provide a return value for). Support for these features is OPTIONAL.

Name Description
dom-manipulation Scripts MAY make structural changes to the document’s DOM (applies to spine-level scripting [EPUB-33] only).
layout-changes Scripts MAY modify attributes and CSS styles that affect content layout (applies to spine-level scripting [EPUB-33] only).
touch-events The device supports touch events, and the Reading System passes touch events to the content.
mouse-events The device supports mouse events, and the Reading System passes mouse events to the content.
keyboard-events The device supports keyboard events, and the Reading System passes keyboard events to the content.
spine-scripting Indicates whether the Reading System supports spine-level scripting [EPUB-33] (e.g., so a container-constrained script [EPUB-33] can determine whether any actions that depend on scripting support in a Top-level Content Document have any chance of success before attempting them).

Additional features MAY be added by Reading System developers, but future versions of this specification might append to this list in ways that could conflict or be incompatible with any such custom additions.

B. Change Log

Note that this change log only identifies substantive changes — those that affect the conformance of Reading Systems or are similarly noteworthy.

For a list of all issues addressed during the revision, refer to the Working Group's issue tracker.

B.1 Substantive Changes since the Previous Working Draft

B.2 Substantive Changes since EPUB 3.2

C. Acknowledgements

This section is non-normative.

The editors would like to thank the members of the EPUB 3 Working Group for their contributions to this specification:

D. References

D.1 Normative references

[BCP47]
Tags for Identifying Languages. A. Phillips, Ed.; M. Davis, Ed.. IETF. September 2009. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc5646
[BIDI]
Unicode Bidirectional Algorithm. Mark Davis; Aharon Lanin; Andrew Glass. Unicode Consortium. 12 February 2020. Unicode Standard Annex #9. URL: https://www.unicode.org/reports/tr9/tr9-42.html
[CSS3-Speech]
CSS Speech Module. Daniel Weck. W3C. 10 March 2020. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-speech-1/
[CSSSnapshot]
CSS Snapshot. URL: https://www.w3.org/TR/CSS/
[DC11]
Dublin Core Metadata Element Set, Version 1.1. DCMI. 14 June 2012. DCMI Recommendation. URL: http://dublincore.org/documents/dces/
[DOM-Level-2-Style]
Document Object Model (DOM) Level 2 Style Specification. Chris Wilson; Philippe Le Hégaret. W3C. 3 November 2020. W3C Recommendation. URL: https://www.w3.org/TR/DOM-Level-2-Style/
[EPUB-33]
EPUB 3.3. Matt Garrish; Ivan Herman; Dave Cramer; Garth Conboy; Marisa DeMeglio; Daniel Weck. W3C. 24 February 2021. W3C Working Draft. URL: https://www.w3.org/TR/epub-33/
[EPUB-A11Y-10]
EPUB Accessibility 1.0. Matt Garrish; George Kerscher; Charles LaPierre; Avneesh Singh. IDPF. 05 January 2017. URL: http://idpf.org/epub/a11y/accessibility-20170105.html
[EPUBContentDocs-301]
EPUB Content Documents 3.0.1. Markus Gylling; William McCoy; Elika J. Etimad; Matt Garrish. IDPF. 26 June 2014. URL: http://idpf.org/epub/301/spec/epub-contentdocs-20140626.html
[EPUBPackages-32]
EPUB Packages 3.2. Matt Garrish; Dave Cramer. EPUB 3 Community Group. 08 May 2019. URL: https://www.w3.org/publishing/epub32/epub-packages.html
[HTML]
HTML Standard. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[Infra]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[IPA]
IPA Chart. International Phonetic Association. 2005. URL: https://www.internationalphoneticassociation.org/content/full-ipa-chart
[MATHML3]
Mathematical Markup Language (MathML) Version 3.0 2nd Edition. David Carlisle; Patrick D F Ion; Robert R Miner. W3C. 10 April 2014. W3C Recommendation. URL: https://www.w3.org/TR/MathML3/
[Microdata]
HTML Microdata. Charles 'chaals' (McCathie) Nevile; Dan Brickley; Ian Hickson. W3C. 28 January 2021. W3C Note. URL: https://www.w3.org/TR/microdata/
[OpenType]
OpenType specification. Microsoft. URL: http://www.microsoft.com/typography/otspec/default.htm
[PRONUNCIATION-LEXICON]
Pronunciation Lexicon Specification (PLS) Version 1.0. Paolo Baggia. W3C. 14 October 2008. W3C Recommendation. URL: https://www.w3.org/TR/pronunciation-lexicon/
[RDFA-CORE]
RDFa Core 1.1 - Third Edition. Ben Adida; Mark Birbeck; Shane McCarron; Ivan Herman et al. W3C. 17 March 2015. W3C Recommendation. URL: https://www.w3.org/TR/rdfa-core/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[RFC2397]
The "data" URL scheme. L. Masinter. IETF. August 1998. Proposed Standard. URL: https://datatracker.ietf.org/doc/html/rfc2397
[RFC3986]
Uniform Resource Identifier (URI): Generic Syntax. T. Berners-Lee; R. Fielding; L. Masinter. IETF. January 2005. Internet Standard. URL: https://datatracker.ietf.org/doc/html/rfc3986
[RFC3987]
Internationalized Resource Identifiers (IRIs). M. Duerst; M. Suignard. IETF. January 2005. Proposed Standard. URL: https://datatracker.ietf.org/doc/html/rfc3987
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc8174
[SMIL3]
Synchronized Multimedia Integration Language (SMIL 3.0). Dick Bulterman. W3C. 1 December 2008. W3C Recommendation. URL: https://www.w3.org/TR/SMIL3/
[SSML]
Speech Synthesis Markup Language (SSML) Version 1.1. Daniel Burnett; Zhi Wei Shuang. W3C. 7 September 2010. W3C Recommendation. URL: https://www.w3.org/TR/speech-synthesis11/
[SVG]
SVG. W3C. URL: https://www.w3.org/TR/SVG/
[TrueType]
Apple TrueType Reference Manual. Apple. 2002. URL: https://developer.apple.com/fonts/TrueType-Reference-Manual/
[URL]
URL Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://url.spec.whatwg.org/
[W3CProcess]
W3C Process Document. URL: https://www.w3.org/Consortium/Process/
[WAI-ARIA]
Accessible Rich Internet Applications (WAI-ARIA) 1.0. James Craig; Michael Cooper et al. W3C. 20 March 2014. W3C Recommendation. URL: https://www.w3.org/TR/wai-aria/
[WEBIDL]
Web IDL. Boris Zbarsky. W3C. 15 December 2016. W3C Editor's Draft. URL: https://heycam.github.io/webidl/
[WOFF]
WOFF File Format 1.0. Jonathan Kew; Tal Leming; Erik van Blokland. W3C. 13 December 2012. W3C Recommendation. URL: https://www.w3.org/TR/WOFF/
[WOFF2]
WOFF File Format 2.0. Vladimir Levantovsky; Raph Levien. W3C. 1 March 2018. W3C Recommendation. URL: https://www.w3.org/TR/WOFF2/
[XML]
Extensible Markup Language (XML) 1.0 (Fifth Edition). Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau et al. W3C. 26 November 2008. W3C Recommendation. URL: https://www.w3.org/TR/xml/
[XML-NAMES]
Namespaces in XML 1.0 (Third Edition). Tim Bray; Dave Hollander; Andrew Layman; Richard Tobin; Henry Thompson et al. W3C. 8 December 2009. W3C Recommendation. URL: https://www.w3.org/TR/xml-names/
[XMLBase]
XML Base (Second Edition). Jonathan Marsh; Richard Tobin. W3C. 28 January 2009. W3C Recommendation. URL: https://www.w3.org/TR/xmlbase/
[ZIP]
.ZIP File Format Specification. 1 September 2012. Final. URL: https://www.pkware.com/documents/casestudies/APPNOTE.TXT

D.2 Informative references

[AttributeExtensions]
EPUB Custom Attribute Extensions for Content Documents. URL: http://www.idpf.org/epub/extensions/attributes
[CSS2]
CSS 2. W3C. W3C Recommendation. URL: https://www.w3.org/TR/CSS2/
[H264]
H.264 : Advanced video coding for generic audiovisual services. 2017-04-13. URL: https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=13189
[RFC]
Request for Comments. URL: https://www.ietf.org/standards/rfcs/
[RFC6386]
VP8 Data Format and Decoding Guide. J. Bankoski; J. Koleszar; L. Quillio; J. Salonen; P. Wilkins; Y. Xu. IETF. November 2011. Informational. URL: https://datatracker.ietf.org/doc/html/rfc6386
[WebWorkers]
Web Workers. Ian Hickson. W3C. 28 January 2021. W3C Note. URL: https://www.w3.org/TR/workers/