EPUB 3.3
EPUB 3.3
W3C Recommendation
13 January 2026
More details about this document
This version:
Latest published version:
Latest editor's draft:
History:
Commit history
Test suite:
Implementation report:
Editors:
Matt Garrish
DAISY Consortium
Ivan Herman
W3C
Former editor:
Dave Cramer
W3C Invited Expert
Feedback:
GitHub w3c/epub-specs
pull requests
new issue
open issues
public-pm-wg@w3.org
with subject line
[epub-33]
… message topic …
archives
Errata:
See also
translations
International Digital Publishing Forum
and
World Wide Web Consortium
W3C
liability
trademark
and
permissive document license
rules apply.
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 authoring requirements for
EPUB publications
and represents the third
major revision of the standard.
Status of This Document
This section describes the status of this
document at the time of its publication. A list of current
W3C
publications and the latest revision of this technical report can be found
in the
W3C
standards and drafts index
This document was published by the
Publishing Maintenance Working Group
as
a Recommendation using the
Recommendation track
W3C
recommends the wide deployment of this specification as a standard for
the Web.
W3C
Recommendation is a specification that, after extensive
consensus-building, is endorsed by
W3C
and its Members, and
has commitments from Working Group members to
royalty-free licensing
for implementations.
Future updates to this Recommendation may incorporate
new features
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 that 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
18 August 2025
W3C
Process Document
1.
Introduction
1.1
Overview
This section is non-normative.
EPUB 3 has been widely adopted as the format for digital books (ebooks), and this revision continues
to increase the format's capabilities to better support a wider range of publication requirements,
including complex layouts, rich media and interactivity, and global typography features. The
expectation is that publishers will utilize the EPUB 3 format for a broad range of content,
including books, magazines, and educational, professional, and scientific publications.
This specification represents the core of EPUB 3 and includes the conformance requirements for
EPUB publications
— the product of the standard. The other specifications that comprise EPUB 3 are as
follows:
EPUB 3 Reading Systems
epub-rs-33
] — defines the processing
requirements for
EPUB reading systems
— the applications that consume EPUB publications
and present their content to users.
EPUB Accessibility
epub-a11y-11
] — defines accessibility
conformance and discovery requirements for EPUB publications.
These specifications represent the formal list recognized as belonging to EPUB 3 and that contain
functionality normatively referenced as part of the standard. The development of extension
specifications periodically adds new functionality to EPUB publications. Features and functionality
defined outside of core revisions to the standard, while not formally recognized in this
specification, are nonetheless available for
EPUB creators
and reading system developers to
use.
The non-normative
EPUB 3 Overview
epub-overview-33
] provides
a general introduction to EPUB 3. A list of technical changes from the previous version is also
available in the
change log
1.2
Organization
This section is non-normative.
This section reviews the organization of this specification through the central product it defines:
the
EPUB publication
An EPUB publication is, in its most basic sense, a bundle of resources with instructions on how to
render those resources to present the content in a logical order. The types of resources that are
allowed in EPUB publication, as well as restrictions on their use, are defined in
3.
Publication resources
A ZIP-based archive with the file extension
.epub
bundles the EPUB publication's
resources for distribution. As conformant ZIP archives, EPUB publications can be unzipped by many
software programs, simplifying both their production and consumption.
The container format not only provides a means of determining that the zipped content represents an
EPUB publication (the
mimetype
file), but also provides a universally named directory
of non-normative resources (
/META-INF
). Key among these resources is the
container.xml
file, which directs reading systems to the available
package documents
. Refer to
4.
Open Container Format (OCF)
for more information about the container format.
An EPUB publication is typically represented by a single package document. This document includes
metadata used by
reading systems
to present the content to the user, such as the title and
author for display in a bookshelf as well as rendering metadata (e.g., whether the content is
reflowable or has a fixed layout). It also provides a manifest of resources and includes a
spine
that lists the default sequence in which to render documents as a user progresses
through the content. Refer to
5.
Package document
for the requirements for the package
document.
The actual content of an EPUB publication — what users are presented with when they begin reading —
is built on the Open Web Platform and comes in two flavors: XHTML and SVG. Called
EPUB content documents
, these documents typically reference many additional resources required for their proper
rendering, such as images, audio and video clips, scripts, and style sheets.
Refer to
6.
EPUB content documents
for detailed information about the rules and requirements to
produce EPUB content documents, and [
epub-a11y-11
] for accessibility requirements.
An EPUB publication also includes another key file called the
EPUB navigation document
. This
document provides critical navigation capabilities, such as the table of contents, that allow users
to navigate the content quickly and easily. The navigation document is a specialized type of
XHTML content document
which also allows EPUB creators to use it in the content (i.e., avoiding one
table of contents for machine processing and another for user consumption). Refer to
7.
EPUB navigation document
for more information about this document.
EPUB publications by default are intended to reflow to fit the available screen space. It is also
possible to create publications that have pixel-precise fixed layouts using images and/or CSS
positioning. The metadata to control layouts are defined in
8.
Layout rendering control
Media overlay documents
complement EPUB content documents. They provide declarative markup for
synchronizing the text in EPUB content documents with prerecorded audio. The result is the ability
to create a read-aloud experience where
reading systems
highlight the text as it is narrated.
Refer to
9.
Media overlays
for the definition of media overlay documents.
While conceptually simple, an EPUB publication is more than just a collection of HTML pages and
dependent assets in a ZIP package as presented here. Additional information about the primary
features and functionality that EPUB publications provide to enhance the reading experience is
available from the referenced specifications, and a more general introduction to the features of
EPUB 3 is provided in the non-normative [
epub-overview-33
].
Refer to [
epub-rs-33
] for the processing requirements for reading systems. Although it is not
necessary that
EPUB creators
read that document to create EPUB publications, an understanding of
how reading systems present the content can help craft publications for optimal presentation to
users.
1.3
Relationship to other specifications
This section is non-normative.
Caution
The technologies EPUB 3 builds on are constantly evolving. Some, typically referred to as
"living" or "evergreen" standards, are subject to change daily and their impact on the validity
of EPUB publications is immediate. Others are updated less frequently and the changes may not
affect
EPUB publications
until EPUB 3 undergoes a new revision.
In all cases, it is possible that previously valid features may become obsolete (e.g., due to a
lack of support or because of security issues).
EPUB creators
should therefore be cautious
about using any feature without broad support and keep their
EPUB conformance checkers
up to
date.
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.
The benefit of this approach for EPUB is that
EPUB publications
always keep pace with changes
to the web without the need for new revisions.
EPUB creators
, however, must keep track of
the various changes to HTML and the technologies it references to ensure they keep their
processes up to date.
The
XHTML profile defined by this specification
inherits all definitions
of semantics, structure and processing behaviors from HTML unless otherwise specified.
In addition, this specification
defines a set of extensions
to the [
html
] document model that EPUB creators may include in
XHTML content documents
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.
EPUB creators
, however, must keep track of changes to the SVG standard to ensure they keep their
processes up to date.
1.3.3
Relationship to CSS
EPUB 3 supports CSS as defined by the CSS Working Group Snapshot [
csssnapshot
]. EPUB 3 also
maintains some prefixed CSS properties, to ensure consistent support for global languages.
1.3.4
Relationship to MathML
EPUB 3 only supports
Presentation
Markup
mathml3
].
Content
Markup
is only allowed in
structured
markup annotations
1.3.5
Relationship to SMIL
This specification relies on a subset of [
smil3
], from which the media overlays elements and
attributes defined in
9.2.2
Media overlay document definition
are derived.
1.3.6
Relationship to URL
This specification refers to the [
url
] standard for terminology and processing related to URLs
expressed in
EPUB publications
. It is anticipated that new and revised web formats will
adopt this standard, but until then this may put this specification in conflict with the
internal requirements for some formats (e.g., valid relative paths), specifically with respect
to the use of internationalized URLs. If a format does not allow internationalized URLs (i.e.,
URLs must conform to [
rfc3986
] or earlier), that requirement takes precedence within those
resources.
1.4
Terminology
This specification defines the following terms specific to EPUB 3.
Note
Only the first instance of a term in a section links to its definition.
codec
Codec refers to content that has intrinsic binary format qualities, such as video and audio
media types designed for optimum compression or that provide optimized streaming
capabilities.
container resource
publication resource
that is located within the
EPUB container
, as opposed to a
remote resource
which is not.
Refer to
3.6
Resource locations
for media type-specific rules for resource
locations.
container root URL
The
URL
url
] of the
root directory
representing the
OCF abstract container
. It is implementation specific, but EPUB creators must assume it has properties
defined in
4.2.5
URLs in the OCF abstract container
content URL
The
URL
of a file or directory in the
OCF abstract container
, defined in
4.2.5
URLs in the OCF abstract container
core media type resource
publication resource
that conforms to one of the MIME media types [
rfc2046
] listed in
3.2
Core media types
and, therefore, does not require the provision of a
fallback
(cf.
foreign resource
).
The designation "core media type resource" only applies when a resource is used in the
rendering of
EPUB content documents
and
foreign content documents
. A core media type
resource cannot be used in the
spine
, for example, without a fallback
unless it also has the media type of an EPUB content document.
EPUB conformance checker
An application that verifies the requirements of this specification against
EPUB publications
and reports on their conformance.
EPUB container
OCF ZIP container
The ZIP-based packaging and distribution format for
EPUB publications
defined in
4.3
OCF ZIP container
EPUB container and OCF ZIP container are synonymous.
EPUB content document
publication resource
referenced from the
spine
or a
manifest fallback chain
that conforms to either the
XHTML
or
SVG content document
definitions.
EPUB content documents contain all or part of the content of an
EPUB publication
(i.e.,
the textual, visual and/or audio content).
EPUB creators
can include EPUB content documents in the spine without the provision of
fallbacks
EPUB creator
An individual, organization, or process that produces an
EPUB publication
Note
The creation of an EPUB publication often involves the work of many individuals, and may
be split across multiple organizations (e.g., when a publisher outsources all or part of
the work). Depending on the process used to produce an EPUB publication,
responsibilities may fall on the organization (e.g., the publisher), the individuals
preparing the publication (e.g., technical editors), or automatic procedures (e.g., as
part of a publication pipeline). As a result, not every party or process may be
responsible for ensuring every requirement is met, but there is always an EPUB creator
responsible for the conformance of the final EPUB publication.
Previous versions of this specification referred to the EPUB creator as the
Author
EPUB manifest
(or manifest)
The section of the
package document
that lists the
publication resources
Refer to
5.6.1
The
manifest
element
for more information.
EPUB navigation document
A specialization of the
XHTML content document
that contains human- and machine-readable
global navigation information. The EPUB navigation document conforms to the constraints
expressed in
7.
EPUB navigation document
EPUB publication
A logical document entity consisting of a set of interrelated
resources
packaged in an
EPUB container
An EPUB publication typically represents a single intellectual or artistic work, but this
specification does not restrict the nature of the content.
EPUB
reading system
(or reading system)
A system that processes
EPUB publications
for presentation to a user in a manner
conformant with this specification.
EPUB spine
(or spine)
The section of the
package document
that defines an ordered list of
EPUB content documents
and
foreign content documents
. This list represents the default reading
order of the
EPUB publication
Refer to
5.7.1
The
spine
element
for more information.
exempt resource
Exempt resources are a special class of
publication resources
that reading systems are
not required to support the rendering of, but
EPUB creators
do not have to provide
fallbacks
for.
Refer to
3.4
Exempt resources
for more information.
file name
The name of any type of file within an
OCF abstract container
, whether a directory or a
file within a directory.
file path
The file path of a file or directory is its full path relative to the
root directory
, as
defined by the algorithm specified in
4.2.4
Deriving file paths
fixed-layout document
An
EPUB content document
with fixed dimensions directly referenced from the
spine
. Fixed-layout documents are designated
pre-paginated
in the
package document
, as defined in
8.2
Fixed layouts
foreign content document
Any
publication resource
referenced from a
spine
itemref
element, or
manifest fallback chain
, that is not an
EPUB content document
When a foreign content document is referenced from a spine
itemref
element, it
requires a manifest fallback chain with at least one EPUB content document.
Note
With the exception of XHTML and SVG, all
core media type resources
are foreign
content documents when referenced directly from the spine.
foreign resource
publication resource
with a MIME media type [
rfc2046
] that does not match any of
those listed in
3.2
Core media types
. Foreign resources are subject to the
fallback requirements defined in
3.3
Foreign resources
The designation "foreign resource" only applies to resources used in the rendering of
EPUB content documents
and
foreign content documents
Note
Foreign resource and foreign content document are not interchangeable terms. The types of
resources considered foreign when used in the spine is greater than the types of
resources considered foreign when used in
EPUB content
documents
linked resource
A resource that is only referenced from a
package document
link
element (i.e., not
also used in the rendering of an
EPUB publication
Linked resources are not
publication resources
but may be stored in the
EPUB container
. They do not require fallbacks.
media overlay document
An XML document that associates the
XHTML content document
with pre-recorded audio
narration to provide a synchronized playback experience, as defined in
9.
Media overlays
non-codec
Non-codec refers to content types that benefit from compression due to the nature of their
internal data structure, such as file formats based on character strings (for example, HTML,
CSS, etc.).
OCF abstract container
The OCF abstract container defines a file system model for the contents of the
OCF ZIP container
, as defined in
4.2
OCF abstract container
package document
publication resource
that describes the rendering of an
EPUB publication
, as
defined in
5.
Package document
. The package document carries meta information
about the EPUB publication, provides a manifest of resources, and defines a default reading
order.
publication resource
A resource that contains content or instructions that contribute to the logic and rendering
of an
EPUB publication
. In the absence of this resource,
reading systems
may not
render the EPUB publication as the
EPUB creator
intends. Examples of publication
resources include the
package document
EPUB content documents
, CSS Style Sheets,
audio, video, images, embedded fonts, and scripts.
EPUB creators must list publication resources in the package document
manifest
and typically bundle them all in the
EPUB container
(the exception being they
may locate resources listed in
3.6
Resource locations
outside the EPUB
container).
Note
Resources on the web identified in outbound hyperlinks (e.g., referenced from the
href
attribute of an [
html
element) are not publication
resources.
Data urls
are also not publication resources — they are
considered part of the resource they are embedded in.
remote resource
publication resource
that is located outside of the
EPUB container
, typically on
the web.
Publication resources within the EPUB container are referred to as
container resources
Refer to
3.6
Resource locations
for media type specific rules for resource
locations.
root directory
The root directory represents the base of the
OCF abstract container
file system. This
directory is
virtual in nature
scripted content document
An
EPUB content document
that includes scripting or an
XHTML content document
that
contains [
html
form
elements.
Refer to
6.3.2
Scripting
for more information.
SVG content document
An
EPUB content document
that conforms to the constraints expressed in
6.2
SVG content documents
synthetic spread
The rendering of two adjacent pages simultaneously on a device screen.
top-level content document
An
EPUB content document
or
foreign content document
referenced from the
spine
, whether directly or via a
fallback
chain
unique identifier
The primary identifier for an
EPUB publication
. The unique identifier is the
value
of
the
dc:identifier
element specified by the
unique-identifier
attribute
in the
package document
Significant revision, abridgement, etc. of the content requires a new unique identifier.
viewport
The region of an
EPUB reading system
in which an
EPUB publication
is rendered
visually to a user.
XHTML content document
An
EPUB content document
that conforms to the profile of [
html
] defined in
6.1
XHTML content documents
XHTML content documents use the
XML syntax
defined
in [
html
].
1.5
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
OPTIONAL
RECOMMENDED
REQUIRED
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.
All algorithm explanations are
non-normative
1.6
Authoring shorthands
This section is non-normative.
In
package document
metadata examples,
reserved
prefixes
are used without declaration.
References to Dublin Core elements [
dcterms
] use the
dc:
prefix. This prefix must be
declared in the
package document
for their use to be valid
xmlns:dc="http://purl.org/dc/elements/1.1/"
The
epub
namespace prefix [
xml-names
] is also used on elements and attributes without
always having an explicit declaration (
xmlns:epub="http://www.idpf.org/2007/ops"
).
2.
EPUB publication conformance
An
EPUB publication
MUST
define at least one rendering of its content as follows:
MUST
contain a
package document
that conforms to
5.
Package document
and meet all
publication resource
requirements for
the package document.
MUST
contain an
EPUB navigation document
that conforms to
7.
EPUB navigation document
SHOULD
conform to the accessibility requirements defined in
epub-a11y-11
].
MUST
be packaged in an
EPUB container
as defined in
4.
Open Container Format (OCF)
In addition, all publication resources
MUST
adhere to the requirements in
3.
Publication resources
The rest of this specification covers specific conformance details.
2.1
Conformance checking
This section is non-normative.
Due to the complexity of this specification and number of technologies used in
EPUB publications
EPUB creators
are advised to use an
EPUB conformance checker
to verify the conformance of
their content.
EPUBCheck
is the de facto EPUB conformance
checker used by the publishing industry and has been updated with each new version of EPUB. It is
integrated into a number of authoring tools and also available in alternative interfaces and other
languages (for more information, refer to its
Apps and Tools
page
).
When verifying their EPUB publications, EPUB creators should ensure they do not violate the
requirements of this specification (practices identified by the keywords "
MUST
", "
MUST NOT
", and
REQUIRED
"). These types of issues will often result in EPUB publications not rendering or rendering
in inconsistent ways. These issues are typically reported as errors or critical errors.
EPUB creators should also ensure that their EPUB publications do not violate the recommendations of
this specification (practices identified by the keywords "
SHOULD
", "
SHOULD NOT
", and "
RECOMMENDED
").
Failure to follow these practices does not result in an invalid EPUB publication but may lead to
interoperability problems and other issues that impact the user reading experience. These issues are
typically reported as warnings.
Note
Vendors, distributors, and other retailers of EPUB publications should consider the importance of
recommended practices before basing their acceptance or rejection on a zero-issue outcome from
an EPUB conformance checker. There will be legitimate reasons why EPUB creators cannot follow
recommended practices in all cases.
3.
Publication resources
3.1
Introduction
This section is non-normative.
An
EPUB publication
is made up of many different categories of resources, not all of which are
mutually exclusive. Some resources are
publication resources
, some are not. Some publication
resources are allowed in the
spine
by default, while all others require fallbacks.
Some resources can be used in rendering
EPUB content documents
, while others can only be used
with fallbacks.
Trying to understand these differences by reading the technical definitions of each category of
resource can be complex. To make the categorizations easier to understand, this introduction uses
the concept of different planes to explain how resources are grouped and referred to.
The three planes are:
The
manifest plane
— The manifest plane holds all the resources of the EPUB publication
(namely, publication resources and
linked resources
).
The
spine plane
— The spine plane holds only the resources used in rendering the spine
(namely, EPUB content documents and
foreign content documents
).
The
content plane
— The content plane holds only the resources used in the rendering of EPUB
and foreign content documents (namely,
core media type resources
foreign resources
and
exempt resources
).
The same resource may exist on more than one plane and will be referred to differently in this
specification depending on which plane is being discussed. For example, a core media type resource
used in the rendering of an EPUB content document (on the content plane) may also be a foreign
content document if it is also listed in the spine (the spine plane).
The following sections describe these planes in more detail.
Note
Refer to
H.1
Resources
for a detailed example showing how
resources fit into the different planes.
3.1.1
The manifest plane
To
manifest plane
defines all the resources of an
EPUB publication
. It is analogous to the
package document
manifest
but includes resources not present in that list.
The primary resources in this group are designated
publication resources
, which are all the
resources used in rendering an EPUB publication to the user.
EPUB creators
always have to
list these resources in the
manifest
element.
Publication resources are further classified by their use(s) in the
spine plane
and
content plane
The manifest plane also contains a set of
linked resources
. These resources are tangential to
the direct rendering. They include, for example, metadata records and links to external content
(e.g., where to purchase an EPUB publication).
Unlike publication resources, they are not listed in the package document manifest (i.e., because
they are not essential to rendering the EPUB publication). They are instead defined in
link
elements in the package document metadata. These elements define their nature and purpose
similar to how manifest
item
elements define publication resource. (In this way, they are
like an extension of the manifest.)
Refer to
5.5.6
The
link
element
for more information about linked resources.
Resources in the manifest plane are also sometimes broken down by where they are located.
Although most publication resources have to be located in the EPUB container (called
container resources
), EPUB 3 allows
audio, video, font and script data
resources
to be hosted outside the container. These exceptions were made to speed up the
download and loading of EPUB publications, as these resources are typically quite large, and, in
the case of fonts, not essential to the presentation. When remotely hosted, these publication
resources are referred to as
remote resources
Since linked resources are not essential to the rendering of an EPUB publication, there are no
requirements on where they are located and consequently no special naming of them based on their
location. They may be located within the EPUB container or outside it.
Note
Hyperlinked content outside the EPUB container (e.g., web pages) are not publication
resources, and consequently are not listed in the manifest. Reading systems will normally
open these links in a separate browser instance, not as part of the EPUB publication.
3.1.2
The spine plane
The
spine plane
defines resources used in the
default reading order established by the
spine
, which includes both
linear and non-linear content
. The spine instructs
reading systems
on how to load these resources as the user progresses through the
EPUB publication
. Although many resources may be bundled in an
EPUB container
, they are not all
allowed by default in the spine.
EPUB 3 defines a special class of resources called
EPUB content documents
that
EPUB creators
can use in the spine without any restrictions. EPUB content documents encompass both
XHTML content documents
and
SVG content documents
To use any other type of resource in the spine, called a
foreign content document
, requires
including a fallback to an EPUB content document. This extensibility model allows EPUB creators
to experiment with formats while ensuring that reading systems are always able to render
something for the user to read, as there is no guarantee of support for foreign content
documents.
A mechanism called
manifest fallbacks
allows EPUB creators
to provide fallbacks for foreign content documents. In this model, the
manifest
entry for the foreign content document must include a
fallback
attribute
that points to the next
possible resource for reading systems to try when they do not support its format. Although not
common, a fallback resource can specify another fallback, thereby making chains many resources
deep. The one requirement is that there must be at least one EPUB content document in a
manifest fallback chain
Although they are not directly listed in the spine, all of the resources in the fallback chain
are considered part of the spine, and by extension part of the spine plane, since any may be
used by a reading system.
Refer to
3.5.1
Manifest fallbacks
for more information.
Caution
Although manifest fallbacks fulfill the technical requirements of
EPUB, there is little practical support for them in reading systems. Their use is strongly
discouraged as it can lead to unreadable publications.
Note
It is possible to provide manifest fallbacks for EPUB content documents, but this is not
required or common. For example, a
scripted content document
could have a fallback to an
unscripted alternative for reading systems that do not support scripting.
3.1.3
The content plane
The
content plane
classifies resources that are
used when rendering
EPUB content documents
and
foreign content documents
. These types of
resources include embedded media, CSS style sheets, scripts, and fonts. These resources fall
into three categories based on their reading system support:
core media type resources
foreign resources
, and
exempt resources
A core media type resource is one that
reading systems
have to support, so it can be used
without restriction in EPUB or foreign content documents. For more information about core media
type resources, refer to
3.2
Core media types
Note
Being a core media type resource does not mean that reading systems will always render the
resource, as not all reading systems support all features of EPUB 3. A reading system
without a
viewport
, for example, will not render visual content such as images.
The opposite of core media type resources are foreign resources. These are resources that reading
systems are not guaranteed to support the rendering of. As a result, similar to how using
foreign content documents in the spine requires fallbacks to ensure their rendering, using
foreign resources in content documents also requires fallbacks. These fallbacks are provided in
one of two ways: using the capabilities of the host format or via manifest fallbacks.
The preferred method is to use the fallback capabilities of the host format. Many HTML elements,
for example, have intrinsic fallback capabilities. One example is the
picture
element [
html
], which allows
EPUB creators
to specify multiple alternative image
formats.
If an intrinsic fallback method is not available, it is also possible to use manifest fallbacks,
but this method, as
cautioned against
in the previous section,
is discouraged. For more information about foreign resources, refer to
3.3
Foreign resources
Falling between core media type resources and foreign resources are exempt resources. These are
most closely associated with foreign resources, as there is no guarantee that reading systems
will render them. But like core media types, they do not require fallbacks.
Exempt resources tend to address specific cases for which there are no core media types defined,
but for which providing a fallback would prove cumbersome or unnecessary. These include
embedding video, adding accessibility tracks, and linking to resources from the [
html
link
element.
Refer to
3.4
Exempt resources
for more information about these exceptions.
Note
A common point of confusion arising from core media type resources is the listing of XHTML
and SVG as core media type resources with the requirement the markup conform to their
respective EPUB content document definitions. This allows EPUB creators to embed both XHTML
and SVG documents in EPUB content documents while keeping consistent requirements for
authoring and reading system support.
In practice, it means that EPUB creators can put XHTML and SVG core media type resources in
the spine without any modification or fallback (they are also conforming XHTML and SVG
content documents), but this is a unique case. All other core media type resources become
foreign content documents when used in the spine (i.e., foreign content documents include
all foreign resources and all core media type resources except for XHTML and SVG).
3.2
Core media types
EPUB creators
MAY
include
publication resources
that conform to the MIME media type
rfc2046
] specifications defined in the following table without fallbacks when they are used in
EPUB content documents
and
foreign content documents
. These resources are classified as
core media type resources
With the exception of
XHTML content documents
and
SVG content documents
, EPUB creators
MUST
provide
manifest fallbacks
for core media type resources
referenced directly from the
spine
. In this case, they are
foreign content documents
The columns in the table represent the following information:
Media Type
—The MIME media type [
rfc2046
] used to represent the given
publication resource in the
manifest
If the table lists more than one media type, the first one is the preferred media type. EPUB
creators should use the preferred media type for all new EPUB publications.
Content Type Definition
—The specification to which the given core media type
resource must conform.
Applies to
—The publication resource type(s) that the Media Type and Content
Type Definition applies to.
Media Type
Content Type Definition
Applies to
Images
image/gif
gif
GIF Images
image/jpeg
jpeg
JPEG Images
image/png
png
PNG Images
image/svg+xml
SVG content documents
SVG documents
image/webp
rfc9649
WebP Images
Audio
audio/mpeg
mp3
MP3 audio
audio/mp4
mpeg4-audio
], [
mp4
AAC LC audio using MP4 container
audio/ogg; codecs=opus
rfc7845
OPUS audio using OGG container
Style
text/css
CSS Style Sheets
CSS Style Sheets.
Fonts
font/ttf
application/font-sfnt
truetype
TrueType fonts
font/otf
application/font-sfnt
application/vnd.ms-opentype
opentype
OpenType fonts
font/woff
application/font-woff
woff
WOFF fonts
font/woff2
woff2
WOFF2 fonts
Other
application/xhtml+xml
XHTML content documents
HTML documents that use the
XML syntax
html
].
application/javascript
application/ecmascript
text/javascript
rfc4329
Scripts.
application/x-dtbncx+xml
opf-201
The
legacy
NCX.
application/smil+xml
Media overlays
EPUB media overlay documents
Note
Inclusion as a core media type resource does not mean that all reading systems will support the
rendering of a resource. Reading system support also depends on the capabilities of the
application (e.g., a reading system with a
viewport
must support image core media type
resources, but a reading system without a viewport does not). Refer to
Core media types
epub-rs-33
] for more
information about which reading systems rendering capabilities require support for which core
media type resources.
The Working Group typically only includes formats as core media type resources when they have
broad support in web browser cores — the rendering engines that EPUB 3 reading systems build
upon. They are an agreement between reading system developers and EPUB creators to ensure the
predictability of rendering of EPUB publications.
3.3
Foreign resources
foreign resource
, unlike a
core media type resource
is one
which is not guaranteed
reading system
support when used in an
EPUB content document
or
foreign content document
EPUB creators
MUST
provide fallbacks for foreign resources, where fallbacks take
one of the following forms:
intrinsic fallback mechanisms provided by the host format (e.g., [
html
] elements often
provide the ability to reference more than one media type or to display an alternate
embedded message when a media type cannot be rendered); or
manifest fallback chains
defined on
item
elements
in the
package document
Note
Refer to the [
html
] and [
svg
] specifications for the intrinsic fallback capabilities their
elements provide.
3.5.2
Intrinsic fallbacks
also provides additional information about how fallbacks
are interpreted for specific elements.
3.4
Exempt resources
An
exempt resource
shares properties with both
foreign resources
and
core media type resources
. It is most similar to a
foreign resource
in that it is not guaranteed
reading system
support, but, like a core media type resource, does not require a fallback.
There are only a small set of special cases for exempt resources. Video, for example, are exempt from
fallbacks because there is no consensus on a core media type video format at this time (i.e., there
is no format to fallback to). Similarly, audio and video tracks are exempt to allow
EPUB creators
to meet accessibility requirements using whatever format reading systems support
best.
The following list details cases of content-specific exempt resources, including any restrictions on
where EPUB creators can use them.
Fonts
All font resources not already covered as
font core media types
are exempt resources.
This exemption allows EPUB creators to use any font format without a fallback, regardless of
reading system support expectations, as CSS rules will ensure a fallback font in case of no
support.
Refer to the
reading system support
requirements for fonts
epub-rs-33
] for more information.
Linked resources
Any resource referenced from the [
html
link
element that is not already a core media type resource (e.g.,
CSS style sheets) is an exempt resource.
Tracks
All audio and video tracks (e.g., [
webvtt
] captions, subtitles and descriptions)
referenced from the [
html
track
element are exempt resources.
Video
All video codecs referenced from the [
html
video
— including any child
source
elements — are exempt resources.
Note
Although reading systems are encouraged to support at least one of the H.264 [
h264
and VP8 [
rfc6386
] video codecs, support for video codecs is not a conformance
requirement. EPUB creators must consider factors such as breadth of adoption, playback
quality, and technology royalties when deciding which video formats to include.
Note
The exemptions made above do not apply to the
spine
. If an exempt resource is
used in the spine, and it is not also an
EPUB content document
, it will require a fallback
in that context.
In addition to the content-specific exemptions, a resource is
classified as an exempt resource if:
it is not referenced from a spine
itemref
element (i.e., used as a
foreign content document
);
and
it is not embedded directly in EPUB content documents (e.g., via [
html
embedded content
and [
svg
image
and
foreignObject
elements).
This exemption allows EPUB creators to include resources in the
EPUB container
that are not for
use by EPUB reading systems. The primary case for this exemption is to allow data files to travel
with an
EPUB publication
, whether for scripts to use in their constituent EPUB content documents
or for external applications to use (e.g., a scientific journal might include a data set with
instructions on how to extract it from the EPUB container).
It also allows EPUB creators to use foreign resources in foreign content documents without reading
systems or
EPUB conformance checkers
having to understand the fallback capabilities of those
resources (i.e., the requirement for a fallback for the foreign content document covers any
rendering issues within it). As the resource is not referenced from an EPUB content document, it
automatically becomes exempt from fallbacks.
3.5
Resource fallbacks
3.5.1
Manifest fallbacks
Manifest fallbacks are a feature of the
package document
that create a
manifest fallback chain
for a
publication resource
, allowing
reading systems
to select an alternative format they can render.
Fallback chains are created using the
fallback
attribute
on
manifest
item
elements. This attribute references
the
ID
xml
] of another manifest
item
that is a
fallback for the current
item
. The ordered list of all the references that a
reading system can reach, starting from a given
item
's
fallback
attribute, represents the full fallback chain for that
item
. This chain also
represents the
EPUB creator's
preferred fallback order.
There are two cases for manifest fallbacks:
Spine fallbacks
EPUB creators
MUST
specify a fallback chain for a
foreign content document
to ensure
that reading systems can always render the
spine
item. In this case,
the chain
MUST
contain at least one
EPUB content document
EPUB creators
MAY
provide fallbacks for EPUB content documents (e.g., to provide a
fallback for scripted content
).
When a fallback chain includes more than one EPUB content document, EPUB creators can use
the
properties
attribute
to differentiate
the purpose of each.
Content fallbacks
Note
The original purpose for content fallbacks was to specify fallback images for the
html
img
element. As HTML now has intrinsic fallback mechanism for images,
the use of content fallbacks is strongly discouraged. EPUB creators should always
use the intrinsic fallback capabilities of [
html
] and [
svg
] to provide fallback
content.
EPUB creators
MUST
provide a content fallback for
foreign resources
when the elements
that reference them do not have intrinsic fallback capabilities. In this case, the
fallback chain
MUST
contain at least one
core media type resource
EPUB creators
MAY
also provide manifest fallbacks for core media type resources (e.g., to
allow reading systems to select from more than one image format).
Regardless of the type of manifest fallback specified, fallback chains
MUST NOT
contain
self-references or circular references to
item
elements in the chain.
Note
As it is not possible to use manifest fallbacks for resources represented in
data URLs
, EPUB creators can only represent foreign resources
as data URLs where an intrinsic fallback mechanism is available.
3.5.2
Intrinsic fallbacks
The following sections provide additional clarifications about the intrinsic fallback
requirements of specific elements.
3.5.2.1
HTML
audio
and
video
fallbacks
EPUB creators
MUST NOT
use embedded
html
flow content
within a
media element
(i.e,
audio
or
video
) as an intrinsic fallback for
audio
foreign resources
. Only child
source
elements [
html
] provide intrinsic
fallback capabilities.
Only older
reading systems
that do not recognize the
audio
or the
video
elements (e.g., EPUB 2 reading systems) will render the embedded
content. When reading systems support these elements but not the available media formats,
they do not render the embedded content for the user.
Note
The requirement for fallbacks only applies to audio foreign resources referenced from
audio
and
video
elements. Fallbacks are not required for
video resources; they are
exempt resources
3.5.2.2
HTML
img
fallbacks
Due to the variety of sources that
EPUB creators
can specify in the [
html
img
element, the following fallback conditions apply to its
use:
If it is the child of a
picture
element:
it
MUST
reference core media type resources from its
src
and
srcset
attributes, when EPUB creators specify those attributes;
and
each sibling
source
element
MUST
reference a
core media type resource
from its
src
and
srcset
attributes unless it specifies the MIME media type [
rfc2046
] of a
foreign resource
in its
type
attribute.
Otherwise, it
MAY
reference foreign resources in its
src
and
srcset
attributes provided EPUB creators define a
manifest fallback
3.5.2.3
HTML
script
element
Although data blocks have a separate MIME media type [
rfc2046
] from their containing
XHTML content document
, it is not possible to provide intrinsic fallbacks as no such
mechanisms are specified for the [
html
script
element. It is also not possible to
provide manifest fallbacks because data blocks cannot be defined as standalone files in the
EPUB container but are always embedded as inline
script
elements.
But, as the
script
element does not represent user content —
data blocks
are not rendered unless manipulated by
script, and content rendered by scripts already has
core
media type requirements
— requiring fallbacks for the raw data does not serve a
useful purpose.
Consequently, to ensure that
EPUB creators
can include data blocks for scripting
purposes, they are exempt from fallback requirements.
Note
This exemption aligns data blocks with the
exemption for data files
Note
svg
] does not define data blocks as of publication, but the same exclusion would apply
if a future update adds the concept.
3.6
Resource locations
EPUB creators
MAY
host the following types of
publication resources
outside the
EPUB container
Audio resources
Video resources
Resources retrieved via scripting
APIs
(e.g.,
XmlHttpRequest [
xhr
] and Fetch [
fetch
]).
Font resources
EPUB creators
MUST
store all other resources within the EPUB container.
Storing all resources inside the EPUB container is strongly encouraged whenever possible as it allows
users access to the entire presentation regardless of connectivity status.
When resources have to be located outside the EPUB container, EPUB creators are
RECOMMENDED
to
reference them via the secure
https
URI scheme [
rfc9110
] to limit the threat of
exposing their publications, and users, to network attacks.
Reading systems
might not load
remote resources
referenced using insecure schemes such as
http
These rules for locating publication resource apply regardless of whether the given resource is a
core media type resource
or a
foreign resource
Note
Refer to the
remote-resources
property
for more
information on how to indicate that a
manifest
item
references a
remote resource
Example
: Referencing a container resource
In this example, the audio file referenced from the [
html
audio
element is located inside the EPUB
container.
html
…>
body
audio
src
"audio/ch01.mp4"
controls
"controls"
/>
body
html
Example
: Referencing a remote resource
In this example, the audio file referenced from the [
html
audio
element is hosted on the web.
html
…>
body
audio
src
"http://www.example.com/book/audio/ch01.mp4"
controls
"controls"
/>
body
html
3.7
Data URLs
The
data:
URL scheme
rfc2397
] is used to encode resources
directly into a URL string. The advantage of this scheme is that it allows
EPUB creators
to
embed a resource within another, avoiding the need for an external file.
EPUB creators
MUST NOT
use data URLs in the following scenarios where they can result in a
top-level content document
or
top-level browsing context
html
]:
in
href
attributes in the package document — this applies both to manifest
item
elements and metadata
link
elements;
in the
href
attribute on [
html
] or [
svg
elements, except
when inside an
iframe
element [
html
];
in the
href
attribute on [
html
area
elements, except when inside
an
iframe
element;
in calls to [
ecmascript
window.open
or
document.open
Note
These restrictions on the use of data URLs are to prevent security issues and also to ensure that
reading systems
can determine where to take a user next (i.e., because data URLs cannot be
referenced from the
spine
).
The list of prohibited uses for data URLs is subject to change as the respective standards that
allow their use evolve.
A consequence of embedding is that the data in a data URL is not considered its own unique
publication resource
for manifest reporting purposes (i.e., only its containing publication
resource gets listed). As this data has its own media type, however, it is still subject to
foreign resource restrictions
. EPUB creators
MUST
therefore
encode data URLs as
core media type resources
or provide a fallback using the intrinsic fallback
mechanisms of the host format.
3.8
File URLs
The
file:
URL scheme
is defined in [
rfc8089
] as
"identifying an object (a 'file') stored in a structured object naming and accessing environment on
a host (a 'file system')." It is typically used to retrieve files from the local operating
system.
Using a file URL in an
EPUB publication
, which can be transferred among different hosts,
represents a security risk and is also non-interoperable. As a consequence,
EPUB creators
MUST NOT
use file URLs in EPUB publications.
3.9
XML conformance
Any
publication resource
that is an XML-based media type [
rfc2046
]:
MUST
be a conformant XML 1.0 Document as defined in
Conformance of Documents
xml-names
].
MAY
only specify a
document type
declaration
that references an
external
identifier
appropriate for its media type — as defined in
B.
Allowed external identifiers
— or that omits external identifiers [
xml
].
MUST NOT
contain
external entity
declarations in the internal DTD subset [
xml
].
MUST NOT
make use of XInclude [
xinclude
].
MUST
be encoded in UTF-8 or UTF-16 [
unicode
], with UTF-8 as the
RECOMMENDED
encoding.
The above constraints apply regardless of whether the given publication resource is a
core media type resource
or a
foreign resource
Note
html
] and [
svg
] are removing support for the XML
base
attribute [
xmlbase
].
EPUB creators should avoid using this feature.
4.
Open Container Format (OCF)
4.1
Introduction
This section is non-normative.
OCF is the required container technology for
EPUB publications
. OCF may play a role in the
following workflows:
During the preparation steps in producing an EPUB publication, OCF may be used as the container
format when exchanging in-progress publications between different individuals and/or different
organizations.
When providing an EPUB publication from publisher or conversion house to the distribution or
sales channel, OCF is the recommended container format to be used as the transport format.
When delivering the final EPUB publication to an
EPUB reading system
or user, OCF is the
required format for the container that holds all of the assets that make up the
publication.
This section defines the rules for structuring the file collection in the abstract: the "abstract
container". It also defines the rules for the representation of this abstract container within a ZIP
archive: the "physical container". The rules for ZIP physical containers build upon the ZIP
technologies used by [
odf
].
OCF also defines a standard method for
obfuscating embedded fonts
for those EPUB publications that require this functionality.
4.2
OCF abstract container
4.2.1
Introduction
This section is non-normative.
The
OCF abstract container
file system model uses a single common
root directory
. All
container resources
are located within the directory tree headed by the root directory, but
no specific file system structure for them is mandated by this specification.
The file system model also includes a mandatory directory named
META-INF
that is a
direct child of the root directory and stores the following special files:
container.xml
[required]
Identifies one or more
package documents
that define the
EPUB publication
signatures.xml
[optional]
Contains digital signatures for various assets.
encryption.xml
[optional]
Contains information about the encryption of
publication resources
. This file is
mandatory when
EPUB creators
use
font
obfuscation
metadata.xml
[optional]
Used to store metadata about the
OCF ZIP container
rights.xml
[optional]
Used to store information about digital rights.
manifest.xml
[optional]
A manifest of container contents as allowed by Open Document Format [
odf
].
Refer to
4.2.6
META-INF
directory
for conformance requirements for the various files
in the
META-INF
directory.
4.2.2
File and directory structure
The virtual file system for the
OCF abstract container
MUST
have a single common
root directory
for all the contents of the container.
The OCF abstract container
MUST
include a directory for configuration files named
META-INF
that is a direct child of the container's root directory. Refer to
4.2.6
META-INF
directory
for the requirements for the contents of this
directory.
The file name
mimetype
in the root directory is reserved for use by
OCF ZIP containers
, as explained in
4.3
OCF ZIP container
Files in the
META-INF
directory and the
mimetype
file are not
publication resources
so
MUST NOT
be listed in the
manifest
EPUB creators
MAY
locate all other files within the OCF abstract container in any location
descendant from the root directory, provided they are not within the
META-INF
directory. EPUB creators
MUST NOT
reference files in the
META-INF
directory from an
EPUB publication
Note
Some
reading systems
do not provide access to resources outside the directory where the
package document
is stored. EPUB creators should therefore place all resources at or
below the directory containing the package document to avoid interoperability issues.
This problem is more commonly encountered when
creating multiple renditions
epub-multi-rend-11
] of the publication.
4.2.3
File paths and file names
In the context of the
OCF abstract container
file paths
and
file names
are
scalar value strings
infra
] (i.e., their values are case sensitive).
In addition, the following restrictions are designed to allow file paths and file names to be
used without modification on most operating systems:
File names
MUST NOT
exceed 255 bytes.
The file paths for any directory or file within the OCF abstract
container
MUST NOT
exceed 65535 bytes.
File names
MUST NOT
use the following [
unicode
] characters, as
commonly used operating systems may not support these characters consistently:
SOLIDUS:
U+002F
QUOTATION MARK:
U+0022
ASTERISK:
U+002A
FULL STOP as the last character:
U+002E
COLON:
U+003A
LESS-THAN SIGN:
U+003C
GREATER-THAN SIGN:
U+003E
QUESTION MARK:
U+003F
REVERSE SOLIDUS:
U+005C
VERTICAL LINE:
U+007C
DEL (
U+007F
C0 range (
U+0000 … U+001F
C1 range (
U+0080 … U+009F
Private Use Area (
U+E000 … U+F8FF
All Unicode Non Characters, specifically:
The 32 contiguous characters in the Basic Multilingual Plane
U+FDD0 … U+FDEF
The last two code points of the Basic Multilingual Plane
U+FFFE
and
U+FFFF
The last two code points at the end of the Supplementary Planes
U+1FFFE, U+1FFFF … U+EFFFE, U+EFFFF
Specials (
U+FFF0 … U+FFFF
Supplementary Private Use Area-A (
U+F0000 … U+FFFFF
Supplementary Private Use Area-B (
U+100000 … U+10FFFF
Note
The Unicode Character Database [
uax44
] also includes a
list of
deprecated characters
. EPUB creators are advised to avoid these characters,
as well, as it is expected that
EPUB conformance checkers
will flag their
use.
For compatibility with older
reading systems
, file names
SHOULD NOT
contain SPACE (U+0020) characters.
All file names within the same directory
MUST
be unique following Unicode
canonical normalization [
uax15
] and then full case folding [
unicode
]. (Refer to
Unicode Canonical Case Fold
Normalization Step
charmod-norm
] for more information.)
Note
If
EPUB creators
dynamically integrate resources (i.e., where the naming is beyond their
control), they should be aware that automatic truncation of file names to keep them within
the 255 bytes limit can lead to corruption. This is due to the difference between bytes and
characters in multibyte encodings such as UTF-8; it is, therefore, important to avoid
mid-character truncation. See the section on
"Truncating or limiting the length of
strings"
in [
international-specs
] for more information.
Note
EPUB creators should use an abundance of caution in their file naming when interoperability
of content is key. The
list of restricted characters
is intended
to help avoid some known problem areas, but it does not ensure that all other Unicode
characters are supported. Although Unicode support is much better now than in earlier
iterations of EPUB, older tools and toolchains may still be encountered (e.g., ZIP tools
that only support [
us-ascii
]).
4.2.4
Deriving file paths
To
derive the file path
, given a file or directory
file
in the
OCF abstract container
, apply the following steps
(expressed using the terminology of [
infra
]):
Let
path
be an empty
list
Let
current
be
file
While
current
is not the
root directory
prepend
the
file name
of
current
to
path
set
current
to the parent directory of
current
Return the
concatenation
of
path
using the
U+002F (/)
character.
4.2.5
URLs in the OCF abstract container
The
container root URL
is the
URL
url
] of the
root directory
. It is implementation-specific, but
EPUB creators
MUST
assume it has the following properties:
The result of
parsing
" with the
container root URL
as
base
is the
container root URL
The result of
parsing
..
" with the
container root URL
as
base
is the
container root URL
The
content URL
of a file or directory in the
OCF abstract container
is the result of
parsing
the file's
file path
with the container root URL as
base
Note
The container root URL is the URL assigned by the
reading system
to the root of the
EPUB container
. It typically depends on how the reading system internally implements the
container file system.
However, a reading system cannot arbitrarily use any URL, but one that honors the constraints
defined above. These constraints ensure that any relative URL string found in the EPUB will
always be parsed to a URL of a resource within the container (which may or may not exist).
The primary reason for these constraints is to avoid potential run-time security issues that
would be caused by parsed URLs "leaking" outside the container files.
For example, URLs like
or
honor these properties. But URLs like
file:///path/to.epub#path=/
, or
jar:file:/path/to.epub!/EPUB/
do not (parsing the URL string "
..
" with these three examples as base would
return
file:///path/
, and a parsing
error, respectively). It is the responsibility of the reading system to assign a URL to the
root directory that complies with the properties defined above.
Note
Parsing may replace some characters in the file path by their
percent encoded
alternative. For example,
A/B/C/file name.xhtml
becomes
A/B/C/file%20name.xhtml
A string
url
is a
valid-relative-ocf-URL-with-fragment string
if it is a
path-relative-scheme-less-url string
, optionally followed by
U+0023 (#)
and a
url-fragment string
, and if the following steps return
true
Set the
container root URL
to
Explanation
The goal of the algorithm is to detect whether
url
could be seen as
"leaking" outside the container. To do that, the standard
URL parsing algorithm
is used with an artificial root URL; the detection of the "leak" is done
by comparing the result of the parsing with the presence of the first test path
segment (
). (Note that the artificial container root URL wilfully
violates, for the purpose of this algorithm, the
required properties
by using that first test path segment.)
Let
base
be the
base URL
that must be
used to parse
url
as defined by the context (document or environment) where
url
is used, and according to the content URL of the
package document
(see
5.2
Parsing URLs in the package document
).
Explanation
In the case of a URL in the package document the
base
variable is set to
the content URL of the package document. In the case of a document within the
META-INF
directory, the
base
variable is set to the
container root URL (see
4.2.6.2
Parsing URLs in the
META-INF
directory
). In the case of a
URL in an
XHTML content document
, the base URL used for parsing is defined by
the
HTML standard
. Typically, it will be the
content URL of the content document (unless the
discouraged
base
element is used).
Let
testURLRecord
be the result of applying the
URL parser
to
url
with
base
Let
testURLStringA
be the result of applying the
URL Serializer
to
testURLRecord
Set the
container root URL
to
Explanation
The reasons to repeat the same steps twice with different, and artificial, settings
of the container root URL is to avoid collision which may occur if the
url
string also includes
/A/
. Consider, for example, the
case where
url
is
../../A/doc.xhtml
Set
base
to be the
base URL
that must be
used to parse
url
as defined by the context (document or environment) where
url
is used, and according to the content URL of the package document (see
5.2
Parsing URLs in the package document
).
Set
testURLRecord
to be the result of applying the
URL parser
to
url
, with
base
Let
testURLStringB
be the result of applying the
URL Serializer
to
testURLRecord
If
testURLStringA
does not start with
or
testURLStringB
does not start with
return
true
Explanation
If any of the result does not share the test URL host, it means that
url
or its base URL (for example, in HTML, if it is explicitly set with the
base
element), was
absolute
and points outside the
container. This is acceptable.
If
testURLStringA
starts with
and
testURLStringB
starts with
, return
true
Explanation
The presence of the first test path segments (
, respectively
) indicate that the URL doesn't leak outside the container.
Return
false
In the OCF abstract container, any URL string
MUST
be an
absolute-url-with-fragment string
or a
valid-relative-ocf-URL-with-fragment string
In addition, all
relative-URL-with-fragment strings
url
MUST
, after
parsing
, be equal to the content URL of an existing file in the OCF
abstract container.
Note
These constraints on URL strings mean that:
relative URL strings starting with a
U+002F
) (for example,
/EPUB/content.xhtml
) are disallowed;
relative URL strings containing more
double-dot URL path segments
than needed to
reach the target file (for example,
EPUB/../../../../config.xml
) are
disallowed;
any other absolute or relative URL string is allowed.
Note that in any case, even the disallowed URL strings described above will not "leak"
outside the container after parsing (as explained in the
first note
of this section). They are nevertheless disallowed for better
interoperability with non-conforming or legacy reading systems and toolchains.
Example
: Referencing a file in the same directory
In this example, the file
image1.jpg
is in the same directory as the XHTML
content document.
html
…>
body
img
src
"image1.jpg"
alt
"…"
/>
body
html
Example
: An "out-of-container" URL
Given the following container structure:
├── mimetype
├── META-INF
│ └──
container
.xml
└── EPUB
└──
content
.xhtml
A URL
../../../../EPUB/secret.xhtml
appearing in
content.xhtml
would be parsed by a
reading system into a content URL with a path
EPUB/secret.xhtml
, following the constraints
on the container root URL. However, as the URL could be perceived as one of a resource
outside the container, and create interoperability issues; it would be reported as an error
by a checker tool.
4.2.6
META-INF
directory
4.2.6.1
Inclusion in OCF abstract container
All
OCF abstract containers
MUST
include a directory called
META-INF
in
their
root directory
This directory is reserved for configuration files, specifically those defined in
4.2.6.3
Reserved files
4.2.6.2
Parsing URLs in the
META-INF
directory
To parse a URL string
url
used in files located in the
META-INF
directory the
URL parser
MUST
be applied to
url
, with the
container root URL
as
base
Example
: Resolving paths in the container file
If container file (
META-INF/container.xml
) has the following content:
"1.0"
?>
container
version
"1.0"
xmlns
"urn:oasis:names:tc:opendocument:xmlns:container"
rootfiles
rootfile
full-path
"EPUB/Great_Expectations.opf"
media-type
"application/oebps-package+xml"
/>
rootfiles
container
then the path
EPUB/Great_Expectations.opf
is relative to the
root directory
for the
OCF abstract container
and not relative to the
META-INF
directory.
4.2.6.3
Reserved files
4.2.6.3.1
Container file (
container.xml
The
REQUIRED
container.xml
file in the
META-INF
directory
identifies the
package documents
available in the
OCF abstract container
All [
xml
] elements defined in this section are in the
urn:oasis:names:tc:opendocument:xmlns:container
namespace [
xml-names
unless specified otherwise.
The contents of this file
MUST
be valid to the definition in this section after removing
all elements and attributes from other namespaces (including all attributes and contents
of such elements).
Note
An
XML Schema
also informally defines
the content of this file.
4.2.6.3.1.1
The
container
element
The
container
element encapsulates all the information in the
container.xml
file.
Element Name:
container
Usage:
REQUIRED
root element
xml
] of the
container.xml
file.
Attributes:
version
[required]
This attribute
MUST
have the value
1.0
".
Content Model:
In this order:
rootfiles
[exactly one]
links
[0 or 1]
4.2.6.3.1.2
The
rootfiles
element
The
rootfiles
element contains a list of
package documents
available
in the
EPUB container
Element Name:
rootfiles
Usage:
REQUIRED
first child of
container
Attributes:
None
Content Model:
rootfile
[1 or more]
4.2.6.3.1.3
The
rootfile
element
Each
rootfile
element identifies the location of one
package document
in the
EPUB container
Element Name:
rootfile
Usage:
As child of the
rootfiles
element. Repeatable.
Attributes:
full-path
[required]
Identifies the location of a package document.
The value of the attribute
MUST
be a
path-relative-scheme-less-URL string
url
]. The path is relative to the
root directory
media-type
[required]
Identifies the media type of the package document.
The value of the attribute
MUST
be
application/oebps-package+xml
".
Content Model:
Empty
If an
EPUB creator
defines more than one
rootfile
element, each
MUST
reference a package document that conforms to the same version of EPUB. Each package
document represents one rendering of the
EPUB publication
Note
Although the EPUB container provides the ability to reference more than one
package document, this specification does not define how to interpret, or select
from, the available options. Refer to [
epub-multi-rend-11
] for more
information on how to bundle more than one rendering of the content.
4.2.6.3.1.4
The
links
element
The
links
element identifies resources
necessary for the processing of the
OCF ZIP container
Element Name:
links
Usage:
OPTIONAL
second child of
container
. Repeatable.
Attributes:
None
Content Model:
link
[1 or more]
Note
This specification currently does not define uses for the
links
element. Refer to [
epub-multi-rend-11
] for an example of its use.
4.2.6.3.1.5
The
link
element
Element Name:
link
Usage:
As child of the
links
element. Repeatable.
Attributes:
href
[required]
Identifies the location of a resource.
The value of the
link
element
href
attribute
MUST
be a
path-relative-scheme-less-URL string
url
]. The path is relative to the
root directory
media-type
[optional]
Identifies the type and format of the referenced resource.
The value of the attribute
MUST
be a media type [
rfc2046
].
rel
[required]
Identifies the relationship of the resource.
The value of the attribute
MUST
be a space-separated list of
tokens.
Content Model:
Empty
4.2.6.3.1.6
Examples
This section is non-normative.
Example
: A basic container file
"1.0"
?>
container
version
"1.0"
xmlns
"urn:oasis:names:tc:opendocument:xmlns:container"
rootfiles
rootfile
full-path
"EPUB/My_Crazy_Life.opf"
media-type
"application/oebps-package+xml"
/>
rootfiles
container
4.2.6.3.2
Encryption file (
encryption.xml
The
OPTIONAL
encryption.xml
file in the
META-INF
directory
holds all encryption information on the contents of the container. If an
EPUB creator
encrypts any resources within the container, they
MUST
include an
encryption.xml
file to provide information about the encryption
used.
4.2.6.3.2.1
The
encryption
element
Element Name:
encryption
Namespace:
urn:oasis:names:tc:opendocument:xmlns:container
Usage:
REQUIRED
root element
xml
] of the
encryption.xml
file.
Attributes:
None
Content Model:
In any order:
EncryptedKey
[1 or more]
EncryptedData
[1 or more]
The
encryption
element contains child elements of type
EncryptedKey
and
EncryptedData
as defined by
xmlenc-core1
].
An
EncryptedKey
element describes each encryption key used
in the container, while an
EncryptedData
element describes each
encrypted file. Each
EncryptedData
element refers to an
EncryptedKey
element, as described in XML Encryption.
Note
An
XML Schema
also informally
defines the content of the
encryption.xml
file.
OCF encrypts individual files independently, trading off some security for improved
performance, allowing the container contents to be incrementally decrypted.
Encryption in this way exposes the directory structure and file naming of the whole
package.
OCF uses XML Encryption [
xmlenc-core1
] to provide a framework for encryption,
allowing a variety of algorithms to be used. XML Encryption specifies a process for
encrypting arbitrary data and representing the result in XML. Even though an
OCF abstract container
may contain non-XML data,
EPUB creators
can use XML
Encryption to encrypt all data in an
OCF abstract container
. OCF encryption
supports only the encryption of entire files within the container, not parts of
files. EPUB creators
MUST NOT
encrypt the
encryption.xml
file when
present.
Encrypted data replaces unencrypted data in an OCF abstract container. For example,
if an EPUB creator encrypts an image named
photo.jpeg
, they should
replace the contents of the
photo.jpeg
resource with its encrypted
contents. Within the ZIP directory, EPUB creators
SHOULD
store encrypted files
rather than Deflate-compress them.
Note that some situations require obfuscating the storage
of embedded fonts referenced by an
EPUB publication
to make them more difficult
to extract for unrestricted use. Although obfuscation is not encryption, reading
systems use the
encryption.xml
file in conjunction with the
font obfuscation algorithm
to identify fonts to
deobfuscate.
EPUB creators
MUST NOT
encrypt the following files:
mimetype
META-INF/container.xml
META-INF/encryption.xml
META-INF/manifest.xml
META-INF/metadata.xml
META-INF/rights.xml
META-INF/signatures.xml
[=
package document
=]
EPUB creators
MAY
subsequently encrypt signed resources using the Decryption
Transform for XML Signature [
xmlenc-decrypt
]. This feature enables a
reading system
to distinguish data encrypted before signing from data encrypted
after signing.
Example
: An encrypted image
In this example, adapted from
Section 2.2.1
of [
xmlenc-core1
], the resource
image.jpeg
is encrypted using a symmetric key algorithm (AES)
and the symmetric key is further encrypted using an asymmetric key algorithm
(RSA) with a key of "John Smith".
encryption
xmlns
"urn:oasis:names:tc:opendocument:xmlns:container"
xmlns:enc
"http://www.w3.org/2001/04/xmlenc#"
xmlns:ds
"http://www.w3.org/2000/09/xmldsig#"
enc:EncryptedKey
Id
"EK"
enc:EncryptionMethod
Algorithm
"http://www.w3.org/2001/04/xmlenc#rsa-1_5"
/>
ds:KeyInfo
ds:KeyName
John Smith
ds:KeyName
ds:KeyInfo
enc:CipherData
enc:CipherValue
xyzabc
enc:CipherValue
enc:CipherData
enc:EncryptedKey
enc:EncryptedData
Id
"ED1"
enc:EncryptionMethod
Algorithm
"http://www.w3.org/2001/04/xmlenc#kw-aes128"
/>
ds:KeyInfo
ds:RetrievalMethod
URI
"#EK"
Type
"http://www.w3.org/2001/04/xmlenc#EncryptedKey"
/>
ds:KeyInfo
enc:CipherData
enc:CipherReference
URI
"image.jpeg"
/>
enc:CipherData
enc:EncryptedData
encryption
4.2.6.3.2.2
Order of compression and encryption
When stored in an
OCF ZIP container
EPUB creators
SHOULD
compress streams of
data with
non-codec
content types before encrypting them. EPUB creators
MUST
use
Deflate compression. This practice ensures that file entries stored in the ZIP
container have a smaller size.
EPUB creators
SHOULD NOT
compress streams of data with
codec
content types before
encrypting them. In such cases, additional compression introduces unnecessary
processing overhead at production time (especially with large resource files) and
impacts audio/video playback performance at consumption time. In some cases, the
combination of compression with some encryption schemes might even compromise the
ability of
reading systems
to handle partial content requests (e.g. HTTP byte
ranges), due to the technical impossibility to determine the length of the full
resource ahead of media playback (e.g. HTTP Content-Length header).
When EPUB creators compress streams of data before encrypting, they
SHOULD
provide
additional
EncryptionProperties
metadata to specify the size of the
initial resource (i.e., before compression and encryption), as per the
Compression
XML element defined below. When EPUB creators do not
compress streams of data before encrypting, they
MAY
provide the additional
EncryptionProperties
metadata to specify the size of the initial
resource (i.e., before encryption).
Element Name:
Compression
Namespace:
Usage:
OPTIONAL
child of
EncryptionProperty
Attributes:
Method
[required]
Identifies the compression method used.
Value is either "
" (no compression) or "
(Deflate algorithm).
OriginalLength
[required]
Represents the size of the initial resource (number of bytes).
Value is a positive integer.
Content Model:
Empty
Example
: A compressed video
In this example, the EPUB creator has Deflate compressed the MP4 file. Its
original size was 3500000 bytes.
encryption
xmlns
"urn:oasis:names:tc:opendocument:xmlns:container"
enc:EncryptedData
xmlns:enc
"http://www.w3.org/2001/04/xmlenc#"
enc:CipherData
enc:CipherReference
URI
"OEPBS/video.mp4"
/>
enc:CipherData
enc:EncryptionProperties
enc:EncryptionProperty
xmlns:ns
"http://www.idpf.org/2016/encryption#compression"
ns:Compression
Method
"8"
OriginalLength
"3500000"
/>
enc:EncryptionProperty
enc:EncryptionProperties
enc:EncryptedData
encryption
4.2.6.3.3
Manifest file (
manifest.xml
The
OPTIONAL
manifest.xml
file in the
META-INF
directory
provides a manifest of files in the container.
The OCF specification does not mandate a format for the manifest.
Note that
package documents
specify the only manifests used for processing
EPUB publications
. Reading systems do not use this file.
Note
This feature exists only for compatibility with [
odf
].
4.2.6.3.4
Metadata file (
metadata.xml
The
OPTIONAL
metadata.xml
file in the
META-INF
directory is
only for container-level metadata.
If
EPUB creators
include a
metadata.xml
file, they
SHOULD
use only
namespace-qualified elements [
xml-names
] in it. The file
SHOULD
contain the
root element
xml
metadata
in the
namespace
, but this specification allows
other root elements for backwards compatibility.
This version of the specification does not define metadata for use in the
metadata.xml
file. Future versions of this specification
MAY
define
container-level metadata.
4.2.6.3.5
Rights management file (
rights.xml
This specification reserves the
OPTIONAL
rights.xml
file in the
META-INF
directory for the trusted exchange of
EPUB publications
among rights holders, intermediaries, and users.
When
EPUB creators
do not include a
rights.xml
file, no part of the
OCF abstract container
is rights governed at the container level. Rights expressions
might exist within the EPUB publications.
4.2.6.3.6
Digital signatures file (
signatures.xml
Note
Adding a digital signature is not a guarantee that a malicious actor cannot tamper
with an
EPUB publication
as
reading systems
do not have to check
signatures.
The
OPTIONAL
signatures.xml
file in the
META-INF
directory
holds digital signatures for the container and its contents.
4.2.6.3.6.1
The
signatures
element
Element Name:
signatures
Namespace:
urn:oasis:names:tc:opendocument:xmlns:container
Usage:
REQUIRED
root element
xml
] of the
signature.xml
file.
Attributes:
None
Content Model:
Signature
[1 or more]
The
signature
element contains child elements of type
Signature
, as defined by [
xmldsig-core1
].
EPUB creators
can
apply signatures to an EPUB publication as a whole or to its parts, and can specify
the signing of any kind of data (i.e., not just XML).
Note
An
XML Schema
also informally
defines the content of the
signatures.xml
file.
When an EPUB creator does not include a
signatures.xml
file, they are
not signing any part of the
OCF abstract container
at the container level.
Digital signing might exist within the EPUB publication.
When an EPUB creator creates a data signature for the OCF abstract
container, they
SHOULD
add the signature as the last child
Signature
element of the
signatures
element.
Note
Each
Signature
in the
signatures.xml
file identifies by
URL [
url
] the data to which the signature applies, using the [
xmldsig-core1
Manifest
element and its
Reference
sub-elements.
EPUB creator may sign individual container files separately or together.
Separately signing each file creates a digest value for the resource that
reading systems can validate independently. This approach might make a Signature
element larger. If EPUB creators sign files together, they can list the set of
signed files in a single XML Signature
Manifest
element and
reference them by one or more
Signature
elements.
EPUB creators can sign any or all files in the OCF abstract
container in their entirety, except for the
signatures.xml
file since
that file will contain the computed signature information. Whether and how EPUB
creators sign the
signatures.xml
file depends on their objective.
If the EPUB creator wants to allow signatures to be added or removed from the OCF
abstract container without invalidating their signature, they
SHOULD NOT
sign the
signatures.xml
file.
If the EPUB creator wants any addition or removal of a signature to invalidate their
signature, they can use the Enveloped Signature transform defined in
Section 6.6.4
of
xmldsig-core1
] to sign the entire pre-existing signature file excluding the
Signature
being created. This transform would sign all previous
signatures, and it would become invalid if a subsequent signature were added to the
package.
Note
If the EPUB creator wants the removal of an existing signature to invalidate
their signature, but also wants to allow the addition of signatures, they could
use an XPath transform to sign just the existing signatures. The details of such
a transform are outside the scope of this specification, however.
The [
xmldsig-core1
] specification does not associate any semantics with a
signature; an agent might include semantic information, for example, by adding
information to the Signature element that describes the signature. The
xmldsig-core1
] specification describes how additional information can be added to
a signature, such as by use the
SignatureProperties
element.
Example
: Signing resources
In this example, based on the examples found in
Section 2
of [
xmldsig-core1
],
one signature applies to two resources (
EPUB/book.xhtml
and
EPUB/images/cover.jpeg
).
signatures
xmlns
"urn:oasis:names:tc:opendocument:xmlns:container"
Signature
Id
"sig"
xmlns
"http://www.w3.org/2000/09/xmldsig#"
SignedInfo
CanonicalizationMethod
Algorithm
"http://www.w3.org/TR/2001/REC-xml-c14n-20010315"
/>
SignatureMethod
Algorithm
"http://www.w3.org/2000/09/xmldsig#dsa-sha1"
/>
Reference
URI
"#Manifest1"
DigestMethod
Algorithm
"http://www.w3.org/2000/09/xmldsig#sha1"
/>
DigestValue
j6lwx3rvEPO0vKtMup4NbeVu8nk=
DigestValue
Reference
SignedInfo
SignatureValue
SignatureValue
KeyInfo
KeyValue
DSAKeyValue
DSAKeyValue
KeyValue
KeyInfo
Object
Manifest
Id
"Manifest1"
Reference
URI
"EPUB/book.xhtml"
Transforms
Transform
Algorithm
"http://www.w3.org/TR/2001/REC-xml-c14n-20010315"
/>
Transforms
DigestMethod
Algorithm
"http://www.w3.org/2000/09/xmldsig#sha1"
/>
DigestValue
DigestValue
Reference
Reference
URI
"EPUB/images/cover.jpeg"
Transforms
Transform
Algorithm
"http://www.w3.org/TR/2001/REC-xml-c14n-20010315"
/>
Transforms
DigestMethod
Algorithm
"http://www.w3.org/2000/09/xmldsig#sha1"
/>
DigestValue
DigestValue
Reference
Manifest
Object
Signature
signatures
4.3
OCF ZIP container
4.3.1
Introduction
This section is non-normative.
An
OCF ZIP container
is a physical single-file manifestation of an
OCF abstract container
. The container allows:
the exchange of in-progress
EPUB publication
between different individuals and/or
different organizations;
the transfer of EPUB publications from a publisher or conversion house to the
distribution or sales channel; and
the delivery of EPUB publications to
EPUB reading systems
or users.
4.3.2
ZIP file requirements
An
OCF ZIP container
uses the ZIP format as specified by [
zip
], but with the following
constraints and clarifications:
The contents of the OCF ZIP container
MUST
be a conforming
OCF abstract container
OCF ZIP containers
MUST NOT
use the features in the ZIP application
note [
zip
] that allow ZIP files to be spanned across multiple storage media or be
split into multiple files.
OCF ZIP containers
MUST
include only stored (uncompressed) and
Deflate-compressed ZIP entries within the ZIP archive.
OCF ZIP containers
MAY
use the ZIP64 extensions defined as "Version
1" in section V, subsection G of the application note [
zip
] and
SHOULD
use only those
extensions when the content requires them.
OCF ZIP containers
MUST NOT
use the encryption features defined by
the ZIP format; instead, encryption
MUST
be done using the features described in
4.2.6.3.2
Encryption file (
encryption.xml
OCF ZIP containers
MUST
encode file system names using UTF-8
unicode
].
The following constraints apply to specific fields in the OCF ZIP container archive:
In the local file header table,
EPUB creators
MUST
set
the
version needed to extract
fields to the values
10
20
or
45
to match the maximum version level needed by the
given file (e.g.,
20
for Deflate,
45
for ZIP64).
In the local file header table, EPUB creators
MUST
set the
compression
method field to the values
or
4.3.3
OCF ZIP container media type identification
EPUB creators
MUST
include the
mimetype
file as the first file in the
OCF ZIP container
. In addition:
The contents of the
mimetype
file
MUST
be the MIME media type [
rfc2046
string
application/epub+zip
encoded in US-ASCII [
us-ascii
].
The
mimetype
file
MUST NOT
contain any leading or trailing padding or
whitespace.
The
mimetype
file
MUST NOT
begin with the Unicode byte order mark U+FEFF.
EPUB creators
MUST NOT
compress or encrypt the
mimetype
file.
EPUB creators
MUST NOT
include an extra field in its ZIP header.
Note
Refer to
I.2
The
application/epub+zip
media type
for further information about the
application/epub+zip
media type.
4.4
Font obfuscation
Caution
Better methods of protecting fonts exist. Both [
woff
] and [
woff2
] fonts, for example, allow
the embedding of licensing information and provide some protection through font table
compression. The use of remotely hosted fonts also allows for font subsetting.
EPUB creators
are advised to use font obfuscation as defined in this section only when no other options are
available to them. See also the
limitations of
obfuscation
4.4.1
Introduction
This section is non-normative.
Since an
OCF ZIP container
is fundamentally a ZIP file, commonly available ZIP tools can be
used to extract any unencrypted content stream from the package. Moreover, the nature of ZIP
files means that their contents might appear like any other native container on some systems
(e.g., a folder).
While this simplicity of ZIP files is quite useful, it also poses a problem when ease of
extraction of fonts is not a desired side-effect of not encrypting them. An
EPUB creator
who
wishes to include a third-party font, for example, typically does not want that font extracted
and re-used by others. More critically, many commercial fonts allow embedding, but embedding a
font implies making it an integral part of the
EPUB publication
, not just providing the
original font file along with the content.
Since integrated ZIP support is so ubiquitous in modern operating systems, simply placing a font
in the
OCF ZIP container
is insufficient to signify that the font cannot be reused in other
contexts. This uncertainty can undermine the otherwise useful font embedding capability of EPUB
publications.
To discourage reuse of their fonts, some font vendors might only allow their use in EPUB
publications if the fonts are bound in some way to the EPUB publication. That is, if the font
file cannot be installed directly for use on an operating system with the built-in tools of that
computing device, and it cannot be directly used by other EPUB publications.
It is beyond the scope of this specification to provide a digital rights management or
enforcement system for fonts. This section instead defines a method of obfuscation that will
require additional work on the part of the final OCF recipient to gain general access to any
obfuscated fonts.
4.4.2
Limitations
This section is non-normative.
This specification does not claim that obfuscation constitutes encryption, nor does it guarantee
that the resource will be secure from copyright infringement. The hope is only that this
algorithm will meet the requirements of vendors who require some assurance that their fonts
cannot be extracted simply by unzipping the
OCF ZIP container
and copying the resource.
Obfuscation, like any protection scheme, cannot fully protect fonts from being accessed in their
deobfuscated state. The mechanism only provides an obstacle for those who are unaware of the
license details. It will not prevent a determined user from gaining full access to the font
through such alternative means as:
applying the deobfuscation algorithm to extract the raw font file;
accessing the deobfuscated font through a
reading system
that must deobfuscate it to
render the content (e.g., by accessing the resources through a browser-based reading
system); or
accessing the deobfuscated font through authoring tools that provide the visual rendering of
the content.
As a result, whether this method of obfuscation satisfies the requirements of individual font
licenses remains a question for the licensor and licensee.
EPUB creators
are responsible for
ensuring their use of obfuscation meets font licensing requirements.
EPUB creators should also be aware that obfuscation may lead to interoperability issues in
reading systems as reading systems are not required to deobfuscate fonts. As a result, the
visual presentation of their publications may differ from reading system to reading system.
Also note that the algorithm is restricted to obfuscating fonts. It is not intended as a
general-purpose mechanism for obfuscating any resource in the EPUB container.
4.4.3
Obfuscation key
EPUB creators
MUST
derive the key used in the obfuscation algorithm from the
unique identifier
All whitespace characters, as defined in
section 2.3 of the XML
1.0 specification
xml
],
MUST
be removed from this identifier — specifically, the
Unicode code points
U+0020
U+0009
U+000D
and
U+000A
EPUB creators
MUST
generate a SHA-1 digest of the UTF-8 representation of the resulting string as
specified by the Secure Hash Standard [
fips-180-4
]. They can then use this digest as the key
for the algorithm.
4.4.4
Obfuscation algorithm
The algorithm employed to obfuscate fonts consists of modifying the first 1040 bytes (~1KB) of
the font file. (In the unlikely event that the font file is less than 1040 bytes, this process
will modify the entire file.)
To obfuscate the original data, store, as the first byte of the embedded font, the result of
performing a logical exclusive or (XOR) on the first byte of the raw font file and the first
byte of the
obfuscation key
Repeat this process with the next byte of source and key and continue for all bytes in the key.
At this point, the process continues starting with the first byte of the key and 21st byte of
the source. Once 1040 bytes are encoded in this way (or the end of the source is reached),
directly copy any remaining data in the source to the destination.
EPUB creators
MUST
obfuscate fonts before compressing and adding them to the
OCF ZIP container
. Note that as obfuscation is not encryption, this requirement is not a violation of
the one in
4.2.6.3.2
Encryption file (
encryption.xml
to compress fonts before
encrypting them.
The following pseudo-code exemplifies the obfuscation algorithm.
set
ocf
to OCF ZIP container file
set
source
to font file
set
destination
to obfuscated font file
set
keyData
to key for file
set
outer
to 0
while
outer
< 52 and not (
source
at EOF)
set
inner
to 0
while
inner
< 20 and not (
source
at EOF)
read 1 byte from
source
(Assumes read advances file
position)
set
sourceByte
to result of read
set
keyByte
to byte
inner
of
keyData
set
obfuscatedByte
to (
sourceByte
XOR
keyByte
write
obfuscatedByte
to
destination
increment
inner
end while
increment
outer
end while
if not (
source
at EOF) then
read
source
to EOF
write result of read to
destination
end if
Deflate
destination
store
destination
as
source
in
ocf
4.4.5
Specifying obfuscated fonts
Although not technically encrypted data, all obfuscated fonts
MUST
have an entry in the
encryption.xml
file accompanying the
EPUB publication
(see
4.2.6.3.2
Encryption file (
encryption.xml
).
EPUB creators
MUST
specify an
EncryptedData
element for each obfuscated font.
Each
EncryptedData
element
MUST
contain a child
EncryptionMethod
element whose
Algorithm
attribute has the value
. The presence of this attribute signals the
use of the algorithm described in this specification.
EPUB creators
MUST
list the path to the obfuscated font in the
CipherReference
child
of the
CipherData
element. As the obfuscation algorithm is restricted to fonts, the
URI
attribute of the
CipherReference
element
MUST
reference a
Font core media type resource
Example
10
: An entry for an obfuscated font
encryption
xmlns
"urn:oasis:names:tc:opendocument:xmlns:container"
xmlns:enc
"http://www.w3.org/2001/04/xmlenc#"
enc:EncryptedData
enc:EncryptionMethod
Algorithm
"http://www.idpf.org/2008/embedding"
/>
enc:CipherData
enc:CipherReference
URI
"EPUB/Fonts/BKANT.TTF"
/>
enc:CipherData
enc:EncryptedData
encryption
To prevent trivial copying of the embedded font to other EPUB publications, EPUB creators
MUST NOT
provide the
obfuscation key
in the
encryption.xml
file.
5.
Package document
All [
xml
] elements defined in this section are in the
namespace [
xml-names
] unless otherwise specified.
5.1
Introduction
This section is non-normative.
The
package document
is an XML document that consists of a set of elements that each encapsulate
information about a particular aspect of an
EPUB publication
. These elements serve to centralize
metadata, detail the individual resources, and provide the reading order and other information
necessary for its rendering.
The following list summarizes the information found in the package document:
Metadata
— mechanisms to include and/or reference information
about the EPUB publication.
manifest
— identifies via URL [
url
], and describes via
MIME media type [
rfc4839
], the set of
publication resources
spine
— an ordered sequence of ID references to top-level
resources in the manifest from which
reading systems
can reach or utilize all other
resources in the set. The spine defines the default reading order.
Collections
— a method of encapsulating and identifying
subcomponents within the EPUB publication.
Manifest fallback chains
— a mechanism that defines an ordered list of top-level
resources as content equivalents. A reading system can then choose between the resources
based on which it is capable of rendering.
Note
An EPUB publication can reference more than one package document, allowing for alternative
representations of the content. For more information, refer to
4.2.6.3.1
Container file (
container.xml
Note
Refer to
I.1
The
application/oebps-package+xml
media type
for information about the file
properties of package documents.
5.2
Parsing URLs in the package document
To parse a URL
string
url
used in the
package document
, the
URL
parser
url
MUST
be applied to
url
, with the
content URL
of the package
document as
base
5.3
Shared attributes
This section provides definitions for shared attributes (i.e., attributes allowed on two or more
elements).
5.3.1
The
dir
attribute (under-implemented)
Note
The
dir
attribute is marked
under-implemented
as
reading systems
often only support a single default directionality for text display.
EPUB creators
are still strongly encouraged to set the proper directionality of text
values in the
package document
to ensure proper rendering once this situation
improves.
Specifies the
base direction
bidi
] of the textual content and
attribute values of the carrying element and its descendants.
Allowed values are:
ltr
— left-to-right base direction;
rtl
— right-to-left base direction; and
auto
— base direction is determined using the Unicode Bidi Algorithm
bidi
].
Reading systems will assume the
value
auto
when EPUB creators omit the attribute or use an invalid value.
Note
The base direction specified in the
dir
attribute does not affect the ordering
of characters within directional runs, only the relative ordering of those runs and the
placement of weak directional characters such as punctuation.
Example
11
: Setting the global base direction for package document text
package
dir
"ltr"
package
Allowed on:
collection
Dublin Core elements
meta
, and
package
5.3.2
The
href
attribute
valid URL string
url
] that references a resource.
The URL string
MUST NOT
reference resources via elements in the package document (e.g., via a
manifest
item
or spine
itemref
declaration).
Example
12
: Linking a metadata record
package
…>
metadata
…>
link
rel
"record"
href
"meta/9780000000001.xml"
media-type
"application/marc"
/>
metadata
package
Allowed on:
item
and
link
5.3.3
The
id
attribute
The
ID
xml
] of the element, which
MUST
be unique within the document
scope.
Example
13
: Adding an identifier attribute
dc:title
id
"pub-title"
The Lord of the Rings
dc:title
Allowed on:
collection
Dublin Core elements
item
itemref
link
manifest
meta
package
, and
spine
5.3.4
The
media-type
attribute
A media type [
rfc2046
] that specifies the type and format of the referenced resource.
Example
14
: Adding the media type for a linked record
package
…>
metadata
…>
link
rel
"record"
href
"http://example.org/meta/12389347?format=onix"
media-type
"application/xml"
properties
"onix"
/>
metadata
package
Allowed on:
item
and
link
5.3.5
The
properties
attribute
A space-separated list of
property
values.
Refer to each element's definition for the
reserved vocabulary
for the attribute.
Example
15
: Identifying the EPUB navigation document in the manifest
package
…>
manifest
item
id
"nav"
href
"nav.xhtml"
properties
"nav"
media-type
"application/xhtml+xml"
/>
manifest
package
Allowed on:
item
itemref
, and
link
5.3.6
The
refines
attribute
Establishes an association between the current expression and the element or resource identified
by its value.
EPUB creators
MUST
use as the value a
path-relative-scheme-less-URL string
, optionally followed by
U+0023 (#)
and a
URL-fragment string
that
references the resource or element they are describing.
Example
16
: Specifying that a creator is the illustrator
package
…>
metadata
…>
dc:creator
id
"creator02"
E.H. Shepard
dc:creator
meta
refines
"#creator02"
property
"role"
scheme
"marc:relators"
ill
meta
metadata
package
The
refines
attribute is
OPTIONAL
depending on the type of metadata expressed. When
omitted, the element defines a
primary expression
When creating expressions about a
publication resource
, the
refines
attribute
SHOULD
specify a fragment identifier that references the
ID
xml
] of
the resource's
manifest entry
Refinement chains
MUST NOT
contain circular references or self-references.
Example
17
: Setting the duration of a media overlay document
package
…>
metadata
…>
meta
property
"media:duration"
refines
"#c01_overlay"
0:32:29
meta
metadata
manifest
item
id
"c01_overlay"
href
"overlays/chapter01.smil"
media-type
"application/smil+xml"
/>
manifest
package
Allowed on:
link
and
meta
5.3.7
The
xml:lang
attribute
Specifies the language of the textual content and attribute values of the carrying element and
its descendants, as defined in section
2.12 Language
Identification
of [
xml
]. The value of each
xml:lang
attribute
MUST
be a
well-formed language tag
bcp47
].
Example
18
: Setting the global language for package document text
package
xml:lang
"ja"
package
Allowed on:
collection
Dublin Core elements
meta
, and
package
5.4
The
package
element
The
package
element encapsulates all the information expressed in the
package document
Element Name:
package
Usage:
REQUIRED
root element
xml
] of the package document.
Attributes:
dir
[optional]
id
[optional]
prefix
[optional]
xml:lang
[optional]
unique-identifier
[required]
version
[required]
Content Model:
In this order:
metadata
[exactly 1]
manifest
[exactly 1]
spine
[exactly 1]
guide
[0 or 1]
(legacy)
bindings
[0 or 1]
(deprecated)
collection
[0 or more]
The
version
attribute specifies the EPUB specification
version to which the given
EPUB publication
conforms. The attribute
MUST
have the value
3.0
" to indicate conformance with EPUB 3.
Note
Updates to this specification do not represent new versions of EPUB 3 (i.e., each new 3.X
specification is a continuation of the EPUB 3 format). The Working Group is committed to
minimizing any changes that would invalidate existing content, allowing the
version
attribute value to remain unchanged.
The
unique-identifier
attribute takes an IDREF
xml
] that identifies the
dc:identifier
element that provides the preferred, or primary,
identifier.
The
prefix
attribute provides a declaration mechanism for
prefixes not
reserved by this specification
. Refer to
D.1.4
The
prefix
attribute
for more information.
5.5
Metadata section
5.5.1
The
metadata
element
The
metadata
element encapsulates meta information.
Element Name:
metadata
Usage:
REQUIRED
first child of
package
Attributes:
None
Content Model:
In any order:
dc:identifier
[1 or more]
dc:title
[1 or more]
dc:language
[1 or more]
Dublin Core Optional Elements
[0 or more]
meta
[1 or more]
OPF2
meta
[0 or more]
(legacy)
link
[0 or more]
The
package document
metadata
element has two primary functions:
to provide a minimal set of meta information for
reading systems
to use to internally
catalogue an
EPUB publication
and make it available to a user (e.g., to present in a
bookshelf).
to provide access to all rendering metadata needed to control the layout and display of
the content (e.g.,
fixed-layout properties
).
The package document does not provide complex metadata encoding capabilities. If
EPUB creators
need to provide more detailed information, they can associate metadata records (e.g.,
that conform to an international standard such as [
onix
] or are created for custom purposes)
using the
link
element. This approach allows reading systems to process the metadata in its
native form, avoiding the potential problems and information loss caused by translating to use
the minimal package document structure.
In keeping with this philosophy, the package document only has the
following minimal metadata requirements: it
MUST
contain the [
dcterms
dc:title
dc:identifier
, and
dc:language
elements together with the [
dcterms
dcterms:modified
property. All other metadata is
OPTIONAL
Example
19
: The minimal set of metadata required in the package document
package
unique-identifier
"pub-id"
metadata
…>
dc:identifier
id
"pub-id"
urn:uuid:A1B0D67E-2E81-4DF5-9E67-A64CBE366809
dc:identifier
dc:title
Norwegian Wood
dc:title
dc:language
en
dc:language
meta
property
"dcterms:modified"
2011-01-01T12:00:00Z
meta
metadata
package
The
meta
element provides a generic mechanism for including
metadata properties from any vocabulary
. Although EPUB creators
MAY
use this mechanism
for any metadata purposes, they will typically use it to include rendering metadata defined in
EPUB specifications.
Note
See [
epub-a11y-11
] for accessibility metadata recommendations.
5.5.2
Metadata values
The Dublin Core elements [
dcterms
] and
meta
element have mandatory
child text content
dom
]. In the descriptions for these elements, this specification refers to this content as
the element's
value
These elements
MUST
have non-empty values after
leading and trailing ASCII
whitespace
infra
] is stripped (i.e., they must consist of at least one
non-whitespace character).
Whitespace within these element values is not significant. Sequences of one or more whitespace
characters are
collapsed to a single
space
infra
] during processing .
5.5.3
Dublin Core
5.5.3.1
Required elements
5.5.3.1.1
The
dc:identifier
element
The
dc:identifier
element [
dcterms
] contains an identifier such as a
UUID
DOI
or
ISBN
Element Name:
dc:identifier
Namespace:
Usage:
REQUIRED
child of
metadata
. Repeatable.
Attributes:
id
[conditionally required]
Content Model:
Text
The
EPUB creator
MUST
provide an identifier that is unique to one and only one
EPUB publication
— its
unique identifier
— in an
dc:identifier
element.
This
dc:identifier
element
MUST
specify an
id
attribute whose
value is referenced from the
package
element's
unique-identifier
attribute
Example
20
: Specifying the element with the unique identifier
package
unique-identifier
"pub-id"
metadata
…>
dc:identifier
id
"pub-id"
urn:uuid:A1B0D67E-2E81-4DF5-9E67-A64CBE366809
dc:identifier
metadata
package
Although not static, EPUB creators should make changes to the unique identifier for an
EPUB publication as infrequently as possible. Unique Identifiers should have maximal
persistence both for referencing and distribution purposes. EPUB creators should not
issue new identifiers when making minor revisions such as updating metadata, fixing
errata, or making similar minor changes.
EPUB creators
MAY
specify additional identifiers.
Note
EPUB creators are advised to use
absolute-URL strings
[url] for identifiers whenever possible. The inclusion of a domain owned by the EPUB
creator can improve the uniqueness of the identifier, for example, while the use of
a URN with a
namespace identifier
rfc8141
] improves processing by reading
systems.
EPUB creators
MAY
use the
identifier-type
property
to indicate that the value of a
dc:identifier
element
conforms to an established system or an issuing authority granted it.
Example
21
: Specifying the type of the identifier
In this example, the
identifier-type
property is used with the
ONIX codelist 5
scheme to indicate
the product identifier type is a
DOI
(i.e., the
value
06
in codelist 5 is for DOIs).
metadata
…>
dc:identifier
id
"pub-id"
urn:doi:10.1016/j.iheduc.2008.03.001
dc:identifier
meta
refines
"#pub-id"
property
"identifier-type"
scheme
"onix:codelist5"
06
meta
metadata
5.5.3.1.2
The
dc:title
element
The
dc:title
element [
dcterms
] represents an instance of a name for the
EPUB publication
Element Name:
dc:title
Namespace:
Usage:
REQUIRED
child of
metadata
. Repeatable.
Attributes:
dir
[optional]
id
[optional]
xml:lang
[optional]
Content Model:
Text
The first
dc:title
element in document order is the main
title of the EPUB publication (i.e., the primary one reading systems present to
users).
Example
22
: A basic title element
metadata
…>
dc:title
Norwegian Wood
dc:title
metadata
EPUB creators
should use only a single
dc:title
element to ensure
consistent rendering of the title in
reading systems
Note
Although it is possible to include more than one
dc:title
element for
multipart titles, reading system support for additional
dc:title
elements is inconsistent. Reading systems may ignore the additional segments or
combine them in unexpected ways.
For example, the following example shows a basic multipart title:
metadata
…>
dc:title
THE LORD OF THE RINGS
dc:title
dc:title
Part One: The Fellowship of the Ring
dc:title
metadata
The same title could instead be expressed using a single
dc:title
element as follows:
metadata
…>
dc:title
THE LORD OF THE RINGS, Part One:
The Fellowship of the Ring
dc:title
metadata
Previous versions of this specification recommended using the
title-type
and
display-seq
properties to identify and
format the segments of multipart titles (see the
Great
Cookbooks example
). It is still possible to add these semantics, but they
are also not well supported.
5.5.3.1.3
The
dc:language
element
The
dc:language
element [
dcterms
] specifies the language of the content of
the
EPUB publication
Element Name:
dc:language
Namespace:
Usage:
REQUIRED
child of
metadata
. Repeatable.
Attributes:
id
[optional]
Content Model:
Text
The
value
of each
dc:language
element
MUST
be a
well-formed language tag
bcp47
].
Example
23
: Specifying U.S. English as the language of the EPUB publication
metadata
…>
dc:language
en-US
dc:language
metadata
Although
EPUB creators
MAY
specify additional
dc:language
elements for
multilingual Publications,
reading systems
will treat the first
dc:language
element in document order as the primary language of the
EPUB publication.
Note
Publication resources
do not inherit their language from the
dc:language
element(s). EPUB creators must set the language of a
resource using the intrinsic methods of the format.
5.5.3.2
Optional elements
5.5.3.2.1
General definition
All [
dcterms
] elements except for
dc:identifier
dc:language
, and
dc:title
are designated as
OPTIONAL
. These elements conform to the following generalized
definition:
Element Name:
dc:contributor
dc:coverage
dc:creator
dc:date
dc:description
dc:format
dc:publisher
dc:relation
dc:rights
dc:source
dc:subject
dc:type
Namespace:
Usage:
OPTIONAL
child of
metadata
. Repeatable.
Attributes:
dir
[optional]
id
[optional]
xml:lang
[optional]
Content Model:
Text
This specification does not modify the [
dcterms
] element definitions except as noted in
the following sections.
5.5.3.2.2
The
dc:contributor
element
The
dc:contributor
element [
dcterms
] is used to represent the
name of a person, organization, etc. that played a secondary role in the creation of the
content.
The requirements for the
dc:contributor
element are identical to those for
the
dc:creator
element in all other respects.
5.5.3.2.3
The
dc:creator
element
The
dc:creator
element [
dcterms
] represents the name of a
person, organization, etc. responsible for the creation of the content.
EPUB creators
MAY
associate
role
property
with the element to indicate the function the
creator played.
Example
24
: Specifying that a creator is an author
In this example, the
MARC
relators
scheme is used to indicate the role (i.e., the value
aut
indicates an author in MARC).
metadata
…>
dc:creator
id
"creator"
Haruki Murakami
dc:creator
meta
refines
"#creator"
property
"role"
scheme
"marc:relators"
id
"role"
aut
meta
metadata
The
dc:creator
element should contain the name of the creator as EPUB
creators intend
reading systems
to display it to users.
EPUB creators
MAY
use the
file-as
property
to associate
a normalized form of the creator's name, and
the
alternate-script
property
to represent
the creator's name in another language or script.
Example
25
: Expressing sorting and rendering information for a creator
metadata
…>
dc:creator
id
"creator"
Haruki Murakami
dc:creator
meta
refines
"#creator"
property
"alternate-script"
xml:lang
"ja"
村上 春樹
meta
meta
refines
"#creator"
property
"file-as"
Murakami, Haruki
meta
metadata
If an
EPUB publication
has more than one creator, EPUB creators should specify each
in a separate
dc:creator
element.
The document order of
dc:creator
elements in the
metadata
section determines the display priority, where the first
dc:creator
element
encountered is the primary creator.
Example
26
: Expressing the primary creator
In this example, Lewis Carroll is the primary creator because he is listed first.
metadata
…>
dc:creator
id
"creator01"
Lewis Carroll
dc:creator
dc:creator
id
"creator02"
John Tenniel
dc:creator
metadata
EPUB creators should represent secondary contributors using the
dc:contributor
element.
5.5.3.2.4
The
dc:date
element
The
dc:date
element [
dcterms
] defines the publication date of the
EPUB publication
. The publication date is not the same as the
last modified date
(the last time the
EPUB creator
changed the EPUB publication).
It is
RECOMMENDED
that the date string conform to [
iso8601-1
], particularly the subset
expressed in
W3C
Date and Time Formats [
datetime
], as such strings are both human and
machine readable.
Example
27
: Expressing the publication date
metadata
…>
dc:date
2000-01-01T00:00:00Z
dc:date
metadata
EPUB creators should express additional dates using the specialized date properties
available in the [
dcterms
] vocabulary, or similar.
EPUB publications
MUST NOT
contain more than one
dc:date
element.
5.5.3.2.5
The
dc:subject
element
The
dc:subject
element [
dcterms
] identifies the subject of the
EPUB publication
EPUB creators
should set the
value
of the element to the
human-readable heading or label, but may use a code value if the subject taxonomy does
not provide a separate descriptive label.
EPUB creators
MAY
identify the system or scheme they drew the element's
value
from
using the
authority
property
When a scheme is identified, EPUB creators
MUST
associate
subject code using the
term
property
Example
28
: Specifying a BISAC code and heading
metadata
…>
dc:subject
id
"subject01"
FICTION / Occult
&
Supernatural
dc:subject
meta
refines
"#subject01"
property
"authority"
BISAC
meta
meta
refines
"#subject01"
property
"term"
FIC024000
meta
metadata
Example
29
: Specifying a URL for the scheme
metadata
…>
dc:subject
id
"sbj01"
Number Theory
dc:subject
meta
refines
"#sbj01"
property
"authority"
meta
meta
refines
"#sbj01"
property
"term"
11
meta
metadata
The
term
property
MUST NOT
be
associated with a
dc:subject
element
that does not specify a scheme.
The
values
of the
dc:subject
element and
term
property are
case sensitive only when the designated scheme requires.
5.5.3.2.6
The
dc:type
element
The
dc:type
element [
dcterms
] is used to indicate that the
EPUB publication
is of a specialized type (e.g., annotations or a dictionary packaged in
EPUB format).
EPUB creators
MAY
use any text string as a
value
Note
The former
IDPF
EPUB 3
Working Group maintained a
non-normative registry of specialized EPUB publication types
for use with
this element. This Working Group no longer maintains the registry and does not
anticipate developing new specialized publication types.
5.5.4
The
meta
element
The
meta
element provides a generic means of including package metadata.
Element Name:
meta
Usage:
As child of the
metadata
element. Repeatable.
Attributes:
dir
[optional]
id
[optional]
property
[required]
refines
[optional]
scheme
[optional]
xml:lang
[optional]
Content Model:
Text
Each
meta
element defines a metadata expression. The
property
attribute takes a
property
data type value
that defines the statement made in the expression, and the text content
of the element represents the assertion. (Refer to
D.1
Vocabulary association mechanisms
for more
information.)
This specification defines two types of metadata expressions that
EPUB creators
can define using the
meta
element:
primary expression
is one in which the expression defined
in the
meta
element establishes some aspect of the
EPUB publication
. A
meta
element that omits a refines attribute defines a primary
expression.
subexpression
is one in which the expression defined in the
meta
element is associated with another expression or resource using the
refines
attribute to enhance its meaning. A subexpression might refine a
media clip, for example, by expressing its duration, or refine a creator or contributor
expression by defining the role of the person.
EPUB creators
MAY
use subexpressions to refine the meaning of other subexpressions, thereby
creating chains of information.
Note
All the [
dcterms
] elements represent primary expressions, and permit refinement by
meta element subexpressions.
The
Meta Properties Vocabulary
is the
default vocabulary
for use with the
property
attribute.
EPUB creators
MAY
add terms from other vocabularies as defined in
D.1
Vocabulary association mechanisms
Example
30
: Using properties with reserved prefixes
For the full list of reserved prefixes, refer to
D.1.5
Reserved prefixes
metadata
…>
meta
property
"dcterms:modified"
2016-02-29T12:34:56Z
meta
meta
property
"rendition:layout"
pre-paginated
meta
meta
property
"media:active-class"
my-active-item
meta
metadata
The
scheme
attribute identifies the system or scheme the EPUB
creator obtained the element's
value
from. The value of the attribute
MUST
be a
property
data type value
that resolves to the
resource that defines the scheme. The
scheme
attribute does not have a
default vocabulary
(i.e., all values require a
prefix
).
Example
31
: Using values from a scheme
In this example, the
scheme
attribute indicates that the
value
of the tag is
from [
onix
] code list 5 (i.e., the value
15
indicates a 13 digit
ISBN
).
metadata
…>
meta
refines
"#isbn-id"
property
"identifier-type"
scheme
"onix:codelist5"
15
meta
metadata
5.5.5
Last modified date
The
metadata
section
MUST
contain exactly one
dcterms:modified
property [
dcterms
containing the last modification date. The
value
of this property
MUST
be an [
iso8601-1
complete representation of a date and time of day matching the extended format:
YYYY-MM-DDThh:mm:ssZ
EPUB creators
MUST
express the last modification date in Coordinated Universal Time (UTC) and
MUST
terminate it with the "
" (Zulu) time zone indicator.
Example
32
: Expressing a last modification date
metadata
…>
meta
property
"dcterms:modified"
2016-01-01T00:00:01Z
meta
metadata
EPUB creators should update the last modified date whenever they make changes to the
EPUB publication
EPUB creators
MAY
specify additional modified properties in the
package document
metadata,
but they
MUST
have a different subject (i.e., they require a
refines
attribute that
references an element or resource).
Note
The requirements for the last modification date are to ensure compatibility with earlier
versions of EPUB 3 that defined a
release identifier
epubpackages-32
] for EPUB publications.
5.5.6
The
link
element
The
link
element associates resources with an
EPUB publication
, such as metadata
records.
Element Name:
link
Usage:
As a child of
metadata
. Repeatable.
Attributes:
href
[required]
hreflang
[optional]
id
[optional]
media-type
[conditionally required]
properties
[optional]
refines
[optional]
rel
[required]
Content Model:
Empty
The
metadata
element
MAY
contain zero or more
link
elements, each of which
identifies the location of a
publication resource
or a
linked resource
in its
REQUIRED
href
attribute.
Resources referenced from the
link
element are
publication resources
only when they are:
referenced from the
spine
; or
included or embedded in an
EPUB content document
(e.g., a metadata record serialized
as RDFa [
rdfa-core
] or as JSON-LD [
json-ld11
] embedded in an
html
script
element).
In all other cases (e.g., when linking to standalone [
onix
] records), the resources referenced
are not
publication resources
(i.e., are not subject to
core
media type requirements
) and
EPUB creators
MUST NOT
list them in the
manifest
Example
33
: Reference to a record embedded in an XHTML content document
In this example, the metadata record is embedded in a
script
element. Note that
the media type of the embedded record (i.e.,
application/ld+json
) is obtained
from the
type
attribute on the
script
element; it is not specified
in the
link
element.
Package
document
package
…>
metadata
…>
link
rel
"record"
href
"front.xhtml#meta-json"
media-type
"application/xhtml+xml"
hreflang
"en"
/>
metadata
package
XHTML
html
…>
head
script
id
"meta-json"
type
"application/ld+json"
"@context"
"http://schema.org"
"name"
"…"
script
head
body
body
html
EPUB creators
MAY
locate linked resources within the
EPUB container
or externally, but should consider that
reading systems
are not required to retrieve
resources outside the EPUB container.
The
media-type
attribute
is
OPTIONAL
when a linked resource is located outside the EPUB container, as
more than one media type could be served from the same URL [
url
]. EPUB creators
MUST
specify
the attribute for all linked resources within the EPUB container.
The
OPTIONAL
hreflang
attribute identifies the language of the
linked resource. The value
MUST
be a
well-formed language
tag
bcp47
].
The
REQUIRED
rel
attribute takes a space-separated list of
property
values that establish the relationship the linked
resource has with the EPUB publication.
Example
34
: Linking to a MARC XML record
rel
"record"
href
"meta/9780000000001.xml"
media-type
"application/marc"
/>
The value of the
media-type
attribute is not always sufficient to identify the type
of linked resource (e.g., many XML-based record formats use the media type
application/xml
"). To aid reading systems in the identification of such
generic resources, EPUB creators
MAY
specify a semantic identifier in the
properties
attribute.
Example
35
: Identifying a record type via a property
In this example, the
properties
attribute identifies the link is to an ONIX
record.
"record"
href
"http://example.org/meta/12389347?format=onix"
media-type
"application/xml"
properties
"onix"
/>
The
Metadata Link Vocabulary
is the
default vocabulary
for the
rel
and
properties
attributes.
EPUB creators
MAY
add relationships and properties from other vocabularies as defined in
D.1
Vocabulary association mechanisms
Example
36
: Declaring a new link relationship
In this example, the
link
element is used to associate an author's home page
using the FOAF vocabulary. Note that as
foaf
is not a
reserved prefix
, it must be declared in the
prefix attribute
package
prefix
"foaf: http://xmlns.com/foaf/spec/"
metadata
…>
link
refines
"#creator01"
rel
"foaf:homepage"
href
"http://example.org/book-info/12389347"
/>
metadata
package
EPUB creators
MAY
provide one or more
linked metadata records
Example
37
: Specifying linked records
In this example, an ONIX record is hosted remotely while a JSON-LD record is included in the
EPUB container.
"record"
href
"http://example.org/onix/12389347"
media-type
"application/xml"
properties
"onix"
/>
"record"
href
"meta/meta.jsonld"
media-type
"application/ld+json"
/>
Note
Due to the variety of metadata record formats and serializations that an EPUB creator can
link to an EPUB publication, and the complexity of comparing metadata properties between
them, this specification does not require reading systems to process linked records.
In addition to full records, EPUB creators
MAY
also use the
link
element to identify
individual metadata properties available in an alternative format.
Example
38
: Link to a description
In this example, the description of the EPUB publication is contained in an HTML
document.
rel
"dcterms:description"
href
"description.html"
media-type
"text/html"
/>
5.6
Manifest section
5.6.1
The
manifest
element
The
manifest
element provides an exhaustive list of
publication resources
used
in the rendering of the content.
Element Name:
manifest
Usage:
REQUIRED
second child of
package
, following
metadata
Attributes:
id
[optional]
Content Model:
item
[1 or more]
With the exception of the
package document
, the
manifest
MUST
list all publication resources regardless of whether they are
container resources
or
remote resources
As the package document is already identified by the
container.xml
file
, the
manifest
MUST NOT
specify an
item
element for it (i.e., a
self-reference serves no purpose).
Note
The manifest is only for listing publication resources.
Linked resources
and
the special files for processing the OCF
Container
(i.e., files in the
META-INF
directory, and the
mimetype
file) are restricted from inclusion.
Failure to provide a complete manifest of publication resources may lead to rendering issues.
Reading systems
might not unzip such resources or could prevent access to them for
security reasons.
5.6.2
The
item
element
The
item
element represents a
publication resource
Element Name:
item
Usage:
As a child of
manifest
. Repeatable.
Attributes:
fallback
[conditionally required]
href
[required]
id
[required]
media-overlay
[optional]
media-type
[required]
properties
[optional]
Content Model:
Empty
Each
item
element identifies a publication resource by the
URL [
url
] in its
href
attribute
. The value
MUST
be an
absolute-
or
path-relative-scheme-less-URL
string [
url
].
EPUB creators
MUST
ensure each URL is unique within the
manifest
scope after
parsing
The publication resource identified by an
item
element
MUST
conform to the applicable specification(s) as inferred from the MIME media type [
rfc2046
provided in the
media-type
attribute
. For
core media type resources
, EPUB creators
MUST
use the media type designated in
3.2
Core media types
The
fallback
attribute specifies the fallback for the
referenced publication resource. The
fallback
attribute's
IDREF
xml
] value
MUST
resolve to another
item
in the
manifest
The fallback for one
item
MAY
specify a fallback to another
item
, and
so on, creating a chain of fallback options. Refer to
3.5.1
Manifest fallbacks
for
additional requirements related to the use of fallback chains.
The
media-overlay
attribute takes an IDREF [
xml
that identifies the
media overlay document
for the resource described by this
item
. Refer to
9.3.5
Media overlays packaging
for more information.
Note
The order of
item
elements in the
manifest
is not significant. The
spine
element provides the presentation sequence of content documents.
5.6.2.1
Resource properties
The
properties
attribute
provides information
to
reading systems
about the content of a resource. This information enables discovery
of key resources, such as the cover image and
EPUB navigation document
. It also allows
reading systems to optimize rendering by indicating, for example, whether the resource
contains embedded scripting, MathML, or SVG.
The
Manifest Properties
Vocabulary
is the
default vocabulary
for the
properties
attribute.
EPUB creators
MUST
set the following properties whenever a resource referenced by an
item
element matches their respective definitions:
mathml
remote-resources
scripted
svg
switch
Example
39
: Identifying a scripted content document with embedded MathML
id="c2"
href="c2.xhtml"
media-type="application/xhtml+xml" />
These properties do not apply recursively to content included into a resource (e.g., via the
html
iframe
element). For example, if a non-scripted
XHTML content document
embeds a
scripted content document
, only the embedded document's manifest
item
properties
attribute will have the
scripted
value.
EPUB creators
MUST
declare exactly one
item
as the EPUB navigation document
using the
nav
property
Example
40
: Identifying the EPUB navigation document
id="c1"
href="c1.xhtml"
media-type="application/xhtml+xml" />
If an EPUB publication contains a cover image, it is recommended to set the
cover-image
property
, but setting this property
is
OPTIONAL
Example
41
: Identifying the cover image
id="ci"
href="cover.svg"
media-type="image/svg+xml" />
EPUB creators
MAY
add terms from other vocabularies as defined in
D.1
Vocabulary association mechanisms
5.6.2.2
Examples
Example
42
: A manifest with only core media type resources
"nav"
href
"nav.xhtml"
properties
"nav"
media-type
"application/xhtml+xml"
/>
"intro"
href
"intro.xhtml"
media-type
"application/xhtml+xml"
/>
"c1"
href
"chap1.xhtml"
media-type
"application/xhtml+xml"
/>
"c1-answerkey"
href
"chap1-answerkey.xhtml"
media-type
"application/xhtml+xml"
/>
"c2"
href
"chap2.xhtml"
media-type
"application/xhtml+xml"
/>
"c2-answerkey"
href
"chap2-answerkey.xhtml"
media-type
"application/xhtml+xml"
/>
"c3"
href
"chap3.xhtml"
media-type
"application/xhtml+xml"
/>
"c3-answerkey"
href
"chap3-answerkey.xhtml"
media-type
"application/xhtml+xml"
/>
"notes"
href
"notes.xhtml"
media-type
"application/xhtml+xml"
/>
"cover"
href
"./images/cover.svg"
properties
"cover-image"
media-type
"image/svg+xml"
/>
"f1"
href
"./images/fig1.jpg"
media-type
"image/jpeg"
/>
"f2"
href
"./images/fig2.jpg"
media-type
"image/jpeg"
/>
"css"
href
"./style/book.css"
media-type
"text/css"
/>
Example
43
: Foreign content document in spine with fallback
The following example shows the
manifest fallback chain
allowing a
foreign content document
(JPEG) to be listed in the spine with fallback to an SVG content
document.
package
…>
manifest
item
id
"page-001"
href
"images/page-001.jpg"
media-type
"image/jpeg"
fallback
"page-001-svg"
/>
item
id
"page-001-svg"
href
"images/page-001.svg"
media-type
"image/svg+xml"
/>
manifest
spine
itemref
idref
"page-001"
/>
spine
package
Example
44
: Embedded core media type resource with Link to View as top-level content document
The following example shows a JPEG embedded in an
EPUB content document
(via the
img
tag) with a hyperlink that allows it to open as a separate page
(e.g., for easier zooming). Although embedding the image using the
img
tag
does not require it to be listed in the
spine
or have a fallback,
adding the hyperlink causes the document to open as a
top-level content document
. As
its use in the spine makes it a
foreign content document
, the
EPUB creator
must
include a fallback to an EPUB content document.
XHTML
html
…>
body
img
src
"images/infographic.jpg"
alt
"…"
/>
href
"images/infographic.jpg"
Expand Image
body
html
Package
document
package
…>
manifest
item
id
"img01"
href
"images/infographic.jpg"
media-type
"image/jpeg"
fallback
"infographic-svg"
/>
item
id
"infographic-svg"
href
"images/infographic.svg"
media-type
"image/svg+xml"
/>
manifest
spine
itemref
idref
"img01"
properties
"layout-pre-paginated"
linear
"no"
/>
spine
package
Example
45
: Link to View foreign resource as top-level content document
The following example shows a link to the raw CSV data file. As the data will open in the
reading system
as a
top-level content document
, the
EPUB creator
must list
it in the spine. As its use in the spine makes it a
foreign content document
, the
EPUB creator must also provide a fallback to an
EPUB content document
. Because there
is no guarantee users will be able to access the data in its raw form, instructions on
how to extract the file from the
EPUB container
are also provided.
XHTML
html
…>
body
href
"../data/raw.csv"
[Open the raw CSV data for this project.]
class
"small"
To extract the data file
from this publication, unzip the EPUB file.
The data is located in the
code
/EPUB/data/raw.csv
code
file.
body
html
Package
document
package
…>
manifest
item
id
"data01"
href
"data/raw.csv"
media-type
"text/csv"
fallback
"data-html"
/>
item
id
"data-html"
href
"xhtml/data-table.html"
media-type
"application/xhtml+xml"
/>
manifest
spine
itemref
idref
"data01"
linear
"no"
/>
spine
package
Example
46
: Remote resources that are publication resources
The following example shows a reference to a remote audio file. Because the
audio
element embeds the audio in its
EPUB content document
, the
file is considered a
publication resource
. The
EPUB creator
therefore must list
the audio file in the manifest and indicate that its host EPUB content document contains
remote resource
XHTML
html
…>
body
audio
src
"http://www.example.com/book/audio/ch01.mp4"
controls
"controls"
/>
body
html
Package
document
package
…>
manifest
item
id
"audio01"
href
"http://www.example.com/book/audio/ch01.mp4"
media-type
"audio/mp4"
/>
item
id
"c01"
href
"XHTML/chapter001.xhtml"
media-type
"application/xhtml+xml"
properties
"remote-resources"
/>
manifest
package
Example
47
: External Resources that are not publication resources
The following example shows a hyperlink to an audio file hosted on the web.
Reading systems
will open such external content in a new browser window; the audio file is not
rendered within the publication. In this case, the
EPUB creator
does not list the
file in the manifest because it is not a
publication resource
XHTML
html
…>
body
href
"http://www.example.com/book/audio/ch01.mp4"
Listen to audio
body
html
Manifest
No
Entry
5.6.3
The
bindings
element (deprecated)
The
bindings
element defines a set of custom handlers for media types not supported
by this specification.
Use of the element is
deprecated
Refer to the
bindings
element definition
in [
epubpublications-301
] for more
information.
5.7
Spine section
5.7.1
The
spine
element
The
spine
element defines an ordered list of
manifest
item
references
that represent the default reading order.
Element Name:
spine
Usage:
REQUIRED
third child of
package
, following
manifest
Attributes:
id
[optional]
page-progression-direction
[optional]
toc
[optional]
(legacy)
Content Model:
itemref
[1 or more]
The
spine
MUST
specify at least one
EPUB content document
or
foreign content document
EPUB creators
MUST
list in the
spine
all EPUB and
foreign content documents that are hyperlinked to from publication resources in the
spine
, where hyperlinking encompasses any linking mechanism that requires the
user to navigate away from the current resource. Common hyperlinking mechanisms include the
href
attribute of the [
html
and
area
elements and scripted links (e.g., using
DOM Events and/or form elements). The requirement to list hyperlinked resources applies
recursively (i.e., EPUB creators must list all EPUB and foreign content documents hyperlinked to
from hyperlinked documents, and so on.).
EPUB creators also
MUST
list in the
spine
all EPUB and foreign content documents
hyperlinked to from the
EPUB navigation document
, regardless of whether EPUB creators
include the EPUB navigation document in the
spine
Note
As hyperlinks to resources outside the EPUB container are not
publication resources
, they
are not subject to the requirement to include in the spine (e.g., web pages and web-hosted
resources).
Publication resources used in the rendering of spine items (e.g., referenced from [
html
embedded content
) similarly do not have to be included in the spine.
The
page-progression-direction
attribute sets the global direction in which the content flows. Allowed values are
ltr
(left-to-right),
rtl
(right-to-left) and
default
When EPUB creators specify the
default
value, they are expressing no preference and
the
reading system
can choose the rendering direction.
Although the
page-progression-direction
attribute sets the global flow direction,
individual EPUB content documents and parts of EPUB content documents
MAY
override this setting
(e.g., via the
writing-mode
CSS property). Reading systems may also provide
mechanisms to override the default direction (e.g., buttons or settings that allow the
application of alternate style sheets).
The
legacy
toc
attribute takes an
IDREF
xml
] that identifies
the manifest item that represents the
NCX
5.7.2
The
itemref
element
The
itemref
element identifies an
EPUB content document
or
foreign content document
in the default reading order.
Element Name:
itemref
Usage:
As a child of
spine
. Repeatable.
Attributes:
id
[optional]
idref
[required]
linear
[optional]
properties
[optional]
Content Model:
Empty
Each
itemref
element
MUST
reference the
ID
xml
] of an
item
in the
manifest
via the
IDREF
xml
] in its
idref
attribute.
item
element IDs
MUST NOT
be referenced more than once.
Each referenced manifest
item
MUST
be either a) an
EPUB content document
or b) a
foreign content document
that includes an EPUB content
document in its
manifest fallback chain
Note
Although
EPUB publications
require an EPUB navigation
document
, it is not mandatory to include it in the
spine
The
linear
attribute indicates whether the referenced
item
contains content that contributes to the primary reading order and that
reading systems
must read sequentially ("
yes
"), or auxiliary content that
enhances or augments the primary content that reading systems can access out of sequence
("
no
"). Examples of auxiliary content include notes, descriptions, and answer
keys.
The
linear
attribute allows reading systems to distinguish content that a user
should access as part of the default reading order from supplementary content which a reading
system might, for example, present in a popup window or omit from an aural rendering.
Specifying that content is non-linear does not require reading systems to present it in a
specific way, however; it is only a hint to the purpose. Reading systems may present non-linear
content where it occurs in the spine, for example, or may skip it until users reach the end of
the spine.
Note
EPUB creators
should list non-linear content at the end of the spine except when it makes
sense for users to encounter it between linear spine items.
A linear
itemref
element is one whose
linear
attribute value is explicitly set to "
yes
" or that omits the
attribute — reading systems will assume the value "
yes
" for
itemref
elements without the attribute. The spine
MUST
contain at least one
linear
itemref
element.
EPUB creators
MUST
provide a means
of accessing all non-linear content (e.g., hyperlinks in the content or from the
EPUB navigation document
).
The
Spine Properties
Vocabulary
is the
default vocabulary
for the
properties
attribute.
EPUB creators
MAY
add terms from other vocabularies as defined in
D.1
Vocabulary association mechanisms
Example
48
: A basic spine
In this example, the spine entries correspond to
the manifest
example above
"ltr"
"intro"
/>
"c1"
/>
"c1-answerkey"
linear
"no"
/>
"c2"
/>
"c2-answerkey"
linear
"no"
/>
"c3"
/>
"c3-answerkey"
linear
"no"
/>
"notes"
linear
"no"
/>
5.8
Collections
5.8.1
The
collection
element
The
collection
element defines a related group of resources.
Element Name:
collection
Usage:
OPTIONAL
sixth element of
package
. Repeatable.
Attributes:
dir
[optional]
id
[optional]
role
[required]
xml:lang
[optional]
Content Model:
In this order:
metadata
[0 or 1]
, (
collection
[1 or more]
or (
collection
[0 or more]
link
[1 or more]
))
The
collection
element allows
EPUB creators
to assemble resources into logical
groups for a variety of potential uses: enabling reassembly into a meaningful unit of content
split across multiple
EPUB content documents
(e.g., an index split across multiple
documents), identifying resources for specialized purposes (e.g., preview content), or
collecting together resources that present additional information about the
EPUB publication
EPUB creators
MUST
identify the role of each
collection
element in its
role
attribute, whose value
MUST
be one or more NMTOKENs
xmlschema-2
] and/or
absolute-URL-with-fragment strings
url
].
The requirements for authoring specialized collections are defined by their respective
specifications.
Note
The former
IDPF
EPUB 3 Working
Group maintained both a
registry of role
extensions
and a list of
custom
extension roles
. This Working Group no longer maintains these registries.
Example
49
: A multi-document index
collection
role
"index"
link
href
"subjectIndex01.xhtml"
/>
link
href
"subjectIndex02.xhtml"
/>
link
href
"subjectIndex03.xhtml"
/>
collection
5.8.2
Defining collection types (deprecated)
The creation of new
collection
element roles is now
deprecated
Refer to the
collection
element definition
in [
epubpackages-32
] for more
information about the creation of specialized collections, including the requirements and
restrictions on their use.
5.9
Legacy features
5.9.1
Introduction
The package document
legacy
features are retained from EPUB 2 only to allow
EPUB creators
to author content that can function, to some degree, in
reading systems
that only support EPUB 2 publications.
These features were added primarily to address the overlap period as EPUB 3 reading systems were
developed, as there was still a high probability at that time that users would be opening EPUB 3
publications on EPUB 2 reading systems.
As reading systems that only handle EPUB 2 publications are now rare, EPUB creators should
consider the likelihood of their publications still being opened on these types of older devices
before making the effort to add these legacy features.
5.9.2
Support
EPUB creators
MAY
include the legacy features defined in this section for compatibility
purposes with EPUB 2 reading systems.
EPUB 3 reading systems will not use these features when presenting publications to users.
Note
EPUB conformance checkers
should not alert EPUB creators about the presence of legacy
features in an
EPUB publication
, as their inclusion is valid for backwards
compatibility. EPUB conformance checkers must alert EPUB creators if a legacy feature does
not conform to its definition or otherwise breaks a usage requirement.
5.9.3
The
meta
element
The
meta
element
opf-201
] provides a means of including generic metadata for EPUB 2
reading systems
Refer to the
meta
element definition
in [
opf-201
] for more information.
Note
The EPUB 3
meta
element, which uses different attributes and requires text content,
provides metadata capabilities for EPUB 3 reading systems.
The [
opf-201
meta
element also allows
EPUB creators
to identify a cover
image for EPUB 2 reading systems. In EPUB 3, the cover image must be identified using the
cover-image
property
on the manifest
item
for the image.
5.9.4
The
guide
element
The
guide
element
opf-201
] provides machine-processable navigation to key structures in
EPUB 2
reading systems
Refer to the
guide
element definition
in [
opf-201
] for more information.
Note
The
landmarks nav
in the
EPUB navigation document
provides this functionality in EPUB 3 reading systems.
5.9.5
NCX
The
NCX
opf-201
provides a table of contents for EPUB 2
reading systems
Refer to the
NCX
definition
in [
opf-201
] for more information.
Note
The
EPUB navigation document
replaces the NCX for EPUB 3 reading
systems.
6.
EPUB content documents
6.1
XHTML content documents
6.1.1
Introduction
This section is non-normative.
This section defines a profile of [
html
] for creating
XHTML content documents
. An instance
of an XML document that conforms to this profile is a
core media type resource
and is
referred to in this specification as an XHTML content document.
6.1.2
XHTML requirements
An
XHTML content document
MUST
be an [
html
] document that conforms to the
XML
syntax.
MUST
conform to the conformance criteria for all
document constructs defined by [
html
] unless explicitly overridden in
6.1.4
HTML deviations and constraints
MAY
include extensions to the [
html
] grammar as
defined in
6.1.3
HTML extensions
, and
MUST
conform to all content
conformance constraints defined therein.
Unless specified otherwise, XHTML content documents inherit all definitions of semantics,
structure, and processing behaviors from the [
html
] specification.
Note
The recommendation that
EPUB publications
follow the accessibility requirements in
epub-a11y-11
] applies to XHTML content documents. See
6.1.3
HTML extensions
This section defines EPUB 3
XHTML content document
extensions to the underlying [
html
document model.
Note
Although [
html
] allows user agents to support
vendor-neutral extensions
, unless such extensions are listed in this section, they
are not supported features of EPUB 3.
6.1.3.1
Structural semantics
EPUB creators
MAY
use the
epub:type
attribute in
XHTML content documents
to
express
structural semantics
The attribute
MUST NOT
be used on the
head
element or
metadata content
html
].
6.1.3.2
RDFa
The [
html-rdfa
] specification defines a set of attributes that
EPUB creators
MAY
use in
XHTML content documents
to semantically enrich the content. The use of these attributes
MUST
conform to the requirements defined in [
html-rdfa
].
The [
html-rdfa
] specification defines changes to the [
html
] content model when authors
use RDFa attributes. This modified content model is valid in XHTML content documents.
Note
The listing of RDFa does not express a preference on the part of the Working Group, only
that these attributes represent an extension of the HTML grammar. EPUB creators can also
specify
microdata attributes
html
] and
linked data
json-ld11
] in XHTML content documents as
both are natively supported.
6.1.3.3
Content switching (deprecated)
The
switch
element provides a simple mechanism through which
EPUB creators
can tailor the content displayed to users, one that is not dependent on the scripting
capabilities of the
EPUB reading system
Use of the element is
deprecated
Refer to the
switch
element definition
in [
epubcontentdocs-301
] for more
information.
6.1.3.4
The
epub:trigger
element (deprecated)
The
trigger
element enables the creation of markup-defined user interfaces for
controlling multimedia objects, such as audio and video playback, in both scripted and
non-scripted contexts.
Use of the element is
deprecated
Refer to the
epub:trigger
element definition
in [
epubcontentdocs-301
for more information.
6.1.3.5
Custom attributes
XHTML content documents
MAY
contain custom attributes, which are
prefixed
xml-names
] attributes whose namespace
URL does not include either of the following strings in its
domain
url
]:
w3.org
idpf.org
When using custom attributes, the content
MUST
remain consumable by a user without any
information loss or other significant deterioration, regardless of the
reading system
it
is rendered on.
Note
Custom attributes are usually defined in a reading system-specific manner and are not
intended for use by other reading systems. This specification should be extended to
provide extensions that multiple independent reading systems can use.
6.1.4
HTML deviations and constraints
This section defines deviations from, and constraints on, the underlying [
html
] document model
applicable to EPUB 3
XHTML content documents
6.1.4.1
Embedded MathML
XHTML content documents
support embedded [
mathml3
]. Occurrences of MathML markup
MUST
conform to the constraints expressed in the MathML specification [
mathml3
], with the
following additional restrictions:
Presentation MathML
The
math
element
MUST
contain only
Presentation MathML
, except within the
annotation-xml
element.
Content MathML
EPUB creators
MAY
include
Content MathML
within MathML markup in
XHTML content documents, and, when present,
MUST
include it within an
annotation-xml
child element of a
semantics
element.
When EPUB creators include Content MathML per
the previous condition, they
MUST
set the given
annotation-xml
element's
encoding
attribute to either of the functionally-equivalent
values
MathML-Content
or
application/mathml-content+xml
and the
name
attribute to
contentequiv
This subset eases the implementation burden on
reading systems
and promotes
accessibility, while retaining compatibility with [
html
] user agents.
Note
The
mathml
property
of the
manifest
item
element indicates that an XHTML content document contains
embedded MathML.
6.1.4.2
Embedded SVG
XHTML content documents
support the embedding of SVG:
by reference
— for example, from an [
html
img
or
object
element. SVGs embedded by reference are
SVG
core media types
so their requirements are already defined in
6.2
SVG content documents
by inclusion
— via direct inclusion of an
SVG document
fragment
svg
] in an XHTML content document. SVGs embedded by inclusion have
the same content conformance constraints as those defined for
SVG content documents
in
6.2.3
Restrictions on SVG
Note
The
svg
property
of the
manifest
item
element indicates that an XHTML content document contains embedded SVG (either
by reference or by inclusion).
6.1.4.3
Discouraged constructs
This section is non-normative.
6.1.4.3.1
The
base
element
The [
html
base
element can be used to specify the
document base URL
for the purposes of
parsing URLs. When using it in an
EPUB publication
, the interpretation of the
base
element may inadvertently result in references to
remote resources
. It may also cause
reading systems
to misinterpret the location of
hyperlinks (e.g., relative links to other documents in the publication might appear as
links to a web site if the
base
element specifies an absolute URL). To
avoid significant interoperability issues,
EPUB creators
should not use the
base
element.
6.1.4.3.2
The
rp
element
The [
html
rp
element is intended to provide a fallback
for older
reading systems
that do not recognize ruby markup (i.e., a parenthesis
display around
ruby
markup). As EPUB 3 reading systems are ruby-aware, and
can provide fallbacks,
EPUB creators
should not use
rp
elements.
6.1.4.3.3
The
embed
element
Since the [
html
embed
element
element does not include intrinsic facilities to provide fallback
content for
reading systems
that do not support scripting,
EPUB creators
are
discouraged from using the element when the referenced resource includes scripting. The
html
object
element is a better alternative, as it includes intrinsic fallback
capabilities.
6.2
SVG content documents
Caution
Reading systems
may not support all the features of [
svg
] or support them across all
platforms that reading systems run on. When utilizing such features,
EPUB creators
should
consider the inherent risks on interoperability and document longevity.
6.2.1
Introduction
This section is non-normative.
The Scalable Vector Graphics (SVG) specification [
svg
] defines a format for representing
final-form vector graphics and text.
Although
EPUB creators
typically use
XHTML content documents
as the
top-level
document type, the use of
SVG content documents
is also permitted. EPUB creators will typically only need SVGs for certain special cases, such
as when final-form page images are the only suitable representation of the content (e.g., for
cover art or in the context of manga or comic books).
This section defines a profile for [
svg
] documents. An instance of an XML document that
conforms to this profile is a
core media type resource
and is referred to in this
specification as an
SVG content document
Note
This section defines conformance requirements for SVG content documents. Refer to
6.1.4.2
Embedded SVG
for the conformance requirements for SVG embedded in XHTML
content documents.
6.2.2
SVG requirements
An
SVG content document
MUST
be a
conforming SVG
stand-alone file
svg
] and conform to all content conformance constraints expressed in
6.2.3
Restrictions on SVG
Note
The recommendation that
EPUB publications
follow the accessibility requirements in
epub-a11y-11
] applies to SVG content documents. See
6.2.3
Restrictions on SVG
This specification restricts the content model of
SVG content documents
and
SVG embedded by inclusion in XHTML content documents
as
follows:
The [
svg
foreignObject
element:
MUST
contain either [
html
flow content
or exactly one [
html
body
element.
Note
In the case of
SVGs embedded by
inclusion
, a
body
element is not permitted per the
restrictions on SVG
defined in [
html
].
MUST
contain a valid document fragment
that conforms to the XHTML content document model defined in
6.1.2
XHTML requirements
If the [
svg
title
element contains
marked-up text, the markup
MUST
contain only elements declared in the
HTML namespace
infra
].
Note
Although the [
svg
title
element allows markup elements, support for
this feature is limited.
EPUB creators
are advised to use text-only titles for
maximum interoperability.
When specified, the
epub:type
attribute
MUST
only be included on
renderable elements
svg
].
Note
The SVG content model allows authors to
include
namespaced attributes
, so this specification does not need to allow the
epub:type
attribute or
vocabulary association
mechanisms
One key difference between SVGs embedded by reference and by inclusion, however, is
that SVGs embedded by inclusion cannot have an
epub:prefix
attribute on their root
svg
element
svg
]. For more information, refer to
D.1.4
The
prefix
attribute
6.3
Common resource requirements
This section defines requirements for technologies usable in both
XHTML
and
SVG content documents
6.3.1
Cascading Style Sheets (CSS)
6.3.1.1
Introduction
This section is non-normative.
CSS is an integral part of the Open Web Platform. Readers, publishers, and document authors
expect CSS to "just work," as they expect HTML to just work.
In the past, EPUB defined a profile of CSS that mandated support for certain properties and
provided prefixed versions of numerous other properties. Although the CSS Working Group no
longer recommends the use of prefixed properties, this specification maintains some prefixed
properties to avoid breaking existing content. But with the minor exceptions defined in this
section, EPUB defers to the
W3C
to define CSS.
Note
Keep in mind that some
reading systems
will not support all desired features of CSS.
The following are known to be particularly problematic:
Reading system-induced pagination can interact poorly with style sheets as
reading systems sometimes paginate using columns. This may result in incorrect
values for viewport sizes. Fixed and absolute positioning are particularly
problematic.
Some types of screens will render animations and transitions poorly (e.g., those
with high latency).
6.3.1.2
CSS requirements
A CSS style sheet:
MAY
include any CSS properties, with the following
exceptions:
It
MUST NOT
include the
direction
property
css-writing-modes-3
].
It
MUST NOT
include the
unicode-bidi
property
css-writing-modes-3
].
MAY
include the prefixed properties defined in
6.3.1.3
Prefixed properties
MUST
be encoded in UTF-8 or UTF-16 [
unicode
], with
UTF-8 as the
RECOMMENDED
encoding.
Note
This specification restricts the use of the
direction
and
unicode-bidi
properties because
reading systems
might not
implement, or might switch off, CSS processing.
EPUB creators
must use the following
format-specific methods when they need control over these aspects of the rendering:
the
dir
attribute [
html
] and
direction
attribute [
svg
] for inline base
directionality.
the
bdo
element with the
dir
attribute [
html
] and the
presentation attribute alternative
for
unicode-bidi
svg
] for bidirectionality.
6.3.1.3
Prefixed properties
Earlier version of EPUB included prefixed CSS properties, as many CSS features related to
world languages were not yet mature. To ensure backwards compatibility for content authored
using these prefixes, they have been retained in this specification. Unless otherwise noted,
prefixed properties and values behave exactly as their unprefixed equivalents as described
in the appropriate CSS specification. The prefixed properties are documented in
E.
Prefixed CSS properties
Caution
EPUB creators
should use unprefixed properties and
reading systems
should support
current CSS specifications. This specification retains the widely used prefixed
properties from [
epubcontentdocs-301
] but removes support for the less-used ones. EPUB
creators should use CSS-native solutions for the removed properties whenever
available.
The Working Group recommends that EPUB creators currently using these prefixed properties
move to unprefixed versions as soon as support allows, as the Working Group does not
anticipate supporting them in the next major version of EPUB.
6.3.2
Scripting
6.3.2.1
Script inclusion
EPUB content documents
MAY
contain scripting using the facilities defined for this in the
respective underlying specifications ([
html
] and [
svg
]). When an EPUB content document
contains scripting, this specification refers to it as a
scripted content document
. This
label also applies to
XHTML content documents
that contain [
html
form
elements.
The
scripted
property
of the
manifest
item
element is used to indicate that an EPUB content document is a
scripted content document.
When an [
html
script
element contains a
data
block
html
], it does not represent scripted content.
Note
svg
] does not define data blocks as of publication, but the same exclusion would apply
if a future update adds the concept.
EPUB creators
should note that
reading systems
are required to behave as though a
unique
origin
html
] has been assigned to each
EPUB publication
. In practice, this means that it is not possible for scripts to share data
between EPUB publications.
Which
context
a script is used in also determines the
rights and restrictions that a reading system places on it (refer to
Scripting
epub-rs-33
] for more
information).
Note
Reading systems may render scripted content documents in a manner that disables other
EPUB capabilities and/or provides a different rendering and user experience (e.g., by
disabling pagination).
6.3.2.2
Scripting contexts
EPUB 3 defines two contexts for script execution:
container constrained
— when the
execution of a script occurs within an [
html
iframe
element; and
spine level
— when the execution of a script occurs
directly within a
top-level content document
Note
Scripts may execute in other contexts, but
reading system
support for these contexts
is optional. For example, a scripted SVG document may be referenced from an [
html
object
element.
Refer to the
processing of scripts
epub-rs-33
] for more information.
Whether
EPUB creators
embed the code directly in a
script
element or
reference it via the element's
src
attribute makes no difference to its
executing context.
Which context EPUB creators use for their scripts affects both what actions the scripts can
perform and the likelihood of support in reading systems, as described in the following
subsections.
Note
Refer to
H.2
Scripting contexts
for an example of the difference
between the two contexts.
6.3.2.2.1
Container-constrained scripts
container-constrained script
is either of the following:
An instance of the [
html
script
element contained in an
XHTML content document
that is embedded in an XHTML content document using the [
html
iframe
element.
An instance of the [
svg
script
element contained in an
SVG content document
that is embedded in a XHTML content document using the [
html
iframe
element.
A container-constrained script
MUST NOT
contain
instructions for modifying the DOM of the
EPUB content document
that embeds it
(i.e., the one that contains the
iframe
element). It also
MUST NOT
contain
instructions for manipulating the size of its containing rectangle.
EPUB creators
should note that
support
for container-constrained scripting in reading systems
is only recommended in
reflowable documents [
epub-rs-33
]. Furthermore,
reading system
support in
fixed-layout documents
is optional.
EPUB creators should ensure container-constrained scripts degrade gracefully in reading
systems without scripting support (see
6.3.2.5
Scripting fallbacks
).
Note
EPUB creators choosing to restrict the usage of scripting to the
container-constrained model will ensure a more consistent user experience between
scripted and non-scripted content (e.g., consistent pagination behavior).
6.3.2.2.2
Spine-level scripts
spine-level script
is an instance of the [
html
script
or [
svg
script
element contained in a
top-level content document
EPUB creators
should note that support for spine-level scripting in
reading systems
is only recommended in
fixed-layout documents
and
reflowable documents set to
scroll
epub-rs-33
]. Furthermore, reading system support in all other contexts
is optional.
Top-level content documents
that include spine-level
scripting
SHOULD
remain consumable by the user without any information loss or other
significant deterioration when scripting is disabled or not available (e.g., by
employing progressive enhancement techniques or
fallbacks
). Failing to account for non-scripted environments in top-level
content documents can result in
EPUB publications
being unreadable.
6.3.2.3
Event model
This section is non-normative.
EPUB creators
should consider the wide variety of possible
reading system
implementations when adding scripting functionality to their
EPUB publications
(e.g.,
not all devices have physical keyboards, and in many cases a soft keyboard is activated only
for text input elements). Consequently, EPUB creators should not rely on keyboard events
alone; they should always provide alternative ways to trigger a desired action.
6.3.2.4
Scripting accessibility
EPUB content documents
that contain scripting
SHOULD
employ
relevant [
wai-aria
] accessibility techniques to ensure that the content remains consumable
by all users.
6.3.2.5
Scripting fallbacks
EPUB content documents
that contain scripting
MAY
provide fallbacks for such content, either by using intrinsic fallback mechanisms (such as
those available for the [
html
object
and
canvas
elements) or, when an intrinsic
fallback is not applicable, by using a
manifest-level
fallback
EPUB creators
MUST
ensure that scripts only
generate
core media type resources
or fragments
thereof.
7.
EPUB navigation document
7.1
Introduction
This section is non-normative.
The
EPUB navigation document
is a
mandatory component
of an
EPUB publication
. It allows
EPUB creators
to include a human- and machine-readable global
navigation layer, thereby ensuring increased usability and accessibility for the user.
The EPUB navigation document is a special type of
XHTML content document
that defines the
table of contents
for
reading systems
. It may also include other
specialized navigation elements, such as a
page list
and a list of
key
landmarks
. These navigation elements have
additional restrictions
on their content to facilitate their
processing.
The EPUB navigation document is not exclusively for machine processing, however. There are no
restrictions on the structure or content of the EPUB navigation document outside of the specialized
navigation elements (i.e., EPUB creators can mark the rest of the document up like any other XHTML
content document). As a result, it can also be part of the linear reading order, avoiding the need
for duplicate tables of contents. EPUB creators can hide navigation elements that are only for
machine processing (e.g., the page list) with the
hidden
attribute
Note that reading systems may strip scripting, styling, and HTML formatting as they generate
navigational interfaces from information found in the EPUB navigation document, and this may make
the result difficult to read. If EPUB creators require such formatting and functionality, then they
should also include the EPUB navigation document in the
spine
. The use of
progressive enhancement techniques for scripting and styling of the navigation document will help
ensure the content will retain its integrity when rendered in a non-browser context.
7.2
Navigation document requirements
A valid EPUB navigation document:
MUST
conform to the content conformance constraints for
XHTML content documents
defined in
6.1.2
XHTML requirements
MUST
conform to the
nav
element constraints defined
7.3
The
nav
element: restrictions
MUST
include exactly one
toc nav
element as defined in
7.4.2
The
toc nav
element
7.3
The
nav
element: restrictions
When a
nav
element carries the
epub:type
attribute in an
EPUB navigation document
, this specification restricts the content model of the element and its descendants as
follows:
Content Model:
nav
In this order:
h1-h6
[0 or 1]
ol
[exactly 1]
ol
In this order:
li
[1 or more]
li
In this order:
span
or
[exactly 1]
ol
[conditionally required]
span
and
In any order:
HTML Phrasing content
[1 or more]
Note that there are no restrictions on the attributes allowed on these elements.
Refer the definition below for additional requirements.
The following elaboration of the content model of the
nav
element explains the purpose
and restrictions of the various elements:
The
ol
child of the
nav
element represents the
primary level of content navigation.
Each list item of the ordered list represents a heading, structure, or
other item of interest. A child
element describes the target that the link
points to, while a
span
element serves as a heading for breaking down lists
into distinct groups (for example, an EPUB creator could segment a large list of
illustrations into several lists, one for each chapter).
The child
or
span
element
MUST
provide a
non-zero-length text label after concatenation of all child content and application of
whitespace normalization rules. When determining compliance with this requirement, the
concatenated label
MUST
include text content contained in
title
or
alt
attributes for non-textual descendant elements.
If an
or
span
element contains instances
of
HTML embedded content
html
] that do not provide intrinsic text
alternatives, the element
MUST
also contain a
title
attribute with an alternate
text rendering of the link label.
The URL [
url
] reference provided in the
href
attribute
of the
element:
MUST
, in the case of the
toc nav
landmarks
nav
and
page-list
nav
, resolve to a
top-level content document
or fragment
therein.
MAY
, for all other
nav
types, also
reference content outside the
EPUB container
(e.g., web-hosted resources).
An
ol
(ordered list) element representing a subsidiary
content level (e.g., all the subsection headings of a section)
MAY
follow an
element.
An
ol
(ordered list) element
MUST
follow a
span
element (
span
elements cannot occur in "leaf"
li
elements).
Regardless of whether an
or
span
element
precedes it, every sublist
MUST
adhere to the content requirements defined in this section
for constructing the primary navigation list.
Example
50
: Basic patterns of a navigation element
nav
epub:type
"…"
h1
h1
ol
li
href
"chap1.xhtml"
A basic leaf node
li
li
href
"chap2.xhtml"
A linked heading
ol
ol
li
li
span
An unlinked heading
span
ol
ol
li
li
href
"appendix.xhtml"
img
src
"app1.jpg"
alt
"An image-based heading"
/>
li
ol
nav
Caution
Although the headings and links in
nav
elements allow any [
html
phrasing content
, app-based reading systems often only support simple text labels. Because these apps
create their own navigation widgets that are not based on HTML rendering, they often cannot
retain embedded images and multimedia, MathML, inline styling and other element- and
attribute-based rendering instructions. EPUB creators should avoid using these types of elements
where their absence may lead to usability issues.
As a conforming
XHTML content document
, EPUB creators
MAY
include the EPUB navigation document in the
spine
In the context of this specification, the default display style of list
items within
nav
elements is equivalent to the
list-style:
none
property
csssnapshot
]. EPUB creators
MAY
specify alternative list
styling using CSS for rendering of the document in the spine.
7.4
The
nav
element: types
7.4.1
Introduction
This section is non-normative.
The
nav
elements defined in an
EPUB navigation document
are distinguished
semantically by the value of their
epub:type
attribute.
This specification defines three types of navigation aid:
toc
Identifies the
nav
element that contains the table of contents. The
toc nav
is the only navigation aid that
EPUB creators
must include
in the EPUB navigation document.
page-list
Identifies the
nav
element that contains a list of pages for a print or
other statically paginated source.
landmarks
Identifies the
nav
element that contains a list of points of interest.
An EPUB navigation document may contain at most one navigation aid for each of these types.
The EPUB navigation document may include additional navigation types. See
7.4.5
Other
nav
elements
for more information.
7.4.2
The
toc nav
element
The primary navigational hierarchy of an
EPUB publication
is defined in a
nav
element
html
] whose
epub:type
attribute set to the value "
toc
" [
epub-ssv-11
] (i.e., the
toc nav
element). This element
conceptually corresponds to a table of contents in a printed work — it provides navigation
to the major structural sections of the publication.
EPUB creators
SHOULD
order the references in the
toc nav
element such that they
reflect both:
the order of the
referenced EPUB content documents
in
the
spine
; and
the order of the targeted elements within their respective
EPUB content documents
7.4.3
The
page-list nav
element
The page list provides navigation to static page boundaries in the content. These boundaries may
correspond to a statically paginated source such as print or may be defined exclusively for the
EPUB publication
The page list is defined in a
nav
element [
html
] whose
epub:type
attribute is set to
the value "
page-list
" [
epub-ssv-11
] (i.e., the
page-list nav
element).
The
page-list nav
element is
OPTIONAL
in
EPUB navigation documents
and
MUST NOT
occur more than once.
The
page-list nav
element
SHOULD
contain only a single
ol
descendant
(i.e., no nested sublists).
EPUB creators
MAY
identify the destinations of the
page-list
references in their
respective
EPUB content documents
using the
pagebreak
term
epub-ssv-11
].
7.4.4
The
landmarks nav
element
Landmarks identify fundamental structural components of the content to enable
reading systems
to provide the user efficient access to them (e.g., through a dedicated button in the user
interface).
Landmarks are defined in a
nav
element [
html
] whose
epub:type
attribute is set to the
value "
landmarks
" [
epub-ssv-11
] (i.e., the
landmarks nav
element).
The
landmarks nav
element is
OPTIONAL
in
EPUB navigation documents
and
MUST NOT
occur more than once.
The
landmarks nav
element
SHOULD
contain only a single
ol
descendant
(i.e., no nested sublists).
The
epub:type
attribute is
REQUIRED
on
element descendants of the
landmarks nav
element. The structural semantics of each link target within the
landmarks nav
element is determined by the value of this attribute.
Example
51
: A basic landmarks nav
In this example, the
epub:type
attribute value are drawn from structural
semantics drawn from [
epub-ssv-11
].
nav
epub:type
"landmarks"
h2
Guide
h2
ol
li
epub:type
"toc"
href
"#toc"
Table of Contents
li
li
epub:type
"loi"
href
"content.html#loi"
List of Illustrations
li
li
epub:type
"bodymatter"
href
"content.html#bodymatter"
Start of Content
li
ol
nav
The
landmarks nav
MUST NOT
include multiple entries with the same
epub:type
value that reference the same resource, or fragment thereof.
EPUB creators
should limit the number of items they define in the
landmarks nav
to only items that a reading system is likely to use in its user interface. The element is not
meant to repeat the table of contents.
The following landmarks are recommended to include when available:
bodymatter
epub-ssv-11
] — Reading
systems often use this landmark to automatically jump users past the front matter when they
begin reading.
toc
epub-ssv-11
] — If the table
of contents is available in the spine, reading systems may use this landmark to take users
to the document containing it.
Other possibilities for inclusion in the
landmarks nav
are key reference sections
such as indexes and glossaries.
Although the
landmarks nav
is intended for reading system use, EPUB creators should
still ensure that the labels for the
landmarks nav
are human readable. Reading
systems may expose the links directly to users.
7.4.5
Other
nav
elements
EPUB navigation documents
MAY
contain one or more
nav
elements in addition to
the
toc
page-list
, and
landmarks nav
elements defined in
the preceding sections. If these
nav
elements are intended for
reading system
processing, they
MUST
have an
epub:type
attribute and are subject to the content model
restrictions defined in
7.3
The
nav
element: restrictions
This specification imposes no restrictions on the semantics of any additional
nav
elements: they
MAY
represent navigational semantics for any information domain, and they
MAY
contain link targets with homogeneous or heterogeneous semantics.
Example
52
: Adding a custom navigation element
In this example, the
lot
semantic indicates that the EPUB creator is adding a
"list of tables" navigation element.
nav
epub:type
"lot"
aria-labelledby
"lot"
h2
id
"lot"
List of tables
h2
ol
li
span
Tables in Chapter 1
span
ol
li
href
"chap1.xhtml#table-1.1"
Table 1.1
li
li
href
"chap1.xhtml#table-1.2"
Table 1.2
li
ol
li
ol
nav
7.5
Using in the spine
This section is non-normative.
Although it is possible to reuse the
EPUB navigation document
in the
spine
, it
is often the case that not all of the navigation structures, or branches within them, are needed.
EPUB creators
will often want to hide the
page list
and
landmarks
navigation elements or trim the branches of the table of
contents for books that have many levels of subsections.
While the
display
property
csssnapshot
] controls the visual rendering of EPUB navigation documents in
reading systems
with
viewports
, reading systems without viewports may not support CSS. To
better ensure the proper rendering in these reading systems, EPUB creators should use the [
html
hidden
attribute to indicate which (if any) portions of the navigation data are
excluded from rendering in the content flow.
The
hidden
attribute has no effect on how reading systems render the navigation data
outside of the content flow (such as in dedicated navigation user interfaces provided by reading
systems).
Note
The
hidden
attribute can be used together with the
display
property to
maximize interoperability across all reading systems.
Example
53
: Hiding a nav element in spine
In this example, the presence of the
hidden
attribute on the
nav
element indicates the page list will be excluded from rendering in the content flow when the
document is rendered in the spine.
nav
epub:type
"page-list"
hidden
"hidden"
h2
Pagebreaks of the print version, third edition
h2
ol
li
href
"frontmatter.xhtml#pi"
li
ol
nav
Example
54
: Hiding branches of a nav element
In this example, the branch (
ol
element) not wanted for rendering in the spine has
the
hidden
attribute on it. When rendered, this limits the table of content to the
two top-most hierarchical levels.
nav
epub:type
"toc"
id
"toc"
h1
Table of contents
h1
ol
li
href
"chap1.xhtml"
Chapter 1
ol
li
href
"chap1.xhtml#sec-1.1"
Chapter 1.1
ol
hidden
""
li
href
"chap1.xhtml#sec-1.1.1"
Section 1.1.1
li
ol
li
ol
li
ol
nav
8.
Layout rendering control
8.1
Introduction
This section is non-normative.
Not all rendering information can be expressed through the underlying technologies that EPUB is built
upon. For example, although HTML with CSS provides powerful layout capabilities, those capabilities
are limited to the scope of the document being rendered.
This section defines properties that allow
EPUB creators
to express package-level rendering
intentions (i.e., functionality that can only be implemented by the
EPUB reading system
). If a
reading system supports the desired rendering, these properties enable the user to be presented the
content as the EPUB creator optimally designed it.
8.2
Fixed layouts
8.2.1
Introduction
This section is non-normative.
EPUB publications
, unlike print books or PDF files, are designed to change. The content
flows, or reflows, to fit the screen and to fit the needs of the user. As noted in
Rendering and CSS
"content presentation
adapts to the user, rather than the user having to adapt to a particular presentation of
content." [
epub-overview-33
But this principle does not work for all types of documents. Sometimes content and design are so
intertwined it is not possible to separate them. Any change in appearance risks changing the
meaning or losing all meaning.
Fixed-layout documents
give
EPUB creators
greater control
over presentation when a reflowable EPUB is not suitable for the content.
EPUB creators define fixed layouts using a
set of package document
properties
to control the rendering in
reading systems
. In addition, they set
the dimensions of each fixed-layout document
in its respective
EPUB content document
Note
EPUB 3 affords multiple mechanisms for representing fixed-layout content. When fixed-layout
content is necessary, the EPUB creator's choice of mechanism will depend on many factors
including desired degree of precision, file size, accessibility, etc. This section does not
attempt to dictate the EPUB creator's choice of mechanism.
8.2.2
Fixed-layout package settings
8.2.2.1
Layout
The
rendition:layout
property specifies whether the content is reflowable or
pre-paginated.
When the
rendition:layout
property
is specified on a
meta
element, it indicates that the
paginated or reflowable layout style applies globally (i.e., for all spine items).
EPUB creators
MUST
use one of the following values with the
rendition:layout
property:
reflowable
The content is not pre-paginated (i.e.,
reading systems
apply dynamic pagination
when rendering). Default value.
pre-paginated
The content is pre-paginated (i.e., reading systems produce exactly one page per
spine
itemref
when rendering).
Note
Reading systems typically restrict or deny the application of user or user agent style
sheets to pre-paginated documents because dynamic style changes are likely to have
unintended consequence on the intrinsic properties of such documents. EPUB creators
should consider the negative impact on usability and accessibility that these
restrictions have when choosing to use pre-paginated instead of reflowable content.
Refer to
Guideline 1.4 - Provide text
configuration
uaag20
] for related information.
When the property is set
to
pre-paginated
for a spine item, its content dimensions
MUST
be set as
defined in
8.2.2.6
Content document dimensions
EPUB creators
MUST NOT
declare the
rendition:layout
property more than once.
They also
MUST NOT
declare the property using the
refines
attribute
. Refer to
8.2.2.1.1
Layout overrides
for
setting the property for individual
EPUB content documents
Example
55
: Fixed Layout Document with media queries
In this example, the document's layout is set to
pre-paginated
(i.e., it is
defined to be a
fixed-layout document
). Furthermore, media queries
mediaqueries-3
] are used to apply different style sheets for three different device
categories. Note that the media queries only affect the style sheet applied to the
document; the size of the content area set in the
viewport meta
tag is
static.
Package document:
package
…>
metadata
…>
meta
property
"rendition:layout"
pre-paginated
meta
metadata
package
XHTML
html
…>
head
meta
name
"viewport"
content
"width=1200,
height=900"
/>
link
rel
"stylesheet"
href
"eink-style.css"
media
"(max-monochrome: 3)"
/>
link
rel
"stylesheet"
href
"skinnytablet-style.css"
media
"((color) and (max-height:600px) and (orientation:landscape),
(color) and (max-width:600px) and (orientation:portrait))"
/>
link
rel
"stylesheet"
href
"fattablet-style.css"
media
"((color) and (min-height:601px) and (orientation:landscape),
(color) and (min-width:601px) and (orientation:portrait))"
/>
head
html
8.2.2.1.1
Layout overrides
EPUB creators
MAY
specify the following properties locally
on
spine
itemref
elements to override the
global value
for the given spine item:
rendition:layout-pre-paginated
Specifies that the given spine item is pre-paginated.
rendition:layout-reflowable
Specifies that the given spine item is reflowable.
EPUB creators
MUST NOT
use more than one of these overrides on any given spine item.
8.2.2.2
Orientation
The
rendition:orientation
property specifies which orientation the
EPUB creator
intends the content to be rendered in.
When the
rendition:orientation
property
is specified on a
meta
element,
it indicates that the intended orientation applies globally (i.e., for all
spine
items).
EPUB creators
MUST
use one of the following values with the
rendition:orientation
property:
landscape
Reading systems
should render the content in landscape orientation.
portrait
Reading systems should render the content in portrait orientation.
auto
The content is not orientation constrained. Default value.
EPUB creators
MUST NOT
declare the
rendition:orientation
property more than once.
They also
MUST NOT
declare the property using the
refines
attribute
. Refer to
8.2.2.2.1
Orientation overrides
for setting the property for individual
EPUB content documents
Example
56
: Specifying global landscape orientation
In this example, items in the spine are to be rendered in landscape mode.
package
…>
metadata
…>
meta
property
"rendition:layout"
pre-paginated
meta
meta
property
"rendition:orientation"
landscape
meta
metadata
package
8.2.2.2.1
Orientation overrides
EPUB creators
MAY
specify the following properties
locally on
spine
itemref
elements to override the
global value
for the given spine item:
rendition:orientation-auto
Specifies that the
reading system
determines the orientation to render the spine
item in.
rendition:orientation-landscape
Specifies that reading systems should render the given spine item in landscape
orientation.
rendition:orientation-portrait
Specifies that reading systems should render the given spine item in portrait
orientation.
EPUB creators
MUST NOT
use more than one of these overrides on any given spine item.
8.2.2.3
Synthetic spreads
The
rendition:spread
property specifies the intended
reading system
synthetic spread behavior.
When the
rendition:spread
property is specified on a
meta
element, it indicates that the intended
synthetic spread
behavior
applies globally (i.e., for all spine items).
EPUB creators
MUST
use one of the following values with the
rendition:spread
property:
none
Do not incorporate spine items in a synthetic spread. Reading systems should display
the items in a single
viewport
positioned at the center of the screen.
landscape
Render a synthetic spread for spine items only when the device is in landscape
orientation.
portrait (deprecated)
The use of spreads only in portrait orientation is
deprecated
EPUB creators should use the value "
both
" instead, as spreads that are
readable in portrait orientation are also readable in landscape.
both
Render a synthetic spread regardless of device orientation.
auto
The EPUB creator is not defining an explicit synthetic spread behavior. Default
value.
EPUB creators
MUST NOT
declare the
rendition:spread
property more than once.
They also
MUST NOT
declare the property using the
refines
attribute
. Refer to
8.2.2.3.1
Synthetic spread overrides
for
setting the property for individual
EPUB content documents
Note
When synthetic spreads are used in the context of
XHTML
and
SVG content documents
, the dimensions given via the
viewport meta
element
and
viewBox
attribute
represents the size of one page in the
spread, respectively.
Note
Refer to the
spine
element for information about declaration of global flow
directionality using the
page-progression-direction
attribute and that of
local page-progression-direction within content documents.
Example
57
: A fixed-layout EPUB publication without synthetic spread
package
…>
metadata
…>
meta
property
"rendition:layout"
pre-paginated
meta
meta
property
"rendition:spread"
none
meta
metadata
package
Figure
Rendering of three fixed-layout documents without synthetic spread.
(Comics courtesy of
xkcd
, licensed under
cc by-nc
2.5
.)
Image description
Two rows of schematic views of tablets (three in each row). The tablets in the top
row are in portrait mode, and in landscape mode in the bottom one. The schematic
views of the tablets within a row are linked with left-to-right arrows.
In the tablets of each row the consecutive panels of a comics are displayed; the
panels are centered in their respective tablets.
Example
58
: Specifying the usage of synthetic spreads in landscape orientation only
package
…>
metadata
…>
meta
property
"rendition:layout"
pre-paginated
meta
meta
property
"rendition:spread"
landscape
meta
metadata
package
Figure
Rendering of three fixed-layout documents, with synthetic spread in
landscape orientation only.
(Comics courtesy of
xkcd
, licensed under
cc by-nc
2.5
.)
Image description
Two rows of schematic views of tablets (three in top row, and two in the bottom). The
tablets in the top row are in portrait mode, and in landscape mode in the bottom
one. The schematic views of the tablets within a row are linked with left-to-right
arrows.
In both rows three panels of a comics are displayed. In the top row the panels are
centered in their respective tablets. In the bottom row, the first tablet contains
the first and second panels of the comics side by side; the second tablet contains
the third panel of the comics on the left.
Example
59
: Specifying to use synthetic spreads both in portrait and in landscape orientations
See also
Figure
package
…>
metadata
…>
meta
property
"rendition:layout"
pre-paginated
meta
meta
property
"rendition:spread"
both
meta
metadata
package
Figure
Rendering of three fixed-layout documents, with synthetic spread in both
portrait and landscape orientations.
(Comics
courtesy of
xkcd
, licensed under
cc by-nc
2.5
.)
Image description
Two rows of schematic views of tablets (two in each row). The tablets in the top row
are in portrait mode, and in landscape mode in the bottom one. The schematic views
of the tablets within a row are linked with left-to-right arrows.
In both rows three panels of a comics are displayed. The first tablet in a row
contains the first and second panels of the comics side by side; the second tablet
contains the third panel of the comics on the left.
Example
60
: Overriding the global spread behavior
In this example, the EPUB creator overrides the global reflowable setting in the spine
for the introductory page. The intention is for reading systems to render it as a
reflowable document.
package
…>
metadata
…>
meta
property
"rendition:layout"
pre-paginated
meta
meta
property
"rendition:spread"
both
meta
metadata
spine
itemref
idref
"introduction"
properties
"rendition:layout-reflowable"
/>
spine
package
Figure
Rendering of an introduction document in reflowable layout, followed by
three fixed-layout documents with synthetic spread in portrait orientation.
(Comics courtesy of
xkcd
, licensed under
cc by-nc
2.5
.)
Image description
A row of schematic views of three tablets in portrait mode, and linked with
left-to-right arrows.
The first tablet views includes a single, column-like strip (i.e., a rectangle
without a bottom edge following beyond the bottom of the tablet) with a text flowing
down the strip, and starting with the word "Introduction". This is followed by two
schematic tablets with three panels of comics displayed. The first tablet in the row
contains the first and second panels of the comics side by side; the second tablet
contains the third panel of the comics on the left.
8.2.2.3.1
Synthetic spread overrides
EPUB creators
MAY
specify the following properties locally
on
spine
itemref
elements to override the
global value
for the given spine item:
rendition:spread-auto
Specifies the
reading system
determines when to render a synthetic spread for
the spine item.
rendition:spread-both
Specifies the reading system should render a synthetic spread for the spine item in
both portrait and landscape orientations.
rendition:spread-landscape
Specifies the reading system should render a synthetic spread for the spine item
only when in landscape orientation.
rendition:spread-none
Specifies the reading system should not render a synthetic spread for the spine
item.
rendition:spread-portrait
The
rendition:spread-portrait
property is
deprecated
Refer to the
spread-portrait
property definition
in [
epubpublications-301
] for more information.
EPUB creators
MUST NOT
use more than one of these overrides on any given spine item.
8.2.2.4
Spread placement
When a
reading system
renders a
synthetic spread
, the default behavior is to populate
the spread by rendering the next
EPUB content document
in the next available unpopulated
viewport
, where the next available viewport is determined by the given
page progression direction
or by
local declarations within
EPUB content documents
. An
EPUB creator
MAY
override this
automatic population behavior and force reading systems to place a document in a particular
viewport by specifying one of the following properties on its spine
itemref
element:
rendition:page-spread-center
The
rendition:page-spread-center
property is an alias of the
spread-none
property
for centering a spine
item.
rendition:page-spread-left
The
rendition:page-spread-left
property is an alias of the
page-spread-left
property for placing a
spine item in the left-hand slot of a two-page spread.
rendition:page-spread-right
The
rendition:page-spread-right
property is an alias of the
page-spread-right
property for placing a
spine item in the right-hand slot of a two-page spread.
The
rendition:page-spread-center
rendition:page-spread-left
, and
rendition:page-spread-right
properties apply to both pre-paginated and
reflowable content. They only apply when the reading system is creating synthetic
spreads.
Although EPUB creators often indicate to use a spread in certain device orientations, the
content itself does not represent true spreads (i.e., two consecutive pages that reading
systems must render side-by-side for readability, such as a two-page map). To indicate that
two consecutive pages represent a true spread, EPUB creators
SHOULD
use the
rendition:page-spread-left
and
rendition:page-spread-right
properties on the
spine
items for the two adjacent EPUB content documents,
and omit the properties on spine items where one-up or two-up presentation is equally
acceptable.
EPUB creators
MUST NOT
declare more than one
rendition:page-spread-*
property,
and/or their unprefixed equivalents, on any given spine item (e.g., it is valid to specify
both "
rendition:page-spread-left page-spread-left
" in case reading systems only
support one of properties).
Note
The
rendition:page-spread-left
and
rendition:page-spread-right
properties were created to allow the use of a single vocabulary for all fixed-layout
properties. EPUB creators can use either property set, but older reading systems might
only recognize the unprefixed versions.
The
rendition:page-spread-center
was created to make it easier for EPUB
creators to understand the process of switching between two-page spreads and single
centered pages. EPUB creators can use either
rendition:page-spread-center
or
spread-none
to disable spread behavior in reading systems.
Example
61
: Starting the first document on the right
package
…>
metadata
…>
meta
property
"rendition:layout"
reflowable
meta
meta
property
"rendition:spread"
landscape
meta
metadata
spine
page-progression-direction
"ltr"
itemref
idref
"first-panel"
properties
"rendition:page-spread-right"
/>
spine
package
Figure
Rendering of three fixed-layout documents, with synthetic spread in
landscape orientation starting on the right.
(Comics
courtesy of
xkcd
, licensed under
cc by-nc
2.5
.)
Image description
A row of schematic views of two tablets in landscape mode, and linked with a
left-to-right arrow.
Three panels of a comics are displayed in the tablets. The first tablet in the row
contains the first panels of the comics on the right hand of the tablet, with the
left side empty; the second tablet contains the second and third panels of the
comics side-by-side.
Example
62
: Placing individual spine items in a spread
In this example, the EPUB creator intends the reading system to create a two-page
fixed-layout center plate using synthetic spreads in any device orientation. Note that
the EPUB creator has left spread behavior for the other (reflowable) parts undefined,
since the global value of
rendition:spread
initializes to
auto
by default.
package
…>
spine
page-progression-direction
"ltr"
itemref
idref
"center-plate-left"
properties
"rendition:spread-both rendition:page-spread-left"
/>
itemref
idref
"center-plate-right"
properties
"rendition:spread-both rendition:page-spread-right"
/>
spine
package
Example
63
: Creating a centered layout
package
…>
metadata
…>
meta
property
"rendition:layout"
pre-paginated
meta
meta
property
"rendition:spread"
auto
meta
metadata
spine
itemref
idref
"center-plate"
properties
"rendition:page-spread-center"
/>
spine
package
8.2.2.5
Viewport dimensions (deprecated)
The
rendition:viewport
property allows
EPUB creators
to express the CSS
initial containing block (ICB) [
css2
] for
XHTML
and
SVG content documents
whose
rendition:layout
property has been set to
pre-paginated
Use of the property is
deprecated
Refer to the
rendition:viewport
property definition
in [
epubpublications-301
] for more information.
8.2.2.6
Content document dimensions
This section defines rules for the expression and interpretation of dimensional properties of
fixed-layout documents
Fixed-layout documents specify their
initial
containing block
css2
] in the manner applicable to their format:
Expressing in XHTML
For XHTML
fixed-layout documents
, the
initial
containing block
css2
] is obtained from the
REQUIRED
height
and
width
definitions in a
viewport
meta
tag
, where:
the
height
property
MUST
have as its
value
a positive
number
css2
] or the keyword
device-height
; and
the
width
property
MUST
have as its value a positive
number
css2
] or the keyword
device-width
The
device-width
and
device-height
values refer to the 100%
of the width and height, respectively, of the reading system's
viewport
The
height
and
width
definitions
MUST
be specified in the
first
viewport meta
tag in document order in the [
html
head
element. Reading systems
will ignore subsequent
viewport meta
tags.
EPUB creators
MUST NOT
specify more than one
height
or
width
definition within a
viewport meta
tag.
Example
64
: Specifying the initial containing block in a viewport meta tag
html
…>
head
meta
name
"viewport"
content
"width=1200, height=600"
/>
head
html
Expressing in SVG
For SVG
fixed-layout documents
, the initial containing block [
css2
dimensions
MUST
be expressed using the
viewBox
attribute
svg
].
Example
65
: Specifying the initial containing block in the viewBox attribute
In this example, the
viewBox
attribute sets the ICB to an aspect
ratio of 844 pixels wide by 1200 pixels high.
Note
The initial containing block definition affects only the document where it is
defined. The dimensions of the containing blocks in the other content documents within the
same publication may be different.
8.3
Reflowable layouts
Although control over the rendering of
EPUB content documents
to create
fixed layouts
is an obvious need not handled by other
technologies, there are also considerations for reflowable content that are unique to
EPUB publications
(e.g., how to handle the flow of content in the
viewport
). This section defines
properties that allow
EPUB creators
to control presentation aspects of reflowable content.
8.3.1
The
rendition:flow
property
The
rendition:flow
property specifies the
EPUB creator
preference for how
reading systems
should handle content overflow.
When the
rendition:flow
property
is
specified on a
meta
element, it indicates the EPUB creator's global preference for
overflow content handling (i.e., for all
spine
items). EPUB creators
MAY
indicate a preference for dynamic pagination or scrolling. For scrolled content, it is also
possible to specify whether consecutive
EPUB content documents
are to be rendered as a
continuous scrolling view or whether each is to be rendered separately (i.e., with a dynamic
page break between each).
EPUB creators
MUST
use one of the following values with the
rendition:flow
property:
paginated
Dynamically paginate all overflow content.
scrolled-continuous
Render all EPUB content documents such that overflow content is scrollable, and the
EPUB publication
is presented as one continuous scroll from spine item to spine item
(except where
locally overridden
).
Note that EPUB creators
SHOULD NOT
create publications in which different resources have
different block flow directions, as continuous scrolled rendition in EPUB reading
systems would be problematic.
scrolled-doc
Render all EPUB content documents such that overflow content is scrollable, and each
spine item is presented as a separate scrollable document.
auto
Render overflow content using the reading system default method or a user preference,
whichever is applicable. Default value.
Note that when two reflowable EPUB content documents occur
sequentially in the spine, the default rendering for their [
html
body
elements is consistent with the
page-break-before
property
csssnapshot
] having been set to
always
. In addition to using the
rendition:flow
property, EPUB
creators
MAY
override this behavior through an appropriate style sheet declaration, if the
reading system supports such overrides.
EPUB creators
MUST NOT
declare the
rendition:flow
property more than once.
They also
MUST NOT
declare the property using the
refines
attribute
. Refer to
8.3.1.1
Spine overrides
for setting the property for
individual EPUB content documents.
Figure
Rendering of an EPUB publication with a single spine item, and with the
rendition:flow
set to
paginated
Image description
Three column-like rectangles linked left-to-middle and middle-to-right with respective
arrows, with a text flowing from one rectangle to the next one. The text is sectioned with
headers figuring 'Chapter 1', '2', and '3'. The leftmost rectangle is enclosed in a
schematic view of a tablet.
Figure
Rendering of an EPUB publication with multiple spine items, and with the
rendition:flow
set to
paginated
Image description
Three column-like rectangles linked left-to-middle and middle-to-right with respective
arrows, with a text flowing from one rectangle to the next one. The text is sectioned with
headers figuring 'Chapter 1', '2'. The section with 'Chapter 2' starts at the top of the
rightmost rectangle, leaving an empty space at the bottom of the middle rectangle. The
leftmost rectangle is enclosed in a schematic view of a tablet.
Figure
Rendering of an EPUB publication with a single spine item, and with the
rendition:flow
set to
scrolled-continuous
Image description
A single, column-like strip (i.e., a rectangle without a bottom edge) with a text flowing
down the strip. The text is sectioned with headers figuring 'Chapter 1', '2'. The top part
of the strip is enclosed in a schematic view of a tablet.
Figure
Rendering of an EPUB publication with multiple spine items, and with the
rendition:flow
set to
scrolled-doc
Image description
Three column-like strips (i.e., a rectangles without bottom edges) linked left-to-middle and
middle-to-right with respective arrows, each containing a text flowing down the strip. The
text is sectioned with headers figuring 'Chapter 1', '2' and '3'. Each strip starts with a
chapter header and flows down the strip. The top part of the leftmost strip is enclosed in a
schematic view of a tablet.
8.3.1.1
Spine overrides
EPUB creators
MAY
specify the following properties
locally on
spine
itemref
elements to override the
global value
for the given spine item:
rendition:flow-auto
Indicates no preference for overflow content handling by the EPUB creator.
rendition:flow-paginated
Indicates the EPUB creator preference is to dynamically paginate content overflow.
rendition:flow-scrolled-continuous
Indicates the EPUB creator preference is to provide a scrolled view for overflow
content, and that consecutive spine items with this property are to be rendered as a
continuous scroll.
rendition:flow-scrolled-doc
Indicates the EPUB creator preference is to provide a scrolled view for overflow
content, and each spine item with this property is to be rendered as a separate
scrollable document.
EPUB creators
MUST NOT
use more than one of these overrides on any given spine item.
Example
66
: Overriding a global paginated flow declaration
In this example, the EPUB creator's intent is to have a paginated
EPUB publication
with a scrollable table of contents.
package
…>
metadata
…>
meta
property
"rendition:flow"
paginated
meta
metadata
spine
itemref
idref
"toc"
properties
"rendition:flow-scrolled-doc"
/>
itemref
idref
"c01"
/>
spine
package
8.3.2
The
rendition:align-x-center
property
The
rendition:align-x-center
property specifies that the given
spine
item should be centered horizontally in the
viewport
or spread.
The property
MUST NOT
be set globally for all
EPUB content documents
(i.e., in a
meta
element without a
refines
attribute
). It is only
available as a spine override for individual EPUB content documents via the
itemref
element's
properties
attribute.
Note
This property was developed primarily to handle "Naka-Tobira (中扉)" (sectional title pages),
in the absence of reliable centering control within the content rendering. As support for
paged media evolves in CSS, however, this property is expected to be deprecated.
EPUB creators
are encouraged to use CSS solutions when effective.
9.
Media overlays
9.1
Introduction
This section is non-normative.
Mainstream ebooks, educational tools and ebooks formatted for persons with print disabilities are
some examples of works that contain synchronized audio narration. In EPUB 3,
EPUB creators
can
create these types of books using media overlay documents to describe the timing for the
pre-recorded audio narration and how it relates to the
EPUB content document
markup. The
specification defines the file format for media overlays as a subset of [
smil3
], a
W3C
recommendation for representing synchronized multimedia information in XML.
The text and audio synchronization enabled by media overlays provides enhanced accessibility for any
user who has difficulty following the text of a traditional book. Media overlays also provide a
continuous listening experience for readers who are unable to read the text for any reason,
something that traditional audio embedding techniques cannot offer. They are even useful for
purposes not traditionally considered accessibility concerns (e.g., for language learning).
The media overlays feature is transparent to
EPUB reading systems
that do not support the
feature. The inclusion of media overlays in an
EPUB publication
has no impact on the ability of
media overlay-unaware reading systems to render the EPUB publication as though the media overlays
are not present.
Media overlays in EPUB are not an equivalent to audiobooks, as audiobooks are primarily audio-based
with text occasionally provided as an alternate format. The
W3C
audiobooks
] recommendation is for
building audio publications.
Although future versions of this specification might incorporate support for video media (e.g.,
synchronized text/sign-language books), this version supports only synchronizing audio media with
the EPUB content document.
9.2
Media overlay documents
9.2.1
Media overlay document requirements
media overlay document
MUST
be valid to the media overlays schema as defined in
G.3
Media overlays schema
and conform to all content conformance
constraints expressed in
9.2.2
Media overlay document definition
MAY
refer to more than one
EPUB content document
but more than one media overlay document
MUST NOT
reference the same EPUB content
document.
9.2.2
Media overlay document definition
All elements [
xml
] defined in this section are in the
namespace [
xml-names
] unless otherwise specified.
9.2.2.1
The
smil
element
The
smil
element encapsulates all the information in an
media overlay document
Element Name:
smil
Usage:
REQUIRED
root element
xml
] of the media overlay
document.
Attributes:
version
[required]
Specifies the version number of the [
smil3
] specification to which the
media overlay document adheres.
This attribute
MUST
have the value "
3.0
".
id
[optional]
The
ID
xml
] of the element, which
MUST
be unique
within the document scope.
epub:prefix
[optional]
Declares additional metadata vocabulary prefixes.
Refer to
9.3.3
Structural semantics in overlays
for more
information.
Content Model:
In this order:
head
[0 or 1]
body
[exactly 1]
9.2.2.2
The
head
element
The
head
element is the container for metadata in the
media overlay document
Element Name:
head
Usage:
The
head
element is the
OPTIONAL
first child of the
smil
element.
Attributes:
None
Content Model:
metadata
[0 or 1]
As this specification does not define any metadata properties that must occur in the media
overlay document, the
head
element is
OPTIONAL
9.2.2.3
The
metadata
element
The
metadata
element represents metadata for the
media overlay document
. The
metadata
element is an extension point that allows the inclusion of
metadata from any metainformation structuring language.
Element Name:
metadata
Usage:
As a child of the
head
element.
Attributes:
None
Content Model:
[0 or more]
elements from any namespace
This specification does not require any metadata properties in the media overlay document;
the
metadata
element is provided for custom metadata requirements.
9.2.2.4
The
body
element
The
body
element is the starting point for the presentation contained in the
media overlay document
. It contains the main sequence of
par
and
seq
elements.
Element Name:
body
Usage:
The
body
element is a
REQUIRED
child of the
smil
element. It follows
the
head
element, when that element is present.
Attributes:
epub:type
[optional]
An expression of the structural semantics of the corresponding element in the
EPUB content document
The value is a whitespace-separated list of
property
types. Refer to
9.3.3
Structural semantics in overlays
for more information.
id
[optional]
The
ID
xml
] of the element, which
MUST
be unique
within the document scope.
epub:textref
[optional]
Refers to the associated EPUB content document and, optionally, identifies a
specific part of it.
The value
MUST
be a
path-relative-scheme-less-URL string
, optionally
followed by
U+0023 (#)
and a
URL-fragment string
Content Model:
In any order:
seq
[0 or more]
par
[0 or more]
MUST
include at least one
par
or
seq
9.2.2.5
The
seq
element
The
seq
element is a sequential time container for media objects and/or child
time containers.
Element Name:
seq
Usage:
One or more
seq
elements
MAY
occur as children of the
body
element
and of the
seq
element.
Attributes:
epub:type
[optional]
An expression of the structural semantics of the corresponding element in the
EPUB content document
The value is a whitespace-separated list of
property
types. Refer to
9.3.3
Structural semantics in overlays
for more information.
id
[optional]
The
ID
xml
] of the element, which
MUST
be unique
within the document scope.
epub:textref
[required]
Refers to the associated
EPUB content document
and, optionally,
identifies a specific part of it.
The value
MUST
be a
path-relative-scheme-less-URL string
, optionally
followed by
U+0023 (#)
and a
URL-fragment string
Refer to
9.3.2.1
Overlay structure
for more
information.
Content Model:
In any order:
seq
[0 or more]
par
[0 or more]
MUST
include at least one
par
or
seq
9.2.2.6
The
par
element
The
par
element is a parallel time container for media objects.
Element Name:
par
Usage:
One or more
par
elements
MAY
occur as children of the
body
and
seq
elements.
Attributes:
epub:type
[optional]
An expression of the structural semantics of the corresponding element in the
EPUB content document
The value is a whitespace-separated list of
property
types. Refer to
9.3.3
Structural semantics in overlays
for more information.
id
[optional]
The
ID
xml
] of the element, which
MUST
be unique
within the document scope.
Content Model:
In any order:
text
[exactly 1]
audio
[0 or 1]
9.2.2.7
The
text
element
The
text
element references an element in an
EPUB content document
. A
text
element typically refers to a textual element but can also refer to
other
EPUB content document
media elements. In the absence of a sibling
audio
element, textual content referred to by this element may be rendered via
text-to-speech
Element Name:
text
Usage:
As a
REQUIRED
child of the
par
element.
Attributes:
src
[required]
Refers to the associated EPUB content document and, optionally, identifies a
specific part of it.
The value
MUST
be a
path-relative-scheme-less-URL string
, optionally
followed by
U+0023 (#)
and a
URL-fragment string
id
[optional]
The
ID
xml
] of the element, which
MUST
be unique
within the document scope.
Content Model:
Empty
Note
This specification places no restriction on the
src
attribute of a
text
element.
EPUB creators
should, however, refer to a content that
can be styled with CSS to make the
association with style
information
effective (i.e.,
palpable content
for XHTML or
paths
basic shapes
, or
text
elements in SVG).
Note
epub-rs-33
] no longer provides guidance for reading systems on the playback
of timed media (i.e., the automatic starting of the referenced media). Although the
src
attribute of a
text
element may refer to embedded timed
media (e.g., via an [
html
video
element), referencing such media may have
unpredictable results.
9.2.2.8
The
audio
element
The
audio
element represents a clip of audio media.
Element Name:
audio
Usage:
An
OPTIONAL
child of the
par
element.
Attributes:
id
[optional]
The
ID
xml
] of the element, which
MUST
be unique
within the document scope.
src
[required]
The
relative-
or
absolute-URL string
url
] reference to an audio file. The audio
file
MUST
be one of the audio formats listed in the
core media type resources
table.
clipBegin
[optional]
A clock value that specifies the offset into the physical media corresponding
to the start point of an audio clip.
MUST
be a [
smil3
clock
value
See
H.4
Clock values
clipEnd
[optional]
A clock value that specifies the offset into the physical media corresponding
to the end point of an audio clip.
MUST
be a [
smil3
clock
value
See
H.4
Clock values
The chronological offset of the terminating position
MUST
be after the
starting offset specified in the
clipBegin
attribute.
Content Model:
Empty
9.3
Creating media overlays
9.3.1
Introduction
This section is non-normative.
EPUB creators
can represent a pre-recorded narration of a publication as a series of audio
clips, each corresponding to part of an
EPUB content document
. A single audio clip, for
example, typically represents a single phrase or paragraph, but infers no order relative to the
other clips or to the text of a document. Media overlays solve this problem of synchronization
by tying the structured audio narration to its corresponding text (or other media) in the EPUB
content document using [
smil3
] markup. Media overlays are, in fact, a simplified subset of
SMIL 3.0 that define the playback sequence of these clips.
The SMIL elements primarily used for structuring media overlays are
body
(used for the main
sequence),
seq
(sequence) and
par
(parallel). (Refer to
9.2.2
Media overlay document definition
for more information on these and other SMIL elements.)
The
par
element is the basic building block of a media overlay and corresponds to a
phrase in the EPUB content document. The element provides two key pieces of information for
synchronizing content: 1) the audio clip containing the narration for the phrase; and 2) a
pointer to the associated EPUB content document fragment. The
par
element uses two
media element children to represent this information: an
audio
element and a
text
element. Because
par
elements' media object children are timed in parallel, reading
systems render the audio clip and EPUB content document fragment at the same time, resulting in
a synchronized presentation.
The
text
element
src
attribute references the associated phrase,
sentence, or other segment of the EPUB content document by its URL [
url
] reference. The
audio
element
src
attribute similarly references the location of
the corresponding audio clip and adds the
OPTIONAL
clipBegin
and
clipEnd
attributes to indicate a specific offset within the clip.
Example
67
: Media overlays markup for a single phrase or sentence
"chapter1.xhtml#sentence1"
/>
EPUB creators place
par
elements together sequentially to form a series of phrases
or sentences. Not every element of the EPUB content document will have a corresponding
par
element in a media overlay document, only those relevant to the audio
narration.
Example
68
: A basic media overlay document containing a sequence of phrases
In this example, the
body
element acts as the main sequence for the whole
document.
"http://www.w3.org/ns/SMIL"
version
"3.0"
"chapter1.xhtml#sentence1"
/>
"chapter1.xhtml#sentence2"
/>
"chapter1.xhtml#sentence3"
/>
EPUB creators can also add
par
elements to
seq
elements to define more
complex structures such as parts and chapters (see
9.3.2.1
Overlay structure
).
9.3.2
Relationship to the EPUB content document
Note
In this section, the
EPUB content document
is assumed to be an
XHTML content document
. While
EPUB creators
may use media overlays with
SVG content documents
playback behavior might not be consistent and therefore interoperability is not
guaranteed.
EPUB creators should also be aware that
reading system
support for playback of both
reflowable and fixed-layout EPUB content documents is not guaranteed. Differences in reading
system pagination strategies mean that some reading systems will only support media overlays
in one or the other layout format.
9.3.2.1
Overlay structure
The
body
of a
media overlay document
consists of two elements: the
par
element
and the
seq
element. The ordering of these elements represents how
reading systems
render the content in the corresponding
EPUB content documents
during playback.
The
par
element represents a segment of content, such as a word, phrase,
sentence, table cell, list item, image, or other identifiable piece of content in the
markup. Each element identifies both the content to display (in the
text
element) and
audio to synchronize (in the
audio
element) during playback.
The
seq
element represents sequences — sets of
seq
and/or
par
elements that together represent a logical component of the content.
EPUB creators
can use it to represent nested containers such as sections, asides,
headers, tables, lists, and footnotes. It allows EPUB creators to retain the structure
inherent in these containers in the media overlay document.
The
seq
element
MUST
contain an
epub:textref
attribute
. As
seq
elements do not
provide synchronization instructions, this attribute allows a
reading system
to match
the fragment to a location in the text.
Note
The reason for grouping structures like sections, figures, tables, and footnotes in a
seq
element is so that reading systems can identify their start and end
positions during playback. Reading systems can then offer playback options tailored to
the layout of the content, such as jumping past a long figure, turning off rendering of
page break announcements (see
9.4
Skippability and escapability
), or customizing
the reading mode to suit structures such as tables.
Example
69
: A media overlay document with nested seq
elements
This example shows a chapter with both a section header and a figure.
Media overlay document:
smil
xmlns
"http://www.w3.org/ns/SMIL"
xmlns:epub
"http://www.idpf.org/2007/ops"
version
"3.0"
body
seq
id
"id1"
epub:textref
"chapter1.xhtml#sectionstart"
epub:type
"chapter"
par
id
"id2"
text
src
"chapter1.xhtml#section1_title"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:23:23.84"
clipEnd
"0:23:34.221"
/>
par
par
id
"id3"
text
src
"chapter1.xhtml#text1"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:23:34.221"
clipEnd
"0:23:59.003"
/>
par
par
id
"id4"
text
src
"chapter1.xhtml#text2"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:23:59.003"
clipEnd
"0:24:15.000"
/>
par
seq
id
"id7"
epub:textref
"chapter1.xhtml#figure"
par
id
"id8"
text
src
"chapter1.xhtml#photo"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:24:18.123"
clipEnd
"0:24:28.764"
/>
par
par
id
"id9"
text
src
"chapter1.xhtml#caption"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:24:28.764"
clipEnd
"0:24:50.010"
/>
par
seq
par
id
"id12"
text
src
"chapter1.xhtml#text3"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:25:45.515"
clipEnd
"0:26:30.203"
/>
par
par
id
"id13"
text
src
"chapter1.xhtml#text4"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:26:30.203"
clipEnd
"0:27:15.000"
/>
par
seq
body
smil
XHTML content document:
html
…>
head
title
Media Overlays Example of
EPUB content document
title
head
body
id
"sec1"
section
id
"sectionstart"
epub:type
"chapter"
h1
id
"section1_title"
The Section Title
h1
id
"text1"
The first phrase of the main text body.
id
"text2"
The second phrase of the main text body.
figure
id
"figure"
img
id
"photo"
src
"photo.png"
alt
"a photograph for which there is a caption"
/>
figcaption
id
"caption"
The photo caption
figcaption
figure
id
"text3"
The third phrase of the main text body.
id
"text4"
The fourth phrase of the main text body.
section
body
html
9.3.2.2
Referencing document fragments
Both the
epub:textref
attribute and the
text
element's
src
attribute may contain a
URL-fragment string
that references a specific part (e.g., an
element via its ID) of the associated
EPUB content document
For
XHTML
and
SVG content documents
, the URL-fragment string
SHOULD
be a reference to a specific element via its ID, or an
SVG Fragment
Identifier
svg
], respectively.
EPUB creators
MAY
use other fragment identifier schemes, but
reading systems
may not
support such identifiers.
9.3.2.3
Overlay granularity
This section is non-normative.
The granularity level of the media overlay depends on how
EPUB creators
mark up the
EPUB content document
and the type of fragment identifier they use in the
text
elements'
src
attributes and the
seq
elements'
epub:textref
attributes. For example, when referencing [
html
] elements, if the finest level of markup
is at the paragraph level, then that is the finest possible level for media overlay
synchronization. Likewise, if sub-paragraph markup is available, such as [
html
span
element representing phrases or sentences, then finer granularity is possible in the media
overlay. Finer granularity gives users more precise results for synchronized playback when
navigating by word or phrase and when searching the text but increases the file size of the
media overlay documents
. Fragment identifier schemes that do not rely on the presence of
elements could provide even finer granularity, where supported.
9.3.2.4
Text-to-speech rendering
This specification allows the use of text-to-speech (TTS) — the rendering of the textual
content of an
EPUB publication
as artificial human speech using a synthesized voice — in
addition to pre-recorded audio clips.
When a media overlay
par
element omits its
audio
element, its
text
element may be
rendered in reading systems via TTS. If the text fragment is not appropriate for TTS
rendering (e.g., is not a text element and/or has no text fallback), this may produce
unexpected results.
Note
See
EPUB 3 Text-to-Speech Support
epub-tts-10
] for
more information about using TTS technologies in EPUB publications.
9.3.3
Structural semantics in overlays
To express
structural semantics
in
media overlay documents
EPUB creators
MAY
specify the
epub:type
attribute on
par
seq
, and
body
elements.
The
epub:type
attribute facilitates
reading system
behavior appropriate for the
semantic type(s) indicated. Examples of these behaviors are
skippability and escapability
and
table reading mode
epub-rs-33
].
Media overlay documents
MAY
use the applicable
vocabulary
association mechanisms
for the
epub:type
attribute to define additional
semantics.
Example
70
: Semantic markup for a media overlay document containing a figure
smil
xmlns
"http://www.w3.org/ns/SMIL"
xmlns:epub
"http://www.idpf.org/2007/ops"
version
"3.0"
body
seq
id
"id1"
epub:textref
"chapter1.xhtml#figure"
epub:type
"figure"
par
id
"id2"
text
src
"chapter1.xhtml#figuretitle"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:24:15.000"
clipEnd
"0:24:18.123"
/>
par
par
id
"id3"
text
src
"chapter1.xhtml#figurecaption"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:24:18.123"
clipEnd
"0:24:38.530"
/>
par
par
id
"id4"
text
src
"chapter1.xhtml#figuretext1"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:24:38.530"
clipEnd
"0:25:00.515"
/>
par
seq
body
smil
9.3.4
Associating style information
EPUB creators
MAY
express visual rendering information for the currently playing
EPUB content document
element in a CSS Style Sheet using author-defined classes.
When used, EPUB creators
MUST
declare the class names in the
package document
using the
active-class
and
playback-active-class
properties.
EPUB creators
MUST
define exactly one CSS class name in each property they define. Each property
MUST
define a
valid CSS class
name
not including any
selectors
css2
]. This specification
does not
reserve names for use with these
properties.
EPUB creators
MAY
define any CSS properties for the specified CSS classes but must ensure that
each EPUB content document with an associated
media overlay document
includes a CSS
stylesheet (either embedded or linked) containing the class definitions. In the absence of such
definitions
reading systems
might provide their own styling, or no styling at all.
EPUB creators
MUST NOT
use the
active-class
and
playback-active-class
properties in conjunction with a
refines
attribute
as they always apply to the entire
EPUB publication
Example
71
: Associating style information with the
currently playing EPUB content document
The author-defined CSS class names are declared using the metadata properties
active-class
and
playback-active-class
in the package document:
package
…>
metadata
…>
meta
property
"media:active-class"
my-active-item
meta
meta
property
"media:playback-active-class"
my-document-playing
meta
metadata
package
The CSS Style Sheet containing the author-defined class names:
/* emphasize the active element */
.my-active-item
background-color
: yellow;
color
: black
!important
/* fade out the inactive text */
html
.my-document-playing
* {
color
: gray;
The relevant EPUB content document excerpt:
html
body
span
id
"txt1"
This is the first phrase.
span
span
id
"txt2"
This is the second phrase.
span
span
id
"txt3"
This is the third phrase.
span
body
html
In this example, the reading system would apply the author-defined
my-active-item
class to each text element in the EPUB content document as
it became active during playback. Conversely, reading systems would remove the class name
when the element is no longer active. The user would see each EPUB content document element
styled with a yellow background for the duration of that element's playback.
The reading system would also apply the author-defined
my-document-playing
class
to the document element of the EPUB content document when media overlays playback begins.
The reading system would remove the class name when playback stops. In the case of an
XHTML content document
, the reading system would apply the class name to the
html
element [
html
]. In the case of an
SVG content document
, the reading system would
apply the class name to the
svg
element [
svg
]. The user would see all the inactive
text elements turn gray during media overlays playback. When playback stopped, the elements'
colors would return to their defaults.
9.3.5
Media overlays packaging
9.3.5.1
Including media overlays
If an
EPUB content document
is wholly or partially referenced by a
media overlay document
, then its
manifest
item
element
MUST
specify a
media-overlay
attribute. The attribute
MUST
reference the
ID
xml
] of the manifest
item
for the
corresponding media overlay document.
EPUB creators
MUST
only specify the
media-overlay
attribute on manifest
item
elements that reference EPUB content documents.
Manifest items for media overlay documents
MUST
have the media type
application/smil+xml
Example
72
: Entries for an EPUB content document and its associated
media overlay document in the package document manifest
"ch1"
href
"chapter1.xhtml"
media-type
"application/xhtml+xml"
media-overlay
"ch1_audio"
/>
"ch1_audio"
href
"chapter1_audio.smil"
media-type
"application/smil+xml"
/>
9.3.5.2
Overlays package metadata
EPUB creators
MUST
specify the duration of the entire
EPUB publication
in the
package document
using a
meta
element with the
duration
property
In addition, EPUB creators
MUST
provide the duration of each
media overlay document
. EPUB
creators
MUST
use the
refines
attribute
to
associate each duration declaration to the corresponding
manifest
item
The sum of the durations for each media overlay document
SHOULD
equal the
total duration
plus or minus one second.
Note
Although the sum of individual durations may not exactly match the total due to rounding
the times to nearest fraction of a second, a difference of greater than one second
indicates a mismatch arising from other issues.
EPUB creators
MAY
also specify
narrator
information
in the package document, as well as
author-defined CSS class
names
to apply to the currently playing
EPUB content document
element.
Note
The
media:
prefix is
reserved
for inclusion of these properties in package metadata.
Example
73
: Media overlays metadata in the package document
package
…>
metadata
…>
meta
property
"media:duration"
refines
"#ch1_audio"
0:32:29
meta
meta
property
"media:duration"
refines
"#ch2_audio"
0:34:02
meta
meta
property
"media:duration"
refines
"#ch3_audio"
0:29:49
meta
meta
property
"media:duration"
1:36:20
meta
meta
property
"media:narrator"
Joe Speaker
meta
meta
property
"media:active-class"
my-active-item
meta
meta
property
"media:playback-active-class"
my-document-playing
meta
metadata
package
9.4
Skippability and escapability
9.4.1
Skippability
While reading, users may want to turn on or off certain features of the content, such as
footnotes, page numbers, or other types of secondary content. This feature is called
skippability.
Reading systems
use the semantic information provided by media overlay
elements'
epub:type
attribute to
determine when to offer users the option of skippable features.
EPUB creators
MAY
use the following semantics to enable skippability:
footnote
epub-ssv-11
endnote
epub-ssv-11
pagebreak
epub-ssv-11
This list is non-exhaustive, however. It represents terms from the Structural Semantics
Vocabulary [
epub-ssv-11
] for which reading systems are most likely to offer the option
of skippability.
Example
74
: Media overlay document with a page break
In this example, a reading system could offer the user the option of turning on and off the
page break/page number announcements, which are often cumbersome to listen to.
Media overlay document:
smil
xmlns
"http://www.w3.org/ns/SMIL"
xmlns:epub
"http://www.idpf.org/2007/ops"
version
"3.0"
body
par
id
"id1"
text
src
"chapter1.xhtml#para1"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:23:22.000"
clipEnd
"0:24:15.000"
/>
par
par
id
"id2"
epub:type
"pagebreak"
text
src
"chapter1.xhtml#pgbreak1"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:24:15.000"
clipEnd
"0:24:18.123"
/>
par
par
id
"id3"
text
src
"chapter1.xhtml#para2"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:24:18.123"
clipEnd
"0:25:28.530"
/>
par
body
smil
EPUB content document:
html
… >
body
id
"para1"
This is the paragraph before the page break …
span
id
"pgbreak1"
role
"doc-pagebreak"
aria-label
"14"
/>
id
"para2"
This is the paragraph after the page break …
body
html
9.4.2
Escapability
Escapable items are nested structures, such as tables and lists, that users might wish to skip
over, continuing to read from the point immediately after the nested structure. The escapability
feature differs from the skippability feature in that it does not enable or disable entire types
of items, but provides an exit from them (e.g., a user can listen to some of the content before
choosing to escape).
EPUB creators
MAY
use the following semantics to enable escapability:
table
epub-ssv-11
list
epub-ssv-11
figure
epub-ssv-11
aside
epub-ssv-11
This list is non-exhaustive list, however. It represents terms from the Structural Semantics
Vocabulary [
epub-ssv-11
] for which
reading systems
are most likely to offer the
option of escapability.
Note
Sometimes escapable structures may contain escapable structures. For example, tables are
composed of many rows and cells that users may want to separately escape from. Reading
system support for escaping from such structures is complex and not well supported at this
time. EPUB creators should avoid identifying nested escapable structures until better
support is available.
Example
75
: Escapable structures
In this example, the
media overlay document
for an
EPUB content document
contains a
paragraph, a table, and another paragraph. A reading system that supported escapability
would give the user the option to interrupt playback of the table to continue playing the
next paragraph.
smil
xmlns
"http://www.w3.org/ns/SMIL"
xmlns:epub
"http://www.idpf.org/2007/ops"
version
"3.0"
body
par
id
"id1"
text
src
"c01.xhtml#para1"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:23:22.000"
clipEnd
"0:24:15.000"
/>
par
seq
id
"id2"
epub:textref
"c01.xhtml#t1"
epub:type
"table"
seq
id
"id3"
epub:textref
"c01.xhtml#tr1"
epub:type
"table-row"
par
id
"id4"
epub:type
"table-cell"
text
src
"c01.xhtml#td1"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:24:15.000"
clipEnd
"0:24:18.123"
/>
par
par
id
"id5"
epub:type
"table-cell"
text
src
"c01.xhtml#td2"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:24:18.123"
clipEnd
"0:25:28.530"
/>
par
par
id
"id6"
epub:type
"table-cell"
text
src
"c01.xhtml#td3"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:25:28.530"
clipEnd
"0:25:45.515"
/>
par
seq
seq
id
"id7"
epub:textref
"c01.xhtml#tr2"
epub:type
"table-row"
par
id
"id8"
epub:type
"table-cell"
text
src
"c01.xhtml#td4"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:25:45.515"
clipEnd
"0:26:45.700"
/>
par
par
id
"id9"
epub:type
"table-cell"
text
src
"chapter1.xhtml#td5"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:26:45.700"
clipEnd
"0:28:02.033"
/>
par
par
id
"id10"
epub:type
"table-cell"
text
src
"chapter1.xhtml#td6"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:28:02.033"
clipEnd
"0:28:52.207"
/>
par
seq
seq
par
id
"id11"
text
src
"c01.xhtml#para2"
/>
audio
src
"chapter1_audio.mp3"
clipBegin
"0:28:52.207"
clipEnd
"0:30:01.000"
/>
par
body
smil
9.5
Navigation document overlays
This section is non-normative.
As the
EPUB navigation document
is an
XHTML content document
EPUB creators
may associate
media overlay document
with it. Unlike traditional XHTML content documents, however,
reading systems
must present the EPUB navigation document to users even when it is not included in the
spine
(see
Navigation document processing
epub-rs-33
]). As a result, the method in which an associated media overlay behaves can change
depending on the context:
When included in the spine, playback of the EPUB navigation document's media overlay document
obeys the same conformance requirements as with any other XHTML content document.
When exposed in a presentation context that allows users to access and activate the links,
reading systems may implement additional presentation behaviors to expose audio feedback
when user access navigation links.
Note
Specific implementation details are beyond the scope of this specification. The
DAISY Media Overlays Playback Requirements
document describes best practices for
EPUB creators
and provides recommendations for reading system developers.
10.
This section is non-normative.
EPUB 3 builds upon the Open Web Platform expressly so that it can leverage the structure, semantics and,
by extension, accessibility built into its underlying technologies.
The requirements and practices for creating accessible web content have already been documented in the
W3C
's
Web Content Accessibility Guidelines (WCAG)
wcag2
].
These guidelines also form the basis for defining accessibility in
EPUB publications
As the current WCAG guidelines (version 2) are heavily focused on web pages, a separate specification,
EPUB Accessibility
epub-a11y-11
], defines how to apply the standard
to EPUB publications. It also adds EPUB-specific requirements and recommendations for metadata,
pagination, and media overlays.
This specification recommends that EPUB publications
conform to the accessibility
requirements
defined in [
epub-a11y-11
]. A benefit of following this recommendation is
that it helps to ensure that EPUB publications meet the accessibility requirements legislated in
jurisdictions around the world.
EPUB creators
, however, should look beyond legal imperatives and treat accessibility as a requirement
for all their content. The more accessible that EPUB publications are, the greater the potential
audience for them.
Note
This specification does not integrate the accessibility requirements to allow them to adapt and
evolve independent of the EPUB specification — accessibility practices often need more frequent
updating. The accessibility specification is also intended for use with past, present, and future
versions of EPUB. The approach of a separate specification ensures that the evolution of EPUB does
not lock accessibility in time (i.e., it allows producers of older versions of EPUB to reference the
latest accessibility requirements).
11.
Security and privacy
11.1
Overview
This section is non-normative.
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, JavaScript, and other resources — for
distribution in a single-file container.
This means that EPUB 3's security and privacy issues are primarily linked to the features of those
formats, and closely mirror the threats presented by web content.
Although content risks are often equated with deliberately malicious authoring intent,
EPUB creators
need to be aware that many practices followed with the best of intentions may expose
users to privacy and security issues. The rest of this section explores the risk model of EPUB 3
with the aim of helping EPUB creators recognize and mitigate these risks.
Note
For the risks associated with
reading systems
, refer to the
security and privacy section
of
epub-rs-33
].
11.2
Threat model
This section is non-normative.
EPUB publications
pose a variety of privacy and security threats to unsuspecting users. Many of
these threats intersect with web content, but EPUB also introduces its own unique methods of attack
that can be used to trick users into accessing malicious content or into providing sensitive
information. Some of the more important attack vectors that
EPUB creators
and users need to be
aware of include:
Embedding of remote resources
EPUB 3 allows some
publication resources
to be
remotely
hosted
, specifically resources whose sizes can negatively affect the downloading and
opening of the EPUB publication (e.g., audio, video, and fonts). Although helpful for users
when used as intended, these exemptions can also be used to inject malicious content into a
publication.
This threat is not limited to accessing content created by a bad actor. If EPUB creators
embed content from untrustworthy sources (e.g., third party audio and video), there is
always the possibility that users may receive compromised resources.
Checking for malware and exploits at distribution time is not always reliable, either, as the
malicious content can be swapped in any time after publication, unlike resources that come
embedded in the
EPUB container
The
origin
of an EPUB is both unknown to the EPUB creator
and specific to each reading system implementation. Consequently, if the EPUB creator hosts
remote resources
on a web server they control, the server effectively cannot use
security features that require specifying allowable origins, such as headers for
CORS
Content-Security-Policy
, or
X-Frame-Options
Linking to external resources
Whether intentional or not, links to external web sites and resources expose users to
potential exploits that can compromise their reading system or operating system. Although
external links will typically open in a web browser, and be subject to the browser security
model, this does not protect users from all exploits.
Even if the intentions of the EPUB creator are not malicious, adding tracking information to
external links is problematic for user privacy as it can allow a user's activity to be
tracked without their consent.
Broken-link hijacking — when a domain expires and is bought by another party to exploit the
links to it — can also lead to users being taken to resources the EPUB creator did not
intend.
Including malicious content
Resources embedded in the EPUB container are not immune to malicious actors, especially when
EPUB publications are obtained from untrusted sources. Resources may contain exploits or
forms that may submit sensitive information to unintended parties. Such actors may also try
to gain access to
remote resources
using file indirection techniques, such as symbolic
links or file aliases.
The use of third-party content, such as games and quizzes, may also lead to security and
privacy issues if the EPUB creator is not able to fully vet the content.
Allowing scripts network access
When scripts can access a device's network, it provides a variety channels to exploit the
user:
collecting information about the user and their activities, whether malicious or
not;
attempting to access the file system and local storage to harvest information;
phishing attempts (e.g., making an
EPUB content document
appear like a trusted web
site to get the user to submit login information); and
injecting malicious content from external sites into the EPUB publication.
Network access may allow third-party content to exploit the user even if it was not the EPUB
creator's intent.
Securing content with digital rights management
The encryption and decryption of EPUB publications using digital rights management schemes
may allow personally identifiable information about the user, what vendors they use, and
their reading choices to be relayed to third parties.
The effectiveness of these attacks also often depends on tricking users into believing that the
publication they are interacting with is from a trustworthy source. These deceptions can take the
following forms:
Falsified publication information
The EPUB publication may include false information about itself to trick users into believing
that it comes from a legitimate source. A malicious EPUB creator might, for example, fake
the title, authors, identifiers, and publisher for the work.
Although this misinformation itself does not present an immediate harm, it could lead users
to trust malicious forms, links, and other content within the EPUB publication believing it
comes from a reliable source.
Spoofed platforms
Malicious EPUB creators may also design their content to imitate or replicate a platform's
experience to trick users into trusting their content.
11.2.1
EPUB-specific features
EPUB 3 tries to avoid extending the underlying technologies it builds on, but it has introduced
some new features. The restricted scope of these features limits the threats they might pose,
however:
Content switching
and
multimedia control elements
only allow hiding of
content and script-less control of playback in HTML. Moreover, these features,
introduced in the first release of EPUB 3.0, are
deprecated
and no longer recommended for use.
The
expression of structural semantics
in HTML and
SVG only allows the annotation of elements.
The one potential exception is the
epubReadingSystem
object
epub-rs-33
] that allows
EPUB creators
to query information about the current
reading system
. EPUB creators need to be mindful that
they only use the information exposed by this object to improve the rendering of their content
(i.e., avoid using the information to profile the user and their environment).
11.3
Recommendations
Although
EPUB creators
cannot prevent every method of exploiting users, they are ultimately
responsible for the secure construction of their content. That means that they need to take
precautions to limit the exposure of their
EPUB publications
to the types of
malicious exploits
described in the previous section.
Some practical steps include:
Ensuring the use of stable links to
remote resources
Avoiding third-party resources, especially those hosted on servers outside the control of the
EPUB creator.
Avoiding links to untrustworthy web sites (e.g., that browsers do not recognize as safe).
Using secure connections to external sites and resources (i.e., using the HTTPS protocol).
Not using scripts to send or receive data over the network without the consent of the user.
Obtaining user consent for the use of Web
APIs
with privacy implications, such as
Geolocation
geolocation
] and
Push Notifications
push-api
].
Avoiding embedding content not provided by reputable organizations or individuals.
Avoiding deprecated features of EPUB due to the potential for undiscovered bugs in
implementations.
EPUB creators also need to consider the privacy rights of users and avoid situations where they are
intentionally collecting data. Ideally, EPUB creators
SHOULD NOT
track their users, but this is not
realistic for all types of publishing.
When EPUB creators have to track users, they
SHOULD
obtain the approval of the user to collect
information prior to opening the EPUB publication (e.g., in educational course work). If this is not
possible, they
SHOULD
obtain permission when users access the EPUB publication for the first time.
EPUB creators
SHOULD
also allow users to opt out of tracking, and provide users the ability to
manage and delete any data that is collected about them.
EPUB creators also need to consider the inadvertent collection of information about users. Linking to
content on a publisher's web site, or remotely hosting resources on their servers, can lead to
profiling users, especially if unique tracking identifiers are added to the URLs.
When collecting and storing user information within an EPUB publication (e.g., through the use of
and
web
storage
html
]), EPUB creators need to consider to potential for data theft by other EPUB
publications on a
reading system
. Although [
epub-rs-33
] introduces a
unique origin requirement
for EPUB publications,
which limits the potential for attacks, there is still a risk that reading systems will allow EPUB
publications access to shared persistent storage (e.g., older reading systems that have not been
updated and non-conforming newer reading systems). Consequently, EPUB creators
SHOULD NOT
store
sensitive user data in persistent storage. If EPUB creators must store sensitive data, they
SHOULD
encrypt the data to prevent trivial access to it in the case of an exploit.
When publishers and vendors must use digital rights management schemes, they should prefer schemes
that do not utilize or transmit information about the user or their content to external parties to
perform encryption or decryption.
To maximally reduce security and privacy risks, EPUB creators
SHOULD
produce their EPUB publications
with the goal of long-term preservation. EPUB publications created this way are normally
self-contained, not dependent on network access, and not encrypted with digital rights management,
removing many of the possible attack vectors. [
iso22424
] is an example of such a preservation
format for EPUB publications. While it is understood that not all EPUB creators can achieve these
levels of self-containment, following as many of these practices as possible will still benefit
overall user privacy and security.
A.
Unsupported features
This specification contains certain features that are not yet fully supported in
reading systems
that the Working Group no longer recommends for use, or that are only retained for interoperability with
EPUB 2 reading systems. This section defines the meanings of the designations attached to these features
and their support expectations.
A.1
Under-implemented features
under-implemented
feature is a feature introduced prior to EPUB 3.3 for which the
Working Group has not been able to establish enough
implementation
experience
These features are considered important to retain despite this limitation because they are known to
be implemented by
EPUB creators
(i.e., their deprecation would invalidate existing content)
and/or they are integral to the content model on which EPUB is built.
If this specification designates a feature as under-implemented, EPUB creators
MAY
use the features
as described.
Note
EPUB conformance checkers
should alert EPUB creators to the presence of under-implemented
features when encountered in EPUB publications but must not treat their inclusion as a violation
of the standard (i.e., not emit errors or warnings).
Caution
Whether under-implemented labels are removed or replaced by deprecation in a future version of
the standard cannot be determined at this time. EPUB creators should strongly consider the
interoperability problems that may arise both now and in the future when using these
features.
Note
The marking of features as under-implemented is a one-time event to account for the different
process under which EPUB was developed prior to being brought into
W3C
. This label will not be
used for new features developed under
W3C
processes.
A.2
Deprecated features
deprecated
feature is one the Working Group no longer recommends for use in this
version of the specification. Deprecated features typically have limited or no support in
reading systems
and/or usage in
EPUB publications
If this specification designates a feature as deprecated,
EPUB creators
SHOULD NOT
use the
feature in their EPUB publications.
Note
EPUB conformance checkers
should alert EPUB creators to the presence of deprecated features
when encountered in EPUB publications.
B.
Allowed external identifiers
The following table lists the
public
and
system identifiers
xml
] allowed in
document type declarations
. [
xml
EPUB creators
MAY
use these external identifiers only in
publication resources
with the listed
media types [
rfc2046
] specified in their
manifest
declarations. (Refer to
3.9
XML conformance
for more information.)
Media Type(s)
Public Identifier
System Identifier
application/mathml+xml
application/mathml-presentation+xml
application/mathml-content+xml
-//
W3C
//DTD MathML 3.0//EN
application/x-dtbncx+xml
-//NISO//DTD ncx 2005-1//EN
image/svg+xml
-//
W3C
//DTD SVG 1.1//EN
C.
Expressing structural semantics
C.1
Introduction
This section is non-normative.
Structural semantics add additional meaning about the specific structural purpose an element plays.
The
epub:type
attribute is used to express domain-specific semantics in
EPUB content documents
and
media overlay documents
, with the structural information it carries
complementing the underlying vocabulary.
The applied semantics refine the meaning of their containing elements without changing their nature
for assistive technologies, as happens when using the similar
role
attribute [
html
]. The
attribute does not enhance the accessibility of the content, in other words; it only provides hints
about the purpose.
Semantic metadata enriches content for use in publishing workflows and for author-defined purposes.
It also allows
reading systems
to learn more about the structure and content of a document
(e.g., to enable
skippability and escapability
in media
overlays).
This specification defines a method for adding structural semantics using
the attribute
axis
: instead of adding new elements,
EPUB creators
can append the
epub:type
attribute to existing elements to add the desired semantics.
C.2
The
epub:type
attribute
Attribute Name:
epub:type
Namespace:
Usage:
Refer to the requirements for
XHTML
SVG
, and
media
overlays
Value:
A whitespace-separated list of
property
values, with
restrictions as defined in
D.1
Vocabulary association mechanisms
Whitespace is the set of characters as defined in [
xml
].
Caution
Although the
epub:type
attribute is similar in nature to the
role
attribute [
html
], the attributes serve different purposes. The values of the
epub:type
attribute do not enhance access through assistive technologies like
screen readers as they do not map to the accessibility
APIs
used by these technologies. This
means that adding
epub:type
values to semantically neutral elements like [
html
div
and
span
does not make them any more accessible to assistive technologies. Only ARIA
roles influence how assistive technologies understand such elements.
The
epub:type
attribute is consequently only intended for publishing semantics and
reading system
enhancements. Reading systems may use
epub:type
values to
provide accessibility enhancements like built-in read aloud or media overlays functionality
where interaction with assistive technologies is not essential.
Refer to
Digital Publishing WAI-ARIA
Module
dpub-aria
] for more information about accessible publishing roles.
The
epub:type
attribute inflects semantics on the element on which it appears. Its value
is one or more whitespace-separated terms stemming from external vocabularies associated with the
document instance.
The
default vocabulary
for the
epub:type
attribute is
the EPUB 3 Structural Semantics Vocabulary [
epub-ssv-11
]. EPUB creators
MAY
include
unprefixed terms that are not part of this vocabulary, but the preferred method for adding custom
semantics is to use
prefixes
for them. Refer to
D.1
Vocabulary association mechanisms
for more information.
Example
76
: Identifying a preamble
html
xmlns:epub
"http://www.idpf.org/2007/ops"
body
section
epub:type
"preamble"
section
body
html
Example
77
: Identifying a glossary
html
xmlns:epub
"http://www.idpf.org/2007/ops"
body
dl
epub:type
"glossary"
dl
body
html
Example
78
: Adding page break semantics
html
xmlns:epub
"http://www.idpf.org/2007/ops"
body
span
epub:type
"pagebreak"
id
"p234"
role
"doc-pagebreak"
aria-label
"234"
/>
body
html
D.
Vocabularies
This appendix defines a general set of mechanisms by which attributes in this specification can reference
terms from vocabularies. It also defines EPUB-specific vocabularies for use with the attributes.
D.1
Vocabulary association mechanisms
D.1.1
Introduction
This section is non-normative.
EPUB defines a formal method of referencing terms and properties defined in metadata and semantic
vocabularies using the
property
data type
. The
epub:type
attribute uses this data type in
EPUB content documents
and
media overlay documents
to add
structural semantics
for example, while the
property
and
rel
attributes use the data type
to define properties and relationships in the
package document
property
value is like a CURIE [
rdfa-core
] — it represents a URL [
url
] in
compact form. The expression consists of a prefix and a reference, where the prefix — whether
literal or implied — is a shorthand mapping of a URL that typically resolves to a term
vocabulary. When a
reading system
converts the prefix to its URL representation and combines
with the reference, the resulting URL normally resolves to a fragment within that vocabulary
that contains human- and/or machine-readable information about the term.
To reduce the complexity for authoring, each attribute that takes a
property
data type
also defines a
default vocabulary
. Terms and properties
referenced from the default vocabularies do not include a prefix as the mapping reading systems
use to map to a URL is predefined.
The power of the
property
data type lies in its easy extensibility. To incorporate new
terms and properties,
EPUB creators
only need to declare a
prefix
. In another authoring convenience, this specification also
reserves prefixes
for many commonly used
publishing vocabularies (i.e., their declaration is optional).
The following sections provide additional details on the
property
data type and
vocabulary association mechanism.
D.1.2
The
property
data type
The
property
data type is a compact means of expressing a URL [
url
] and consists of
an
OPTIONAL
prefix separated from a reference by a colon.
(EBNF productions
ISO/IEC
14977
All terminal symbols are in the Unicode Block 'Basic Latin' (U+0000 to
U+007F).
property
prefix
, ":" ] ,
reference
prefix
? xsd:NCName ? ;
reference
path-relative-scheme-less-URL string
url
] ? ;
/* as defined in [
url
] */
This specification derives the
property
data type from the CURIE data type defined in
rdfa-core
]. A
property
represents a subset of CURIEs.
There are two key differences from CURIEs, however:
an empty
reference
does not represent a valid
property
value even
though it is valid to the definition above (i.e., a
property
value that only
consists of a prefix and colon is invalid).
an empty string does not represent a valid
property
even though it is valid to
the definition above.
Example
79
: Expanding a metadata property value
In this example, the
property
value is composed of the prefix
dcterms
and the reference
modified
meta
property
"dcterms:modified"
2011-01-01T12:00:00Z
meta
After
processing
epub-rs-33
], this
property would expand to the following URL:
as the
dcterms:
prefix is a
reserved
prefix
that maps to the URL "
".
When an
EPUB creator
omits a prefix from a
property
value, the expressed reference
represents a term from the
default vocabulary
for that
attribute.
Example
80
: Expanding a manifest property value
In this example, the
mathml
property
is specified on a
manifest
item
element:
/>
This property expands to:
http
//idpf.org/epub/vocab/package/item/#mathml
when the prefix URL for the vocabulary is concatenated with the reference.
D.1.3
Default vocabularies
A default vocabulary is one that
EPUB creators
do not have to declare a
prefix
for in order to use its terms and properties where a
property
value
is expected. EPUB creators
MUST NOT
add a prefix to terms and properties from a default vocabulary.
EPUB creators
MUST NOT
assign a prefix to the URLs associated with these vocabularies using the
prefix
attribute.
Note
Refer to the definition of each attribute that takes a
property
data type
for more information about its default
vocabulary.
D.1.4
The
prefix
attribute
The
prefix
attribute defines prefix mappings for use in
property
values
The value of the
prefix
attribute is a whitespace-separated list of one or more
prefix-to-URL mappings of the form:
(EBNF productions
ISO/IEC
14977
All terminal symbols are in the Unicode Block 'Basic Latin' (U+0000 to
U+007F).
prefixes
mapping
, {
whitespace
, {
whitespace
} ,
mapping
} ;
mapping
prefix
, ":" ,
space
, {
space
} , ? xsd:anyURI ? ;
prefix
? xsd:NCName ? ;
space
#x20 ;
whitespace
(#x20 | #x9 | #xD | #xA) ;
With the exception of
reserved prefixes
EPUB creators
MUST
declare all prefixes used in a document.
EPUB creators
MUST
only specify the
prefix
attribute on the
root element
xml
] of
the respective format.
The attribute is not namespaced when used in the
package document
Example
81
: Declaring prefixes in the package document
In this example, the EPUB creator declares prefixes for the Friend of a Friend
foaf
) and DBPedia (
dbp
) vocabularies.
package
prefix
"foaf: http://xmlns.com/foaf/spec/
dbp: http://dbpedia.org/ontology/"
package
EPUB creators
MUST
declare the attribute in the namespace
in
EPUB content documents
and
media overlay documents
Example
82
: Declaring prefixes in an XHTML content document
In this example, the EPUB creator declares a prefix for the Z39.98 Structural Semantics
Vocabulary.
html
xmlns:epub
"http://www.idpf.org/2007/ops"
epub:prefix
"z3998: https://www.daisy.org/z3998/2012/vocab/structure/"
html
Note
Although the
prefix
attribute is modeled on the identically named
prefix
attribute in [
rdfa-core
], EPUB creators cannot use the attributes
interchangeably. The
prefix
attribute without a namespace in EPUB content
documents is the RDFa attribute.
It is common for both attributes to appear in EPUB content documents that also specify RDFa
expressions.
html
prefix
"…"
xmlns:epub
"http://www.idpf.org/2007/ops"
epub:prefix
"…"
html
Note that for
SVG embedded by inclusion
, prefixes
MUST
be
declared on the [
html
] root
html
element.
To avoid conflicts, EPUB creators
MUST NOT
use the
prefix
attribute to declare a
prefix that maps to a
default vocabulary
EPUB creators
MUST NOT
declare the prefix '_' as this specification reserves this prefix for
future compatibility with RDFa [
rdfa-core
] processing.
For future compatibility with alternative serializations of the package document, EPUB creators
MUST NOT
declare a prefix for the Dublin Core
/elements/1.1/
namespace [
dcterms
].
EPUB creators
MUST
use only the [
dcterms
] elements
allowed in
the package document metadata
D.1.5
Reserved prefixes
Caution
Although reserved prefixes are an authoring convenience,
EPUB creators
should avoid
relying on them as they may cause interoperability issues.
EPUB conformance checkers
will often reject new prefixes until their developers update the tools to the latest version
of the specification, for example. EPUB creators should declare all prefixes they use to
avoid such issues.
EPUB creators
MAY
use reserved prefixes in attributes that expect a
property
value
without declaring them in a
prefix
attribute
EPUB creators
SHOULD NOT
override reserved prefixes in the
prefix
attribute
The reserved prefixes an EPUB creators can use depends on the context:
Package document
EPUB creators
MAY
use the following prefixes in
package document
attributes without
having to declare them.
Prefix
URL
a11y
dcterms
marc
media
onix
rendition
schema
xsd
Structural Semantics
EPUB creators
MAY
use the following reserved prefixes in the
epub:type
attribute
without having
to declare them.
Prefix
URL
msv
prism
D.2
Property field definitions
The fields in the vocabulary definition tables have the following implicit requirements:
Allowed Values
Specifies the
REQUIRED
type of value using [
xmlschema-2
] datatypes.
Applies To
Specifies which publication resource type(s)
EPUB creators
MAY
specify the property
on.
This field appears for properties used in the
properties
attribute
Cardinality
Specifies the number of times EPUB creators
MAY
specify the property, whether globally or
attached to another element or property.
Properties with a minimum cardinality of one
MUST
be specified.
Description
Describes the purpose of the property and specifies any additional usage requirements that
EPUB creators must follow.
Example
Provides non-normative usage examples.
Extends
Identifies what EPUB creators
MAY
associate the property with.
This field appears for properties that define
primary expressions
and subexpressions
and
relationships
Name
Specifies the name of the property as it
MUST
appear in the metadata.
D.3
Meta properties vocabulary
The properties in this vocabulary are usable in the
meta
element's
property
attribute.
Unless indicated otherwise in its "Extends" field, the properties defined in this section are used to
define
subexpressions
: in other words, a
meta
element
carrying a property defined in this section
MUST
have a
refines
attribute referencing a resource or expression being
augmented.
The prefix URL for
referencing these properties
is
D.3.1
alternate-script
Name:
alternate-script
Description:
The
alternate-script
property provides an alternate expression of the
associated property value in a different language and/or script.
The language tags of the alternate-script property and its associated property — as expressed
by their respective in-scope xml:lang attributes —
MUST NOT
be the same.
This property is typically attached to
creator
and
title
properties for internationalization purposes.
Allowed value(s):
xsd:string
Cardinality:
zero or more
Extends:
All properties.
Example
83
: Author name expressed in English and Japanese
metadata
…>
dc:creator
id
"creator"
Haruki Murakami
dc:creator
meta
refines
"#creator"
property
"alternate-script"
xml:lang
"ja"
村上春樹
meta
metadata
D.3.2
authority
Name:
authority
Description:
The
authority
property identifies the system or scheme the referenced
element's value is drawn from.
Allowed value(s):
xsd:string
Note
The former
IDPF
EPUB
3 Working Group maintained a
registry of
subject authorities
for use with this property. This Working Group no
longer maintains the registry.
Cardinality:
zero or one
Extends:
dc:subject
Example
84
: Expressing A BISAC subject heading
metadata
…>
dc:subject
id
"subject01"
FICTION / Occult
&
Supernatural
dc:subject
meta
refines
"#subject01"
property
"authority"
BISAC
meta
metadata
D.3.3
belongs-to-collection
Name:
belongs-to-collection
Description:
The
belongs-to-collection
property identifies the name of a collection
to which the
EPUB publication
belongs. An EPUB publication
MAY
belong to one or more
collections.
It is also possible to chain these properties using the
refines
attribute
to indicate that one collection is
itself a member of another collection.
To allow
reading systems
to organize collections and avoid naming collisions (e.g.,
unrelated collections might share a similar name, or different editions of a
collection could be released),
EPUB creators
SHOULD
provide an identifier that uniquely
identifies the instance of the collection. The
dcterms:identifier
property must carry this identifier.
The collection
MAY
more precisely define its nature by attaching a
collection-type
property.
The position of the EPUB publication within the collection
MAY
be provided by
attaching a
group-position
property
Allowed value(s):
xsd:string
Cardinality:
zero or more
Extends:
Applies to the EPUB publication and can refine other instances of itself.
Example
85
: Indicating a publication belongs to a set
In this example, the publication belongs to the Harry Potter set of books.
metadata
meta
property
"belongs-to-collection"
id
"c02"
Harry Potter
meta
meta
refines
"#c02"
property
"collection-type"
set
meta
metadata
D.3.4
collection-type
Name:
collection-type
Description:
The
collection-type
property indicates the form or nature of a
collection.
When the
collection-type
value is drawn from a code list or other formal
enumeration,
EPUB creators
SHOULD
attach a
scheme
attribute
to identify its source.
This specification also defines the following collection types when no scheme is
specified:
series
A sequence of related works that are formally identified as a group,
typically open-ended with works issued individually over time.
set
A finite collection of works that together constitute a single intellectual
unit, typically issued together and able to be sold as a unit.
Note
Although
reading systems
are not required to support these values, specifying
them provides the option to group related
EPUB publications
in more meaningful
ways.
Allowed value(s):
xsd:string
Cardinality:
zero or one
Extends:
belongs-to-collection
Example
86
: Identifying a publication belongs to a series
In this example, the publication belongs to the series The New French Cuisine Masters.
metadata
…>
meta
property
"belongs-to-collection"
id
"c01"
The New French Cuisine Masters
meta
meta
refines
"#c01"
property
"collection-type"
series
meta
metadata
D.3.5
display-seq
Name:
display-seq
Description:
The
display-seq
property indicates the numeric position in which to
display the current property relative to identical metadata properties.
This property only applies where precedence rules have not already been defined
(e.g., precedence is given to
creators
based on
their appearance in document order).
Allowed value(s):
xsd:unsignedInt
Cardinality:
zero or one
Extends:
All properties.
D.3.6
file-as
Name:
file-as
Description:
The
file-as
property provides the normalized form of the associated
property for sorting.
Allowed value(s):
xsd:string
Cardinality:
zero or one
Extends:
All properties.
Example
87
: Expressing an author name for sorting
metadata
…>
dc:creator
id
"creator01"
Lewis Carroll
dc:creator
meta
refines
"#creator01"
property
"file-as"
Carroll, Lewis
meta
metadata
D.3.7
group-position
Name:
group-position
Description:
The
group-position
property indicates the numeric position in which the
EPUB publication
is ordered relative to other works belonging to the same group
(whether all EPUB publications or not).
EPUB creators
can attach the
group-position
property to any metadata
property that establishes the group but it is typically associated with the
belongs-to-collection
property
An EPUB publication can belong to more than one group.
Allowed value(s):
A single
xsd:unsignedInt
or series of decimal-separated numbers (e.g.,
or
2.2.1
).
Cardinality:
zero or one
Extends:
All properties.
Example
88
: Identifying a publication's position in a set
In this example, the publication is the second in the Lord of the Rings set of books.
metadata
…>
meta
property
"belongs-to-collection"
id
"c01"
The Lord of the Rings
meta
meta
refines
"#c01"
property
"collection-type"
set
meta
meta
refines
"#c01"
property
"group-position"
meta
metadata
Example
89
: Expressing a decimal-separated value for position
In this example, the decimal-separated value in the
group-position
attribute
indicates this publication is volume 98, issue 4 of a periodical.
metadata
…>
meta
property
"belongs-to-collection"
id
"cygnus-x-1"
Physical Review D
meta
meta
refines
"#cygnus-x-1"
property
"collection-type"
series
meta
meta
refines
"#cygnus-x-1"
property
"group-position"
98.4
meta
metadata
D.3.8
identifier-type
Name:
identifier-type
Description:
The
identifier-type
property indicates the form or nature of an
identifier
When the
identifier-type
value is drawn from a code list or other formal
enumeration,
EPUB creators
SHOULD
attach a
scheme
attribute
to identify its source.
Allowed value(s):
xsd:string
Cardinality:
zero or one
Extends:
dc:identifier
dc:source
Example
90
: Indicating an identifier is an ISBN
In this example, the ONIX code list 5 scheme defines the meaning of the numeric value
15
metadata
…>
dc:identifier
id
"isbn-id"
urn:isbn:9780101010101
dc:identifier
meta
refines
"#isbn-id"
property
"identifier-type"
scheme
"onix:codelist5"
15
meta
metadata
D.3.9
meta-auth (deprecated)
Use of this property is
deprecated
Refer to the
meta-auth
property definition
in [
epubpublications-30
] for more
information.
D.3.10
role
Name:
role
Description:
The
role
property describes the role of a
creator
contributor
or
publisher
in the creation of an EPUB
publication.
When the
role
value is drawn from a code list or other formal
enumeration,
EPUB creators
SHOULD
attach a
scheme
attribute
to identify its source.
When attaching multiple roles to an individual or organization, the importance of the
roles should match the document order of their containing
meta
elements
(i.e., the first
meta
element encountered should contain the most
important role).
Allowed value(s):
xsd:string
Cardinality:
zero or more
Extends:
dc:contributor
dc:creator
dc:publisher
Example
91
: Differentiating creator roles
In this example, MARC Relators vocabulary values differentiate the author from the illustrator of
a work.
metadata
…>
dc:creator
id
"creator01"
Lewis Carroll
dc:creator
meta
refines
"#creator01"
property
"role"
scheme
"marc:relators"
aut
meta
dc:creator
id
"creator02"
John Tenniel
dc:creator
meta
refines
"#creator02"
property
"role"
scheme
"marc:relators"
ill
meta
metadata
Example
92
: Identifying a creator who has multiple roles
In this example, the creator is both the author and illustrator of the work.
metadata
…>
dc:creator
id
"creator01"
Maurice Sendak
dc:creator
meta
refines
"#creator01"
property
"role"
scheme
"marc:relators"
aut
meta
meta
refines
"#creator01"
property
"role"
scheme
"marc:relators"
ill
meta
metadata
D.3.11
source-of
Name:
source-of
Description:
The
source-of
property indicates a unique aspect of an adapted source
resource that has been retained in the
EPUB publication
This specification defines the
pagination
value to indicate that the
referenced
dc:source
element is the source of the
pagebreak
properties
defined in the
content.
Allowed value(s):
pagination
Cardinality:
zero or one
Extends:
dc:source
Note
See [
epub-a11y-tech-11
] for information on how to provide accessible page
navigation.
Example
93
: Identifying the print pagination source of a publication
metadata
…>
dc:identifier
id
"isbn-id"
urn:isbn:9780101010101
dc:identifier
meta
refines
"#isbn-id"
property
"identifier-type"
scheme
"onix:codelist5"
15
meta
dc:source
id
"src-id"
urn:isbn:9780375704024
dc:source
meta
refines
"#src-id"
property
"identifier-type"
scheme
"onix:codelist5"
15
meta
meta
refines
"#src-id"
property
"source-of"
pagination
meta
metadata
D.3.12
term
Name:
term
Description:
The
term
property provides a subject code.
Allowed value(s):
xsd:string
Cardinality:
zero or one
Extends:
dc:subject
Example
94
: Expressing a BISAC code for a subject heading
The following example shows a BISAC code for a subject heading.
metadata
…>
dc:subject
id
"subject01"
FICTION / Occult
&
Supernatural
dc:subject
meta
refines
"#subject01"
property
"authority"
BISAC
meta
meta
refines
"#subject01"
property
"term"
FIC024000
meta
metadata
D.3.13
title-type
Name:
title-type
Description:
The
title-type
property indicates the form or nature of a
title
When the
title-type
value is drawn from a code list or other formal
enumeration,
EPUB creators
SHOULD
attach a
scheme
attribute
to identify its source. When a scheme is not specified,
reading systems
SHOULD
recognize the following title type values:
main
subtitle
short
collection
edition
and
expanded
Allowed value(s):
xsd:string
Cardinality:
zero or one
Extends:
dc:title
Example
95
: Expressing different title types
metadata
…>
dc:title
id
"t1"
A Dictionary of Modern English Usage
dc:title
meta
refines
"#t1"
property
"title-type"
main
meta
dc:title
id
"t2"
First Edition
dc:title
meta
refines
"#t2"
property
"title-type"
edition
meta
dc:title
id
"t3"
Fowler's
dc:title
meta
refines
"#t3"
property
"title-type"
short
meta
metadata
Example
96
: Expressing complex titles
This example shows how to classify the title "The Great Cookbooks of the World:
Mon premier guide de cuisson, un Mémoire. The New French Cuisine Masters, Volume Two. Special
Anniversary Edition".
metadata
…>
dc:title
id
"t1"
xml:lang
"fr"
Mon premier guide de cuisson, un Mémoire
dc:title
meta
refines
"#t1"
property
"title-type"
main
meta
meta
refines
"#t1"
property
"display-seq"
meta
dc:title
id
"t2"
The Great Cookbooks of the World
dc:title
meta
refines
"#t2"
property
"title-type"
collection
meta
meta
refines
"#t2"
property
"display-seq"
meta
dc:title
id
"t3"
The New French Cuisine Masters
dc:title
meta
refines
"#t3"
property
"title-type"
collection
meta
meta
refines
"#t3"
property
"display-seq"
meta
dc:title
id
"t4"
Special Anniversary Edition
dc:title
meta
refines
"#t4"
property
"title-type"
edition
meta
meta
refines
"#t4"
property
"display-seq"
meta
dc:title
id
"t5"
The Great Cookbooks of the World:
Mon premier guide de cuisson, un Mémoire.
The New French Cuisine Masters, Volume Two.
Special Anniversary Edition
dc:title
meta
refines
"#t5"
property
"title-type"
expanded
meta
metadata
D.3.14
Examples
Example
97
: A typical set of refines metadata in an EPUB publication
metadata
…>
dc:identifier
id
"pub-id"
urn:uuid:A1B0D67E-2E81-4DF5-9E67-A64CBE366809
dc:identifier
dc:identifier
id
"isbn-id"
urn:isbn:9780101010101
dc:identifier
meta
refines
"#isbn-id"
property
"identifier-type"
scheme
"onix:codelist5"
15
meta
dc:source
id
"src-id"
urn:isbn:9780375704024
dc:source
meta
refines
"#src-id"
property
"identifier-type"
scheme
"onix:codelist5"
15
meta
dc:title
id
"title"
Norwegian Wood
dc:title
meta
refines
"#title"
property
"title-type"
main
meta
dc:language
en
dc:language
dc:creator
id
"creator"
Haruki Murakami
dc:creator
meta
refines
"#creator"
property
"role"
scheme
"marc:relators"
id
"role"
aut
meta
meta
refines
"#creator"
property
"alternate-script"
xml:lang
"ja"
村上 春樹
meta
meta
refines
"#creator"
property
"file-as"
Murakami, Haruki
meta
meta
property
"dcterms:modified"
2011-01-01T12:00:00Z
meta
metadata
D.4
Metadata link vocabulary
The properties in this vocabulary are usable in the metadata
link
element's
rel
and
properties
attributes.
The prefix URL for
referencing these properties
is
D.4.1
Link relationships
The following values can be used in the
link
element
rel
attribute
to establish the relationship of the resource referenced in
the
href
attribute
D.4.1.1
alternate
Name:
alternate
Description:
The
alternate
keyword is a subset of the
HTML
alternate
keyword
for links. It differs as follows:
It
MUST NOT
be paired with other keywords.
If an alternate link is included in the
package document
metadata, it
identifies an alternate representation of the package document in the format
specified in the
media-type
attribute.
If an alternate link is included in a
collection
element's
metadata, it identifies an alternate representation of the
collection
in the format specified in the
media-type
attribute.
Reading systems
do not have to generate hyperlinks for alternate links.
Cardinality:
Zero or more
Extends:
Only applies to the EPUB publication or collection.
MUST NOT
be used when the
refines
attribute
is present.
Example:
media-type="application/json-ld"/>
D.4.1.2
marc21xml-record (deprecated)
Use of the
marc21xml-record
keyword is
deprecated
It is replaced by the
record
keyword with the
media-type
attribute
value
application/marcxml+xml
".
Refer to the
marc21xml-record
property definition
in [
epubpublications-30
] for more information.
D.4.1.3
mods-record (deprecated)
Use of the
mods-record
keyword is
deprecated
. It
is replaced by the
record
keyword with the
media-type
attribute
value
application/mods+xml
".
Refer to the
mods-record
property definition
in [
epubpublications-30
] for more information.
D.4.1.4
onix-record (deprecated)
Use of the
onix-record
keyword is
deprecated
. It
is replaced by the
record
keyword with the
properties attribute
value
onix
Refer to the
onix-record
property definition
in [
epubpublications-30
] for more information.
D.4.1.5
record
Name:
record
Description:
Indicates that the referenced resource is a metadata record.
The media type of the record
MUST
be identified in the
media-type
attribute
when
this keyword is specified.
For a list of commonly linked metadata record types, refer to the
EPUB Linked Metadata
Guide
If the type of record cannot be identified from the media type, an
identifier property
can be assigned in the
properties
attribute
Cardinality:
Zero or more
Extends:
Only applies to the
EPUB publication
or collection.
MUST NOT
be used when the
refines
attribute
is present.
Example:
media-type="application/atom+xml;type=entry;profile=opds-catalog"/>
D.4.1.6
voicing
Name:
voicing
Description:
Indicates that the referenced audio file provides an aural representation of the
expression or resource (typically, the title or creator) specified by the
refines attribute.
The media type of the audio file
MUST
be identified in the
media-type
attribute
when
this keyword is specified.
Cardinality:
Zero or more
Extends:
All properties. The
refines
attribute
MUST
be present when this value is used.
Example:
href="title.mp3" />
D.4.1.7
xml-signature (deprecated)
Use of the
xml-signature
keyword is
deprecated
It is not replaced by another linking method.
Refer to the
xml-signature
property definition
in [
epubpublications-30
] for more information.
D.4.1.8
xmp-record (deprecated)
Use of the
xmp-record
keyword is
deprecated
Refer to the
xmp-record
property definition
in [
epubpublications-30
] for more information.
D.4.2
Link properties
The following values can be used in the
link
element's
properties
attribute to establish the type of record a referenced resource represents.
These values are provided for record formats that cannot be uniquely identified by their media
type.
D.4.2.1
onix
Name:
onix
Description:
The
onix
property indicates the referenced resource is an ONIX record
onix
].
Example:
media-type="application/xml" properties="onix"/>
D.5
Package rendering vocabulary
The prefix URL for
referencing these properties
is
The "
rendition:
" prefix is
reserved for
use
with the package rendering properties and does not have to be declared in the
package document
Note
Unlike the other vocabularies in this appendix, the properties in the Package Rendering Vocabulary
consist of a mix of properties (expressed in
meta
elements)
and
spine
overrides (expressed on
itemref
elements).
The usage requirements are also defined in
8.
Layout rendering control
not in this appendix.
The following table provides a map to the properties, overrides, and where they are defined.
Property
Overrides
Defined in
rendition:layout
rendition:layout-pre-paginated
rendition:layout-reflowable
8.2.2.1
Layout
rendition:orientation
rendition:orientation-auto
rendition:orientation-landscape
rendition:orientation-portrait
8.2.2.2
Orientation
rendition:spread
rendition:spread-auto
rendition:spread-both
rendition:spread-landscape
rendition:spread-none
rendition:spread-portrait
(Deprecated)
8.2.2.3
Synthetic spreads
rendition:page-spread-center
rendition:page-spread-left
rendition:page-spread-right
8.2.2.4
Spread placement
rendition:viewport
(Deprecated)
8.2.2.5
Viewport dimensions (deprecated)
rendition:flow
rendition:flow-paginated
rendition:flow-scrolled-continuous
rendition:flow-scrolled-doc
rendition:flow-auto
8.3.1
The
rendition:flow
property
rendition:align-x-center
8.3.2
The
rendition:align-x-center
property
D.5.1
Custom rendering properties
Reading system
developers may introduce functionality not defined in this specification to address
reading system-specific issues rendering
EPUB content documents
To facilitate this experimentation,
EPUB creators
MAY
include custom properties and
spine
overrides for use in the
package document
provided they do not use the
rendition:
prefix.
Note
Custom properties should only address rendering issues specific to a particular reading system. This
specification should be extended to provide extensions that multiple independent reading systems can
use.
D.6
Manifest properties vocabulary
The properties in this vocabulary are usable in the manifest
item
element's
properties
attribute
The prefix URL for
referencing these properties
is
D.6.1
cover-image
Name:
cover-image
Description:
The
cover-image
property identifies the described
publication resource
as
the cover image for the
EPUB publication
Applies to:
All
raster and vector image types
Cardinality:
Zero or one
D.6.2
mathml
Name:
mathml
Description:
The
mathml
property indicates that the described
publication resource
contains one or more instances of MathML markup.
Applies to:
EPUB content documents
Cardinality:
Zero or more
D.6.3
nav
Name:
nav
Description:
The
nav
property indicates that the described publication resource
constitutes the
EPUB navigation document
of the
EPUB publication
Applies to:
The EPUB navigation document
Cardinality:
Exactly one
D.6.4
remote-resources
Name:
remote-resources
Description:
The
remote-resources
property indicates that the described
publication resource
contains one or more internal references to other publication resources
that are located outside of the
EPUB container
Refer to
3.6
Resource locations
for more information.
Applies to:
All publication resources with the capability of internal referencing
(e.g.,
XHTML content documents
SVG content documents
CSS style sheets and
media overlay documents
).
Cardinality:
Zero or more
D.6.5
scripted
Name:
scripted
Description:
The
scripted
property indicates that the described
publication resource
is
scripted content document
(i.e., contains scripting and/or [
html
form
elements).
Applies to:
EPUB content documents
Cardinality:
Zero or more
D.6.6
svg
Name:
svg
Description:
The
svg
property indicates that the described
publication resource
embeds one or more instances of SVG markup.
This property
MUST
be set when SVG markup is included directly in the resource and
MAY
be set when the SVG is referenced from the resource (e.g., from an [
html
img
object
or
iframe
element).
Applies to:
XHTML content documents
; the value is implied for
SVG content documents
Cardinality:
Zero or more
D.6.7
switch
Name:
switch
Description:
The
switch
property indicates that the described
publication resource
contains one or more instances of the
deprecated
epub:switch
element
Applies to:
XHTML content documents
Cardinality:
Zero or more
D.7
Spine properties vocabulary
The properties in this vocabulary are usable in the spine
itemref
element's
properties
attribute
The prefix URL for
referencing these properties
is
D.7.1
page-spread-left
Name:
page-spread-left
Description:
The
page-spread-left
property indicates that the first page of the
associated
item
element's
EPUB content document
represents the
left-hand side of a two-page spread.
The
rendition:page-spread-left
property
is an alias for this property. Refer to
8.2.2.4
Spread placement
for more information about their use.
D.7.2
page-spread-right
Name:
page-spread-right
Description:
The
page-spread-right
property indicates that the first page of the
associated
item
element's
EPUB content document
represents the right-hand side of a two-page spread.
The
rendition:page-spread-right
property
is an alias for this property. Refer to
8.2.2.4
Spread placement
for more information about their use.
D.7.3
Examples
Example
98
: Identifying a two-page spread in the spine
properties="page-spread-left"/>
properties="page-spread-right"/>
D.8
Media overlays vocabulary
The properties in this vocabulary are usable in the
meta
element's
property
attribute.
The prefix URL for
referencing these properties
is
The prefix "
media:
" is
reserved for use
with
properties in this vocabulary and does not have to be declared in the
package document
D.8.1
active-class
Name:
active-class
Description:
EPUB creator
-defined CSS class name to apply to the currently playing
EPUB content document
element.
Allowed value(s):
xsd:string
Cardinality:
Zero or one
Example:
property="media:active-class">-epub-media-overlay-active
D.8.2
duration
Name:
duration
Description:
The duration of the entire presentation or of a specific
media overlay document
The specified durations account for the audio clips known at authoring time, and so
exclude live streaming from external resources and speech synthesis.
Allowed value(s):
MUST
be a [
smil3
clock value
Cardinality:
Exactly one for the
EPUB publication
and for each
media overlay
document
Example:
1:36:20
D.8.3
narrator
Name:
narrator
Description:
Name of the narrator.
Allowed value(s):
xsd:string
Cardinality:
Zero or more
Example:
Joe Speaker
D.8.4
playback-active-class
Name:
playback-active-class
Description:
Author-defined CSS class name to apply to the
EPUB content document's
document element when playback is active.
Allowed value(s):
xsd:string
Cardinality:
Zero or one
Example:
property="media:playback-active-class">-epub-media-overlay-playing
E.
Prefixed CSS properties
This appendix describes the prefixed CSS properties supported by EPUB.
Note
The prefix definitions are no longer being synchronized with their CSS counterparts. In some
cases, the unprefixed versions of these properties now support additional values.
Reading systems
may not support the new syntax with the prefixed properties, so
EPUB creators
are advised to use the
unprefixed versions for newer features.
E.1
CSS writing modes
This section describes the
-epub-
prefixed properties for [
css-writing-modes-3
].
E.1.1
The
-epub-text-orientation
property
This property is a prefixed version of the
text-orientation
property
css-writing-modes-3
].
Name:
-epub-text-orientation
Value:
mixed | upright | sideways | sideways-right
For compatibility with existing content, the
-epub-text-orientation
property also
supports the deprecated
vertical-right
rotate-right
, and
rotate-normal
keywords. The following table specifies the effect these have
when specified.
Deprecated value
Value to be used
vertical-right
mixed
rotate-right
sideways
rotate-normal
sideways
E.1.2
The
-epub-writing-mode
property
This property is a prefixed version of the
writing-mode
property
css-writing-modes-3
], with the same syntax and behavior.
Name:
-epub-writing-mode
Value:
horizontal-tb | vertical-rl | vertical-lr
E.1.3
The
-epub-text-combine-horizontal
and
-epub-text-combine
properties
These properties are prefixed versions of the
text-combine-upright
property
css-writing-modes-3
], although
-epub-text-combine
is
deprecated.
Name:
-epub-text-combine-horizontal
Value:
none | all
Name:
-epub-text-combine
(deprecated)
Value:
none | horizontal | horizontal
For compatibility with existing content, the
-epub-text-combine-horizontal
and
-epub-text-combine
properties also support a number of deprecated keywords. The
following table specifies the effect these have when specified.
Prefixed version
CSS equivalent
-epub-text-combine-horizontal: none
text-combine-upright: none
-epub-text-combine-horizontal: all
text-combine-upright: all
-epub-text-combine: none
text-combine-upright: none
-epub-text-combine: horizontal
text-combine-upright: all
-epub-text-combine: horizontal
no equivalent
E.2
CSS text level 3
This section describes the
-epub-
prefixed properties (and one prefixed value) for
css-text-3
].
E.2.1
The
-epub-hyphens
property
This property is a prefixed version of the
hyphens
property
css-text-3
].
Name:
-epub-hyphens
Value:
none | manual | auto | all
For compatibility with existing content, the
-epub-hyphens
property also supports
the deprecated
all
keyword. The value is no longer supported in CSS and there is no
equivalent to use in its place.
E.2.2
The
-epub-line-break
property
This property is a prefixed version of the
line-break
property
css-text-3
].
Name:
-epub-line-break
Value:
auto | loose | normal | strict
E.2.3
The
-epub-text-align-last
property
This property is a prefixed version of the
text-align-last
property
css-text-3
].
Name:
-epub-text-align-last
Value:
auto | start | end | left | right | center | justify
E.2.4
The
-epub-word-break
property
This property is a prefixed version of the
word-break
property
css-text-3
].
Name:
-epub-word-break
Value:
normal | keep-all | break-all
E.2.5
The
text-transform
property
This property is a prefixed value for the
text-transform
property
css-text-3
].
Name:
text-transform
Value:
-epub-fullwidth
For compatibility with existing content, the
text-transform
property also supports
the deprecated
-epub-fullwidth
keyword. When specified, this has the same effect as
text-transform: full-width
E.3
CSS text decoration level 3
This section describes the
-epub-
prefixed properties for [
css-text-decor-3
].
E.3.1
The
-epub-text-emphasis-color
Property
This property is a prefixed version of the
text-emphasis-color
property
css-text-decor-3
].
Name:
-epub-text-emphasis-color
Value:
E.3.2
The
-epub-text-emphasis-position
property
This property is a prefixed version of the
text-emphasis-position
property
css-text-decor-3
].
Name:
-epub-text-emphasis-position
Value:
[ over | under ] && [ right | left ]
E.3.3
The
-epub-text-emphasis-style
property
This property is a prefixed version of the
text-emphasis-style
property
css-text-decor-3
].
Name:
-epub-text-emphasis-style
Value:
none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ]
] |
E.3.4
The
-epub-text-underline-position
property
This property is a prefixed version of the
text-underline-position
property
css-text-decor-3
].
Name:
-epub-text-underline-position
Value:
auto | [ under || [ left | right ] ] | alphabetic
For compatibility with existing content, the value
-epub-text-underline-position
property also supports the deprecated
alphabetic
keyword. When specified, this has
the same effect as
text-underline-position: auto
F.
The
viewport meta
tag
F.1
Introduction
This section is non-normative.
As the
Safari HTML definition
of the
viewport meta
tag, that was used in earlier
versions of EPUB 3, is not an officially recognized standard, this specification defines a
basic syntax in order to allow
EPUB creators
to express
width and
height dimensions
for use rendering
fixed-layout documents
The syntax of this grammar is also influenced by the parsing algorithm for the
viewport
meta
tag, as defined in [
css-viewport-1
].
The syntax is intentionally left as generic as possible as it is not in this specification's scope to
define all the possible properties and values. It only defines the basic requirements for defining a
property and value pair as well as the possible separators between expressions.
F.2
Syntax
For
fixed-layout documents
, a
viewport
meta
tag [
html
MUST
have
name
and
content
attributes that conform to the following definition:
name
The value of the
name
attribute [
html
] after
whitespace normalization
xml
MUST
be
viewport
content
The value of the
content
attribute [
html
] after
whitespace normalization
xml
MUST
be of the following form:
(EBNF productions
ISO/IEC
14977
All terminal symbols are in the Unicode Block 'Basic Latin' (U+0000
to U+007F).
viewport
property
, {
sep
property
} ;
property
name
, [
assign
value
] ;
name
? character data ? ;
value
? character data ? ;
sep
sep-char
, {
sep-char
} ;
sep-char
( ";" | "," |
space
) ;
assign
space
], "=", [
space
] ;
space
#x20 ;
The only restriction on property
names
and
values
is that they
MUST NOT
contain
separator characters
or the
assignment character
The authoring requirements in this section apply
after
whitespace normalization
xml
] (i.e., after a reading
system strips leading and trailing whitespace and compacts all instances of multiple whitespace
within the attribute to single spaces). EPUB creators
MAY
include any
whitespace characters
xml
] in the authored tag so long as the result is valid to this
definition.
Note
Although [
html
depends on
the [
infra
definition of whitespace
, the Form Feed (U+000C)
character is not valid whitespace per the [
xml
] definition. It cannot be used in the XML
syntax (i.e., in XHTML content documents).
There are no restrictions on any other attributes allowed on the
meta
element by the [
html
] grammar.
Note
For more information about specifying the required
height
and
width
properties, and their required values, refer to
8.2.2.6
Content document dimensions
Although the
viewport meta
tag allows EPUB creators to use properties other than
height
and
width
, and to not include values for these properties,
such use is strongly discouraged. Setting other properties may have unintended consequences on
the rendering of fixed-layout documents.
G.
Schemas
This section is non-normative.
G.1
Package document schema
A schema for
package documents
is available at
Validation using this schema requires a processor that supports [
nvdl
], [
relaxng-schema
],
isoschematron
] and [
xmlschema-2
].
Note
The NVDL schema layer can be substituted by a multi-pass validation using the embedded RELAX NG
and ISO Schematron schemas alone.
Note
These schemas may be updated and corrected outside of formal revisions of this specification. As
a result, they are subject to change at any time.
G.2
OCF schemas
G.2.1
Schema for
container.xml
A schema for
container.xml
files
is available at
Validation using this schema requires a processor that supports [
relaxng-schema
] and
xmlschema-2
].
G.2.2
Schema for
encryption.xml
The schema for
encryption.xml
files
is included in [
xmlsec-rngschema-20130411
].
G.2.3
Schema for
signatures.xml
The schema for
signatures.xml
files
is included in [
xmlsec-rngschema-20130411
].
G.3
Media overlays schema
A schema for
media overlay documents
is available at
Validation using this schema requires a processor that supports [
nvdl
], [
relaxng-schema
],
isoschematron
] and [
xmlschema-2
].
Note
The NVDL schema layer can be substituted by a multi-pass validation using the embedded RELAX NG
and ISO Schematron schemas alone.
H.
Detailed examples
This section is non-normative.
H.1
Resources
Consider the following extracts of a
package document
and an
XHTML content document
"record"
href
"meta/data.xml"
media-type
"application/marc"
/>
"record"
href
"https://www.example.org/meta/data2.xml"
media-type
"application/marc"
/>
href
"page.xhtml"
media-type
"application/xhtml+xml"
/>
href
"nav.xhtml"
media-type
"application/xhtml+xml"
properties
"nav"
/>
href
"style.css"
media-type
"text/css"
/>
href
"fonts/font-file.otf"
media-type
"font/otf"
/>
href
"https://www.example.org/fonts/font-file2.otf"
media-type
"font/otf"
/>
href
"fonts/font-file.cff"
media-type
"font/sfnt"
/>
href
"speech/cmn.pls"
media-type
"application/pls+xml"
/>
href
"media/image_1.png"
media-type
"image/png"
/>
href
"media/image_2.png"
media-type
"image/png"
fallback
"image_desc"
/>
href
"image_desc.xhtml"
media-type
"application/xhtml+xml"
/>
href
"media/image_3.heic"
media-type
"image/heic"
/>
href
"media/image_3.png"
media-type
"image/png"
/>
href
"widget.xhtml"
media-type
"application/xhtml+xml"
/>
/>
/>
"stylesheet"
type
"text/css"
href
"style.css"
/>
"pronunciation"
type
"application/pls+xml"
href
"speech/cmn.pls"
/>
/>
"media/image_2.png"
>…
type
"image/heic"
/>
/>
"https://www.example.org/some_content"
>…
The various resources in the
EPUB publication
can be categorized as follows. (Refer to
3.
Publication resources
for more information about these categories.)
meta/data.xml
The resource is a metadata record, stored in the
EPUB container
. It is linked via a
link
element in the package document metadata. It is therefore a
linked resource
on
the
manifest plane
(i.e., is not listed in the
manifest
). It is not
part on any other planes.
The resource is a metadata record, stored remotely. It is linked via a
link
element in
the package document metadata. It is therefore a linked resource on the manifest plane,
(i.e., it is not listed in the manifest). It is not part on any other planes.
page.xhtml
The resource is an XHTML document. It is listed in the [[EPUB spine | spine=]. It is a
publication resource
on the manifest plane, a
container resource
, an
EPUB content document
on the
spine plane
, and is not present on the
content plane
. No fallback
is necessary.
nav.xhtml
The resource is the
EPUB navigation document
. It is not listed in the spine. It is a
publication resource on the manifest plane, a container resource, and is not present on
either the spine plane or the content plane. No fallback is necessary.
style.css
The resource is a CSS file. It is not listed in the spine but is referenced from an [
html
link
element. It is a publication
resource on the manifest plane, a container resource, is not present on the spine plane, and
is a
core media type resource
on the content plane. No fallback is necessary.
font/font-file.otf
The resource is a TrueType font file. It is not listed in the spine but is referenced from a
CSS file. It is a publication resource on the manifest plane, is a container resource, is
not present on the spine plane, and is a core media type resource on the content plane. No
fallback is necessary.
The resource is a TrueType font file. It is not listed in the spine but is referenced from a
CSS file. It is a publication resource on the manifest plane, is a
remote resource
, is
not present on the spine plane, and is a core media type resource on the content plane. No
fallback is necessary.
font/font-file.cff
The resource is a font file in Compact Font Format. It is not listed in the spine but is
referenced from a CSS file. Its media type is not listed as a
core media type
. It is a publication resource on the
manifest plane, a container resource, is not present on the spine plane, and is an
exempt resource
on the content plane. No fallback is necessary.
speech/cmn.pls
The resource is a Pronunciation Lexicon file. It is not listed in the spine but is referenced
from an [
html
link
element. It is a
publication resource on the manifest plane, a container resource, not present on the spine
plane, and is an exempt resource on the content plane. No fallback is necessary.
image/image_1.png
The resource is a PNG image file. It is not listed in the spine but is referenced from an
html
img
element. It is a publication resource on the manifest plane, a container
resource, is not present on the spine plane, and is a core media type resource on the
content plane. No fallback is necessary.
image/image_2.png
The resource is a PNG image file. It is referenced via an [
html
element. Because it
is referenced from a hyperlink, it
must
be listed in the spine. It is a publication
resource on the manifest plane, a container resource, a
foreign content document
on the
spine plane, and a core media type resource on the content plane. As a foreign content
document, a fallback is required, which is provided via a
manifest fallback
image_desc.xhtml
The resource is an XHTML document. It is the "target" of a manifest fallback so is not
explicitly listed in the spine (but it "replaces" the existing spine item when needed). It
is a publication resource on the manifest plane, a container resource, an EPUB content
document on spine plane, and, because it is not "used" when rendering another EPUB content
document, it is not present on the content plane. No fallback is necessary.
image/image_3.heic
The resource is a High Efficiency (HEIC) image file. It is not listed in the spine but is
referenced from an [
html
source
element. Its media type is not listed as a
core media type
. It is a publication resource on the
manifest plane, a container resource, is not present on the spine plane, and is a foreign
resource on the content plane. As a foreign resource, a fallback is required, which is
provided via the sibling [
html
img
element in an [
html
picture
element.
image/image_3.png
The resource is a PNG image file. It is not listed in the spine but is referenced from an
html
img
element that is used as an intrinsic fallback of the [
html
picture
element. It is a publication resource on the manifest plane, a container resource, is not
present on the spine plane, and is a core media type resource on the content plane. No
fallback is necessary.
widget.xhtml
The resource is an XHTML document. It is not listed in the spine but is referenced from an
html
iframe
element. It is a publication resource on the manifest plane, a container
resource, is not present on spine plane, and, because it is "used" when rendering another
EPUB content document, a core media type resource on the content plane. No fallback is
necessary.
The resource is referenced via an [
html
element and is not stored in the EPUB
container. Reading systems will normally open this link via a separate browser instance. It
is not on any planes defined by this specification.
Additional examples on the usage of different types of resources can be found in
5.6.2.2
Examples
H.2
Scripting contexts
Consider the following example
package document
href
"scripted01.xhtml"
media-type
"application/xhtml+xml"
properties
"scripted"
/>
href
"scripted02.xhtml"
media-type
"application/xhtml+xml"
properties
"scripted"
/>
href
"slideshow.js"
media-type
"text/javascript"
/>
/>
and the following file
scripted01.xhtml
html
…>
head
script
type
"text/javascript"
const
te = navigator.
epubReadingSystem
hasFeature
"touch-events"
);
const
te_message = te ?
"passes"
"does not pass"
alert
`The reading system
${te_message}
touch events to the content.`
);
script
head
body
iframe
src
"scripted02.xhtml"
… />
body
html
and the following file
scripted02.xhtml
html
…>
head
script
type
"text/javascript"
href
"slideshow.js"
script
head
body
body
html
From these examples, it is true that:
the code in the
script
element in the
head
in
scripted01.xhtml
is a
spine-level script
because the document is referenced from the spine; and
the code in the
script
element in
scripted02.xhtml
is a
container-constrained script
because the
XHTML document it occurs in is included in
scripted01.xhtml
via the
iframe
element.
H.3
Packaged EPUB
This example demonstrates the use of the OCF format to contain a signed and encrypted
EPUB publication
within an
OCF ZIP container
Ordered list of files in the OCF ZIP container:
mimetype
META-INF/
container
.xml
META-INF/signatures
.xml
META-INF/encryption
.xml
EPUB/As_You_Like_It
.opf
EPUB/book
.html
EPUB/
nav
.html
EPUB/images/cover
.png
The contents of the
mimetype
file
application/epub+zip
The contents of the
META-INF/container.xml
file
"1.0"
?>
container
version
"1.0"
xmlns
"urn:oasis:names:tc:opendocument:xmlns:container"
rootfiles
rootfile
full-path
"EPUB/As_You_Like_It.opf"
media-type
"application/oebps-package+xml"
/>
rootfiles
container
The contents of the
META-INF/signatures.xml
file
signatures
xmlns
"urn:oasis:names:tc:opendocument:xmlns:container"
Signature
Id
"AsYouLikeItSignature"
xmlns
"http://www.w3.org/2000/09/xmldsig#"
SignedInfo
CanonicalizationMethod
Algorithm
"http://www.w3.org/TR/2001/REC-xml-c14n-20010315"
/>
SignatureMethod
Algorithm
"http://www.w3.org/2000/09/xmldsig#dsa-sha1"
/>
Reference
URI
"#AsYouLikeIt"
DigestMethod
Algorithm
"http://www.w3.org/2000/09/xmldsig#sha1"
/>
DigestValue
DigestValue
Reference
SignedInfo
SignatureValue
SignatureValue
KeyInfo
KeyValue
DSAKeyValue
DSAKeyValue
KeyValue
KeyInfo
Object
Manifest
Id
"AsYouLikeIt"
Reference
URI
"EPUB/As_You_Like_It.opf"
Transforms
Transform
Algorithm
"http://www.w3.org/TR/2001/REC-xml-c14n-20010315"
/>
Transforms
DigestMethod
Algorithm
"http://www.w3.org/2000/09/xmldsig#sha1"
/>
DigestValue
DigestValue
Reference
Reference
URI
"EPUB/book.html"
Transforms
Transform
Algorithm
"http://www.w3.org/TR/2001/REC-xml-c14n-20010315"
/>
Transforms
DigestMethod
Algorithm
"http://www.w3.org/2000/09/xmldsig#sha1"
/>
DigestValue
DigestValue
Reference
Reference
URI
"EPUB/images/cover.png"
DigestMethod
Algorithm
"http://www.w3.org/2000/09/xmldsig#sha1"
/>
DigestValue
DigestValue
Reference
Manifest
Object
Signature
signatures
The contents of the
META-INF/encryption.xml
file
"1.0"
?>
encryption
xmlns
"urn:oasis:names:tc:opendocument:xmlns:container"
xmlns:enc
"http://www.w3.org/2001/04/xmlenc#"
xmlns:ds
"http://www.w3.org/2000/09/xmldsig#"
enc:EncryptedKey
Id
"EK"
enc:EncryptionMethod
Algorithm
"http://www.w3.org/2001/04/xmlenc#rsa-1_5"
/>
ds:KeyInfo
ds:KeyName
John Smith
ds:KeyName
ds:KeyInfo
enc:CipherData
enc:CipherValue
xyzabc…
enc:CipherValue
enc:CipherData
enc:EncryptedKey
enc:EncryptedData
Id
"ED1"
enc:EncryptionMethod
Algorithm
"http://www.w3.org/2001/04/xmlenc#kw-aes128"
/>
ds:KeyInfo
ds:RetrievalMethod
URI
"#EK"
Type
"http://www.w3.org/2001/04/xmlenc#EncryptedKey"
/>
ds:KeyInfo
enc:CipherData
enc:CipherReference
URI
"EPUB/book.html"
/>
enc:CipherData
enc:EncryptedData
enc:EncryptedData
Id
"ED2"
enc:EncryptionMethod
Algorithm
"http://www.w3.org/2001/04/xmlenc#kw-aes128"
/>
ds:KeyInfo
ds:RetrievalMethod
URI
"#EK"
Type
"http://www.w3.org/2001/04/xmlenc#EncryptedKey"
/>
ds:KeyInfo
enc:CipherData
enc:CipherReference
URI
"EPUB/images/cover.png"
/>
enc:CipherData
enc:EncryptedData
encryption
The contents of the
EPUB/As_You_Like_It.opf
file
"1.0"
?>
package
version
"3.0"
xml:lang
"en"
xmlns
"http://www.idpf.org/2007/opf"
unique-identifier
"pub-id"
metadata
xmlns:dc
"http://purl.org/dc/elements/1.1/"
dc:identifier
id
"pub-id"
urn:uuid:B9B412F2-CAAD-4A44-B91F-A375068478A0
dc:identifier
dc:language
en
dc:language
dc:title
As You Like It
dc:title
dc:creator
id
"creator"
William Shakespeare
dc:creator
meta
property
"dcterms:modified"
2000-03-24T00:00:00Z
meta
dc:publisher
Project Gutenberg
dc:publisher
dc:date
2000-03-24
dc:date
meta
property
"dcterms:dateCopyrighted"
9999-01-01
meta
dc:identifier
id
"isbn13"
urn:isbn:9780741014559
dc:identifier
dc:identifier
id
"isbn10"
0-7410-1455-6
dc:identifier
link
rel
"xml-signature"
href
"../META-INF/signatures.xml#AsYouLikeItSignature"
/>
metadata
manifest
item
id
"r4915"
href
"book.html"
media-type
"application/xhtml+xml"
/>
item
id
"r7184"
href
"images/cover.png"
media-type
"image/png"
/>
item
id
"nav"
href
"nav.html"
media-type
"application/xhtml+xml"
properties
"nav"
/>
manifest
spine
itemref
idref
"r4915"
/>
spine
package
H.4
Clock values
The following are examples of allowed clock values:
5:34:31.396
= 5 hours, 34 minutes, 31 seconds, and 396 milliseconds
124:59:36
= 124 hours, 59 minutes, and 36 seconds
0:05:01.2
= 5 minutes, 1 second, and 200 milliseconds
0:00:04
= 4 seconds
09:58
= 9 minutes and 58 seconds
00:56.78
= 56 seconds and 780 milliseconds
76.2s
= 76.2 seconds = 76 seconds and 200 milliseconds
7.75h
= 7.75 hours = 7 hours and 45 minutes
13min
= 13 minutes
2345ms
= 2345 milliseconds
12.345
= 12 seconds and 345 milliseconds
I.
Media type registrations
I.1
The
application/oebps-package+xml
media type
This appendix registers the media type
application/oebps-package+xml
for the EPUB
package document. This registration supersedes RFC4839 (see
).
The package document is an XML file that describes an EPUB publication. It identifies the resources
in the EPUB publication and provides metadata information. The package document and its related
specifications are maintained and defined by the
World Wide Web
Consortium
W3C
).
MIME media type name:
application
MIME subtype name:
oebps-package+xml
Required parameters:
None.
Optional parameters:
None.
Encoding considerations:
8bit if UTF-8; binary if UTF-16.
Package documents are in XML, represented either in UTF-8 or UTF-16. When the package
document is written in UTF-8, the file is 8bit compatible. When it is written in UTF-16, the
binary content-transfer-encoding must be used. For further details, see [
rfc7303
].
Security considerations:
Package documents contain well-formed XML conforming to the XML 1.0 specification.
Clearly, it is possible to author malicious files which, for example, contain malformed data.
Most XML parsers protect themselves from such attacks by rigorously enforcing
conformance.
All processors that read package documents should rigorously check the size and validity of
data retrieved.
There is no current provision in the EPUB 3 specification for encryption, signing, or
authentication within the package document format.
Interoperability considerations:
None.
Published specification:
This media type registration is for the EPUB package document, as described by the EPUB 3
specification located at
The EPUB 3 specification supersedes the Open Packaging Format 2.0.1 specification, which is
located at
and which also uses the
application/oepbs-package+xml
media type.
Applications which use this media type:
This media type is in wide use for the distribution of ebooks in the EPUB format.
Additional information:
Magic number(s):
none
File extension(s):
.opf
Macintosh File Type Code(s):
TEXT
Fragment identifiers:
EPUB Canonical Fragment Identifiers are custom fragment identifiers defined for
EPUB Publications
. They may be used to refer to an arbitrary content within any
publication resource
defined for the publication. These identifiers are defined
at
Person & email address to contact for further information:
EPUB 3 Working Group (public-epub-wg@w3.org)
Intended usage:
COMMON
Author/Change controller:
World Wide Web Consortium (
W3C
I.2
The
application/epub+zip
media type
This appendix registers the media type
application/epub+zip
for the EPUB Open Container
Format (OCF).
An OCF ZIP container, or EPUB container, file is a container technology based on the zip archive
format (see
). It is used to encapsulate the
EPUB publication. OCF and its related standards are maintained and defined by the
World Wide Web Consortium
W3C
).
MIME media type name:
application
MIME subtype name:
epub+zip
Required parameters:
None.
Optional parameters:
None.
Encoding considerations:
OCF ZIP container files are binary files encoded in the
application/zip
media type.
Security considerations:
All processors that read OCF ZIP container files should rigorously check the size and
validity of data retrieved.
In addition, because of the various content types that can be embedded in OCF ZIP container
files,
application/epub+zip
may describe content that poses security
implications beyond those noted here. However, only in cases where the processor recognizes
and processes the additional content, or where further processing of that content is
dispatched to other processors, would security issues potentially arise. In such cases,
matters of security would fall outside the domain of this registration document.
Security considerations that apply to
application/zip
also apply to OCF ZIP
container files.
Interoperability considerations:
None.
Published specification:
This media type registration is for the EPUB Open Container Format (OCF), as described by the
EPUB 3 specification located at
The EPUB 3 specification supersedes both
RFC 4839
and the Open Container
Format 2.0.1 specification, which is located at
, and which also
uses the
application/epub+zip
media type.
Applications that use this media type:
This media type is in wide use for the distribution of ebooks in the EPUB format.
Additional information:
Magic number(s):
0:
PK 0x03 0x04
, 30:
mimetype
, 38:
application/epub+zip
File extension(s):
OCF ZIP container files are most often identified with the extension
.epub
Macintosh file type code(s):
ZIP
Fragment identifiers:
EPUB Canonical Fragment Identifiers are custom fragment identifiers defined for
EPUB Publications
. They may be used to refer to an arbitrary content within any
publication resource
defined for the publication. These identifiers are defined
at
Person & email address to contact for further information:
EPUB 3 Working Group (public-epub-wg@w3.org)
Intended usage:
COMMON
Author/change controller:
World Wide Web Consortium (
W3C
J.
Index
J.1
Terms defined by this specification
audio
§9.2.2.8
body
§9.2.2.4
codec
§1.4
collection
§5.8.1
Compression
§4.2.6.3.2.2
container
§4.2.6.3.1.1
container resource
§1.4
container root URL
§1.4
content plane
§3.1.3
content URL
§1.4
core media type resource
§1.4
dc:contributor
§5.5.3.2.2
dc:creator
§5.5.3.2.3
dc:date
§5.5.3.2.4
dc:identifier
§5.5.3.1.1
dc:language
§5.5.3.1.3
dc:subject
§5.5.3.2.5
dc:title
§5.5.3.1.2
dc:type
§5.5.3.2.6
dcterms:modified
§5.5.5
EncryptedData
§4.2.6.3.2.1
EncryptedKey
§4.2.6.3.2.1
encryption
§4.2.6.3.2.1
EPUB conformance checker
§1.4
EPUB container
§1.4
EPUB content document
§1.4
EPUB creator
§1.4
EPUB manifest
§1.4
EPUB navigation document
§1.4
EPUB publication
§1.4
EPUB reading system
§1.4
EPUB spine
§1.4
epub:type
§C.2
exempt resource
§1.4
file name
§1.4
file path
§1.4
fixed-layout document
§1.4
foreign content document
§1.4
foreign resource
§1.4
head
§9.2.2.2
item
§5.6.2
itemref
§5.7.2
link
§5.5.6
linked resource
§1.4
links
§4.2.6.3.1.4
manifest
§5.6.1
manifest fallback chain
§3.5.1
manifest plane
§3.1.1
media overlay document
§1.4
meta
§5.5.4
metadata
§5.5.1
non-codec
§1.4
OCF abstract container
§1.4
OCF ZIP container
§1.4
package
§5.4
package document
§1.4
par
§9.2.2.6
publication resource
§1.4
remote resource
§1.4
root directory
§1.4
rootfile
§4.2.6.3.1.3
rootfiles
§4.2.6.3.1.2
scripted content document
§1.4
seq
§9.2.2.5
signatures
§4.2.6.3.6.1
smil
§9.2.2.1
spine
§5.7.1
spine plane
§3.1.2
SVG content document
§1.4
synthetic spread
§1.4
text
§9.2.2.7
top-level content document
§1.4
unique identifier
§1.4
valid-relative-ocf-URL-with-fragment string
§4.2.5
value
§5.5.2
viewport
§1.4
XHTML content document
§1.4
J.2
Terms defined by reference
BCP47
] defines the following:
well-formed language tag
BIDI
] defines the following:
base direction
CHARMOD-NORM
] defines the following:
Unicode Canonical Case Fold Normalization Step
CSS-TEXT-3
] defines the following:
hyphens property
line-break property
text-align-last property
text-transform property
word-break property
CSS-TEXT-DECOR-3
] defines the following:
text-emphasis-color property
text-emphasis-position property
text-emphasis-style property
text-underline-position property
CSS-WRITING-MODES-3
] defines the following:
direction property
text-combine-upright property
text-orientation property
unicode-bidi property
writing-mode property
CSS2
] defines the following:
number
DOM
] defines the following:
child text content
EPUB-A11Y-11
] defines the following:
EPUB Accessibility
EPUB-MULTI-REND-11
] defines the following:
creating multiple renditions
EPUB-OVERVIEW-33
] defines the following:
EPUB 3 Overview
Rendering and CSS
EPUB-RS-33
] defines the following:
Core media types
EPUB 3 Reading Systems
epubReadingSystem object
fixed-layout documents
Navigation document processing
processing
reading system support requirements for fonts
reflowable documents set to scroll
Scripting
security and privacy section
table reading mode
unique origin requirement
virtual in nature
EPUB-SSV-11
] defines the following:
aside
bodymatter
endnote
figure
footnote
landmarks
list
page-list
pagebreak term
table
toc
EPUB-TTS-10
] defines the following:
EPUB 3 Text-to-Speech Support
HTML
] defines the following:
element
area
element
audio
base
element
bdo
element
body
canvas
element
content
attribute (for
meta
element)
data blocks
depends on
dir
attribute (for
html-global
element)
div
element
document base URL
embed
element
embedded content
flow content
form
element
h1-h6
head
hidden
attribute (for
html-global
element)
href
attribute (for
element)
html
element
HTML alternate keyword
HTML standard
iframe
element
img
element
li
element
link
media element
meta
metadata content
microdata attributes
name
attribute (for
meta
element)
nav
element
object
type
ol
element
origin
palpable content
phrasing content
picture
element
restrictions on SVG
role
attribute
rp
element
script
element
source
element
span
element
src
attribute (for
source
element)
src
attribute (for
img
element)
srcset
attribute (for
source
element)
srcset
attribute (for
img
element)
top-level browsing context
track
element
type
attribute (for
source
element)
vendor-neutral extensions
video
element
video
web storage
XML syntax
INFRA
] defines the following:
concatenation
definition of whitespace
HTML namespace
list
prepend (for
list
scalar value strings
strip and collapse ascii whitespace
strip leading and trailing ascii whitespace
INTERNATIONAL-SPECS
] defines the following:
"Truncating or limiting the length of strings"
JSON-LD11
] defines the following:
linked data
MATHML3
] defines the following:
Content MathML
Presentation MathML
RFC2397
] defines the following:
data: URL scheme
RFC8089
] defines the following:
file: URL scheme
SMIL3
] defines the following:
clock value
SVG
] defines the following:
renderable elements
svg
element
title
element
UAAG20
] defines the following:
Guideline 1.4 - Provide text configuration
URL
] defines the following:
absolute-url string
absolute-url-with-fragment string
base
domain
double-dot URL path segments
path-relative-scheme-less-url string
percent encoded
relative-url string
relative-URL-with-fragment strings
URL
url parser
URL Serializer
url-fragment string
valid URL string
XML
] defines the following:
2.12 Language Identification
document type declaration
external entity
external identifier
ID
IDREF
public
root element
section 2.3 of the XML 1.0 specification
system identifiers
whitespace characters
whitespace normalization
XML-NAMES
] defines the following:
Conformance of Documents
prefixed
XMLDSIG-CORE
] defines the following:
Section 6.6.4
XMLDSIG-CORE1
] defines the following:
Section 2
XMLENC-CORE1
] defines the following:
Section 2.2.1
K.
Change log
This section is non-normative.
Note that this change log only identifies substantive changes since
EPUB 3.2
— those that may affect the conformance of
EPUB publications
For a list of all issues addressed, refer to the
Working Group's issue tracker
Substantive changes since the
Recommendation
of 2023-05-25
16-July-2024: Fixed the definition of whitespace allowed in viewport meta tags to refer to the
characters allowed by the XML standard. See
issue 2637
25-July-2023: Updated where the
epub:type
is allowed on SVGs to use the definition
of a renderable element. See
issue
2556
25-July-2023: Clarified the definitions of embedded SVGs and moved the restriction on where the
epub:type
attribute is allowed to apply so it applies to all SVG definitions.
See
issue 2555
Substantive changes since the
Candidate Recommendation
of 2023-02-21
17-March-2023: replaced the deprecated JavaScript attribute
name
by
hasFeature
in an example. See
issue 2543
Substantive changes since the
Candidate Recommendation
of 2022-05-12
11-Jan-2023: Marked the
dir
attribute under-implemented due to lack of support in
reading systems. See
pull request
2515
09-Jan-2023: Fixed incorrect OPUS media type. See
issue 2516
05-Jan-2023: Removed the precedence rules for linked records as reading systems do not support
their processing. See
pull request
2512
16-Dec-2022: Clarified that the special files for processing the OCF container are not listed in
the manifest, so the restriction that the manifest only list publication resources is not
needed. See
pull request 2506
12-Dec-2022: Clarified that fixed layout height and width declarations must be in the first
viewport meta
tag. See
pull request 2503
08-Dec-2022: Removed the
acquire
and
xmp
properties after finding no
evidence these are used by publishers or reading systems. See
issue 2489
29-Nov-2022: Clarified that data URLs are not unique publication resources, and not allowed in
the package document, but are subject to fallback requirements. See
issue 2485
29-Nov-2022: Clarified the
epub:type
attribute is not allowed on the
head
element and metadata content in XHTML content documents. See
issue 2486
17-Nov-2022: Updated file paths and names to identify that they are scalar value strings in the
OCF abstract container, not just case sensitive. See
issue 2461
11-Nov-2022: Added caution about reading systems not retaining HTML element-based rendering
instructions in navigation document elements. See
issue 2477
02-Nov-2022: Removed the restriction on deprecated characters in the Tags and Variation
Selectors Supplement and replaced with a general note to avoid the use of characters already
deprecated by the Unicode standard, as the list changes over time. See
issue 2469
20-Oct-2022: Removed requirement to encode file names in abstract container in UTF-8 as it is
not possible in the abstract and is already covered by a ZIP container requirement. See
issue 2461
17-Oct-2022: Added recommendation against using spaces in file paths and names. See
issue 2458
15-Oct-2022: Allow properties without values in
viewport meta
tag definition. See
pull request 2457
11-Oct-2022: Added additional requirement that
viewport meta
height and width not
be declared multiple times. See
issue
2442
21-Sept-2022: Made the requirement to declare property prefixes explicit. See
issue 2438
19-Sept-2022: Removed minor contradictions in the
epub:type
attribute usage
definitions. See
issue 2434
14-Sept-2022: Combined the legacy feature section into the package document definition. See
issue 2423
14-Sept-2022: Clarified that the
href
attribute in the package document must not be
used to reference other package document elements (i.e., to indirectly reference a resource via
its manifest or spine entry). See
issue
2420
14-Sept-2022: Re-establish that empty reference and property values are not valid to ensure that
metadata properties do not consist only of prefixes. See
issue 2417
14-Sept-2022: Added a new section for expressing all the primary navigation document content
requirements. See
issue 2421
7-Sept-2022: Added clarifying requirement that the manifest only list publication resources. See
issue 2413
28-Aug-2022: Added a note to Media Overlays
text
element definition regarding using
embedded timed media. See
issue
2397
02-Aug-2022: Updated the media type registrations, following the
official IANA
review comments
on updating the previous registrations. See
issue 1398
28-July-2022: The restrictions on the elements where
epub:type
may be used has been
made explicit. See
issue 2377
18-July-2022: The viewport
meta
element for specifying the initial containing
boundary in fixed-layout documents is now formally defined. See
issue 2292
14-July-2022: Clarified that the markup in the SVG
title
element is restricted to
HTML elements. See
issue 2355
10-June-2022: Clarified that data blocks are exempt from fallback requirements. See
issue 2331
07-June-2022: The usage of File URLs has been disallowed. See
issue 2324
07-June-2022: Media type registration sections are now normative. See
issue 2313
07-June-2022: Updated privacy and security recommendations to use normative language. See
pull request 2297
27-May-2022: Added recommendation to only reference remote resources via https. See
issue 2263
20-May-2022: Add recommendation not to store sensitive user data in persistent storage, and to
encrypt it if there is no other choice. See
issue 2264
17-May-2022: Added an index of terms. See
issue 2260
Substantive changes since
EPUB
3.2
12-Apr-2022: Added note about complexities of escaping from nested escapable structures and
updated the list of semantics to use for escaping to match the guidance. See
issue 2221
6-Apr-2022: Removed the restrictions on the value of the
authority
property and
added a note referencing the old
IDPF
registry. See
issue 2200
31-Mar-2022: Removed the restriction on deprecated MathML features and added a general caution
that any technology may make changes that can cause an EPUB publication to become invalid. See
issue 2118
31-Mar-2022: Reformulated custom attributes as a content authoring feature and added a new
section on custom rendering properties. See
issue 2134
25-Mar-2022: Fixed conflicting statements about the requirement for semantics in media overlay
documents and clarified requirements for skippability and escapability. See
issue 2066
22-Mar-2022: Removed the recommendation that reading systems recognize the built-in
collection-type
values and replaced with a note about enabling improved handling of related
content. See
issue 2071
21-Mar-2022: Add a tolerance of one second for the sum of the individual media overlay docuemnts
matching the total duration. See
issue
2093
17-Mar-2022: Deprecate the creation of new collection types. See
issue 2060
17-Mar-2022: Removed dated requirements on the use of
epub:type
that suggest
equivalence with ARIA roles. See
issue
2070
16-Mar-2022: Add new section on conformance checking and definition for EPUB conformance
checker. See
pull request 2025
14-Mar-2022: Renamed the term "valid-relative-container-URL-with-fragment" to
"valid-relative-ocf-URL-with-fragment string". See
issue 2076
09-Mar-2022: Restore requirement that valid-relative-container-URL-with-fragment strings resolve
to resources in the OCF abstract container. See
issue 2024
09-Mar-2022: Added NCX doctype to allowed external identifiers. See
issue 2045
08-Mar-2022: Require use of the fixed layout property values defined in this specification. See
issue 2039
08-Mar-2022: Clarified that the refines attribute must not be used with global fixed layout
property declarations. See
issue
2036
07-Mar-2022: Consolidated the usage requirements for manifest properties into a new Resource
Properties section. See
issue
2030
05-Mar-2022: Forbid circular references and self-references in refinement chains. See
issue 2031
19-Feb-2022: Clarified the
audio
element's definition by making it optional and adapted the
specification's text elsewhere to address the situation when the element is indeed not present.
See
issue 1986
04-Feb-2022: Expanded the section on security and privacy to include new sections on the threat
model for EPUB publications and additional recommendations for ensuring security and privacy.
See
issue 1871
issue 1872
issue 1875
and
issue 1876
21-Jan-2022: term "risky", used for the class of unsupported features, has been renamed to
"under-implemented". See the
WG resolution
08-Dec-2021: The
page-spread-center
property is now an alias for
spread-none
. See
issue
1929
03-Dec-2021: Added a new risky class for unsupported features. See
issue 1944
03-Dec-2021: Remove the element-based restrictions on remote resources. See
issue 1913
01-Dec-2021: Deprecated the use of
page-spread-center
. It is now an alias for
spread-none
. See
issue
1929
26-Nov-2021: A requirement and an algorithm to detect out-of-container URLs has been added to
the specification. See
issue
1912
18-Nov-2021: Change to only disallow deprecated characters in the Tags and Variation Selectors
Supplement. See
issue 1885
12-Nov-2021: Change the recommendation to use SHA-1 to encrypt the obfuscation key to a
requirement. See
issue 1873
12-Nov-2021: Restrict the obfuscation algorithm to fonts and add caution to use better
protection methods whenever possible. See
issue 1873
12-Nov-2021: Removed the statement about rights.xml being reserved for future standardization of
DRM information. See
issue 1874
10-Nov-2021: Proper definition of the content URL and handling of relative URLs. See
issue 1374
and
issue 1888
29-Oct-2021: Recommended that EPUB creators not use path-absolute-URL strings for referencing
resources due to the lack of a consistent root. See
issue 1681
18-Oct-2021: Clarified the contexts from which remote resources may be referenced. See
issue 1857
12-Oct-2021: The Structure Semantics Vocabulary has been moved into a separate Working Group
Note. See
issue 1763
27-Aug-2021: Add clarifications for including landmarks, such as limiting the number,
recommending known semantics, and ensuring the labels are human readable. Also added
recommendation to not include nested lists to match the page list. See
issue 1761
22-July-2021: Clarified TTS handling of images in media overlays. See
issue 1745
09-July-2021: Restored the custom attributes section due to known usage but without reference to
the attribute registry. See
issue
1602
09-July-2021: Added the "Relationship to URL" section to explain the use of URL standard
terminology in this document relative to resource formats that do not reference it. See
issue 1726
05-July-2021: Removed the section on private use area characters from the XHTML restrictions.
The issues are more complex than what is covered and not in scope of EPUB to define. See
issue 1732
28-June-2021: Added a note discouraging EPUB creators from referencing resources outside the
directory containing the package document to avoid interoperability issues. See
issue 1687
23-June-2021: Added the
base
element to the list of discouraged XHTML constructs.
See
issue 1699
18-June-2021: Moved requirements for authoring SSML, PLS lexicons and CSS 3 Speech to the
EPUB 3 Text-to-Speech Enhancements
note. The
ability to use these technologies in EPUB 3 publications remains unchanged. See
issue 1690
16-June-2021: Absolute URLs with
file
scheme should not be used on manifest items.
See
issue 1688
31-May-2021: Require Unicode normalization and full case folding (in this order) for file name
uniqueness comparisons. See
issue
1631
and
pull request
1648
31-May-2021: Confirmed that SVG content documents do not have to be valid to the SVG
specification, only meet the well-formedness and ID requirements currently referenced and the
restrictions imposed by this specification. See
issue 1323
12-May-2021: Clarified that manifest items must not contain fragment identifiers. See
issue 1303
12-May-2021: Changed all references to URIs/IRIs to URLs and references to RFCs 3986 and 3987 to
the URL standard. See
issue 808
08-May-2021: Added clarifying text that
link
element can be used to link individual
metadata properties in an alternative format. See
issue 1666
06-May-2021: Noted that the working group will no longer maintain the publication type and
collection role registries and removed dependence on the latter for validating collection types
(use of NMToken values remains restricted to extension specifications). The registry of
authority codes is now integrated into the property definition. See
pull request 1664
06-May-2021: Added
application/ecmascript
as a core media type for scripts. See
issue 1353
06-May-2021: Added new section on fragment identifiers to media overlays and now recommend HTML
target element references and SVG fragment identifiers instead of requiring conformance to the
incompatible XPointer Shorthand syntax. See
issue 1586
28-Apr-2021: Drop requirement for resources referenced from HTML
link
elements to
have core media type fallbacks. See
issue 1312
22-Apr-2021: The usage of UTF-16 for CSS and XML has been changed, UTF-8 is the recommended
encoding. See
issue 1628
19-Apr-2021: The use of custom attributes in EPUB content documents is no longer supported. See
issue 1602
13-Apr-2021: Require path names in OCF to also be UTF-8 encoded. See
issue 1630
12-Apr-2021: Added a reference to the SVG
direction
attribute in
6.3.1.2
CSS requirements
. See
issue
1614
09-Apr-2021: Added a new section dedicated to accessibility in EPUB publications.
04-May-2021: Removed requirements around SVG
requiredExtensions
attribute. See
issue 1087
26-Mar-2021: Removed requirement for page list ordering to reflect the order of page breaks in
the content. See
issue 1500
26-Mar-2021: Allowed
dc:creator
and
dc:contributor
elements to have
multiple roles and allowed roles for
publisher
. See
issue 1129
and
issue 1583
23-Mar-2021: Clarified the requirements for the use of data URLs in EPUB publications. See
issue 1564
17-Mar-2021: Include non characters at the end of the supplementary planes in list of characters
not allowed in file names. See
issue
1538
15-Mar-2021: Removed the normative dependencies on XML schemas and added element and attribute
definitions for the
container.xml
encryption.xml
and
signatures.xml
files. All schemas are considered non-normative. See
issue 1566
10-Mar-2021: Require that resources referenced from an EPUB publication not be located in the
META-INF
directory. See
issue 1205
08-Mar-2021: The fix for
issue 1322
on 20-Jan-2021 incorrectly mentioned EPUB content documents having durations. Corrected to media
overlay documents.
08-Mar-2021: Added recommendation that
refines
attribute use fragment identifiers
to reference publication resources. See
issue 1361
08-Mar-2021: Change requirement that media overlay document
par
and
seq
ordering match the default reading order to guidance. See
issue 1458
05-Mar-2021: Clarified that whitespace within metadata element values is collapsed per the
infra
] specification definition. See
issue 1528
26-Feb-2021: Created a new section for describing general metadata value requirements,
specifically whitespace handling. See
issue 1528
17-Feb-2020: File extension recommendations have been removed (affects the package document,
XHTML content documents, media overlay documents). See
issue 1294
15-Feb-2021: Clarified that
nav
elements without an
epub:type
attribute are not subject to the EPUB navigation document's content model restrictions. See
issue 976
10-Feb-2021: A first draft of the
security and privacy
section
has been added.
04-Feb-2021: Clarify that the value of
dc:language
elements must be well-formed
language tags. See
issue 1325
02-Feb-2021: Added
auto
value for
dir
attribute and clarified the
precedence of the attribute. See
issue
1491
and
issue 1494
02-Feb-2021: Added the
hreflang
attribute to
link
elements to identify
the language of linked resources. See
issue 1488
20-Jan-2021: Clarified that user-defined media overlay style classes must be declared in the
package document metadata. See
issue
1319
20-Jan-2021: Add recommendation that the sum of the media overlay durations for each EPUB
content document match the total duration specified for the EPUB publication. See
issue 1322
20-Jan-2021: Clarified that the
epub:type
attribute does not improve the
accessibility of publications. Added pointers to the
role
attribute and the
DPUB-ARIA vocabulary for accessibility.
13-Jan-2021: The requirement for progressive enhancement with spine-level scripting has been
changed to a recommendation that top-level content documents remain consumable when scripting is
not available. See
issue 1444
24-Dec-2020: The specification no longer refers to a release identifier, but the requirement to
include a last modification date remains for backwards compatibility. See
issue 1440
16-Dec-2020: Terminology and requirements related to "renditions" of an EPUB publication have
been simplified to improve the readability of the specifications (i.e., to align with the
generally understood concept that an EPUB publication has only a single rendering described by a
single package document). These changes do not affect the ability to include multiple
renditions, which are now more fully covered in [
epub-multi-rend-11
]. See
issue 1436
14-Nov-2020: The term "semantic inflection" is no longer used to describe the process of adding
structural semantics to elements. The term is not widely understood outside of EPUB and is
unnecessarily complex. The specification now simply refers to "expressing" or "adding"
structural semantics.
09-Nov-2020: The requirement that the ordering of the
toc nav
match the ordering of
EPUB content documents in the spine, and the elements within each file, has been reduced to a
recommendation. See
issue 1283
06-Nov-2020: Clarified that HTML
script
elements that contain
data blocks are not instances of scripting
. See
issue 1352
06-Nov-2020: Added WebP to the
image core media types
. See
issue 1344
06-Nov-2020: A
restricted set of external identifiers
are
now allowed in publication resources.
References to external
entities
from the internal DTD subset remain restricted, however. See
issue 1338
12-Oct-2020: Added OPUS to the
audio core media types
with a
warning that it is still subject to review depending on support in Mac/iOS. See
issue 645
30-Sept-2020: The structure of the EPUB core specifications has been simplified to ease
understanding and access to information. This specification now consolidates the authoring
requirements from the EPUB 3.2 specification together with the Packages, Content Documents, OCF
and Media Overlays specifications. A separate document, EPUB Reading Systems 3.3, consolidates
the reading system requirements from those documents.
L.
Acknowledgements
This section is non-normative.
Specifications, like art, are human creations. No human has done more for EPUB than Garth Conboy, who has
been there every step of the way, from the very first OEB 1.0 in 1999 to today's EPUB 3.3. None of this
would have happened without Garth's vision, knowledge, and preternatural good nature. We dedicate EPUB 3.3 to his memory.
We are forever in your debt, Garth.
The following members of the EPUB 3 Working Group contributed to the development of this specification:
Shadi Abou-Zahra (Amazon)
Will AWAD (Newgen Knowledgeworks)
Noel Ray Barron (Apple Inc.)
Sofia Bautista (Legible Media Inc.)
Leah Brochu (National Network for Equitable Library Service)
Matthew C. Chan (House of Anansi Press)
Yu-Wei Chang (Taiwan Digital Publishing Forum)
Juan Corona (Legible Media Inc.)
Dave Cramer (
W3C
Invited Expert, chair)
Romain Deltour (DAISY Consortium)
Marisa DeMeglio (DAISY Consortium)
Brady Duga (Google LLC)
Reinaldo Ferraz (NIC.br - Brazilian Network Information Center)
Symon Flaming (Rakuten Group, Inc.)
John Foliot (
W3C
Invited Expert)
Teenya Franklin (Pearson plc)
Hadrien Gardeur (EDRLab)
Matt Garrish (DAISY Consortium)
Jen Goulden (Crawford Technologies)
David Hall (Apple Inc.)
Ivan Herman (
W3C
, staff contact)
Tetsu Hoshino (Kodansha, Publishers, Ltd.)
jasen huang (ByteDance)
Norikazu Ishizu (Kadokawa Corporation)
Norihito IYENAGA (Kodansha, Publishers, Ltd.)
Rick Johnson (VitalSource Technologies)
Ken Jones (Circular Software)
Antonio Kamiya (Dentsu Group Inc.)
Deborah Kaplan (
W3C
Invited Expert)
Bill Kasdorf (Book Industry Study Group)
Hiroshi Kawada (MEDIA DO Co., Ltd.)
George Kerscher (DAISY Consortium)
Kazuhito Kidachi (Mitsue-Links Co., Ltd.)
Masakazu Kitahara (Voyager Japan, Inc.)
Toshiaki Koike (Voyager Japan, Inc.)
Ryo Kuroda (ACCESS CO., LTD.)
Charles LaPierre (Benetech)
Dan Lazin (Google LLC)
Philippe Le Hegaret (
W3C
Laurent Le Meur (EDRLab)
YuYu Lin (Taiwan Digital Publishing Forum)
Farrah Little (National Network for Equitable Library Service)
Victor Lopes (Apple Inc.)
Karan Malhotra (Newgen Knowledgeworks)
Makoto Murata (DAISY Consortium)
Cristina Mussinelli (Fondazione LIA)
Yoichiro Nagao (Kodansha, Publishers, Ltd.)
Theresa O'Connor (Apple Inc.)
Yoshinori Ohmura (SHUEISHA Inc.)
Rachel Osolen (National Network for Equitable Library Service)
Gregorio Pellegrino (Fondazione LIA)
Vijaya Gowri Perumal (Newgen Knowledgeworks)
Wendy Reid (Rakuten Group, Inc., chair)
John Roque (Apple Inc.)
Leonard Rosenthol (Adobe)
Shinobu Sato (Kadokawa Corporation)
Ben Schroeter (Pearson plc)
Daihei Shiohama (MEDIA DO Co., Ltd.)
Tzviya Siegman (Wiley)
Avneesh Singh (DAISY Consortium)
MOTOI SUZUKI (SHUEISHA Inc.)
Yutaka Suzuki (Kadokawa Corporation)
Kyrce Swenson (Pearson plc)
Shinya Takami (Kadokawa Corporation, chair)
Mateus Teixeira (W. W. Norton & Company)
Yukio Tomikura (Kodansha, Publishers, Ltd.)
Aimee Ubbink (Crawford Technologies)
xinyuan wang (ByteDance)
Daniel Weck (DAISY Consortium)
Fuqiao Xue (
W3C
Evan Yamanishi (W. W. Norton & Company)
Osamu Yoshiba (Kodansha, Publishers, Ltd.)
Junichi Yoshii (Kodansha, Publishers, Ltd.)
Naomi Yoshizawa (
W3C
Laurence Zaysser (EDRLab)
M.
References
M.1
Normative references
[bcp47]
Tags for Identifying Languages
. A. Phillips, Ed.; M. Davis, Ed. IETF. September 2009. Best Current Practice. URL:
[bidi]
Unicode Bidirectional Algorithm
. Manish Goregaokar मनीष गोरेगांवकर; Robin Leroy. Unicode Consortium. 13 August 2025. Unicode Standard Annex #9. URL:
[charmod-norm]
Character Model for the World Wide Web: String Matching
. Addison Phillips et al. W3C. 11 August 2021. W3C Working Group Note. URL:
[css-text-3]
CSS Text Module Level 3
. Elika Etemad; Koji Ishii; Florian Rivoal. W3C. 30 September 2024. CRD. URL:
[css-text-decor-3]
CSS Text Decoration Module Level 3
. Elika Etemad; Koji Ishii. W3C. 5 May 2022. CRD. URL:
[css-writing-modes-3]
CSS Writing Modes Level 3
. Elika Etemad; Koji Ishii. W3C. 10 December 2019. W3C Recommendation. URL:
[css2]
Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification
. Bert Bos; Tantek Çelik; Ian Hickson; Håkon Wium Lie. W3C. 7 June 2011. W3C Recommendation. URL:
[csssnapshot]
CSS Snapshot
. URL:
[datetime]
Date and Time Formats
. Misha Wolf. W3C. 27 August 1998. W3C Working Group Note. URL:
[dcterms]
DCMI Metadata Terms
. DCMI Usage Board. DCMI. 20 January 2020. DCMI Recommendation. URL:
[dom]
DOM Standard
. Anne van Kesteren. WHATWG. Living Standard. URL:
[ecmascript]
ECMAScript Language Specification
. Ecma International. URL:
[epub-a11y-11]
EPUB Accessibility 1.1
. George Kerscher; Matt Garrish; Charles LaPierre; Avneesh Singh; Gregorio Pellegrino. W3C. 17 October 2024. W3C Recommendation. URL:
[epub-rs-33]
EPUB Reading Systems 3.3
. Ivan Herman; Matt Garrish; Dave Cramer. W3C. 17 October 2024. W3C Recommendation. URL:
[epub-ssv-11]
EPUB 3 Structural Semantics Vocabulary 1.1
. Ivan Herman; Matt Garrish. W3C. 28 August 2025. W3C Working Group Note. URL:
[epubcontentdocs-301]
EPUB Content Documents 3.0.1
. Markus Gylling; William McCoy; Elika J. Etimad; Matt Garrish. IDPF. 26 June 2014. URL:
[epubpackages-32]
EPUB Packages 3.2
. Matt Garrish; Dave Cramer. EPUB 3 Community Group. 08 May 2019. URL:
[epubpublications-30]
EPUB Publications 3.0
. Markus Gylling; William McCoy; Matt Garrish. IDPF. 11 October 2011. URL:
[epubpublications-301]
EPUB Publications 3.0.1
. Markus Gylling; William McCoy; Matt Garrish. IDPF. 26 June 2014. URL:
[fips-180-4]
FIPS PUB 180-4: Secure Hash Standard (SHS)
. U.S. Department of Commerce/National Institute of Standards and Technology. August 2015. National Standard. URL:
[geolocation]
Geolocation
. Marcos Caceres; Reilly Grant. W3C. 29 October 2025. W3C Recommendation. URL:
[gif]
Graphics Interchange Format
. CompuServe Incorporated. 31 July 1990. URL:
[html]
HTML Standard
. Anne van Kesteren; Domenic Denicola; Dominic Farolino; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL:
[html-rdfa]
HTML+RDFa 1.1 - Second Edition
. Manu Sporny. W3C. 17 March 2015. W3C Recommendation. URL:
[infra]
Infra Standard
. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL:
[iso8601-1]
Date and time — Representations for information interchange — Part 1: Basic rules. ISO 8601-1:2019.
. International Organization for Standardization (ISO). 2019. ISO 8601-1:2019. URL:
[jpeg]
JPEG File Interchange Format
. Eric Hamilton. C-Cube Microsystems. Milpitas, CA, USA. September 1992. URL:
[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:
[mp3]
Information technology — Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s — Part 3: Audio
. ISO/IEC. August 1993. Published. URL:
[mp4]
Information technology — Coding of audio-visual objects — Part 14: MP4 file format
. ISO/IEC. January 2020. Published. URL:
[mpeg4-audio]
Information technology — Coding of audio-visual objects — Part 3: Audio
. ISO/IEC. December 2019. Published. URL:
[onix]
ONIX for Books 3.0
. URL:
[opentype]
OpenType specification
. Microsoft. URL:
[opf-201]
Open Packaging Format 2.0.1
. IDPF. 04 September 2010. URL:
[png]
Portable Network Graphics (PNG) Specification (Third Edition)
. Chris Lilley; Leonard Rosenthol; Pierre-Anthony Lemieux; Chris Needham; Simon Thompson; Chris Seeger; Chris Blume; Cosmin Truta. W3C. 24 June 2025. W3C Recommendation. URL:
[push-api]
Push API
. Marcos Caceres; Kagami Rosylight. W3C. 1 December 2025. W3C Working Draft. URL:
[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:
[rfc2046]
Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types
. N. Freed; N. Borenstein. IETF. November 1996. Draft Standard. URL:
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels
. S. Bradner. IETF. March 1997. Best Current Practice. URL:
[rfc2397]
The "data" URL scheme
. L. Masinter. IETF. August 1998. Proposed Standard. URL:
[rfc4329]
Scripting Media Types
. B. Hoehrmann. IETF. April 2006. Informational. URL:
[rfc7303]
XML Media Types
. H. Thompson; C. Lilley. IETF. July 2014. Proposed Standard. URL:
[rfc7845]
Ogg Encapsulation for the Opus Audio Codec
. T. Terriberry; R. Lee; R. Giles. IETF. April 2016. Proposed Standard. URL:
[rfc8089]
The "file" URI Scheme
. M. Kerwin. IETF. February 2017. Proposed Standard. URL:
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words
. B. Leiba. IETF. May 2017. Best Current Practice. URL:
[rfc9110]
HTTP Semantics
. R. Fielding, Ed.; M. Nottingham, Ed.; J. Reschke, Ed. IETF. June 2022. Internet Standard. URL:
[rfc9649]
WebP Image Format
. J. Zern; P. Massimino; J. Alakuijala. IETF. November 2024. Informational. URL:
[smil3]
Synchronized Multimedia Integration Language (SMIL 3.0)
. Dick Bulterman. W3C. 1 December 2008. W3C Recommendation. URL:
[svg]
SVG
. W3C. URL:
[truetype]
TrueType™ Reference Manual
. Apple, Inc. URL:
[uax15]
Unicode Normalization Forms
. Ken Whistler. Unicode Consortium. 30 July 2025. Unicode Standard Annex #15. URL:
[unicode]
The Unicode Standard
. Unicode Consortium. URL:
[url]
URL Standard
. Anne van Kesteren. WHATWG. Living Standard. URL:
[us-ascii]
"Coded Character Set - 7-bit American Standard Code for Information Interchange", ANSI X3.4, 1986.
[wai-aria]
Accessible Rich Internet Applications (WAI-ARIA)
. W3C. URL:
[woff]
WOFF File Format 1.0
. Jonathan Kew; Tal Leming; Erik van Blokland. W3C. 13 December 2012. W3C Recommendation. URL:
[woff2]
WOFF File Format 2.0
. Vladimir Levantovsky. W3C. 8 August 2024. W3C Recommendation. URL:
[xinclude]
XML Inclusions (XInclude) Version 1.0 (Second Edition)
. Jonathan Marsh; David Orchard; Daniel Veillard. W3C. 15 November 2006. W3C Recommendation. URL:
[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:
[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:
[xmldsig-core]
XML Signature Syntax and Processing (Second Edition)
. Donald Eastlake; Joseph Reagle; David Solo; Frederick Hirsch; Thomas Roessler et al. W3C. 10 June 2008. W3C Recommendation. URL:
[xmldsig-core1]
XML Signature Syntax and Processing Version 1.1
. Donald Eastlake; Joseph Reagle; David Solo; Frederick Hirsch; Magnus Nyström; Thomas Roessler; Kelvin Yiu. W3C. 11 April 2013. W3C Recommendation. URL:
[xmlenc-core1]
XML Encryption Syntax and Processing Version 1.1
. Donald Eastlake; Joseph Reagle; Frederick Hirsch; Thomas Roessler. W3C. 11 April 2013. W3C Recommendation. URL:
[xmlenc-decrypt]
Decryption Transform for XML Signature
. Merlin Hughes; Takeshi Imamura; Hiroshi Maruyama. W3C. 10 December 2002. W3C Recommendation. URL:
[xmlschema-2]
XML Schema Part 2: Datatypes Second Edition
. Paul V. Biron; Ashok Malhotra. W3C. 28 October 2004. W3C Recommendation. URL:
[zip]
.ZIP File Format Specification
. 15 July 2020. Final. URL:
M.2
Informative references
[audiobooks]
Audiobooks
. Wendy Reid; Matt Garrish. W3C. 10 November 2020. W3C Recommendation. URL:
[css-viewport-1]
CSS Viewport Module Level 1
. W3C. URL:
[dpub-aria]
Digital Publishing WAI-ARIA Module
. W3C. URL:
[epub-a11y-tech-11]
EPUB Accessibility Techniques 1.1
. Matt Garrish; George Kerscher; Charles LaPierre; Gregorio Pellegrino; Avneesh Singh. W3C. 13 March 2025. W3C Working Group Note. URL:
[epub-multi-rend-11]
EPUB 3 Multiple-Rendition Publications 1.1
. Matt Garrish. W3C. 28 August 2025. W3C Working Group Note. URL:
[epub-overview-33]
EPUB 3 Overview
. Matt Garrish; Ivan Herman. W3C. 13 March 2025. W3C Working Group Note. URL:
[epub-tts-10]
EPUB 3 Text-to-Speech Enhancements 1.0
. Matt Garrish. W3C. 28 August 2025. W3C Working Group Note. URL:
[fetch]
Fetch Standard
. Anne van Kesteren. WHATWG. Living Standard. URL:
[h264]
H.264 : Advanced video coding for generic audiovisual services
. 2017-04-13. URL:
[international-specs]
Internationalization Best Practices for Spec Developers
. Richard Ishida; Addison Phillips. W3C. 8 August 2025. W3C Working Group Note. URL:
[iso22424]
ISO/IEC TS 22424-1:2020 — Digital publishing — EPUB3 preservation
. 2020-01. URL:
[isoschematron]
ISO/IEC 19757-3: Rule-based validation — Schematron
. 2006-06-01. URL:
[json-ld11]
JSON-LD 1.1
. Gregg Kellogg; Pierre-Antoine Champin; Dave Longley. W3C. 16 July 2020. W3C Recommendation. URL:
[mediaqueries-3]
Media Queries Level 3
. Florian Rivoal. W3C. 21 May 2024. W3C Recommendation. URL:
[nvdl]
ISO/IEC 19757-4: NVDL (Namespace-based Validation Dispatching Language)
. 2006-06-01. URL:
[odf]
Open Document Format for Office Applications (OpenDocument) v1.0
. 1 May 2005. URL:
[relaxng-schema]
Information technology -- Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG
. ISO/IEC. 2008. URL:
[rfc3986]
Uniform Resource Identifier (URI): Generic Syntax
. T. Berners-Lee; R. Fielding; L. Masinter. IETF. January 2005. Internet Standard. URL:
[rfc4839]
Media Type Registrations for the Open eBook Publication Structure (OEBPS) Package File (OPF)
. G. Conboy; J. Rivlin; J. Ferraiolo. IETF. April 2007. Informational. URL:
[rfc6386]
VP8 Data Format and Decoding Guide
. J. Bankoski; J. Koleszar; L. Quillio; J. Salonen; P. Wilkins; Y. Xu. IETF. November 2011. Informational. URL:
[rfc8141]
Uniform Resource Names (URNs)
. P. Saint-Andre; J. Klensin. IETF. April 2017. Proposed Standard. URL:
[uaag20]
User Agent Accessibility Guidelines (UAAG) 2.0
. James Allan; Greg Lowney; Kimberly Patch; Jeanne F Spellman. W3C. 15 December 2015. W3C Working Group Note. URL:
[uax44]
Unicode Character Database
. Ken Whistler. Unicode Consortium. 27 August 2025. Unicode Standard Annex #44. URL:
[wcag2]
Web Content Accessibility Guidelines (WCAG) 2
. W3C. URL:
[webvtt]
WebVTT: The Web Video Text Tracks Format
. Silvia Pfeiffer. W3C. 4 April 2019. W3C Candidate Recommendation. URL:
[xhr]
XMLHttpRequest Standard
. Anne van Kesteren. WHATWG. Living Standard. URL:
[xmlbase]
XML Base (Second Edition)
. Jonathan Marsh; Richard Tobin. W3C. 28 January 2009. W3C Recommendation. URL:
[xmlsec-rngschema-20130411]
XML Security RELAX NG Schemas
. Murata Makoto; Frederick Hirsch. W3C. 11 April 2013. W3C Working Group Note. URL:
Permalink
exported
Referenced in:
§ 4.2.6.3.2.2 Order of compression and encryption
Permalink
exported
Referenced in:
§ 1.4 Terminology
§ 3.1.1 The manifest plane
§ 4.2.1 Introduction
§ 5.6.1 The manifest element
§ H.1 Resources
Permalink
exported
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
(2)
(3)
(4)
(5)
(6)
(7)
§ 4.2.6.2 Parsing URLs in the META-INF directory
Permalink
exported
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
§ 5.2 Parsing URLs in the package document
Permalink
exported
Referenced in:
§ 1.4 Terminology
§ 3.1 Introduction
§ 3.1.3 The content plane
§ 3.2 Core media types
§ 3.4 Exempt resources
§ 3.5.1 Manifest fallbacks
§ 3.5.2.2 HTML img fallbacks
§ 3.6 Resource locations
§ 3.7 Data URLs
§ 3.9 XML conformance
§ 5.6.2 The item element
§ 6.1.1 Introduction
§ 6.2.1 Introduction
§ H.1 Resources
Permalink
exported
Referenced in:
§ 1.3 Relationship to other specifications
§ 2.1 Conformance checking
§ 3.4 Exempt resources
§ 4.2.3 File paths and file names
§ 5.9.2 Support
§ A.1 Under-implemented features
§ A.2 Deprecated features
§ D.1.5 Reserved prefixes
Permalink
exported
Referenced in:
§ 1.4 Terminology
(2)
(3)
(4)
(5)
§ 2. EPUB publication conformance
§ 3.1.2 The spine plane
§ 3.4 Exempt resources
§ 3.6 Resource locations
§ 4.2.5 URLs in the OCF abstract container
§ 4.2.6.3.1.2 The rootfiles element
§ 4.2.6.3.1.3 The rootfile element
§ 5.5.6 The link element
§ 5.6.2.2 Examples
§ 7.3 The nav element: restrictions
§ 11.2 Threat model
§ D.6.4 remote-resources
§ H.1 Resources
Permalink
exported
Referenced in:
§ 1.4 Terminology
§ 4.2.1 Introduction
§ 4.2.2 File and directory structure
§ 4.2.6.3.1.4 The links element
§ 4.2.6.3.2.2 Order of compression and encryption
§ 4.3.1 Introduction
§ 4.3.2 ZIP file requirements
§ 4.3.3 OCF ZIP container media type identification
§ 4.4.1 Introduction
(2)
§ 4.4.2 Limitations
§ 4.4.4 Obfuscation algorithm
§ H.3 Packaged EPUB
Permalink
exported
Referenced in:
§ 1.2 Organization
§ 1.4 Terminology
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
§ 3.1 Introduction
§ 3.1.2 The spine plane
§ 3.1.3 The content plane
§ 3.2 Core media types
§ 3.3 Foreign resources
§ 3.4 Exempt resources
§ 3.5.1 Manifest fallbacks
§ 5.5.6 The link element
§ 5.6.2.2 Examples
(2)
(3)
§ 5.7.1 The spine element
§ 5.7.2 The itemref element
(2)
§ 5.8.1 The collection element
§ 6.3.2.1 Script inclusion
§ 6.3.2.2.1 Container-constrained scripts
§ 6.3.2.4 Scripting accessibility
§ 6.3.2.5 Scripting fallbacks
§ 7.4.2 The toc nav element
§ 7.4.3 The page-list nav element
§ 8.2.1 Introduction
§ 8.2.2.1 Layout
§ 8.2.2.2 Orientation
§ 8.2.2.3 Synthetic spreads
§ 8.2.2.4 Spread placement
(2)
§ 8.3 Reflowable layouts
§ 8.3.1 The rendition:flow property
§ 8.3.2 The rendition:align-x-center property
§ 9.1 Introduction
§ 9.2.1 Media overlay document requirements
§ 9.2.2.4 The body element
§ 9.2.2.5 The seq element
(2)
§ 9.2.2.6 The par element
§ 9.2.2.7 The text element
(2)
§ 9.3.1 Introduction
§ 9.3.2 Relationship to the EPUB content document
§ 9.3.2.1 Overlay structure
§ 9.3.2.2 Referencing document fragments
§ 9.3.2.3 Overlay granularity
§ 9.3.4 Associating style information
§ 9.3.5.1 Including media overlays
§ 9.3.5.2 Overlays package metadata
§ 9.4.2 Escapability
§ 11.2 Threat model
§ C.1 Introduction
§ D.1.1 Introduction
§ D.1.4 The prefix attribute
§ D.5.1 Custom rendering properties
§ D.6.2 mathml
§ D.6.5 scripted
§ D.7.1 page-spread-left
§ D.7.2 page-spread-right
§ D.8.1 active-class
§ D.8.4 playback-active-class
§ H.1 Resources
Permalink
exported
Referenced in:
§ 1.1 Overview
§ 1.2 Organization
§ 1.3 Relationship to other specifications
§ 1.3.1 Relationship to HTML
§ 1.3.2 Relationship to SVG
§ 1.4 Terminology
(2)
(3)
§ 2.1 Conformance checking
§ 3.1.1 The manifest plane
§ 3.1.2 The spine plane
§ 3.1.3 The content plane
§ 3.2 Core media types
§ 3.3 Foreign resources
§ 3.4 Exempt resources
§ 3.5.1 Manifest fallbacks
§ 3.5.2.1 HTML audio and video fallbacks
§ 3.5.2.2 HTML img fallbacks
§ 3.5.2.3 HTML script element
§ 3.6 Resource locations
§ 3.7 Data URLs
§ 3.8 File URLs
§ 4.2.1 Introduction
§ 4.2.2 File and directory structure
§ 4.2.3 File paths and file names
§ 4.2.5 URLs in the OCF abstract container
§ 4.2.6.3.1.3 The rootfile element
§ 4.2.6.3.2 Encryption file (encryption.xml)
§ 4.2.6.3.2.1 The encryption element
§ 4.2.6.3.2.2 Order of compression and encryption
§ 4.2.6.3.4 Metadata file (metadata.xml)
§ 4.2.6.3.5 Rights management file (rights.xml)
§ 4.2.6.3.6.1 The signatures element
§ 4.3.2 ZIP file requirements
§ 4.3.3 OCF ZIP container media type identification
§ 4.4 Font obfuscation
§ 4.4.1 Introduction
§ 4.4.2 Limitations
§ 4.4.3 Obfuscation key
§ 4.4.4 Obfuscation algorithm
§ 4.4.5 Specifying obfuscated fonts
§ 5.3.1 The dir attribute (under-implemented)
§ 5.3.6 The refines attribute
§ 5.5.1 The metadata element
§ 5.5.3.1.1 The dc:identifier element
§ 5.5.3.1.2 The dc:title element
§ 5.5.3.1.3 The dc:language element
§ 5.5.3.2.3 The dc:creator element
§ 5.5.3.2.4 The dc:date element
§ 5.5.3.2.5 The dc:subject element
§ 5.5.3.2.6 The dc:type element
§ 5.5.4 The meta element
§ 5.5.5 Last modified date
§ 5.5.6 The link element
§ 5.6.2 The item element
§ 5.6.2.1 Resource properties
§ 5.6.2.2 Examples
(2)
(3)
(4)
§ 5.7.1 The spine element
§ 5.7.2 The itemref element
§ 5.8.1 The collection element
§ 5.9.1 Introduction
§ 5.9.2 Support
§ 5.9.3 The meta element
§ 6.1.3.1 Structural semantics
§ 6.1.3.2 RDFa
§ 6.1.3.3 Content switching (deprecated)
§ 6.1.4.1 Embedded MathML
§ 6.1.4.3.1 The base element
§ 6.1.4.3.2 The rp element
§ 6.1.4.3.3 The embed element
§ 6.2 SVG content documents
§ 6.2.1 Introduction
§ 6.2.3 Restrictions on SVG
§ 6.3.1.2 CSS requirements
§ 6.3.1.3 Prefixed properties
§ 6.3.2.1 Script inclusion
§ 6.3.2.2 Scripting contexts
§ 6.3.2.2.1 Container-constrained scripts
§ 6.3.2.2.2 Spine-level scripts
§ 6.3.2.3 Event model
§ 6.3.2.5 Scripting fallbacks
§ 7.1 Introduction
§ 7.4.1 Introduction
§ 7.4.2 The toc nav element
§ 7.4.3 The page-list nav element
§ 7.4.4 The landmarks nav element
§ 7.5 Using in the spine
§ 8.1 Introduction
§ 8.2.1 Introduction
§ 8.2.2.1 Layout
§ 8.2.2.1.1 Layout overrides
§ 8.2.2.2 Orientation
(2)
§ 8.2.2.2.1 Orientation overrides
§ 8.2.2.3 Synthetic spreads
§ 8.2.2.3.1 Synthetic spread overrides
§ 8.2.2.4 Spread placement
§ 8.2.2.5 Viewport dimensions (deprecated)
§ 8.3 Reflowable layouts
§ 8.3.1 The rendition:flow property
§ 8.3.1.1 Spine overrides
§ 8.3.2 The rendition:align-x-center property
§ 9.1 Introduction
§ 9.2.2.7 The text element
§ 9.3.1 Introduction
§ 9.3.2 Relationship to the EPUB content document
§ 9.3.2.1 Overlay structure
§ 9.3.2.3 Overlay granularity
§ 9.3.3 Structural semantics in overlays
§ 9.3.4 Associating style information
§ 9.3.5.1 Including media overlays
§ 9.3.5.2 Overlays package metadata
(2)
§ 9.4.1 Skippability
§ 9.4.2 Escapability
§ 9.5 Navigation document overlays
(2)
§ 10. Accessibility
§ 11.1 Overview
§ 11.2 Threat model
§ 11.2.1 EPUB-specific features
§ 11.3 Recommendations
§ A.1 Under-implemented features
§ A.2 Deprecated features
§ B. Allowed external identifiers
§ C.1 Introduction
§ D.1.1 Introduction
§ D.1.2 The property data type
§ D.1.3 Default vocabularies
§ D.1.4 The prefix attribute
(2)
(3)
§ D.1.5 Reserved prefixes
(2)
§ D.2 Property field definitions
§ D.3.3 belongs-to-collection
§ D.3.4 collection-type
§ D.3.7 group-position
§ D.3.8 identifier-type
§ D.3.10 role
§ D.3.13 title-type
§ D.5.1 Custom rendering properties
§ D.8.1 active-class
§ E. Prefixed CSS properties
§ F.1 Introduction
Permalink
exported
Referenced in:
§ 1.4 Terminology
§ 3.1.1 The manifest plane
§ 3.1.2 The spine plane
§ 3.2 Core media types
§ 3.5.1 Manifest fallbacks
§ 3.6 Resource locations
§ 4.2.2 File and directory structure
§ 5.7.2 The itemref element
§ 6.1.4.1 Embedded MathML
§ 6.1.4.2 Embedded SVG
§ 6.3.2.1 Script inclusion
§ 9.3.5.1 Including media overlays
§ 9.3.5.2 Overlays package metadata
§ B. Allowed external identifiers
§ H.1 Resources
Permalink
exported
Referenced in:
§ 1.2 Organization
§ 2. EPUB publication conformance
§ 5.6.2.1 Resource properties
§ 5.7.1 The spine element
§ 5.9.4 The guide element
§ 7.1 Introduction
§ 7.3 The nav element: restrictions
§ 7.4.1 Introduction
§ 7.4.3 The page-list nav element
§ 7.4.4 The landmarks nav element
§ 7.4.5 Other nav elements
§ 7.5 Using in the spine
§ 9.5 Navigation document overlays
§ D.6.3 nav
§ H.1 Resources
Permalink
exported
Referenced in:
§ Abstract
§ 1.1 Overview
§ 1.2 Organization
§ 1.3 Relationship to other specifications
§ 1.3.1 Relationship to HTML
§ 1.3.6 Relationship to URL
§ 1.4 Terminology
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
§ 2. EPUB publication conformance
§ 2.1 Conformance checking
§ 3.1 Introduction
§ 3.1.1 The manifest plane
§ 3.1.2 The spine plane
§ 3.4 Exempt resources
§ 3.8 File URLs
§ 4.1 Introduction
§ 4.2.1 Introduction
§ 4.2.2 File and directory structure
§ 4.2.6.3.1.3 The rootfile element
§ 4.2.6.3.2.1 The encryption element
§ 4.2.6.3.3 Manifest file (manifest.xml)
§ 4.2.6.3.5 Rights management file (rights.xml)
§ 4.2.6.3.6 Digital signatures file (signatures.xml)
§ 4.3.1 Introduction
§ 4.4.1 Introduction
§ 4.4.5 Specifying obfuscated fonts
§ 5.1 Introduction
§ 5.4 The package element
§ 5.5.1 The metadata element
§ 5.5.3.1.1 The dc:identifier element
§ 5.5.3.1.2 The dc:title element
§ 5.5.3.1.3 The dc:language element
§ 5.5.3.2.3 The dc:creator element
§ 5.5.3.2.4 The dc:date element
§ 5.5.3.2.5 The dc:subject element
§ 5.5.3.2.6 The dc:type element
§ 5.5.4 The meta element
§ 5.5.5 Last modified date
§ 5.5.6 The link element
§ 5.7.2 The itemref element
§ 5.8.1 The collection element
§ 5.9.2 Support
§ 6.1.2 XHTML requirements
§ 6.1.4.3.1 The base element
§ 6.2.2 SVG requirements
§ 6.3.2.1 Script inclusion
§ 6.3.2.2.2 Spine-level scripts
§ 6.3.2.3 Event model
§ 7.1 Introduction
§ 7.4.2 The toc nav element
§ 7.4.3 The page-list nav element
§ 8.2.1 Introduction
§ 8.3 Reflowable layouts
§ 8.3.1 The rendition:flow property
§ 8.3.1.1 Spine overrides
§ 9.1 Introduction
§ 9.3.2.4 Text-to-speech rendering
§ 9.3.4 Associating style information
§ 9.3.5.2 Overlays package metadata
§ 10. Accessibility
§ 11.1 Overview
§ 11.2 Threat model
§ 11.3 Recommendations
§ A.2 Deprecated features
§ D.3.3 belongs-to-collection
§ D.3.4 collection-type
§ D.3.7 group-position
§ D.3.11 source-of
§ D.4.1.5 record
§ D.6.1 cover-image
§ D.6.3 nav
§ D.8.2 duration
§ H.1 Resources
§ H.3 Packaged EPUB
§ I.1 The application/oebps-package+xml media type
§ I.2 The application/epub+zip media type
§ K. Change log
Permalink
exported
Referenced in:
§ 1.1 Overview
§ 1.2 Organization
(2)
§ 1.4 Terminology
(2)
§ 3.1.2 The spine plane
§ 3.1.3 The content plane
§ 3.3 Foreign resources
§ 3.4 Exempt resources
§ 3.5.1 Manifest fallbacks
§ 3.5.2.1 HTML audio and video fallbacks
§ 3.6 Resource locations
§ 3.7 Data URLs
§ 4.1 Introduction
§ 4.2.2 File and directory structure
§ 4.2.3 File paths and file names
§ 4.2.5 URLs in the OCF abstract container
§ 4.2.6.3.2.1 The encryption element
§ 4.2.6.3.2.2 Order of compression and encryption
§ 4.2.6.3.6 Digital signatures file (signatures.xml)
§ 4.3.1 Introduction
§ 4.4.2 Limitations
§ 5.1 Introduction
§ 5.3.1 The dir attribute (under-implemented)
§ 5.5.1 The metadata element
§ 5.5.3.1.2 The dc:title element
§ 5.5.3.1.3 The dc:language element
§ 5.5.3.2.3 The dc:creator element
§ 5.5.6 The link element
§ 5.6.1 The manifest element
§ 5.6.2.1 Resource properties
§ 5.6.2.2 Examples
(2)
§ 5.7.1 The spine element
§ 5.7.2 The itemref element
§ 5.9.1 Introduction
§ 5.9.3 The meta element
§ 5.9.4 The guide element
§ 5.9.5 NCX
§ 6.1.3.3 Content switching (deprecated)
§ 6.1.3.5 Custom attributes
§ 6.1.4.1 Embedded MathML
§ 6.1.4.3.1 The base element
§ 6.1.4.3.2 The rp element
§ 6.1.4.3.3 The embed element
§ 6.2 SVG content documents
§ 6.3.1.1 Introduction
§ 6.3.1.2 CSS requirements
§ 6.3.1.3 Prefixed properties
§ 6.3.2.1 Script inclusion
§ 6.3.2.2 Scripting contexts
§ 6.3.2.2.1 Container-constrained scripts
§ 6.3.2.2.2 Spine-level scripts
§ 6.3.2.3 Event model
§ 7.1 Introduction
§ 7.4.4 The landmarks nav element
§ 7.4.5 Other nav elements
§ 7.5 Using in the spine
§ 8.1 Introduction
§ 8.2.1 Introduction
§ 8.2.2.1 Layout
§ 8.2.2.2 Orientation
§ 8.2.2.2.1 Orientation overrides
§ 8.2.2.3 Synthetic spreads
§ 8.2.2.3.1 Synthetic spread overrides
§ 8.2.2.4 Spread placement
§ 8.3.1 The rendition:flow property
§ 9.1 Introduction
§ 9.3.2 Relationship to the EPUB content document
§ 9.3.2.1 Overlay structure
(2)
§ 9.3.2.2 Referencing document fragments
§ 9.3.3 Structural semantics in overlays
§ 9.3.4 Associating style information
§ 9.4.1 Skippability
§ 9.4.2 Escapability
§ 9.5 Navigation document overlays
§ 11.1 Overview
§ 11.2.1 EPUB-specific features
§ 11.3 Recommendations
§ A. Unsupported features
§ A.2 Deprecated features
§ C.1 Introduction
§ C.2 The epub:type attribute
§ D.1.1 Introduction
§ D.3.3 belongs-to-collection
§ D.3.4 collection-type
§ D.3.13 title-type
§ D.4.1.1 alternate
§ D.5.1 Custom rendering properties
§ E. Prefixed CSS properties
Permalink
exported
Referenced in:
§ 1.2 Organization
§ 1.4 Terminology
(2)
(3)
(4)
(5)
§ 3.1 Introduction
§ 3.1.2 The spine plane
§ 3.2 Core media types
§ 3.4 Exempt resources
§ 3.5.1 Manifest fallbacks
§ 3.7 Data URLs
§ 5.5.6 The link element
§ 5.6.2.2 Examples
§ 5.7.2 The itemref element
§ 7.1 Introduction
§ 7.3 The nav element: restrictions
§ 7.4.2 The toc nav element
§ 7.5 Using in the spine
§ 8.2.2.1 Layout
§ 8.2.2.1.1 Layout overrides
§ 8.2.2.2 Orientation
§ 8.2.2.2.1 Orientation overrides
§ 8.2.2.3.1 Synthetic spread overrides
§ 8.2.2.4 Spread placement
§ 8.3.1 The rendition:flow property
§ 8.3.1.1 Spine overrides
§ 8.3.2 The rendition:align-x-center property
§ 9.5 Navigation document overlays
§ D.5 Package rendering vocabulary
§ D.5.1 Custom rendering properties
Permalink
exported
Referenced in:
§ 3.1 Introduction
§ 3.1.3 The content plane
§ 3.4 Exempt resources
§ 3.5.2.1 HTML audio and video fallbacks
§ H.1 Resources
Permalink
exported
Referenced in:
§ 4.2.3 File paths and file names
§ 4.2.4 Deriving file paths
Permalink
exported
Referenced in:
§ 4.2.3 File paths and file names
§ 4.2.5 URLs in the OCF abstract container
Permalink
exported
Referenced in:
§ 6.3.2.2.1 Container-constrained scripts
§ 8.2.1 Introduction
§ 8.2.2.1 Layout
§ 8.2.2.6 Content document dimensions
(2)
(3)
§ F.1 Introduction
§ F.2 Syntax
Permalink
exported
Referenced in:
§ 1.4 Terminology
(2)
(3)
(4)
§ 3.1 Introduction
§ 3.1.2 The spine plane
§ 3.1.3 The content plane
§ 3.2 Core media types
(2)
§ 3.3 Foreign resources
§ 3.4 Exempt resources
§ 3.5.1 Manifest fallbacks
§ 5.6.2.2 Examples
(2)
(3)
§ 5.7.1 The spine element
§ 5.7.2 The itemref element
(2)
§ H.1 Resources
Permalink
exported
Referenced in:
§ 1.4 Terminology
§ 3.1 Introduction
§ 3.1.3 The content plane
§ 3.3 Foreign resources
§ 3.4 Exempt resources
(2)
§ 3.5.1 Manifest fallbacks
§ 3.5.2.1 HTML audio and video fallbacks
§ 3.5.2.2 HTML img fallbacks
§ 3.6 Resource locations
§ 3.9 XML conformance
Permalink
exported
Referenced in:
§ 3.1 Introduction
§ 3.1.1 The manifest plane
§ 5.5.6 The link element
§ 5.6.1 The manifest element
§ H.1 Resources
Permalink
exported
Referenced in:
§ 1.2 Organization
§ 5.6.2 The item element
§ 9.2.1 Media overlay document requirements
§ 9.2.2.1 The smil element
§ 9.2.2.2 The head element
§ 9.2.2.3 The metadata element
§ 9.2.2.4 The body element
§ 9.3.2.1 Overlay structure
§ 9.3.2.3 Overlay granularity
§ 9.3.3 Structural semantics in overlays
(2)
§ 9.3.4 Associating style information
§ 9.3.5.1 Including media overlays
§ 9.3.5.2 Overlays package metadata
§ 9.4.2 Escapability
§ 9.5 Navigation document overlays
§ C.1 Introduction
§ D.1.1 Introduction
§ D.1.4 The prefix attribute
§ D.6.4 remote-resources
§ D.8.2 duration
(2)
§ G.3 Media overlays schema
Permalink
exported
Referenced in:
§ 4.2.6.3.2.2 Order of compression and encryption
Permalink
exported
Referenced in:
§ 1.4 Terminology
(2)
(3)
(4)
§ 4.2.1 Introduction
§ 4.2.2 File and directory structure
§ 4.2.3 File paths and file names
§ 4.2.5 URLs in the OCF abstract container
§ 4.2.6.1 Inclusion in OCF abstract container
§ 4.2.6.2 Parsing URLs in the META-INF directory
§ 4.2.6.3.1 Container file (container.xml)
§ 4.2.6.3.2.1 The encryption element
(2)
§ 4.2.6.3.5 Rights management file (rights.xml)
§ 4.2.6.3.6.1 The signatures element
§ 4.3.1 Introduction
Permalink
exported
Referenced in:
§ 1.2 Organization
§ 1.4 Terminology
(2)
(3)
(4)
(5)
(6)
§ 1.6 Authoring shorthands
(2)
§ 2. EPUB publication conformance
§ 3.1.1 The manifest plane
§ 3.3 Foreign resources
§ 3.5.1 Manifest fallbacks
§ 4.2.1 Introduction
§ 4.2.2 File and directory structure
§ 4.2.5 URLs in the OCF abstract container
§ 4.2.6.3.1 Container file (container.xml)
§ 4.2.6.3.1.2 The rootfiles element
§ 4.2.6.3.1.3 The rootfile element
§ 4.2.6.3.3 Manifest file (manifest.xml)
§ 5.1 Introduction
§ 5.2 Parsing URLs in the package document
§ 5.3.1 The dir attribute (under-implemented)
§ 5.4 The package element
§ 5.5.1 The metadata element
§ 5.5.5 Last modified date
§ 5.6.1 The manifest element
§ 9.3.4 Associating style information
§ 9.3.5.2 Overlays package metadata
§ D.1.1 Introduction
§ D.1.4 The prefix attribute
§ D.1.5 Reserved prefixes
§ D.4.1.1 alternate
§ D.5 Package rendering vocabulary
§ D.5.1 Custom rendering properties
§ D.8 Media overlays vocabulary
§ G.1 Package document schema
§ H.1 Resources
§ H.2 Scripting contexts
Permalink
exported
Referenced in:
§ 1.4 Terminology
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
§ 2. EPUB publication conformance
§ 3.1 Introduction
§ 3.1.1 The manifest plane
§ 3.2 Core media types
§ 3.5.1 Manifest fallbacks
§ 3.6 Resource locations
§ 3.7 Data URLs
§ 3.9 XML conformance
§ 4.2.1 Introduction
§ 4.2.2 File and directory structure
§ 5.1 Introduction
§ 5.3.6 The refines attribute
§ 5.5.3.1.3 The dc:language element
§ 5.5.6 The link element
(2)
(3)
§ 5.6.1 The manifest element
§ 5.6.2 The item element
§ 5.6.2.2 Examples
(2)
§ 5.7.1 The spine element
§ 11.2 Threat model
§ B. Allowed external identifiers
§ D.6.1 cover-image
§ D.6.2 mathml
§ D.6.4 remote-resources
§ D.6.5 scripted
§ D.6.6 svg
§ D.6.7 switch
§ H.1 Resources
§ I.1 The application/oebps-package+xml media type
§ I.2 The application/epub+zip media type
Permalink
exported
Referenced in:
§ 1.4 Terminology
§ 3.1.1 The manifest plane
§ 3.6 Resource locations
(2)
§ 5.6.1 The manifest element
§ 5.6.2.2 Examples
§ 6.1.4.3.1 The base element
§ 11.2 Threat model
(2)
§ 11.3 Recommendations
§ H.1 Resources
Permalink
exported
Referenced in:
§ 1.4 Terminology
(2)
§ 4.2.1 Introduction
§ 4.2.2 File and directory structure
§ 4.2.4 Deriving file paths
§ 4.2.5 URLs in the OCF abstract container
§ 4.2.6.1 Inclusion in OCF abstract container
§ 4.2.6.2 Parsing URLs in the META-INF directory
§ 4.2.6.3.1.3 The rootfile element
§ 4.2.6.3.1.5 The link element
Permalink
exported
Referenced in:
§ 3.1.2 The spine plane
§ 5.6.2.1 Resource properties
§ 6.3.2.1 Script inclusion
§ D.6.5 scripted
Permalink
exported
Referenced in:
§ 1.4 Terminology
§ 3.1.2 The spine plane
§ 3.2 Core media types
§ 6.1.4.2 Embedded SVG
§ 6.2.1 Introduction
(2)
§ 6.2.2 SVG requirements
§ 6.2.3 Restrictions on SVG
§ 6.3 Common resource requirements
§ 6.3.2.2.1 Container-constrained scripts
§ 8.2.2.3 Synthetic spreads
§ 8.2.2.5 Viewport dimensions (deprecated)
§ 9.3.2 Relationship to the EPUB content document
§ 9.3.2.2 Referencing document fragments
§ 9.3.4 Associating style information
§ D.6.4 remote-resources
§ D.6.6 svg
Permalink
exported
Referenced in:
§ 8.2.2.3 Synthetic spreads
§ 8.2.2.4 Spread placement
Permalink
exported
Referenced in:
§ 3.7 Data URLs
§ 5.6.2.2 Examples
(2)
§ 6.2.1 Introduction
§ 6.3.2.2 Scripting contexts
§ 6.3.2.2.2 Spine-level scripts
(2)
§ 7.3 The nav element: restrictions
Permalink
exported
Referenced in:
§ 4.4.3 Obfuscation key
§ 5.5.3.1.1 The dc:identifier element
Permalink
exported
Referenced in:
§ 3.1.3 The content plane
§ 3.2 Core media types
§ 7.5 Using in the spine
§ 8.2.2.3 Synthetic spreads
§ 8.2.2.4 Spread placement
§ 8.2.2.6 Content document dimensions
§ 8.3 Reflowable layouts
§ 8.3.2 The rendition:align-x-center property
Permalink
exported
Referenced in:
§ 1.2 Organization
§ 1.3.1 Relationship to HTML
§ 1.4 Terminology
(2)
(3)
(4)
§ 3.1.2 The spine plane
§ 3.2 Core media types
§ 3.5.2.3 HTML script element
§ 4.2.5 URLs in the OCF abstract container
§ 5.6.2.1 Resource properties
§ 6.1.1 Introduction
§ 6.1.2 XHTML requirements
§ 6.1.3 HTML extensions
§ 6.1.3.1 Structural semantics
§ 6.1.3.2 RDFa
§ 6.1.3.5 Custom attributes
§ 6.1.4 HTML deviations and constraints
§ 6.1.4.1 Embedded MathML
§ 6.1.4.2 Embedded SVG
§ 6.3 Common resource requirements
§ 6.3.2.1 Script inclusion
§ 6.3.2.2.1 Container-constrained scripts
§ 7.1 Introduction
§ 7.2 Navigation document requirements
§ 7.3 The nav element: restrictions
§ 8.2.2.3 Synthetic spreads
§ 8.2.2.5 Viewport dimensions (deprecated)
§ 9.3.2 Relationship to the EPUB content document
§ 9.3.2.2 Referencing document fragments
§ 9.3.4 Associating style information
§ 9.5 Navigation document overlays
§ D.6.4 remote-resources
§ D.6.6 svg
§ D.6.7 switch
§ H.1 Resources
Permalink
exported
Referenced in:
§ 3.1 Introduction
§ H.1 Resources
Permalink
exported
Referenced in:
§ 3.1 Introduction
§ 3.1.1 The manifest plane
§ H.1 Resources
Permalink
exported
Referenced in:
§ 3.1 Introduction
§ 3.1.1 The manifest plane
§ H.1 Resources
Permalink
exported
Referenced in:
§ 1.4 Terminology
(2)
§ 3.1.2 The spine plane
§ 5.1 Introduction
§ 5.6.2.2 Examples
§ 5.7.2 The itemref element
Permalink
exported
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
Permalink
exported
Referenced in:
§ 4.2.6.3.1.2 The rootfiles element
§ 4.2.6.3.1.4 The links element
Permalink
exported
Referenced in:
§ 4.2.6.3.1.1 The container element
§ 4.2.6.3.1.3 The rootfile element
Permalink
exported
Referenced in:
§ 4.2.6.3.1.2 The rootfiles element
Permalink
exported
Referenced in:
§ 4.2.6.3.1.1 The container element
§ 4.2.6.3.1.5 The link element
Permalink
exported
Referenced in:
Not referenced in this document.
Permalink
exported
Referenced in:
Not referenced in this document.
Permalink
exported
Referenced in:
Not referenced in this document.
Permalink
exported
Referenced in:
Not referenced in this document.
Permalink
exported
Referenced in:
Not referenced in this document.
Permalink
exported
Referenced in:
§ 5.3.1 The dir attribute (under-implemented)
§ 5.3.3 The id attribute
§ 5.3.7 The xml:lang attribute
§ 5.5.1 The metadata element
§ 5.5.3.1.1 The dc:identifier element
§ 5.6.1 The manifest element
§ 5.7.1 The spine element
Permalink
exported
Referenced in:
§ 5.4 The package element
§ 5.5.3.1.1 The dc:identifier element
§ 5.5.3.1.2 The dc:title element
§ 5.5.3.1.3 The dc:language element
§ 5.5.3.2.1 General definition
§ 5.5.4 The meta element
§ 5.5.6 The link element
(2)
§ 5.6.1 The manifest element
§ 9.2.2.2 The head element
Permalink
Referenced in:
§ 1.4 Terminology
§ 5.5.3.1.3 The dc:language element
§ 5.5.3.2.5 The dc:subject element
(2)
(3)
§ 5.5.3.2.6 The dc:type element
§ 5.5.4 The meta element
(2)
§ 5.5.5 Last modified date
Permalink
exported
Referenced in:
§ 1.4 Terminology
§ 5.4 The package element
§ 5.5.1 The metadata element
(2)
§ 5.5.3.2.1 General definition
§ D.3.8 identifier-type
Permalink
exported
Referenced in:
§ 5.5.1 The metadata element
(2)
§ 5.5.3.2.1 General definition
§ D.3.13 title-type
Permalink
exported
Referenced in:
§ 5.5.1 The metadata element
(2)
§ 5.5.3.2.1 General definition
Permalink
exported
Referenced in:
§ 5.5.3.2.3 The dc:creator element
§ D.3.10 role
Permalink
exported
Referenced in:
§ 5.5.3.2.2 The dc:contributor element
§ D.3.10 role
Permalink
exported
Referenced in:
Not referenced in this document.
Permalink
exported
Referenced in:
§ D.3.2 authority
§ D.3.12 term
Permalink
exported
Referenced in:
Not referenced in this document.
Permalink
exported
Referenced in:
§ 5.3.1 The dir attribute (under-implemented)
§ 5.3.3 The id attribute
§ 5.3.6 The refines attribute
§ 5.3.7 The xml:lang attribute
§ 5.5.1 The metadata element
(2)
§ 5.5.2 Metadata values
§ 5.9.3 The meta element
§ 8.2.2.2 Orientation
§ 8.3.2 The rendition:align-x-center property
§ 9.3.5.2 Overlays package metadata
§ D.3 Meta properties vocabulary
(2)
§ D.5 Package rendering vocabulary
§ D.8 Media overlays vocabulary
Permalink
exported
Referenced in:
§ 5.5.1 The metadata element
Permalink
exported
Referenced in:
§ 1.4 Terminology
§ 3.1.1 The manifest plane
§ 3.7 Data URLs
§ 5.3.2 The href attribute
§ 5.3.3 The id attribute
§ 5.3.4 The media-type attribute
§ 5.3.5 The properties attribute
§ 5.3.6 The refines attribute
§ 5.5.1 The metadata element
(2)
§ D.4 Metadata link vocabulary
§ D.4.2 Link properties
§ H.1 Resources
(2)
Permalink
exported
Referenced in:
§ 3.1.1 The manifest plane
§ 5.3.3 The id attribute
§ 5.4 The package element
§ 5.6.2 The item element
§ 5.7.1 The spine element
Permalink
exported
Referenced in:
§ 3.1.1 The manifest plane
§ 3.3 Foreign resources
§ 3.5.1 Manifest fallbacks
§ 3.6 Resource locations
§ 3.7 Data URLs
§ 5.3.2 The href attribute
(2)
§ 5.3.3 The id attribute
§ 5.3.4 The media-type attribute
§ 5.3.5 The properties attribute
§ 5.6.1 The manifest element
§ 5.7.2 The itemref element
§ 5.9.3 The meta element
§ 6.1.4.2 Embedded SVG
§ 9.3.5.1 Including media overlays
§ 9.3.5.2 Overlays package metadata
§ D.1.2 The property data type
§ D.6 Manifest properties vocabulary
Permalink
exported
Referenced in:
§ 5.3.3 The id attribute
§ 5.4 The package element
§ 5.6.2 The item element
§ 5.7.2 The itemref element
§ 8.2.2.3 Synthetic spreads
Permalink
exported
Referenced in:
§ 1.4 Terminology
§ 3.4 Exempt resources
§ 5.3.2 The href attribute
§ 5.3.3 The id attribute
§ 5.3.5 The properties attribute
§ 5.7.1 The spine element
§ 8.2.2.1 Layout
§ 8.2.2.1.1 Layout overrides
§ 8.2.2.2.1 Orientation overrides
§ 8.2.2.3.1 Synthetic spread overrides
§ 8.3.1.1 Spine overrides
§ 8.3.2 The rendition:align-x-center property
§ D.5 Package rendering vocabulary
§ D.7 Spine properties vocabulary
Permalink
exported
Referenced in:
§ 5.3.1 The dir attribute (under-implemented)
§ 5.3.3 The id attribute
§ 5.3.7 The xml:lang attribute
§ 5.4 The package element
§ 5.8.1 The collection element
(2)
§ D.4.1.1 alternate
Permalink
exported
Referenced in:
§ 9.2.2.2 The head element
§ 9.2.2.4 The body element
Permalink
exported
Referenced in:
§ 9.2.2.1 The smil element
§ 9.2.2.3 The metadata element
§ 9.2.2.4 The body element
Permalink
exported
Referenced in:
§ 9.2.2.1 The smil element
§ 9.2.2.5 The seq element
§ 9.2.2.6 The par element
§ 9.3.1 Introduction
§ 9.3.2.1 Overlay structure
§ 9.3.3 Structural semantics in overlays
Permalink
exported
Referenced in:
§ 9.2.2.4 The body element
(2)
§ 9.2.2.5 The seq element
(2)
§ 9.2.2.6 The par element
§ 9.3.1 Introduction
§ 9.3.2.1 Overlay structure
§ 9.3.2.3 Overlay granularity
§ 9.3.3 Structural semantics in overlays
Permalink
exported
Referenced in:
§ 9.2.2.4 The body element
(2)
§ 9.2.2.5 The seq element
§ 9.2.2.7 The text element
§ 9.2.2.8 The audio element
§ 9.3.1 Introduction
§ 9.3.2.1 Overlay structure
§ 9.3.2.4 Text-to-speech rendering
§ 9.3.3 Structural semantics in overlays
Permalink
exported
Referenced in:
§ 9.2.2.6 The par element
§ 9.3.1 Introduction
§ 9.3.2.1 Overlay structure
§ 9.3.2.2 Referencing document fragments
§ 9.3.2.3 Overlay granularity
§ 9.3.2.4 Text-to-speech rendering
Permalink
exported
Referenced in:
§ 9.2.2.6 The par element
§ 9.2.2.7 The text element
§ 9.3.1 Introduction
§ 9.3.2.1 Overlay structure
§ 9.3.2.4 Text-to-speech rendering
§ K. Change log
Permalink
exported
Referenced in:
§ 6.1.3.1 Structural semantics
§ 6.2.3 Restrictions on SVG
(2)
§ 7.3 The nav element: restrictions
§ 7.4.1 Introduction
§ 7.4.2 The toc nav element
§ 7.4.3 The page-list nav element
§ 7.4.4 The landmarks nav element
(2)
§ 7.4.5 Other nav elements
§ 9.3.3 Structural semantics in overlays
§ C.1 Introduction
Permalink
Referenced in:
§ 5.3.7 The xml:lang attribute
§ 5.5.3.1.3 The dc:language element
§ 5.5.6 The link element
Permalink
Referenced in:
§ 5.3.1 The dir attribute (under-implemented)
Permalink
Referenced in:
§ 4.2.3 File paths and file names
Permalink
Referenced in:
§ E.2.1 The -epub-hyphens property
Permalink
Referenced in:
§ E.2.2 The -epub-line-break property
Permalink
Referenced in:
§ E.2.3 The -epub-text-align-last property
Permalink
Referenced in:
§ E.2.5 The text-transform property
Permalink
Referenced in:
§ E.2.4 The -epub-word-break property
Permalink
Referenced in:
§ E.3.1 The -epub-text-emphasis-color Property
Permalink
Referenced in:
§ E.3.2 The -epub-text-emphasis-position property
Permalink
Referenced in:
§ E.3.3 The -epub-text-emphasis-style property
Permalink
Referenced in:
§ E.3.4 The -epub-text-underline-position property
Permalink
Referenced in:
§ 6.3.1.2 CSS requirements
Permalink
Referenced in:
§ E.1.3 The -epub-text-combine-horizontal and -epub-text-combine properties
Permalink
Referenced in:
§ E.1.1 The -epub-text-orientation property
Permalink
Referenced in:
§ 6.3.1.2 CSS requirements
Permalink
Referenced in:
§ E.1.2 The -epub-writing-mode property
Permalink
Referenced in:
§ 8.2.2.6 Content document dimensions
(2)
Permalink
Referenced in:
§ 5.5.2 Metadata values
Permalink
Referenced in:
§ 1.1 Overview
§ 10. Accessibility
Permalink
Referenced in:
§ 4.2.2 File and directory structure
Permalink
Referenced in:
§ 1.1 Overview
Permalink
Referenced in:
§ 8.2.1 Introduction
Permalink
Referenced in:
§ 3.2 Core media types
Permalink
Referenced in:
§ 1.1 Overview
Permalink
Referenced in:
§ 11.2.1 EPUB-specific features
Permalink
Referenced in:
§ 6.3.2.2.2 Spine-level scripts
Permalink
Referenced in:
§ 9.5 Navigation document overlays
Permalink
Referenced in:
§ D.1.2 The property data type
Permalink
Referenced in:
§ 3.4 Exempt resources
Permalink
Referenced in:
§ 6.3.2.2.2 Spine-level scripts
Permalink
Referenced in:
§ 6.3.2.1 Script inclusion
§ 6.3.2.2 Scripting contexts
§ 6.3.2.2.1 Container-constrained scripts
Permalink
Referenced in:
§ 11.1 Overview
Permalink
Referenced in:
§ 9.3.3 Structural semantics in overlays
Permalink
Referenced in:
§ 11.3 Recommendations
Permalink
Referenced in:
§ 1.4 Terminology
Permalink
Referenced in:
§ 9.4.2 Escapability
Permalink
Referenced in:
§ 7.4.4 The landmarks nav element
Permalink
Referenced in:
§ 9.4.1 Skippability
Permalink
Referenced in:
§ 9.4.2 Escapability
Permalink
Referenced in:
§ 9.4.1 Skippability
Permalink
Referenced in:
§ 7.4.4 The landmarks nav element
Permalink
Referenced in:
§ 9.4.2 Escapability
Permalink
Referenced in:
§ 7.4.3 The page-list nav element
Permalink
Referenced in:
§ 7.4.3 The page-list nav element
§ 9.4.1 Skippability
§ D.3.11 source-of
Permalink
Referenced in:
§ 9.4.2 Escapability
Permalink
Referenced in:
§ 7.4.2 The toc nav element
§ 7.4.4 The landmarks nav element
Permalink
Referenced in:
§ 9.3.2.4 Text-to-speech rendering
Permalink
Referenced in:
§ 1.4 Terminology
§ 5.7.1 The spine element
§ 7.3 The nav element: restrictions
(2)
§ H.1 Resources
(2)
Permalink
Referenced in:
§ 5.7.1 The spine element
Permalink
Referenced in:
§ 3.5.2.1 HTML audio and video fallbacks
§ 3.6 Resource locations
(2)
Permalink
Referenced in:
§ 6.1.4.3.1 The base element
Permalink
Referenced in:
§ 6.3.1.2 CSS requirements
Permalink
Referenced in:
§ 6.2.3 Restrictions on SVG
§ 8.3.1 The rendition:flow property
Permalink
Referenced in:
§ 6.3.2.5 Scripting fallbacks
Permalink
Referenced in:
§ F.2 Syntax
Permalink
Referenced in:
§ 11.3 Recommendations
Permalink
Referenced in:
§ 3.5.2.3 HTML script element
§ 6.3.2.1 Script inclusion
Permalink
Referenced in:
§ F.2 Syntax
Permalink
Referenced in:
§ 6.3.1.2 CSS requirements
(2)
Permalink
Referenced in:
§ C.2 The epub:type attribute
Permalink
Referenced in:
§ 6.1.4.3.1 The base element
Permalink
Referenced in:
§ 6.1.4.3.3 The embed element
Permalink
Referenced in:
§ 3.4 Exempt resources
§ 5.7.1 The spine element
§ 7.3 The nav element: restrictions
Permalink
Referenced in:
§ 3.5.2.1 HTML audio and video fallbacks
§ 6.2.3 Restrictions on SVG
Permalink
Referenced in:
§ 1.4 Terminology
§ 6.3.2.1 Script inclusion
§ D.6.5 scripted
Permalink
Referenced in:
§ 7.3 The nav element: restrictions
Permalink
Referenced in:
§ 6.1.3.1 Structural semantics
§ 8.2.2.6 Content document dimensions
Permalink
Referenced in:
§ 7.5 Using in the spine
Permalink
Referenced in:
§ 5.7.1 The spine element
Permalink
Referenced in:
§ 9.3.4 Associating style information
§ D.1.4 The prefix attribute
Permalink
Referenced in:
§ D.4.1.1 alternate
Permalink
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
Permalink
Referenced in:
§ 3.7 Data URLs
§ 5.6.2.1 Resource properties
§ 6.3.2.2 Scripting contexts
§ 6.3.2.2.1 Container-constrained scripts
(2)
§ H.1 Resources
Permalink
Referenced in:
§ 3.5.1 Manifest fallbacks
§ 3.5.2.2 HTML img fallbacks
§ 6.1.4.2 Embedded SVG
§ H.1 Resources
(2)
(3)
Permalink
Referenced in:
§ 7.3 The nav element: restrictions
(2)
Permalink
Referenced in:
§ 3.1.3 The content plane
§ 3.4 Exempt resources
§ H.1 Resources
(2)
Permalink
Referenced in:
§ 3.5.2.1 HTML audio and video fallbacks
Permalink
Referenced in:
§ F.2 Syntax
(2)
Permalink
Referenced in:
§ 6.1.3.1 Structural semantics
Permalink
Referenced in:
§ 6.1.3.2 RDFa
Permalink
Referenced in:
§ F.2 Syntax
Permalink
Referenced in:
§ 7.3 The nav element: restrictions
§ 7.4.2 The toc nav element
§ 7.4.3 The page-list nav element
§ 7.4.4 The landmarks nav element
Permalink
Referenced in:
§ 6.1.4.2 Embedded SVG
§ 6.1.4.3.3 The embed element
§ 6.3.2.2 Scripting contexts
§ 6.3.2.5 Scripting fallbacks
Permalink
Referenced in:
§ 7.3 The nav element: restrictions
(2)
(3)
Permalink
Referenced in:
§ 6.3.2.1 Script inclusion
Permalink
Referenced in:
§ 9.2.2.7 The text element
Permalink
Referenced in:
§ 7.3 The nav element: restrictions
(2)
Permalink
Referenced in:
§ 3.1.3 The content plane
§ 3.5.2.2 HTML img fallbacks
§ H.1 Resources
(2)
Permalink
Referenced in:
§ 6.2.3 Restrictions on SVG
Permalink
Referenced in:
§ C.1 Introduction
§ C.2 The epub:type attribute
Permalink
Referenced in:
§ 6.1.4.3.2 The rp element
Permalink
Referenced in:
§ 3.5.2.3 HTML script element
§ 5.5.6 The link element
§ 6.3.2.2.1 Container-constrained scripts
§ 6.3.2.2.2 Spine-level scripts
Permalink
Referenced in:
§ 3.4 Exempt resources
§ 3.5.2.1 HTML audio and video fallbacks
§ 3.5.2.2 HTML img fallbacks
§ H.1 Resources
Permalink
Referenced in:
§ 7.3 The nav element: restrictions
(2)
§ 9.3.2.3 Overlay granularity
§ C.2 The epub:type attribute
Permalink
Referenced in:
§ 3.5.2.2 HTML img fallbacks
Permalink
Referenced in:
§ 3.5.2.2 HTML img fallbacks
Permalink
Referenced in:
§ 3.5.2.2 HTML img fallbacks
Permalink
Referenced in:
§ 3.5.2.2 HTML img fallbacks
Permalink
Referenced in:
§ 3.7 Data URLs
Permalink
Referenced in:
§ 3.4 Exempt resources
Permalink
Referenced in:
§ 3.5.2.2 HTML img fallbacks
Permalink
Referenced in:
§ 6.1.3 HTML extensions
Permalink
Referenced in:
§ 3.4 Exempt resources
§ 9.2.2.7 The text element
Permalink
Referenced in:
§ 3.5.2.1 HTML audio and video fallbacks
Permalink
Referenced in:
§ 11.3 Recommendations
Permalink
Referenced in:
§ 1.4 Terminology
§ 3.2 Core media types
§ 6.1.2 XHTML requirements
Permalink
Referenced in:
§ 4.2.4 Deriving file paths
Permalink
Referenced in:
§ F.2 Syntax
Permalink
Referenced in:
§ 6.2.3 Restrictions on SVG
Permalink
Referenced in:
§ 4.2.4 Deriving file paths
Permalink
Referenced in:
§ 4.2.4 Deriving file paths
Permalink
Referenced in:
§ 4.2.3 File paths and file names
Permalink
Referenced in:
§ 5.5.2 Metadata values
Permalink
Referenced in:
§ 5.5.2 Metadata values
Permalink
Referenced in:
§ 4.2.3 File paths and file names
Permalink
Referenced in:
§ 6.1.3.2 RDFa
Permalink
Referenced in:
§ 6.1.4.1 Embedded MathML
Permalink
Referenced in:
§ 6.1.4.1 Embedded MathML
Permalink
Referenced in:
§ 3.7 Data URLs
Permalink
Referenced in:
§ 3.8 File URLs
Permalink
Referenced in:
§ 9.2.2.8 The audio element
(2)
§ D.8.2 duration
Permalink
Referenced in:
§ 6.2.3 Restrictions on SVG
Permalink
Referenced in:
§ 6.2.3 Restrictions on SVG
§ 9.3.4 Associating style information
Permalink
Referenced in:
§ 6.2.3 Restrictions on SVG
Permalink
Referenced in:
§ 8.2.2.1 Layout
Permalink
Referenced in:
§ 5.5.3.1.1 The dc:identifier element
§ 5.6.2 The item element
§ 9.2.2.8 The audio element
Permalink
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
§ 5.8.1 The collection element
Permalink
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
(2)
(3)
(4)
(5)
§ 4.2.6.2 Parsing URLs in the META-INF directory
Permalink
Referenced in:
§ 6.1.3.5 Custom attributes
Permalink
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
Permalink
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
§ 4.2.6.3.1.3 The rootfile element
§ 4.2.6.3.1.5 The link element
§ 5.3.6 The refines attribute
§ 5.6.2 The item element
§ 9.2.2.4 The body element
§ 9.2.2.5 The seq element
§ 9.2.2.7 The text element
§ D.1.2 The property data type
Permalink
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
Permalink
Referenced in:
§ 9.2.2.8 The audio element
Permalink
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
Permalink
Referenced in:
§ 1.4 Terminology
(2)
§ 4.2.5 URLs in the OCF abstract container
Permalink
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
(2)
(3)
(4)
(5)
(6)
(7)
§ 4.2.6.2 Parsing URLs in the META-INF directory
§ 5.2 Parsing URLs in the package document
Permalink
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
(2)
Permalink
Referenced in:
§ 4.2.5 URLs in the OCF abstract container
§ 5.3.6 The refines attribute
§ 9.2.2.4 The body element
§ 9.2.2.5 The seq element
§ 9.2.2.7 The text element
§ 9.3.2.2 Referencing document fragments
Permalink
Referenced in:
§ 5.3.2 The href attribute
Permalink
Referenced in:
§ 5.3.7 The xml:lang attribute
Permalink
Referenced in:
§ 3.9 XML conformance
§ B. Allowed external identifiers
Permalink
Referenced in:
§ 3.9 XML conformance
Permalink
Referenced in:
§ 3.9 XML conformance
Permalink
Referenced in:
§ 3.5.1 Manifest fallbacks
§ 5.3.3 The id attribute
§ 5.3.6 The refines attribute
§ 5.7.2 The itemref element
§ 9.2.2.1 The smil element
§ 9.2.2.4 The body element
§ 9.2.2.5 The seq element
§ 9.2.2.6 The par element
§ 9.2.2.7 The text element
§ 9.2.2.8 The audio element
§ 9.3.5.1 Including media overlays
Permalink
Referenced in:
§ 5.6.2 The item element
§ 5.7.1 The spine element
§ 5.7.2 The itemref element
Permalink
Referenced in:
§ B. Allowed external identifiers
Permalink
Referenced in:
§ 4.2.6.3.1.1 The container element
§ 4.2.6.3.2.1 The encryption element
§ 4.2.6.3.4 Metadata file (metadata.xml)
§ 4.2.6.3.6.1 The signatures element
§ 5.4 The package element
§ 9.2.2.1 The smil element
§ D.1.4 The prefix attribute
Permalink
Referenced in:
§ 4.4.3 Obfuscation key
Permalink
Referenced in:
§ B. Allowed external identifiers
Permalink
Referenced in:
§ F.2 Syntax
Permalink
Referenced in:
§ F.2 Syntax
(2)
(3)
Permalink
Referenced in:
§ 3.9 XML conformance
Permalink
Referenced in:
§ 6.1.3.5 Custom attributes
Permalink
Referenced in:
§ 4.2.6.3.6.1 The signatures element
Permalink
Referenced in:
§ 4.2.6.3.6.1 The signatures element
Permalink
Referenced in:
§ 4.2.6.3.2.1 The encryption element