Copyright © 1999-2025 International Digital Publishing Forum and World Wide Web Consortium . W3C ® liability , trademark and permissive document license rules apply.
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.
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 an Editor's Draft.
Publication as an Editor's Draft does not imply endorsement by W3C and its Members.
This is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to cite this document as other than a work in progress. Future updates to this upcoming 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 .
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-34 ] — defines the processing requirements for EPUB reading systems — the applications that consume EPUB publications and present their content to users.
EPUB Accessibility [ epub-a11y-12 ] — 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 use in EPUB publications and implementation in reading systems.
The non-normative EPUB 3 Overview [ epub-overview-34 ] provides a general introduction to EPUB 3. A list of technical changes from the previous version is also available in the change log .
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 necessary 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-12 ] 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 for its use 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-34 ].
Refer to [ epub-rs-34 ] for the processing requirements for reading systems. Although it is not necessary to read that document to create EPUB publications, an understanding of how reading systems present the content can help in crafting publications for optimal presentation to users.
This section is non-normative.
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 might not affect EPUB publications until EPUB 3 undergoes a new revision.
In all cases, it is possible that previously valid features might become obsolete (e.g., due to a lack of support or because of security issues). Consequently, it is advised to only use features without broad support sparingly and keep EPUB conformance checkers up to date.
The [ html ] standard is continuously evolving — there are no longer versioned releases of it. That standard, in turn, references various technologies that also continue to evolve, such as MathML, SVG, CSS, and JavaScript.
The benefit of this approach is that EPUB 3 is always up to date with the web, but it also means that this specification does not track changes to HTML and the technologies it references. Those standards have to be monitored separately to ensure that authoring processes are kept up to date.
The [ html ] standard defines a single content model with rules for expressing a tag set using either the HTML syntax or the XML syntax . EPUB 3 allows authoring of content documents using either of these syntaxes even though the [ html ] standard no longer recommends the use of the XML syntax . The Working Group recognizes that XML remains an integral technology in the publishing ecosystem and will not remove support for the XML syntax from EPUB 3. Regardless, publishers that prefer to keep using the XML syntax will need to monitor future support for it, and might have to adapt to the HTML syntax to gain access to some features of [ html ].
The change to allow both syntaxes of HTML is an open issue in EPUB 3.4. The above paragraph was added to help explain the change, but would be amended if the HTML syntax is not adopted.
The HTML 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 can be included in HTML content documents .
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 version is the authoritative reference.
The benefit of this approach is that EPUB 3 is always up to date with the SVG standard, but it also means that this specification does not track changes to SVG. The SVG standards has to be monitored separately to ensure that authoring processes are kept up to date.
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.
EPUB 3 only supports Presentation Markup [ mathml3 ]. Content Markup is only allowed in structured markup annotations .
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.
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 could 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 have to conform to [ rfc3986 ] or earlier), that requirement takes precedence within those resources.
This specification defines the following terms specific to EPUB 3.
Only the first instance of a term in a section links to its definition.
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.
A 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.
The URL [ url ] of the root directory representing the OCF abstract container . Although the container root URL is implementation specific, its properties are defined in 4.2.5 URLs in the OCF abstract container .
The URL of a file or directory in the OCF abstract container , defined in 4.2.5 URLs in the OCF abstract container .
A 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.
An application that verifies the requirements of this specification against EPUB publications and reports on their conformance.
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.
A 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 publications can reference EPUB content documents from the spine without the provision of fallbacks .
The section of the package document that lists the publication resources .
Refer
to
5.6.1
5.7.1
The
manifest
element
for
more
information.
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 .
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.
A system that processes EPUB publications for presentation to a user in a manner conformant with this specification.
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
5.8.1
The
spine
element
for
more
information.
Exempt resources are a special class of publication resources that do not require fallbacks and that reading systems do not have to support the rendering of.
Refer to 3.4 Exempt resources for more information.
The name of any type of file within an OCF abstract container , whether a directory or a file within a directory.
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 .
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
.
Any
publication
resource
referenced
from
a
spine
itemref
element,
or
a
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.
With the exception of XHTML and SVG, all core media type resources are foreign content documents when referenced directly from the spine.
A 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 .
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 .
An EPUB content document that conforms to the profile of [ html ] defined in 6.1 HTML content documents .
HTML content documents can be expressed in either the HTML syntax or the XML syntax [ html ].
EPUB 3 previously supported only the XML syntax of [ html ] via what were called XHTML content documents. The change of name to HTML content documents is not to give priority to the HTML syntax but to better reflect that [ html ] is the common standard for both syntaxes. The term "XHTML" used to refer to [ xhtml11 ], but that was replaced by the XML syntax of [ html ] in 2011, which also officially superseded [ xhtml11 ] in 2018.
The change to allow both syntaxes of HTML is an open issue in EPUB 3.4. It is important to note that EPUB 3 is already based on [ html ] and this change only makes the HTML syntax valid to use. Because EPUB 2's XHTML content documents were implemented using [ xhtml11 ], some authors mistakenly assume EPUB 3's XHTML content documents use the same technology and that this change represents a move to a new standard.
This new definition will be amended if the HTML syntax is not adopted.
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 can be stored in the EPUB container . They do not require fallbacks.
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 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.).
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 .
A 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.
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 might not render the EPUB publication as intended. Examples of publication resources include the package document , EPUB content documents , CSS Style Sheets, audio, video, images, embedded fonts, and scripts.
The package document manifest has to include a list of all publication resources that typically have to be bundled in the EPUB container (the exception being that resources listed in 3.6 Resource locations can be located outside the EPUB container).
A 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.
The root directory represents the base of the OCF abstract container file system. This directory is virtual in nature .
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.
An EPUB content document that conforms to the constraints expressed in 6.2 SVG content documents .
The rendering of two adjacent pages simultaneously on a device screen.
An EPUB content document or foreign content document referenced from the spine , whether directly or via a fallback chain .
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.
The region of an EPUB reading system in which an EPUB publication is rendered visually to a user.
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 .
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
has
to
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"
).
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.
SHOULD conform to the accessibility requirements defined in [ epub-a11y-12 ].
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.
This section is non-normative.
Due to the complexity of this specification and number of technologies used in EPUB publications , it is advised to use an EPUB conformance checker to verify content conformance.
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 is also available in alternative interfaces and other languages (for more information, refer to its Apps and Tools page ).
When verifying EPUB publications, ensure that 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.
Also ensure that 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 can lead to interoperability problems and other issues that impact the user reading experience. These issues are typically reported as warnings.
Vendors, distributors, and other retailers of EPUB publications need to 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 publications cannot adhere to recommended practices in all cases.
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 same resource can 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) can 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.
Refer
to
G.1
A.1
Resources
for
a
detailed
example
showing
how
resources
fit
into
the
different
planes.
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.
The
manifest
element
has
to
contain
a
complete
list
these
resources.
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
5.6.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 can be located within the EPUB container or outside it.
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.
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 can 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 can be used 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
manifest
fallback
to
an
EPUB
content
document.
In
this
model,
the
manifest
entry
for
the
foreign
content
document
has
to
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
has
to
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 of the resources can be used by a reading system.
This extensibility model allows experimentation 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.
Refer to 3.5.1 Manifest fallbacks for more information.
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.
It is possible to provide manifest fallbacks for EPUB content documents, but this is not common or a requirement. For example, a scripted content document could have a fallback to an unscripted alternative for reading systems that do not support scripting.
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 .
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
multiple
alternative
image
formats
to
be
specified.
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.
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 that the markup conform to their respective EPUB content document definitions. This common definition ensures that regardless of whether XHTML and SVG documents are listed in the spine, or embedded in other EPUB content documents, they have the same requirements for authoring and reading system support.
In practice, it means that XHTML and SVG core media type resources are allowed in the spine without any modification or fallback as 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).
Publication resources that conform to the MIME media type [ rfc2046 ] specifications defined in the following table MAY be included in EPUB publications without fallbacks when they are used in EPUB content documents and foreign content documents . These resources are classified as core media type resources .
Only XHTML content documents and SVG content documents can be referenced from the spine without a manifest fallback . All other core media type resources MUST include a manifest fallback if 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 a resource has more than one media type, the first one listed is the preferred media type. It is advised to use this media type to declare resources.
| Media Type | Content Type Definition | Applies to |
|---|---|---|
| HTML | ||
text/html
|
HTML content documents | HTML documents that use the HTML syntax [ html ] |
application/xhtml+xml
|
HTML content documents | HTML documents that use the XML syntax [ html ] |
| Images | ||
image/avif
|
[ av1-avif ] | AVIF 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 | ||
|
[ truetype ] | TrueType fonts |
|
[ opentype ] | OpenType fonts |
|
[ woff ] | WOFF fonts |
font/woff2
|
[ woff2 ] | WOFF2 fonts |
| Other | ||
|
[ rfc4329 ] | Scripts. |
application/x-dtbncx+xml
|
[ opf-201 ] | The obsolete but conforming NCX |
application/smil+xml
|
Media overlays | EPUB media overlay documents |
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 has to support image core media type resources, but a reading system without a viewport does not). Refer to Core media types [ epub-rs-34 ] 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 — as at that stage they can be relied on for rendering in reading systems.
A 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 .
Fallbacks MUST be provided 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
.
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.
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.
In
some
cases,
the
exemptions
defined
in
this
section
overlap
with
how
existing
core
media
type
resources
are
included
in
EPUB
content
documents
(e.g.,
using
the
[
html
]
link
element
to
include
CSS
style
sheets,
importing
fonts
into
CSS,
or
using
the
[
html
]
script
element
for
JavaScripts).
Although
this
superficially
makes
the
resources
similar
in
terms
of
not
requiring
fallbacks,
core
media
types
are
differentiated
by
having
stronger
support
expectations
in
reading
systems.
A
core
media
type
resource
does
not
become
an
exempt
resource
just
because
they
share
the
same
inclusion
mechanism.
And
without
an
exemption,
an
exempt
resource
would
be
a
foreign
resource
.
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 for accessibility purposes so whatever format reading systems support best can be used.
The following list details cases of content-specific exempt resources, including any restrictions on where they can be used.
Font resources are exempt resources.
This exemption allows the use of 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-34 ] for more information.
Any
resource
referenced
from
the
[
html
]
link
element
is
an
exempt
resource.
Any
resource
[
html
]
allows
the
script
element
to
reference
is
an
exempt
resource.
Audio
and
video
tracks
(e.g.,
[
webvtt
]
captions,
subtitles
and
descriptions)
referenced
from
the
[
html
]
track
element
are
exempt
resources.
Video
codecs
referenced
from
the
[
html
]
video
— including
any
child
source
elements —
are
exempt
resources.
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. When deciding which video formats to include, consider factors such as the breadth of support in reading systems, playback quality, and technology royalties.
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 directly rendered in its native format in an EPUB content document.
This exemption allows the inclusion of resources in the EPUB container that are not for use by EPUB reading systems, such as:
A
foreign
image
resource
referenced
from
a
url
function
[
css-values
]
in
a
CSS
style
sheet
is
an
example
of
a
resource
not
exempted
by
this
rule
as
it
would
result
in
the
non-core
media
type
format
being
displayed.
The exemption also allows the use of 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.
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
both
the
full
and
preferred
fallback
chain
for
that
item
.
There are two cases for manifest fallbacks:
A foreign content document MUST specify a fallback chain that MUST include at least one EPUB content document to ensure that reading systems can always render the spine item.
EPUB content documents MAY specify a fallback. For example, to provide a fallback for scripted content .
When
a
fallback
chain
includes
more
than
one
EPUB
content
document,
the
properties
attribute
can
be
used
to
differentiate
the
purpose
of
each.
When elements that reference foreign resources do not have intrinsic fallback capabilities, a content fallback MUST be provided. In this case, the fallback chain MUST contain at least one core media type resource .
Manifest fallbacks MAY also be provided for core media type resources. For example, 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.
As it is not possible to use manifest fallbacks for resources represented in data URLs , foreign resources can only be represented as data URLs where an intrinsic fallback mechanism is available.
The following sections provide additional clarifications about the intrinsic fallback requirements of specific elements.
[
html
]
flow
content
embedded
within
audio
or
video
elements
does
not
count
as
an
intrinsic
fallback
for
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.
The
requirement
for
fallbacks
only
applies
to
audio
foreign
resources
referenced
from
audio
and
video
elements.
Fallbacks
are
not
necessary
for
video
resources;
they
are
exempt
resources
.
Due
to
the
variety
of
sources
that
can
be
referenced
from
the
[
html
]
img
element,
the
following
fallback
conditions
apply
to
its
use:
If
it
is
the
child
of
a
picture
element:
src
and
srcset
attributes
when
those
attributes
are
set;
and
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.
src
and
srcset
attributes
provided
there
is
also
a
manifest
fallback
to
a
core
media
type.
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, data blocks are exempt from fallback requirements to allow their use by scripts.
This exemption aligns data blocks with the exemption for data files .
[ svg ] does not define data blocks as of publication, but the same exclusion would apply if a future update adds the concept.
The following types of publication resources MAY be hosted outside the EPUB container :
All other resources MUST be stored 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,
it
is
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 .
Refer
to
the
remote-resources
property
for
more
information
on
how
to
indicate
that
a
manifest
item
references
a
remote
resource
.
The
data:
URL
scheme
[
rfc2397
]
is
used
to
encode
resources
directly
into
a
URL
string.
The
advantage
of
this
scheme
is
that
it
allows
a
resource
to
be
embedded
within
another,
avoiding
the
need
for
an
external
file.
Data URLs MUST NOT be used in the following scenarios as they will 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
]
a
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
.
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 . Therefore, data URLs MUST be encoded as core media type resources or have a fallback using the intrinsic fallback mechanisms of the host format.
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. Consequently, file URLs MUST NOT be used in EPUB publications.
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 .
This section is non-normative.
OCF is the container technology for EPUB publications . It can play a role in the following workflows:
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 retains an obsolete but conforming algorithm for obfuscating embedded fonts but this functionality is no longer advised.
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 using the obsolete but conforming font obfuscation feature .
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.
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
.
All
other
files
within
the
OCF
abstract
container
MAY
be
stored
in
any
location
descendant
from
the
root
directory
provided
they
are
not
within
the
META-INF
directory.
EPUB
publications
MUST
NOT
contain
references
to
files
in
the
META-INF
directory.
Some reading systems do not provide access to resources outside the directory where the package document is stored even though this is not a restriction defined in [ epub-rs-34 ]. To avoid interoperability issues with these reading systems, it is advised to place all resources at or below the directory containing the package document.
This problem is more commonly encountered when creating multiple renditions [ epub-multi-rend-11 ] of the publication.
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 might 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
)
The Unicode Character Database [ uax44 ] includes a list of deprecated characters . It is also advised to avoid these characters 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.)
If EPUB publications are created by dynamically integrating resources (i.e., where the naming is not known in advance), 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. Therefore, it is important to avoid mid-character truncation. See the section on "Truncating or limiting the length of strings" in [ international-specs ] for more information.
Use an abundance of caution naming files 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 can still be encountered (e.g., ZIP tools that only support [ us-ascii ]).
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 ]):
U+002F (/)
character.
The container root URL is the URL [ url ] of the root directory . Although the container root URL is implementation-specific, it MUST have the following properties:
/
"
with
the
container
root
URL
as
base
is
the
container
root
URL
.
..
"
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 .
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 might or might 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
https://localhost:12345/
or
https://www.example.org:12345/
honor
these
properties.
But
URLs
like
https://localhost:12345/path/to.epub/
,
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
https://localhost:12345/path/
,
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.
Parsing
might
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
https://a.example.org/A/
.
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
(
A
).
(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 is 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 ).
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).
Set
the
container
root
URL
to
https://b.example.org/B/
.
The
reasons
to
repeat
the
same
steps
twice
with
different,
and
artificial,
settings
of
the
container
root
URL
is
to
avoid
collision
which
can
occur
if
the
url
string
also
includes
/A/
.
Consider,
for
example,
the
case
where
url
is
../../A/doc.xhtml
.
If
testURLStringA
does
not
start
with
https://a.example.org/
or
testURLStringB
does
not
start
with
https://b.example.org/
,
return
true
.
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
https://a.example.org/A/
and
testURLStringB
starts
with
https://b.example.org/B/
,
return
true
.
The
presence
of
the
first
test
path
segments
(
A
,
respectively
B
)
indicate
that
the
URL
doesn't
leak
outside
the
container.
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.
These constraints on URL strings mean that:
/
(
U+002F
)
(for
example,
/EPUB/content.xhtml
)
are
disallowed;
EPUB/../../../../config.xml
)
are
disallowed;
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.
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 .
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
.
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).
An XML Schema also informally defines the content of this file.
The
container
element
encapsulates
all
the
information
in
the
container.xml
file.
container
REQUIRED
root
element
[
xml
]
of
the
container.xml
file.
version
[required]
1.0
".
In this order:
The
rootfiles
element
contains
a
list
of
package
documents
available
in
the
EPUB
container
.
Each
rootfile
element
identifies
the
location
of
one
package
document
in
the
EPUB
container
.
rootfile
As
child
of
the
rootfiles
element.
Repeatable.
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
".
Empty
If
more
than
one
rootfile
element
is
specified,
each
MUST
reference
a
package
document
that
conforms
to
the
same
version
of
EPUB.
Each
package
document
represents
one
rendering
of
the
EPUB
publication
.
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.
The
links
element
identifies
resources
necessary
for
the
processing
of
the
OCF
ZIP
container
.
links
OPTIONAL
second
child
of
container
.
Repeatable.
None
link
[1
or
more]
This
specification
currently
does
not
define
uses
for
the
links
element.
Refer
to
[
epub-multi-rend-11
]
for
an
example
of
its
use.
link
As
child
of
the
links
element.
Repeatable.
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.
Empty
This section is non-normative.
The
OPTIONAL
encryption.xml
file
in
the
META-INF
directory
holds
all
encryption
information
on
the
contents
of
the
container.
If
an
any
resources
within
the
container
are
encrypted,
there
MUST
be
an
encryption.xml
file
to
provide
information
about
the
encryption
used.
encryption
urn:oasis:names:tc:opendocument:xmlns:container
REQUIRED
root
element
[
xml
]
of
the
encryption.xml
file.
None
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.
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 if an OCF abstract container contains non-XML data, XML Encryption can be used to encrypt that data. OCF encryption supports only the encryption of entire files within the container, not parts of files.
When
present,
the
encryption.xml
file
MUST
NOT
be
encrypted.
Encrypted
data
replaces
unencrypted
data
in
an
OCF
abstract
container.
For
example,
if
an
image
named
photo.jpeg
is
encrypted,
the
contents
of
the
photo.jpeg
resource
is
replaced
with
its
encrypted
contents.
Encrypted
files
within
the
ZIP
directory
SHOULD
NOT
be
compressed.
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
obsolete
but
conforming
font
obfuscation
algorithm
to
identify
fonts
to
deobfuscate.
The following files MUST NOT be encrypted:
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
=]
The Decryption Transform for XML Signature [ xmlenc-decrypt ] MAY subsequently be used to encrypt signed resources. This feature enables a reading system to distinguish data encrypted before signing from data encrypted after signing.
When stored in an OCF ZIP container , streams of data with non-codec content types SHOULD be compressed before encrypting them. Deflate compression MUST be used. This practice ensures that file entries stored in the ZIP container have a smaller size.
Streams of data with codec content types SHOULD NOT be compressed 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
streams
of
data
are
compressed
before
encrypting,
additional
EncryptionProperties
metadata
SHOULD
be
provided
to
specify
the
size
of
the
initial
resource
(i.e.,
before
compression
and
encryption),
as
per
the
Compression
XML
element
defined
below.
When
streams
of
data
are
not
compressed
before
encrypting,
additional
EncryptionProperties
metadata
MAY
be
provided
to
specify
the
size
of
the
initial
resource
(i.e.,
before
encryption).
Compression
http://www.idpf.org/2016/encryption#compression
OPTIONAL
child
of
EncryptionProperty
.
[required]
Identifies the compression method used.
Value
is
either
"
0
"
(no
compression)
or
"
8
"
(Deflate
algorithm).
[required]
Represents the size of the initial resource (number of bytes).
Value is a positive integer.
Empty
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.
The
OPTIONAL
metadata.xml
file
in
the
META-INF
directory
is
only
for
container-level
metadata.
If
a
metadata.xml
file
is
included,
it
SHOULD
include
only
namespace-qualified
elements
[
xml-names
].
The
file
SHOULD
contain
the
root
element
[
xml
]
metadata
in
the
namespace
http://www.idpf.org/2013/metadata
,
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.
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
a
rights.xml
file
is
not
included,
no
part
of
the
OCF
abstract
container
is
rights
governed
at
the
container
level.
Rights
expressions
might
exist
within
the
EPUB
publication.
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.
signatures
urn:oasis:names:tc:opendocument:xmlns:container
REQUIRED
root
element
[
xml
]
of
the
signature.xml
file.
None
Signature
[1
or
more]
The
signature
element
contains
child
elements
of
type
Signature
,
as
defined
by
[
xmldsig-core1
].
Signatures
can
be
applied
to
an
EPUB
publication
as
a
whole
or
to
its
parts.
They
can
also
be
used
to
sign
any
kind
of
data
(i.e.,
not
just
XML).
An
XML
Schema
also
informally
defines
the
content
of
the
signatures.xml
file.
When
a
signatures.xml
file
is
not
included,
no
part
of
the
OCF
abstract
container
is
signed
at
the
container
level
but
digital
signing
might
exist
within
the
EPUB
publication.
When
a
data
signature
is
created
for
the
OCF
abstract
container,
the
signature
SHOULD
be
stored
as
the
last
child
Signature
element
of
the
signatures
element.
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.
Individual
container
files
can
be
signed
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
the
files
are
signed
together,
list
the
set
of
signed
files
in
a
single
XML
Signature
Manifest
element
and
reference
them
from
one
or
more
Signature
elements.
Any
or
all
files
in
the
OCF
abstract
container
can
be
signed
in
their
entirety,
except
for
the
signatures.xml
file
since
that
file
will
contain
the
computed
signature
information.
How
to
sign
the
signatures.xml
file
depends
on
the
objective:
signatures.xml
file
SHOULD
NOT
be
signed.
Signature
being
created.
This
transform
would
sign
all
previous
signatures,
and
it
would
become
invalid
if
a
subsequent
signature
were
added
to
the
package.
If it is desired to have only the removal of an existing signature invalidate the signature for the OCF abstract container (i.e., allow the addition of new signatures), an XPath transform could be used to sign just the existing signatures. The details of such a transform are outside the scope of this specification.
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.
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.
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,
the
version
needed
to
extract
fields
MUST
be
set
to
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,
the
compression
method
field
MUST
be
set
to
0
or
8
.
The
mimetype
file
MUST
be
the
first
file
in
the
OCF
ZIP
container
.
In
addition:
mimetype
file
MUST
be
the
MIME
media
type
[
rfc2046
]
string
application/epub+zip
encoded
in
US-ASCII
[
us-ascii
].
mimetype
file
MUST
NOT
contain
any
leading
or
trailing
padding
or
whitespace.
mimetype
file
MUST
NOT
begin
with
the
Unicode
byte
order
mark
U+FEFF.
mimetype
file
MUST
NOT
be
compressed
or
encrypted.
mimetype
file
MUST
NOT
include
an
extra
field
in
its
ZIP
header.
Refer
to
H.2
G.2
The
application/epub+zip
media
type
for
further
information
about
the
application/epub+zip
media
type.
All
[
xml
]
elements
defined
in
this
section
are
in
the
http://www.idpf.org/2007/opf
namespace
[
xml-names
]
unless
otherwise
specified.
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.
A manifest — identifies via URL [ url ], and describes via MIME media type [ rfc4839 ], the set of publication resources .
A 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.
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.
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
)
Refer
to
H.1
G.1
The
application/oebps-package+xml
media
type
for
information
about
the
file
properties
of
package
documents.
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 .
EPUB
defines
a
method
of
referencing
terms
and
properties
defined
in
metadata
and
semantic
vocabularies
using
the
property
data
type
.
The
property
and
rel
attributes
use
the
data
type,
for
example,
to
define
properties
and
relationships
in
the
package
document
.
A 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 concatenates 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, it is only necessary to declare a prefix . In another authoring convenience, this specification also reserves prefixes for many commonly used publishing vocabularies (i.e., their declaration is not required).
The following sections provide additional details on the property data type and vocabulary association mechanism.
Although
vocabularies
are
primarily
used
within
package
document,
the
mechanims
defined
in
this
section
also
apply
to
expressing
structural
semantics
using
the
epub:type
attribute.
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.
| 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.
When a prefix is omitted from a property value, the specified term is taken from the default vocabulary for that attribute.
A default vocabulary is one whose terms and properties MUST NOT have a prefix when a property value is expected.
A
prefix
MUST
NOT
be
assigned
to
the
URLs
associated
with
these
vocabularies
using
the
prefix
attribute.
Refer to the definition of each attribute that takes a property data type for more information about its default vocabulary.
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:
| 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
,
all
prefixes
used
in
a
document
MUST
be
declared.
The
prefix
attribute
MUST
be
specified
only
on
the
root
element
[
xml
]
of
the
respective
format.
The attribute is not namespaced when used in the package document .
The
attribute
MUST
be
declared
in
the
namespace
http://www.idpf.org/2007/ops
when
used
in
EPUB
content
documents
and
media
overlay
documents
.
Although
the
prefix
attribute
is
modeled
on
the
identically
named
prefix
attribute
in
[
rdfa-core
],
the
attributes
cannot
be
used
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,
the
prefix
attribute
MUST
NOT
be
used
to
declare
a
prefix
that
maps
to
a
default
vocabulary
.
The prefix '_' MUST NOT be declared as this specification reserves this prefix for future compatibility with RDFa [ rdfa-core ] processing.
For future compatibility with alternative serializations of the package document, a prefix MUST NOT be declared for the Dublin Core /elements/1.1/ namespace [ dcterms ]. Only the [ dcterms ] elements are allowed in the package document metadata .
Although reserved prefixes are an authoring convenience, they can cause issues. Vendors, for example, will often reject new prefixes until they update their EPUB conformance checkers . It is advised to declare all prefixes to avoid any issues.
Reserved
prefixes
MAY
be
used
in
attributes
that
expect
a
property
value
without
declaring
them
in
a
prefix
attribute
.
Reserved
prefixes
SHOULD
NOT
be
overridden
in
the
prefix
attribute
.
The reserved prefixes that can be used depends on the context:
The following prefixes MAY be used in package document attributes without having to declare them.
| Prefix | URL | Usage |
|---|---|---|
| a11y | http://www.idpf.org/epub/vocab/package/a11y/# | To declare properties from them EPUB Accessibility namespace. These are typically defined in EPUB Accessibility 1.2 [ epub-a11y-12 ]. |
| dcterms | http://purl.org/dc/terms/ | To declare properties from the Dublin Core /terms/ namespace [ dcterms ]. |
| marc | http://id.loc.gov/vocabulary/ |
Primarily
used
in
the
scheme
attribute
to
indicate
that
creator
and
contributor
roles
are
defined
in
the
the
MARC
relators
code
list
.
Can
be
used
to
reference
other
vocabularies
published
by
the
Library
of
Congress.
|
| media | http://www.idpf.org/epub/vocab/overlays/# | To declare properties from the Media Overlays vocabulary . |
| onix |
http://www.editeur.org/ONIX/book/codelists/
|
Used
in
the
scheme
attribute
to
identify
the
ONIX
code
list
a
value
corresponds
to.
|
| rendition | http://www.idpf.org/vocab/rendition/# | To declare properties from the Package rendering vocabulary . |
| schema | http://schema.org/ | To declare properties from the Schema.org vocabulary . |
The
package
element
encapsulates
all
the
information
expressed
in
the
package
document
.
package
REQUIRED root element [ xml ] of the package document.
In this order:
metadata
[exactly
1]
manifest
[exactly
1]
spine
[exactly
1]
guide
[0
or
1]
(
obsolete
but
conforming
)
collection
[0
or
more]
(
obsolete
but
conforming
)
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.
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
5.3.4
The
prefix
attribute
for
more
information.
The
metadata
element
encapsulates
meta
information.
metadata
REQUIRED
first
child
of
package
.
None
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]
(
obsolete
but
conforming
)
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
more
detailed
information
needs
to
be
provided,
metadata
records
(e.g.,
that
conform
to
an
international
standard
such
as
[
onix
]
or
are
created
for
custom
purposes)
can
be
associated
with
the
EPUB
publication
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
]
property.
All
other
metadata
is
OPTIONAL
.
dcterms:modified
The
meta
element
provides
a
generic
mechanism
for
including
metadata
properties
from
any
vocabulary
.
Although
this
mechanism
can
be
used
for
any
metadata
purposes,
it
is
typically
used
to
include
rendering
and
accessibility
metadata
defined
in
EPUB
specifications.
See [ epub-a11y-12 ] for accessibility metadata recommendations.
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 have to 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 .
The
dc:identifier
element
[
dcterms
]
contains
an
identifier
such
as
a
UUID
,
DOI
or
ISBN
.
dc:identifier
http://purl.org/dc/elements/1.1/
REQUIRED
child
of
metadata
.
Repeatable.
id
[conditionally
required]
Text
An
EPUB
publication
MUST
include
a
dc:identifier
element
that
specifies
an
identifier
that
is
unique
to
itself
—
its
unique
identifier
.
This
element
MUST
be
referenced
from
the
package
element's
unique-identifier
attribute
.
Although not static, avoid changing the unique identifier too often. Unique Identifiers are intended to have maximal persistence both for referencing and distribution purposes. Do not issue new identifiers when making minor revisions such as updating metadata, fixing errata, or making similar minor changes.
Additional identifiers MAY be specified.
It is advised to use absolute-URL strings [url] for identifiers whenever possible. The inclusion of a domain 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.
The
identifier-type
property
MAY
be
used
to
indicate
that
the
value
of
a
dc:identifier
element
conforms
to
an
established
system
or
an
issuing
authority
granted
it.
The
dc:title
element
[
dcterms
]
represents
an
instance
of
a
name
for
the
EPUB
publication
.
dc:title
http://purl.org/dc/elements/1.1/
REQUIRED
child
of
metadata
.
Repeatable.
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).
It
is
advised
to
use
only
a
single
dc:title
element
to
ensure
consistent
rendering
of
the
title
in
reading
systems
.
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
might
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
advised
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.
The
dc:language
element
[
dcterms
]
specifies
the
language
of
the
content
of
the
EPUB
publication
.
dc:language
http://purl.org/dc/elements/1.1/
REQUIRED
child
of
metadata
.
Repeatable.
id
[optional]
Text
The
value
of
each
dc:language
element
MUST
be
a
well-formed
language
tag
[
bcp47
].
Although
additional
dc:language
elements
MAY
be
specified
for
multilingual
EPUB
publications
,
reading
systems
will
treat
the
first
dc:language
element
in
document
order
as
the
primary
language.
Publication
resources
do
not
inherit
their
language
from
dc:language
element(s).
The
language
of
each
resource
has
to
be
set
using
the
intrinsic
methods
of
the
format.
All
[
dcterms
]
elements
except
for
dc:identifier
,
dc:language
,
and
dc:title
are
designated
as
OPTIONAL
.
These
elements
conform
to
the
following
generalized
definition:
dc:contributor
|
dc:coverage
|
dc:creator
|
dc:date
|
dc:description
|
dc:format
|
dc:publisher
|
dc:relation
|
dc:rights
|
dc:source
|
dc:subject
|
dc:type
http://purl.org/dc/elements/1.1/
OPTIONAL
child
of
metadata
.
Repeatable.
Text
This specification does not modify the [ dcterms ] element definitions except as noted in the following sections.
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
element
in
all
other
respects.
dc:creator
The
dc:creator
element
[
dcterms
]
represents
the
name
of
a
person,
organization,
etc.
responsible
for
the
creation
of
the
content.
A
role
property
MAY
be
associated
with
the
element
to
indicate
the
function
the
creator
played.
It
is
advised
that
the
dc:creator
element
contain
the
name
of
the
creator
as
reading
systems
are
expected
to
display
it
to
users.
The
file-as
property
MAY
be
used
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.
If
an
EPUB
publication
has
more
than
one
creator,
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.
Secondary
contributors
are
represented
using
the
element.
dc:contributor
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
publication
was
changed).
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.
Additional dates can be expressed using the specialized date properties available in the [ dcterms ] vocabulary, or similar.
EPUB
publications
MUST
NOT
contain
more
than
one
dc:date
element.
The
dc:subject
element
[
dcterms
]
identifies
the
subject
of
the
EPUB
publication
.
It
is
advised
to
set
the
value
of
the
element
to
the
human-readable
heading
or
label,
but
a
code
value
can
be
used
if
the
subject
taxonomy
does
not
provide
a
separate
descriptive
label.
The
system
or
scheme
the
element's
value
is
drawn
from
can
be
identified
using
the
authority
property
.
When
a
scheme
is
identified,
a
subject
code
MUST
be
associated
with
the
element
using
the
term
property
.
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.
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).
The element's value MAY be any text string.
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.
The
meta
element
provides
a
generic
means
of
including
package
metadata.
meta
As
child
of
the
metadata
element.
Repeatable.
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
5.3
Vocabulary
association
mechanisms
for
more
information.)
This
specification
defines
two
types
of
metadata
expressions
that
can
be
defined
using
the
meta
element:
meta
element
establishes
some
aspect
of
the
EPUB
publication
.
A
meta
element
that
omits
a
refines
attribute
defines
a
primary
expression.
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.
Subexpressions MAY be used to refine the meaning of other subexpressions, thereby creating chains of information.
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.
Terms
from
other
vocabularies
MAY
be
added
as
defined
in
D.1
5.3
Vocabulary
association
mechanisms
.
The
scheme
attribute
identifies
the
system
or
scheme
the
element's
value
was
obtained
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
).
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
The "Z" (Zulu) time indicator at the end of the pattern means the last modification date is always expressed in Coordinated Universal Time (UTC).
It is advised to update the last modified date whenever changes are made to the EPUB publication .
Additional
dcterms:modified
properties
MAY
be
specified
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).
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.
The
link
element
associates
resources
with
an
EPUB
publication
,
such
as
metadata
records.
link
As
a
child
of
metadata
.
Repeatable.
href
[required]
hreflang
[optional]
id
[optional]
media-type
[conditionally
required]
properties
[optional]
refines
[optional]
rel
[required]
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 MUST NOT be listed in the manifest .
Although linked resources MAY be located outside the EPUB container , reading systems do not have to retrieve remote resources . It is advised to consider what impact this might have on the user's reading experience before hosting them remotely.
The
media-type
attribute
MUST
be
specified
for
all
linked
resources
within
the
EPUB
container.
It
is
OPTIONAL
for
linked
resources
located
outside
the
EPUB
container
as
more
than
one
media
type
could
be
served
from
the
same
URL
[
url
].
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.
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,
a
semantic
identifier
MAY
be
specified
in
the
properties
attribute.
The
Metadata
Link
Vocabulary
is
the
default
vocabulary
for
the
rel
and
properties
attributes.
Relationships
and
properties
from
other
vocabularies
MAY
be
added
as
defined
in
D.1
5.3
Vocabulary
association
mechanisms
.
One or more linked metadata records MAY be provided.
Due to the variety of metadata record formats and serializations that can be linked 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,
the
link
element
MAY
be
used
to
identify
individual
metadata
properties
available
in
an
alternative
format.
The
manifest
element
provides
an
exhaustive
list
of
publication
resources
used
in
the
rendering
of
the
content.
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).
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 can lead to rendering issues. Reading systems might not unzip such resources or could prevent access to them for security reasons.
The
item
element
represents
a
publication
resource
.
item
As
a
child
of
manifest
.
Repeatable.
fallback
[conditionally
required]
href
[required]
id
[required]
media-overlay
[optional]
media-type
[required]
properties
[optional]
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
].
Each
URL
MUST
be
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
,
the
media
type
designated
in
3.2
Core
media
types
MUST
be
used.
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.
The
order
of
item
elements
in
the
manifest
is
not
significant.
The
spine
element
provides
the
presentation
sequence
of
content
documents.
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.
The
following
properties
MUST
be
set
whenever
a
resource
referenced
by
an
item
element
matches
their
respective
definitions:
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.
Exactly
one
item
MUST
be
declared
as
the
EPUB
navigation
document
using
the
nav
property
.
If
an
EPUB
publication
contains
a
cover
image,
it
is
advised
to
set
the
OPTIONAL
cover-image
property
.
Terms
from
other
vocabularies
MAY
be
added
as
defined
in
D.1
5.3
Vocabulary
association
mechanisms
.
The
spine
element
defines
an
ordered
list
of
manifest
item
references
that
represent
the
default
reading
order.
spine
id
[optional]
page-progression-direction
[optional]
toc
[optional]
(
obsolete
but
conforming
)
itemref
[1
or
more]
The
spine
MUST
specify
at
least
one
EPUB
content
document
or
foreign
content
document
.
All
EPUB
and
foreign
content
documents
that
are
hyperlinked
to
from
publication
resources
in
the
spine
MUST
be
listed
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
]
a
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.,
all
EPUB
and
foreign
content
documents
hyperlinked
to
from
hyperlinked
documents
have
to
be
listed,
and
so
on.).
All
EPUB
and
foreign
content
documents
hyperlinked
to
from
the
EPUB
navigation
document
MUST
also
be
listed
in
the
spine
,
regardless
of
whether
the
EPUB
navigation
document
is
included
in
the
spine
.
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
the
default
value
is
specified,
no
preference
is
being
expressed
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
might
also
provide
mechanisms
to
override
the
default
direction
(e.g.,
buttons
or
settings
that
allow
the
application
of
alternate
style
sheets).
The
obsolete
but
conforming
toc
attribute
takes
an
IDREF
[
xml
]
that
identifies
the
manifest
item
that
represents
the
NCX
.
The
itemref
element
identifies
an
EPUB
content
document
or
foreign
content
document
in
the
default
reading
order.
itemref
As
a
child
of
spine
.
Repeatable.
id
[optional]
idref
[required]
linear
[optional]
properties
[optional]
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
.
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
are
expected
to
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
needs
to
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; it is only a hint to the purpose. Reading systems might present non-linear content where it occurs in the spine, for example, or might skip it until users reach the end of the spine.
It is advised to 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.
As reading systems might not provide access to non-linear content while progressing through the spine, a secondary means of accessing all non-linear content MUST be provided (e.g., via hyperlinks in the content or the EPUB navigation document ).
The
Spine
Properties
Vocabulary
is
the
default
vocabulary
for
the
properties
attribute.
Terms
from
other
vocabularies
MAY
be
added
as
defined
in
D.1
5.3
Vocabulary
association
mechanisms
.
Support for the HTML syntax is still an open issue in the EPUB 3.4 revision. It is at risk , depending on authors' and implementers' feedback. This specification introduces it as a core media type and also minimally adds requirements for its authoring in this section to begin making readers aware of the proposed change.
Much
of
this
specification,
and
the
Reading
Systems
specification
[
epub-rs-34
],
continues
to
refer
only
to
XHTML
content
documents
and
their
authoring
requirements,
a
number
of
which
need
resolving
(e.g.,
providing
an
alternative
to
the
epub:type
attribute
).
These
references
and
requirements
will
be
updated
once
it
is
clearer
that
support
will
definitely
be
added
in
this
revision.
Until
then,
the
specification
should
be
read
as
also
supporting
HTML
wherever
it
currently
refers
to
XHTML,
despite
the
support
inconsistencies.
To provide feedback on this change, please add comments to issue 2715 in the GitHub tracker.
This section is non-normative.
This section defines a profile of [ html ] for creating HTML content documents. An instance of an HTML document that conforms to this profile is a core media type resource .
An HTML content document:
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.
MUST either:
text/html
;
or
application/xhtml+xml
.
Unless specified otherwise, HTML content documents inherit all definitions of semantics, structure, and processing behaviors from the [ html ] specification.
The recommendation that EPUB publications follow the accessibility requirements in [ epub-a11y-12 ] applies to HTML content documents. See Accessibility .
This section defines EPUB 3 XHTML content document extensions to the underlying [ html ] document model.
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.
The
epub:type
attribute
MAY
be
used
in
XHTML
content
documents
to
express
structural
semantics
.
The
attribute
MUST
NOT
be
used
on
the
head
element
or
metadata
content
[
html
].
The [ html-rdfa ] specification defines a set of attributes that MAY be used 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.
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. Microdata attributes [ html ] and linked data [ json-ld11 ] are natively supported in XHTML content documents and can be used as well.
The [ its20 ] specification defines a set of attributes that MAY be used in XHTML content documents to add support for internationalization, translation, and localization.
ITS attributes MUST only be used as defined in Using ITS markup in HTML [ its20 ] (i.e., EPUB 3 does not support the namespaced attributes).
The use of these attributes MUST conform to the requirements defined in [ its20 ].
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.
Custom attributes are usually defined in a reading system-specific manner and are not intended for use by other reading systems. The preferred method to add extensions for multiple independent reading systems to use is to extend this specification.
This section defines deviations from, and constraints on, the underlying [ html ] document model applicable to EPUB 3 XHTML content documents .
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:
The
math
element
MUST
contain
only
Presentation
MathML
,
except
within
the
annotation-xml
element.
Content
MathML
MAY
be
included
within
MathML
markup
in
XHTML
content
documents,
and,
when
present,
MUST
be
included
within
an
annotation-xml
child
element
of
a
semantics
element.
When
Content
MathML
is
included
per
the
previous
condition,
the
given
annotation-xml
element's
encoding
attribute
MUST
be
set
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.
The
mathml
property
of
the
manifest
item
element
indicates
that
an
XHTML
content
document
contains
embedded
MathML.
XHTML content documents support the embedding of SVG:
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
.
The
svg
property
of
the
manifest
item
element
indicates
that
an
XHTML
content
document
contains
embedded
SVG
(either
by
reference
or
by
inclusion).
This section is non-normative.
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
could
inadvertently
result
in
references
to
remote
resources
.
It
could
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,
use
of
the
base
element
is
discouraged.
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,
use
of
rp
elements
is
discouraged.
Since
the
[
html
]
embed
element
element
does
not
include
intrinsic
fallback
facilities
for
reading
systems
that
do
not
support
scripting,
using
the
element
with
scripted
resources
is
discouraged.
The
[
html
]
object
element
is
a
better
alternative
as
it
includes
intrinsic
fallback
capabilities.
Reading systems might not support all the features of [ svg ] or support them across all platforms that reading systems run on. When utilizing such features, consider the risks to interoperability and document longevity.
This section is non-normative.
The Scalable Vector Graphics (SVG) specification [ svg ] defines a format for representing final-form vector graphics and text.
Although XHTML content documents are more commonly used as [=top-level content documents], the use of SVG content documents is also permitted. SVGs are typically only needed 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 .
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.
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 .
The recommendation that EPUB publications follow the accessibility requirements in [ epub-a11y-12 ] applies to SVG content documents. See Accessibility .
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.
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 HTML requirements .
If
the
[
svg
]
title
element
contains
marked-up
text,
the
markup
MUST
contain
only
elements
declared
in
the
HTML
namespace
[
infra
].
Although
the
[
svg
]
title
element
allows
markup
elements,
support
for
this
feature
is
limited.
The
use
of
text-only
titles
is
advised
for
maximum
interoperability.
When
specified,
the
epub:type
attribute
MUST
only
be
included
on
renderable
elements
[
svg
].
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
5.3.4
The
prefix
attribute
.
This section defines requirements for technologies usable in both XHTML and SVG content documents .
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 and expects reading systems to support it at the level of major browsers.
Although reading systems are expected to support CSS as defined in the CSS snapshot [ epub-rs-34 ], the reality is that most reading systems currently do not support all desired features of CSS, and often will modify, and allow users to change, the default presentation defined in an EPUB publication. As a result, styling has to be adapted to these realities. For more information, refer to 6.3.1.3 Reading system support considerations .
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 obsolete but conforming prefixed properties .
MUST be encoded in UTF-8 or UTF-16 [ unicode ], with UTF-8 as the RECOMMENDED encoding.
This
specification
restricts
the
use
of
the
direction
and
unicode-bidi
properties
because
reading
systems
might
not
implement,
or
might
switch
off,
CSS
processing.
The
following
format-specific
methods
have
to
be
used
when
control
over
these
aspects
of
the
rendering
is
needed:
This section is non-normative.
Support for the following CSS features are known to be particularly problematic in EPUB reading systems :
Reading system-induced pagination can interact poorly with style sheets as reading systems sometimes paginate using columns. This could 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).
Reading systems will typically set some aspects of an EPUB publication's style (e.g., setting margins appropriate to the application), potentially overriding the default instructions. To mitigate conflicts, and any potential rendering problems, it is advised to consult reading systems' user agent style sheets, when they are made publicly available, and adapt styling choices for optimal display.
Furthermore,
reading
systems
that
allow
users
to
change
the
appearance
(e.g.,
choice
of
fonts,
text
justification,
or
foreground
and
background
colors)
will
also
modify
some
CSS
rendering
directions
in
an
EPUB
publication.
Due
to
CSS
precedence
rules,
it
is
advisable
to
limit
the
use
of
[
html
]
style
attributes
in
EPUB
content
documents
so
that
the
user
experience
is
not
negatively
impacted
(i.e.,
the
users'
style
choices
not
being
universally
applied).
Although
some
reading
systems
will
override
inline
styles,
such
behavior
is
not
guaranteed.
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.
[ svg ] does not define data blocks as of publication, but the same exclusion would apply if a future update adds the concept.
Note that reading systems have 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-34 ] for more information).
Reading systems might 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).
EPUB 3 defines two contexts for script execution:
iframe
element;
and
Scripts
can
execute
in
other
contexts,
but
reading
system
support
for
these
contexts
is
optional.
For
example,
a
scripted
SVG
document
might
be
referenced
from
an
[
html
]
object
element.
Refer to the processing of scripts [ epub-rs-34 ] for more information.
Whether
code
is
embedded
directly
in
a
script
element
or
referenced
via
the
element's
src
attribute
makes
no
difference
to
its
executing
context.
Which context is used for scripts affects both what actions the scripts can perform and the likelihood of support in reading systems, as described in the following subsections.
Refer
to
G.2
A.2
Scripting
contexts
for
an
example
of
the
difference
between
the
two
contexts.
A 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.
Note that support for container-constrained scripting in reading systems is only recommended in reflowable documents [ epub-rs-34 ] and optional in fixed-layout documents .
Ensure that container-constrained scripts degrade gracefully in reading systems without scripting support (see 6.3.2.5 Scripting fallbacks ).
Opting 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).
A
spine-level
script
is
an
instance
of
the
[
html
]
script
or
[
svg
]
script
element
contained
in
a
top-level
content
document
.
Note that support for spine-level scripting in reading systems is only advised in fixed-layout documents and reflowable documents set to scroll [ epub-rs-34 ]. 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.
This section is non-normative.
The wide variety of possible reading system implementations need to be considered when adding scripting functionality to 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, do not rely on keyboard events alone; always provide alternative ways to trigger a desired action.
EPUB content documents that contain scripting SHOULD employ relevant [ wai-aria ] accessibility techniques to ensure that the content remains consumable by all users.
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
.
Scripts MUST only generate core media type resources or fragments thereof.
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
,
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,
the
epub:type
attribute
can
be
appended
to
existing
elements
to
add
the
desired
semantics.
The
type
attribute
is
also
usable
in
media
overlay
documents
to
reflect
the
semantic
structure
of
the
content
being
played
back.
epub:type
http://www.idpf.org/2007/ops
Refer to the requirements for XHTML , SVG , and media overlays .
A whitespace-separated [ xml ] list of property values, with restrictions as defined in 5.3 Vocabulary association mechanisms .
epub-type
Refer to the requirements for HTML .
A whitespace-separated [ infra ] list of values that SHOULD be taken from the EPUB 3 Structural Semantics Vocabulary [ epub-ssv-11 ].
Support
for
an
HTML
serialization
of
the
epub:type
attribute
depends
on
the
addition
of
support
for
the
HTML
syntax
in
the
EPUB
3.4
revision.
It
is
at
risk
,
depending
on
authors'
and
implementers'
feedback.
The
proposed
epub-type
will
provide
similar
functionality
for
HTML
content
documents
but
with
some
restrictions
(namely,
no
extensibility
through
the
epub:prefix
attribute).
The
attribute
should
be
read
as
a
replacement
for
epub:type
where
this
specification
and
the
Reading
Systems
specification
[
epub-rs-34
]
refer
to
that
attribute
for
XHTML
content
documents.
These
references
will
be
updated
once
it
is
clearer
that
support
will
definitely
be
added
in
this
revision.
The
epub:type
attribute
will
remain
the
sole
means
of
including
semantics
in
XML
grammars
in
EPUB
(i.e.,
XHTML
content
documents,
SVG
content
documents,
and
media
overlay
documents).
To provide feedback on this change, please open issues in the GitHub tracker for the EPUB specifications .
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
can
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
].
The
prefix
URL
for
referencing
its
properties
is
http://idpf.org/epub/vocab/structure/#
.
Unprefixed terms that are not part of this vocabulary MAY be used but the preferred method for adding custom semantics is to use prefixes for them. Refer to 5.3 Vocabulary association mechanisms for more information.
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 the expression of 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 it was optimally designed.
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-34 ]
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 greater control over presentation when a reflowable EPUB is not suitable for the content.
Fixed layouts are defined using a set of package document properties to control the presentation in reading systems while the layout dimensions are obtained from each respective EPUB content document .
EPUB 3 affords multiple mechanisms for representing fixed-layout content. When fixed-layout content is necessary, the 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 choice of mechanism.
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).
The
rendition:layout
property
MUST
specify
one
of
the
following
properties:
The content is not pre-paginated (i.e., reading systems apply dynamic pagination when rendering). Default value.
The
content
is
pre-paginated
(i.e.,
reading
systems
produce
exactly
one
page
per
spine
itemref
when
rendering).
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. When choosing to use pre-paginated instead of reflowable content, it is advised to consider the negative impact on usability and accessibility that these restrictions have. 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.5
Content
document
dimensions
.
The
rendition:layout
property
MUST
NOT
be
declared
more
than
once.
In
addition,
the
property
MUST
NOT
be
declared
using
the
refines
attribute
.
Refer
to
8.2.2.1.1
Layout
overrides
for
setting
the
property
for
individual
EPUB
content
documents
.
The
following
properties
MAY
be
declared
on
spine
itemref
elements
to
override
the
global
value
:
A spine item MUST NOT declare more than one of these overrides.
The
rendition:orientation
property
specifies
which
orientation
the
EPUB
publication
is
intended
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).
One
of
the
following
values
MUST
be
used
with
the
rendition:orientation
property:
Render the content in landscape orientation.
Render the content in portrait orientation.
The content is not orientation constrained. Default value.
The
rendition:orientation
property
MUST
NOT
be
declared
more
than
once.
In
addition,
it
MUST
NOT
be
declared
using
the
refines
attribute
.
Refer
to
8.2.2.2.1
Orientation
overrides
for
setting
the
property
for
individual
EPUB
content
documents
.
The
following
properties
MAY
be
specified
on
spine
itemref
elements
to
override
the
global
value
:
A spine item MUST NOT declare more than one of these overrides.
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).
One
of
the
following
values
MUST
be
used
with
the
rendition:spread
property:
Do not incorporate spine items in a synthetic spread. Render the items in a single viewport positioned at the center of the screen.
Render a synthetic spread for spine items only when the device is in landscape orientation.
Render a synthetic spread regardless of device orientation.
No synthetic spread behavior preference is defined. Default value.
The
rendition:spread
property
MUST
NOT
be
declared
more
than
once.
In
addition,
it
MUST
NOT
be
declared
using
the
refines
attribute
.
Refer
to
8.2.2.3.1
Synthetic
spread
overrides
for
setting
the
property
for
individual
EPUB
content
documents
.
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.
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.
The
following
properties
MAY
be
specified
on
spine
itemref
elements
to
override
the
global
value
:
A spine item MUST NOT declare more than one of these overrides.
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
.
To
force
reading
systems
to
place
a
document
in
a
particular
viewport,
this
automatic
population
behavior
MAY
be
overridden
by
specifying
one
of
the
following
properties
on
its
spine
itemref
element:
rendition:page-spread-center
rendition:page-spread-center
property
is
an
alias
of
the
spread-none
property
for
centering
a
spine
item.
rendition:page-spread-left
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
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
it
is
common
practice
to
specify
the
use
of
a
spread
in
certain
device
orientations,
the
content
itself
does
not
represent
a
true
spread
—
two
consecutive
pages
that
have
to
be
rendered
side-by-side
for
readability,
such
as
a
two-page
map.
To
indicate
that
two
consecutive
pages
represent
a
true
spread,
the
rendition:page-spread-left
and
rendition:page-spread-right
properties
SHOULD
be
set
on
the
spine
items
for
the
two
adjacent
EPUB
content
documents,
and
the
properties
omitted
on
spine
items
where
one-up
or
two-up
presentation
is
equally
acceptable.
A
spine
item
MUST
NOT
declare
more
than
one
rendition:page-spread-*
property,
and/or
their
unprefixed
equivalents
(e.g.,
it
is
valid
to
specify
both
"
rendition:page-spread-left
page-spread-left
"
in
case
reading
systems
only
support
one
of
properties).
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.
Either
property
set
can
be
used,
but
older
reading
systems
might
only
recognize
the
unprefixed
versions.
The
rendition:page-spread-center
was
created
to
make
it
easier
to
understand
the
process
of
switching
between
two-page
spreads
and
single
centered
pages.
Either
rendition:page-spread-center
or
spread-none
can
be
used
to
disable
spread
behavior
in
reading
systems.
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:
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:
height
property
MUST
have
as
its
value
a
positive
number
[
css2
]
or
the
keyword
device-height
;
and
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.
A
viewport
meta
tag
MUST
NOT
specify
more
than
one
height
or
width
definition.
For
SVG
fixed-layout
documents
,
the
initial
containing
block [
css2
]
dimensions
MUST
be
expressed
using
the
viewBox
attribute
[
svg
].
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 can be different.
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 provide control over presentation aspects of reflowable content.
The
rendition:flow
property
specifies
the
preference
for
how
reading
systems
handle
content
overflow.
When
the
rendition:flow
property
is
specified
on
a
meta
element,
it
indicates
the
preference
for
overflow
content
handling
(i.e.,
for
all
spine
items).
Either
dynamic
pagination
or
scrolling
MAY
be
specified.
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).
One
of
the
following
values
MUST
be
used
with
the
rendition:flow
property:
Dynamically paginate all overflow content.
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 ).
Resources SHOULD NOT have different block flow directions as it makes continuous scrolled rendition in EPUB reading systems problematic.
Render all EPUB content documents such that overflow content is scrollable, and each spine item is presented as a separate scrollable document.
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,
this
behavior
MAY
be
overridden
through
an
appropriate
style
sheet
declaration
if
the
reading
system
supports
such
overrides.
The
rendition:flow
property
MUST
NOT
be
declared
more
than
once.
In
addition,
it
MUST
NOT
be
declared
using
the
refines
attribute
.
Refer
to
8.3.1.1
Spine
overrides
for
setting
the
property
for
individual
EPUB
content
documents.
rendition:flow
set
to
paginated
.
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.
rendition:flow
set
to
paginated
.
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.
rendition:flow
set
to
scrolled-continuous
.
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.
rendition:flow
set
to
scrolled-doc
.
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.
The
following
properties
MAY
be
specified
on
spine
itemref
elements
to
override
the
global
value
:
A spine item MUST NOT declare more than one of these overrides.
The
rendition:align-x-center
property
specifies
to
center
the
given
spine
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.
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, this property is expected to be deprecated. The use of CSS solutions is encouraged when effective.
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, these types of books can be created 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.
MUST be valid to the media overlays schema as defined in F.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.
All
elements
[
xml
]
defined
in
this
section
are
in
the
https://www.w3.org/ns/SMIL
namespace
[
xml-names
]
unless
otherwise
specified.
The
smil
element
encapsulates
all
the
information
in
an
media
overlay
document
.
smil
REQUIRED root element [ xml ] of the media overlay document.
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.
In this order:
The
head
element
is
the
container
for
metadata
in
the
media
overlay
document
.
head
The
head
element
is
the
OPTIONAL
first
child
of
the
smil
element.
None
metadata
[0
or
1]
As
this
specification
does
not
define
any
metadata
properties
that
has
to
occur
in
the
media
overlay
document,
the
head
element
is
OPTIONAL
.
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.
metadata
As
a
child
of
the
head
element.
None
[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.
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.
body
The
body
element
is
a
REQUIRED
child
of
the
smil
element.
It
follows
the
head
element,
when
that
element
is
present.
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
.
In any order:
MUST
include
at
least
one
par
or
seq
.
The
seq
element
is
a
sequential
time
container
for
media
objects
and/or
child
time
containers.
seq
One
or
more
seq
elements
MAY
occur
as
children
of
the
body
element
and
of
the
seq
element.
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.
In any order:
MUST
include
at
least
one
par
or
seq
.
The
par
element
is
a
parallel
time
container
for
media
objects.
par
One
or
more
par
elements
MAY
occur
as
children
of
the
body
and
seq
elements.
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.
In any order:
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
can
be
rendered
via
text-to-speech
.
text
As
a
REQUIRED
child
of
the
par
element.
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.
Empty
This
specification
places
no
restriction
on
the
src
attribute
of
a
text
element,
but
it
is
advised
that
the
attribute
reference
content
that
can
be
styled
with
CSS
to
make
the
association
with
style
information
effective.
For
XHTML,
this
means
referencing
palpable
content
.
For
SVG,
it
means
referencing
paths
,
basic
shapes
,
or
text
elements.
[
epub-rs-34
]
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
can
refer
to
embedded
timed
media
(e.g.,
via
an
[
html
]
video
element),
referencing
such
media
can
have
unpredictable
results.
The
audio
element
represents
a
clip
of
audio
media.
audio
An
OPTIONAL
child
of
the
par
element.
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
G.4
A.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
G.4
A.4
Clock
values
.
The
chronological
offset
of
the
terminating
position
MUST
be
after
the
starting
offset
specified
in
the
clipBegin
attribute.
Empty
This section is non-normative.
A pre-recorded narration of a publication can be represented 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
clipBegin
and
clipEnd
attributes
to
indicate
a
specific
offset
within
the
clip.
par
elements
are
placed
together
sequentially
to
form
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.
par
elements
can
also
be
added
to
seq
elements
to
define
more
complex
structures
such
as
parts
and
chapters
(see
9.3.2.1
Overlay
structure
).
In this section, the EPUB content document is assumed to be an XHTML content document . While media overlays can be used with SVG content documents , playback behavior might not be consistent and therefore interoperability is not guaranteed.
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.
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.
The
element
is
used
to
represent
nested
containers
such
as
sections,
asides,
headers,
tables,
lists,
and
footnotes.
It
allows
the
structure
inherent
in
these
containers
to
be
retained
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.
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.
Both
the
epub:textref
attribute
and
the
text
element's
src
attribute
can
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.
Other fragment identifier schemes MAY be used but reading systems might not support such identifiers.
This section is non-normative.
The
granularity
level
of
the
media
overlay
depends
on
how
the
EPUB
content
document
is
marked
up
and
the
type
of
fragment
identifier
used
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.
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
can
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
can
produce
unexpected
results.
See EPUB 3 Text-to-Speech Support [ epub-tts-10 ] for more information about using TTS technologies in EPUB publications.
To
express
structural
semantics
in
media
overlay
documents
,
the
epub:type
attribute
MAY
be
specified
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-34
].
Media
overlay
documents
MAY
use
the
applicable
vocabulary
association
mechanisms
for
the
epub:type
attribute
to
define
additional
semantics.
Visual rendering information for the currently playing EPUB content document element MAY be expressed in a CSS Style Sheet using author-defined classes.
When
used,
the
class
names
MUST
be
declared
in
the
package
document
using
the
active-class
and
playback-active-class
properties.
Exactly one CSS class name MUST be defined 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.
Any CSS properties MAY be defined for the specified CSS classes. Each EPUB content document with an associated media overlay document has to include 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.
The
active-class
and
playback-active-class
properties
MUST
NOT
be
used
in
conjunction
with
a
refines
attribute
as
they
always
apply
to
the
entire
EPUB
publication
.
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.
The
media-overlay
attribute
MUST
only
be
specified
on
manifest
item
elements
for
EPUB
content
documents.
Manifest
items
for
media
overlay
documents
MUST
have
the
media
type
application/smil+xml
.
The
duration
of
the
entire
EPUB
publication
MUST
be
specified
in
the
package
document
using
a
meta
element
with
the
duration
property
.
In
addition,
the
duration
of
each
media
overlay
document
MUST
be
provided
using
the
refines
attribute
to
associate
each
duration
declaration
to
its
corresponding
manifest
item
.
The sum of the durations for each media overlay document SHOULD equal the total duration plus or minus one second.
Although the sum of individual durations might 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.
Narrator
information
MAY
also
be
specified
in
the
package
document
using
the
narrator
property
.
Author-defined
CSS
class
names
to
apply
to
the
currently
playing
EPUB
content
document
element
can
also
be
specified.
The
media:
prefix
is
reserved
for
inclusion
of
these
properties
in
package
metadata.
While
reading,
users
might
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.
The following semantics MAY be used 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.
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).
The following semantics MAY be used 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.
Sometimes escapable structures can contain escapable structures. For example, tables are composed of many rows and cells that users might want to separately escape from. Reading system support for escaping from such structures is complex and not well supported at this time. It is advised to avoid identifying nested escapable structures until better support is available.
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.
Some of the key standards for authoring accessible web content include:
The requirements and practices for creating accessible web content are documented in the [ wcag2 ].
The [ wai-aria ] specification defines roles, states, and properties for making dynamic content that does not use native HTML elements and attributes accessible. It also provides a set of landmarks for navigating web pages.
The [ dpub-aria ] specification is an extension of [ wai-aria ] that provides additional roles specific to identifying common publishing structures.
[ html-aria ] specifies how the roles, states, and properties defined ARIA and DPUB-ARIA can be used in HTML documents.
These standards also form the basis for making EPUB publications accessible. As the current WCAG guidelines (version 2) are heavily focused on web pages, however, the EPUB Accessibility standard [ epub-a11y-12 ] defines how to apply these standards to EPUB publications and 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-12 ]. 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.
It is strongly advised to look beyond legal imperatives and treat accessibility as a requirement for all EPUB publications. The more accessible that EPUB publications are, the greater the potential audience for them.
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).
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, be aware that many practices followed with the best of intentions can expose users to privacy and security issues. The rest of this section explores the risk model of EPUB 3 to help recognize and mitigate these risks.
For the risks associated with reading systems , refer to the security and privacy section of [ epub-rs-34 ].
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 to be aware of include:
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 malicious actor. If content from untrustworthy sources (e.g., third party audio and video) is embedded in an EPUB publication, there is always the possibility that users could 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
specific
to
each
reading
system
implementation
and
not
knowable
outside
of
the
reading
system.
Consequently,
even
if
remote
resources
are
hosted
on
a
secure
web
server,
it
is
not
possible
to
use
security
features
that
require
specifying
allowable
origins,
such
as
headers
for
CORS
,
Content-Security-Policy
,
or
X-Frame-Options
.
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 intent is 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 unintended resources.
Resources embedded in the EPUB container are not immune to malicious actors, especially when EPUB publications are obtained from untrusted sources. Resources could contain exploits or forms that submit sensitive information to unintended parties. Such actors might 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, can also lead to security and privacy issues if the content cannot be fully vetted.
When scripts can access a device's network, it provides a variety channels to exploit the user:
Network access can also allow third-party content to exploit the user.
The encryption and decryption of EPUB publications using digital rights management schemes could 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:
An EPUB publication can include false information about itself to trick users into believing that it comes from a legitimate source. A malicious actor 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.
Malicious actors can also design their content to imitate or replicate a platform's experience to trick users into trusting their content.
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 advised 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-34
]
that
allows
information
about
the
current
reading
system
to
be
queried.
It
is
advised
to
only
use
the
information
exposed
by
this
object
to
improve
the
rendering
of
an
EPUB
publication
(i.e.,
avoid
using
the
information
to
profile
the
user
and
their
environment).
Although it is not possible to prevent every method of exploiting users, responsibility for the secure construction of the content lies with its creator. That requires taking precautions to limit the exposure of EPUB publications to the types of malicious exploits described in the previous section.
Some practical steps include:
Also consider the privacy rights of users and avoid intentionally collecting data. Ideally, users SHOULD NOT be tracked, but this is not realistic for all types of publishing.
When users have to be tracked (e.g., in educational course work), the approval of the user to collect information SHOULD be obtained prior to opening the EPUB publication. If this is not possible, permission SHOULD be obtained when users access the EPUB publication for the first time. Users SHOULD be allowed to opt out of tracking and provided the ability to manage and delete any data that is collected about them.
The inadvertent collection of information about users also needs to be considered. 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 cookies and web storage [ html ]), the potential for data theft by other EPUB publications on a reading system needs to be considered. Although [ epub-rs-34 ] 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, sensitive user data SHOULD NOT be stored in persistent storage. If sensitive data has to be stored, it SHOULD be encrypted to prevent trivial access to it in the case of an exploit.
When digital rights management schemes have to be used, 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 publications SHOULD be produced 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 publications can meet these levels of self-containment, following as many of these practices as possible will still benefit overall user privacy and security.
This section is non-normative.
An
obsolete
but
conforming
feature
is
one
that
is
not
deprecated
but
that
is
also
either
not
designed
for
use
Consider
the
following
extracts
of
a
package
document
and
an
XHTML
content
document
:
<package …>
<metadata …>
…
<link rel="record"
href="meta/data.xml"
media-type="application/marc"/>
<link rel="record"
href="https://www.example.org/meta/data2.xml"
media-type="application/marc"/>
…
</metadata>
<manifest>
…
<item id="page"
href="page.xhtml"
media-type="application/xhtml+xml"/>
<item id="nav"
href="nav.xhtml"
media-type="application/xhtml+xml"
properties="nav"/>
<item id="style"
href="style.css"
media-type="text/css"/>
<item id="font_otf"
href="fonts/font-file.otf"
media-type="font/otf"/>
<item id="font_otf_remote"
href="https://www.example.org/fonts/font-file2.otf"
media-type="font/otf"/>
<item id="font_cff"
href="fonts/font-file.cff"
media-type="font/sfnt"/>
<item id="pls"
href="speech/cmn.pls"
media-type="application/pls+xml"/>
<item id="image_1"
href="media/image_1.png"
media-type="image/png"/>
<item id="image_2"
href="media/image_2.png"
media-type="image/png"
fallback="image_desc"/>
<item id="image_desc"
href="image_desc.xhtml"
media-type="application/xhtml+xml"/>
<item id="image_3_heic"
href="media/image_3.heic"
media-type="image/heic"/>
<item id="image_3_png"
href="media/image_3.png"
media-type="image/png"/>
<item id="widget"
href="widget.xhtml"
media-type="application/xhtml+xml"/>
…
</manifest>
<spine>
…
<itemref idref="page_001"/>
<itemref idref="image_2"/>
…
</spine>
</package>
<html …>
<head …>
…
<link rel="stylesheet" type="text/css" href="style.css"/>
<link rel="pronunciation" type="application/pls+xml" href="speech/cmn.pls"/>
…
</head>
<body>
<img src="media/image1_png"/>
…
<a href="media/image_2.png">…</a>
…
<picture>
<source srcset="media/image_3.heic" type="image/heic"/>
<img src="media/image_3.png"/>
</picture>
…
<iframe src="widget.xhtml"></iframe>
…
<a href="https://www.example.org/some_content">…</a>
</body>
</html>
The
various
resources
in
the
EPUB
3
reading
systems
publication
or
that
would
ideally
can
be
deprecated
categorized
as
follows.
(Refer
to
3.
Publication
resources
except
that
it
would
invalidate
for
more
information
about
these
categories.)
meta/data.xml
The
resource
is
a
significant
base
of
existing
metadata
record,
stored
in
the
EPUB
publications
container
.
It
is
linked
via
a
element
in
the
EPUB
publications
link
MAY
include
obsolete
but
conforming
features
defined
package
document
metadata.
It
is
therefore
a
linked
resource
on
the
manifest
plane
(i.e.,
is
not
listed
in
this
section.
Their
usage
MUST
conform
to
their
referenced
definitions.
the
manifest
).
It
is
not
part
on
any
other
planes.
https://www.example.org/meta/data2.xml
The
resource
is
a
metadata
record,
stored
remotely.
It
is
linked
via
a
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.
Font
obfuscation
[
epub-33
link
]
page.xhtml
NIST
The
resource
is
advising
that
use
of
an
XHTML
document.
It
is
listed
in
the
SHA-1
algorithm
[
fips-180-4
spine
.
It
is
a
publication
resource
]
be
phased
out
by
on
the
end
of
2030.
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
Publishing
Maintenance
Working
Group
does
resource
is
the
EPUB
navigation
document
.
It
is
not
intend
to
support
font
obfuscation
listed
in
EPUB
publications
past
that
date
due
to
its
reliance
the
spine.
It
is
a
publication
resource
on
SHA-1,
although
reading
systems
will
have
to
continue
to
support
deobfuscation
for
existing
EPUB
publications.
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
Better
methods
of
protecting
fonts
exist.
Both
The
resource
is
a
CSS
file.
It
is
not
listed
in
the
spine
but
is
referenced
from
an
[
woff
html
]
and
[
woff2
link
]
fonts,
for
example,
allow
element.
It
is
a
publication
resource
on
the
embedding
of
licensing
information
manifest
plane,
a
container
resource,
is
not
present
on
the
spine
plane,
and
provide
some
protection
through
font
table
compression.
is
a
core
media
type
resource
on
the
content
plane.
No
fallback
is
necessary.
font/font-file.otf
The
use
of
remotely
hosted
fonts
also
allows
for
resource
is
a
TrueType
font
subsetting.
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.
https://www.example.org/fonts/font-file2.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 remote resource , is not present on the spine plane, and is a core media type resource on the content plane. No fallback is necessary.
collection
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
[
epub-33
html
]
Caution
link
When
EPUB
3
was
maintained
by
IDPF
,
element.
It
is
a
number
of
specifications
were
developed
that
relied
publication
resource
on
the
collection
element.
Due
to
manifest
plane,
a
lack
of
adoption
and
implementation
in
reading
systems,
these
specifications
are
no
longer
maintained
container
resource,
not
present
on
the
spine
plane,
and
use
of
is
an
exempt
resource
on
the
element
content
plane.
No
fallback
is
no
longer
advised.
necessary.
image/image_1.png
OPF
2
meta
element
The
resource
is
a
PNG
image
file.
It
is
not
listed
in
the
spine
but
is
referenced
from
an
[
opf-201
html
]
OPF
2
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.
guide
element
[
opf-201
img
]
image/image_2.png
OPF
2
NCX
The
resource
is
a
PNG
image
file.
It
is
referenced
via
an
[
opf-201
html
]
Note
EPUB
3
reading
systems
ignore
these
features.
They
are
replaced
by
the
meta
a
element,
element.
Because
it
is
referenced
from
a
hyperlink,
it
has
to
be
listed
in
the
landmarks
nav
,
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
toc
nav
,
respectively.
content
plane.
As
a
foreign
content
document,
a
fallback
is
mandatory
and
is
provided
via
a
manifest
fallback
.
image_desc.xhtml
The
features
are
retained
only
to
provide
a
measure
resource
is
an
XHTML
document.
It
is
the
"target"
of
backwards
compatibility
with
reading
systems
that
only
support
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
2.
As
such
reading
systems
are
now
rare,
including
these
features
has
limited
value.
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.
-epub-text-orientation
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
[
epub-33
html
]
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
mandatory
and
is
provided
via
the
sibling
[
-epub-writing-mode
[
epub-33
source
]
-epub-text-combine-horizontal
epub-33
html
]
element
in
an
[
-epub-hyphens
[
epub-33
img
]
-epub-line-break
epub-33
html
]
element.
-epub-text-align-last
[
epub-33
picture
]
-epub-word-break
image/image_3.png
The
resource
is
a
PNG
image
file.
It
is
not
listed
in
the
spine
but
is
referenced
from
an
[
epub-33
html
]
element
that
is
used
as
an
intrinsic
fallback
of
the
[
text-transform
value
-epub-fullwidth
img
epub-33
html
]
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.
-epub-text-emphasis-color
[
epub-33
picture
]
-epub-text-emphasis-position
widget.xhtml
The
resource
is
an
XHTML
document.
It
is
not
listed
in
the
spine
but
is
referenced
from
an
[
epub-33
html
]
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.
-epub-text-emphasis-style
[
epub-33
iframe
]
-epub-text-underline-position
https://www.example.org/some_content
The
resource
is
referenced
via
an
[
epub-33
html
]
element
and
is
not
Caution
a
EPUB
3
originally
included
these
prefixed
properties
as
many
CSS
features
related
to
world
languages
were
not
yet
mature.
They
are
only
retained
now
to
ensure
backwards
compatibility
for
content
authored
using
these
prefixes.
The
Working
Group
recommends
switching
to
the
unprefixed
versions
as
soon
as
CSS
support
allows
as
these
prefixed
properties
are
expected
to
be
maintained
stored
in
the
next
major
version
of
EPUB.
EPUB
container.
Reading
systems
will
normally
open
this
link
via
a
separate
browser
instance.
It
is
not
on
any
planes
defined
by
this
specification.
The
Working
Group
advises
that
EPUB
conformance
checkers
not
issue
alerts
about
Additional
examples
on
the
presence
usage
of
obsolete
but
conforming
features
different
types
of
resources
can
be
found
in
EPUB
publications
5.7.2.2
Examples
.
Only
issue
alerts
if
a
feature
does
not
conform
to
its
definition
or
otherwise
breaks
a
usage
requirement.
A
deprecated
feature
is
one
that
has
limited
or
no
support
in
reading
systems
and/or
usage
in
EPUB
publications
.
The
Consider
the
following
deprecated
features
SHOULD
NOT
be
used.
When
used,
their
usage
MUST
conform
to
their
referenced
definitions.
Package
example
package
document
:
<package …>
…
<manifest>
…
<item id="chap01"
href="scripted01.xhtml"
media-type="application/xhtml+xml"
properties="scripted"/>
<item id="inset01"
href="scripted02.xhtml"
media-type="application/xhtml+xml"
properties="scripted"/>
<item id="slideshowjs"
href="slideshow.js"
media-type="text/javascript"/>
</manifest>
<spine …>
<itemref idref="chap01"/>
…
</spine>
…
</package>
and
the
following
file
:bindings
element
[
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
>
epubpublications-301
]
and
the
following
file
scripted02.xhtml
:
<html …>
<head>
…
<script type="text/javascript" href="slideshow.js"></script> </head> <body>
…
</body>
</
html
>
epubpackages-32
]
From these examples, it is true that:
the
code
in
the
element
in
the
switch
script
head
in
scripted01.xhtml
is
a
spine-level
script
[
epubcontentdocs-301
]
because
the
document
is
referenced
from
the
spine;
and
the
code
in
the
element
in
epub:trigger
script
scripted02.xhtml
is
a
container-constrained
script
[
epubcontentdocs-301
]
Fixed
layouts
because
the
XHTML
document
it
occurs
in
is
included
in
rendition:spread
scripted01.xhtml
property
with
via
the
value
element.
portrait
iframe
This
example
demonstrates
the
use
of
the
value
"
both
"
instead.
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
spread-portrait
mimetype
property
[
file
epubpublications-301application/epub+zip] — use
The
contents
of
the
property
"
rendition:spread-both
META-INF/container.xml
"
instead.
file
<?xml version="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
rendition:viewport
META-INF/signatures.xml
property
[
file
<signatures xmlns="urn:oasis:names:tc:opendocument:xmlns:container"> <Signature Id="AsYouLikeItSignature" xmlns="http://www.w3.org/2000/09/xmldsig#">
epubpublications-301
<!--
SignedInfo is the information that is actually signed.
In this case, the SHA-1 algorithm is used to sign the
canonical form of the XML documents enumerated in the
Object element below.
-->
]
Vocabulary
association
mechanisms
<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>
<!--
The signed value of the digest above, using the DSA
algorithm
-->
<SignatureValue>
…
</SignatureValue>
xsd
reserved
prefix
[
<!--
The key used to validate the signature
-->
<KeyInfo> <KeyValue> <DSAKeyValue> <P>…</P> <Q>…</Q> <G>…</G> <Y>…</Y> </DSAKeyValue> </KeyValue> </KeyInfo>
epub-33
<!--
The list of resources to sign (note that the canonical
form of XML documents is signed, while the binary form
of all other resources is used)
-->
<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>
]
for
package
metadata.
<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
>
msv
and
The
contents
of
the
prism
META-INF/encryption.xml
reserved
prefixes
[
file
<?xml version="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#">
epub-33
<!--
The RSA-encrypted AES-128 symmetric key used to encrypt
data enumerated in EncryptedData blocks below
-->
<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>
]
for
structural
semantics.
Meta
properties
vocabulary
<!--
Each EncryptedData block identifies a single resource
that has been encrypted using the AES-128 algorithm.
The data remains stored, in its encrypted form, in the
original file within the container.
-->
<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
meta-auth
EPUB/As_You_Like_It.opf
property
[
file
<?xml version="1.0"?><package version="3.0" xml:lang="en" xmlns="http://www.idpf.org/2007/opf" unique-identifier="pub-id">
epubpublications-30
<metadata
xmlns:dc="http://purl.org/dc/elements/1.1/">
]
Link
relationships
vocabulary
<dc:identifier
id="pub-id">
urn:uuid:B9B412F2-CAAD-4A44-B91F-A375068478A0
</dc:identifier>
<dc:language>
en
</dc:language>
marc21xml-record
property
[
<dc:title>
As You Like It
</dc:title>
epubpublications-30
<dc:creator
id="creator">
William Shakespeare
</dc:creator>
]
—
It
is
replaced
by
the
<meta
property="dcterms:modified">
2000-03-24T00:00:00Z
</meta>
record
<dc:publisher>
Project Gutenberg
</dc:publisher>
keyword
with
the
<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
>
media-type
attribute
The following are examples of allowed clock values:
application/marcxml+xml
5:34:31.396
".
=
5
hours,
34
minutes,
31
seconds,
and
396
milliseconds
mods-record
124:59:36
property
[
epubpublications-30
]
—
It
is
replaced
by
the
=
124
hours,
59
minutes,
and
36
seconds
record
0:05:01.2
keyword
with
the
=
5
minutes,
1
second,
and
200
milliseconds
media-type
0:00:04
attribute
value
"
=
4
seconds
application/mods+xml
09:58
".
=
9
minutes
and
58
seconds
onix-record
00:56.78
property
[
epubpublications-30
]
—
It
is
replaced
by
the
=
56
seconds
and
780
milliseconds
record
76.2s
keyword
with
the
properties
attribute
value
=
76.2
seconds
=
76
seconds
and
200
milliseconds
onix
7.75h
.
=
7.75
hours
=
7
hours
and
45
minutes
xml-signature
13min
property
[
epubpublications-30
]
=
13
minutes
xmp-record
2345ms
property
[
epubpublications-30
]
=
2345
milliseconds
-epub-text-combine
12.345
[
epub-33
]
=
12
seconds
and
345
milliseconds
The following table lists the public and system identifiers [ xml ] allowed in document type declarations . [ xml ]
These external identifiers MAY be used 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 |
|---|---|---|
|
-//
W3C
//DTD
MathML
3.0//EN
|
http://www.w3.org/Math/DTD/mathml3/mathml3.dtd
|
application/x-dtbncx+xml
|
-//NISO//DTD
ncx
2005-1//EN
|
http://www.daisy.org/z3986/2005/ncx-2005-1.dtd
|
image/svg+xml
|
-//
W3C
//DTD
SVG
1.1//EN
|
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
|
This section is non-normative.
Structural
semantics
add
additional
meaning
about
As
the
specific
structural
purpose
an
element
plays.
The
epub:type
Safari
HTML
definition
of
the
viewport
meta
attribute
is
tag,
that
was
used
to
express
domain-specific
semantics
in
EPUB
content
documents
earlier
versions
of
EPUB 3,
is
not
an
officially
recognized
standard,
this
specification
defines
a
basic
syntax
to
allow
width
and
media
overlay
height
dimensions
to
be
expressed
for
fixed-layout
documents
,
with
the
structural
information
it
carries
complementing
the
underlying
vocabulary.
.
The
applied
semantics
refine
the
meaning
syntax
of
their
containing
elements
without
changing
their
nature
this
grammar
is
also
influenced
by
the
parsing
algorithm
for
assistive
technologies,
as
happens
when
using
the
similar
role
viewport
meta
attribute [
tag,
as
defined
in
[
html
css-viewport-1
].
The
attribute
does
syntax
is
intentionally
left
as
generic
as
possible
as
it
is
not
enhance
the
accessibility
of
the
content,
in
other
words;
it
only
provides
hints
about
this
specification's
scope
to
define
all
the
purpose.
Semantic
metadata
enriches
content
for
use
in
publishing
workflows
possible
properties
and
for
author-defined
purposes.
values.
It
also
allows
reading
systems
to
learn
more
about
only
defines
the
structure
and
content
of
basic
requirements
for
defining
a
document
(e.g.,
to
enable
skippability
property
and
escapability
in
media
overlays).
This
specification
defines
a
method
for
adding
structural
semantics
using
the
attribute
axis
:
instead
of
adding
new
elements,
the
epub:type
attribute
can
be
appended
to
existing
elements
to
add
value
pair
as
well
as
the
desired
semantics.
possible
separators
between
expressions.
For
fixed-layout
documents
,
a
http://www.idpf.org/2007/ops
viewport
Usage:
Refer
to
the
requirements
for
XHTML
,
SVG
,
and
media
overlays
.
Value:
A
whitespace-separated
[
xml
]
list
of
property
values,
with
restrictions
as
defined
in
D.1
Vocabulary
association
mechanisms
.
HTML
serialization
Attribute
Name:
epub-type
meta
Usage:
Refer
to
the
requirements
for
HTML
.
Value:
A
whitespace-separated
tag
[
infra
html
]
list
of
values
that
SHOULD
MUST
be
taken
from
the
EPUB
3
Structural
Semantics
Vocabulary
[
epub-ssv-11
].
Editor's
note
Support
for
an
HTML
serialization
of
the
have
epub:type
name
attribute
depends
on
the
addition
of
support
for
the
HTML
syntax
in
the
EPUB
3.4
revision.
It
is
at
risk
,
depending
on
authors'
and
implementers'
feedback.
The
proposed
epub-type
will
provide
similar
functionality
for
HTML
content
documents
but
with
some
restrictions
(namely,
no
extensibility
through
the
epub:prefix
attribute).
The
attribute
should
be
read
as
a
replacement
for
epub:type
where
this
specification
and
the
Reading
Systems
specification
[
epub-rs-34
]
refer
to
that
attribute
for
XHTML
content
documents.
These
references
will
be
updated
once
it
is
clearer
attributes
that
support
will
definitely
be
added
in
this
revision.
conform
to
the
following
definition:
role
name
viewport
.
This
appendix
defines
a
general
set
The
value
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
content
attribute
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
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
.
A
property
value
is
like
a
CURIE
[
rdfa-core
]
—
it
represents
a
URL
[
url
html
]
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,
it
is
only
necessary
to
declare
a
prefix
.
In
another
authoring
convenience,
this
specification
also
reserves
prefixes
for
many
commonly
used
publishing
vocabularies
(i.e.,
their
declaration
is
not
required).
The
following
sections
provide
additional
details
on
the
property
data
type
and
vocabulary
association
mechanism.
D.1.2
The
property
data
type
after
whitespace
normalization
The
property
data
type
is
a
compact
means
of
expressing
a
URL
[
[
url
xml
]
and
consists
of
an
OPTIONAL
MUST
prefix
separated
from
a
reference
by
a
colon.
be
of
the
following
form:
| viewport | = |
|
| property | = |
|
| name | = |
?
|
| value | = |
|
| sep | = |
|
| sep-char | = |
|
| assign | = |
|
| space | = |
|
With
the
exception
of
reserved
prefixes
,
all
prefixes
used
in
a
document
MUST
be
declared.
The
prefix
attribute
only
restriction
on
property
names
and
values
is
that
they
MUST
NOT
be
specified
only
on
contain
separator
characters
or
the
root
element
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
respective
format.
The
attribute
is
not
namespaced
when
used
in
the
package
document
.
Example
79
to
single
spaces).
Any
whitespace
characters
[
:
Declaring
prefixes
in
the
package
document
In
this
example,
the
prefixes
for
the
Friend
of
a
Friend
(
foaf
)
and
DBPedia
(
dbp
)
vocabularies
are
declared
in
the
prefix
attribute.
…
"foaf: http://xmlns.com/foaf/spec/
dbp: http://dbpedia.org/ontology/"
…
</
package
>
xml
The
attribute
]
MUST
MAY
be
declared
included
in
the
namespace
http://www.idpf.org/2007/ops
when
used
in
EPUB
content
documents
and
media
overlay
documents
.
Example
80
:
Declaring
prefixes
in
an
XHTML
content
document
In
this
example,
a
prefix
is
declared
for
authored
tag
so
long
as
the
Z39.98
Structural
Semantics
Vocabulary.
result
is
valid
to
this
definition.
Although
the
prefix
attribute
is
modeled
on
the
identically
named
prefix
attribute
in
[
rdfa-core
],
the
attributes
cannot
be
used
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
>
Note
that
for
SVG
embedded
by
inclusion
,
prefixes
MUST
be
declared
on
the
[
html
]
root
html
depends
on
element.
To
avoid
conflicts,
the
prefix
attribute
MUST
NOT
be
used
to
declare
a
prefix
that
maps
to
a
default
vocabulary
.
The
prefix
'_'
MUST
NOT
be
declared
as
this
specification
reserves
this
prefix
for
future
compatibility
with
RDFa
[
rdfa-core
infra
]
processing.
For
future
compatibility
with
alternative
serializations
definition
of
whitespace
,
the
package
document,
a
prefix
MUST
NOT
be
declared
for
the
Dublin
Core
/elements/1.1/
namespace
[
dcterms
].
Only
Form
Feed
(U+000C)
character
is
not
valid
whitespace
per
the
[
dcterms
xml
]
elements
are
allowed
definition.
It
cannot
be
used
in
the
package
document
metadata
.
XML
syntax
(i.e.,
in
XHTML
content
documents).
Although
reserved
prefixes
There
are
an
authoring
convenience,
they
can
cause
issues.
Vendors,
for
example,
will
often
reject
new
prefixes
until
they
update
their
EPUB
conformance
checkers
.
It
is
advised
to
declare
all
prefixes
to
avoid
no
restrictions
on
any
issues.
Reserved
prefixes
MAY
be
used
in
other
attributes
that
expect
a
property
value
without
declaring
them
in
a
prefix
attribute
.
Reserved
prefixes
SHOULD
NOT
be
overridden
in
allowed
on
the
prefix
meta
attribute
.
The
reserved
prefixes
that
can
be
used
depends
on
the
context:
Package
document
The
following
prefixes
MAY
be
used
in
package
document
attributes
without
having
to
declare
them.
Prefix
URL
Usage
a11y
http://www.idpf.org/epub/vocab/package/a11y/#
To
declare
properties
from
them
EPUB
Accessibility
namespace.
These
are
typically
defined
in
EPUB
Accessibility
1.2
[
epub-a11y-12
].
dcterms
http://purl.org/dc/terms/
To
declare
properties
from
element
by
the
Dublin
Core
/terms/
namespace
[
dcterms
html
].
marc
http://id.loc.gov/vocabulary/
Primarily
used
in
the
]
grammar.
For
more
information
about
specifying
the
scheme
height
attribute
to
indicate
that
creator
and
contributor
roles
are
defined
in
the
the
MARC
relators
code
list
.
Can
be
used
width
properties
and
their
expected
values,
refer
to
reference
other
vocabularies
published
by
8.2.2.5
Content
document
dimensions
.
Although
the
Library
viewport
meta
tag
allows
the
use
of
Congress.
media
http://www.idpf.org/epub/vocab/overlays/#
To
declare
properties
from
the
Media
Overlays
vocabulary
.
onix
http://www.editeur.org/ONIX/book/codelists/
current.html#
Used
in
the
other
than
scheme
height
attribute
and
width
,
as
well
as
to
identify
omit
values
for
the
ONIX
code
list
a
value
corresponds
to.
rendition
http://www.idpf.org/vocab/rendition/#
To
declare
height
and
width
,
such
use
is
strongly
discouraged.
Setting
other
properties
from
could
have
unintended
consequences
on
the
Package
rendering
vocabulary
.
schema
http://schema.org/
To
declare
properties
from
the
Schema.org
vocabulary
.
of
fixed-layout
documents.
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.
The fields in the vocabulary definition tables have the following implicit requirements:
Specifies
the
REQUIRED
type
of
value
using
[
xmlschema-2
]
datatypes.
Datatypes
are
declared
using
the
xsd:
prefix.
Specifies which publication resource type(s) that the property MAY be specified on.
This
field
appears
for
properties
used
in
the
properties
attribute
.
Specifies the number of times the property MAY be specified, whether globally or attached to another element or property.
Properties with a minimum cardinality of one MUST be specified.
Describes the purpose of the property and specifies any additional usage requirements that have to be followed.
Provides non-normative usage examples.
Identifies what metadata the property MAY be associated with.
This field appears for properties that define primary expressions and subexpressions and relationships .
Specifies the name of the property as it MUST appear in the metadata.
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
http://idpf.org/epub/vocab/package/meta/#
.
| Name: |
alternate-script
|
|---|---|
| Description: |
The
This
property
is
typically
attached
to
|
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero
or
more
|
| Extends: | All properties. |
| Name: |
belongs-to-collection
|
|---|---|
| Description: |
The
It
is
also
possible
to
chain
these
properties
using
the
A
unique
identifier
SHOULD
be
provided
for
each
instance
of
a
collection
using
a
The
collection
MAY
more
precisely
define
its
nature
by
attaching
a
The
position
of
the
EPUB
publication
within
the
collection
MAY
be
provided
by
attaching
a
|
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero
or
more
|
| Extends: | Applies to the EPUB publication and can refine other instances of itself. |
| Name: |
collection-type
|
|---|---|
| Description: |
The
When
the
This specification also defines the following collection types when no scheme is specified:
Note
Although reading systems do not have 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
|
| Name: |
display-seq
|
|---|---|
| Description: |
The
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. |
| 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. |
| Name: |
group-position
|
|---|---|
| Description: |
The
The
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.,
1
or
2.2.1
).
|
| Cardinality: |
zero
or
one
|
| Extends: | All properties. |
| Name: |
identifier-type
|
|---|---|
| Description: |
The
When
the
|
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero
or
one
|
| Extends: |
dc:identifier
,
dc:source
|
| Name: |
pageBreakSource
|
|---|---|
| Description: |
Provides a unique identifier for the source of the page break markers in an EPUB publication . It is advised to use a URN as the value when the identifier conforms to a recognized scheme such as an ISBN . If a unique identifier does not exist for the source, it is advised to use a text description that identifies the source as clearly as possible (e.g., the title of a word processing document).
If
the
page
break
markers
are
unique
to
the
EPUB
publication
(e.g.,
for
a
digital-only
edition),
the
value
"
|
| Allowed value(s): |
xsd:string
|
| Cardinality: | Exactly one when the publication includes a page list and/or page break markers, otherwise 0. |
| Extends: | Applies to the EPUB publication. Does not extend other properties. |
The
pageBreakSource
property
replaces
the
source-of
property
for
identifying
the
source
of
static
pagination
for
an
EPUB
publication.
Refer to [ epub-a11y-tech-11 ] for information on how to provide accessible page navigation.
| Name: |
role
|
|---|---|
| Description: |
The
When
the
When
assigning
multiple
roles
to
an
individual
or
organization,
associate
each
role
in
a
separate
|
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero
or
more
|
| Extends: |
,
,
dc:publisher
|
It
is
no
longer
advised
to
use
the
source-of
property
in
EPUB
publications.
To
indicate
the
source
of
pagination
for
an
EPUB
publication,
refer
to
the
pageBreakSource
property
definition
.
The
source-of
property
will
not
be
officially
deprecated
due
to
the
existing
base
of
EPUB
publications
in
which
it
is
used,
but
it
is
advised
to
treat
it
as
though
it
is
deprecated.
For
information
on
its
use,
refer
to
source-of
property
definition
in
[
epub-33
].
| Name: |
term
|
|---|---|
| Description: |
The
|
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero
or
one
|
| Extends: |
|
| Name: |
title-type
|
|---|---|
| Description: |
The
When
the
|
| Allowed value(s): |
xsd:string
|
| Cardinality: |
zero
or
one
|
| Extends: |
dc:title
|
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
http://idpf.org/epub/vocab/package/link/#
.
The
following
values
can
be
used
in
the
link
element
rel
attribute
to
establish
the
relationship
of
the
resource
referenced
in
the
href
attribute
.
| Name: |
alternate
|
|---|---|
| Description: |
The
|
| Cardinality: |
Zero
or
more
|
| Extends: |
Only
applies
to
the
EPUB
publication
or
collection.
MUST
NOT
be
used
when
the
refines
attribute
is
present.
|
| Example: |
<link
rel="alternate"
href="package.json"
media-type="application/json-ld"/>
|
| Name: |
record
|
|---|---|
| Description: |
Indicates that the referenced resource is a metadata record.
The
media
type
of
the
record
MUST
be
identified
in
the
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
|
| Cardinality: |
Zero
or
more
|
| Extends: |
Only
applies
to
the
EPUB
publication
or
collection.
MUST
NOT
be
used
when
the
refines
attribute
is
present.
|
| Example: |
<link
rel="record"
href="book/52.atom"
media-type="application/atom+xml;type=entry;profile=opds-catalog"/>
|
| 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
|
| Cardinality: |
Zero
or
more
|
| Extends: |
All
properties.
The
refines
attribute
MUST
be
present
when
this
value
is
used.
|
| Example: |
<link
refines="#title"
rel="voicing"
media-type="audio/mpeg"
href="title.mp3"
/>
|
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.
| Name: |
onix
|
|---|---|
| Description: |
The
onix
property
indicates
the
referenced
resource
is
an
ONIX
record
[
onix
].
|
| Example: |
<link
rel="record"
href="pub/meta/nor-wood-onix.xml"
media-type="application/xml"
properties="onix"/>
|
The
prefix
URL
for
referencing
these
properties
is
http://www.idpf.org/vocab/rendition/#
.
The
"
rendition:
"
prefix
is
reserved
for
use
with
the
package
rendering
properties
and
does
not
have
to
be
declared
in
the
package
document
.
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
|
|
8.2.2.1 Layout |
rendition:orientation
|
|
8.2.2.2 Orientation |
rendition:spread
|
|
8.2.2.3 Synthetic spreads |
| — |
|
8.2.2.4 Spread placement |
rendition:flow
|
|
8.3.1
The
rendition:flow
property
|
| — |
|
8.3.2
The
rendition:align-x-center
property
|
Custom properties and spine overrides can be included in the package document to address rendering issues specific to particular reading systems , as defined by the developers of those reading systems.
The
only
restrictions
are
that
such
properties
MUST
NOT
be
defined
with
a
rendition:
prefix
and
MUST
NOT
conflict
behaviorally
with
properties
in
the
package
rendering
vocabulary
.
If extensions are needed for use by multiple independent reading systems, the preferred method is to extend the package rendering vocabulary through a revision to this standard.
The
properties
in
this
vocabulary
are
usable
in
the
manifest
item
element's
properties
attribute
.
The
prefix
URL
for
referencing
these
properties
is
http://idpf.org/epub/vocab/package/item/#
.
| 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
|
| 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
|
| Name: |
remote-resources
|
|---|---|
| Description: |
The
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
|
| Name: |
scripted
|
|---|---|
| Description: |
The
scripted
property
indicates
that
the
described
publication
resource
is
a
scripted
content
document
(i.e.,
contains
scripting
and/or
[
html
]
form
elements).
|
| Applies to: | EPUB content documents |
| Cardinality: |
Zero
or
more
|
| Name: |
svg
|
|---|---|
| Description: |
The
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
]
|
| Applies to: | XHTML content documents ; the value is implied for SVG content documents . |
| Cardinality: |
Zero
or
more
|
| Name: |
switch
|
|---|---|
| Description: |
The
|
| Applies to: | XHTML content documents . |
| Cardinality: |
Zero
or
more
|
The
properties
in
this
vocabulary
are
usable
in
the
spine
itemref
element's
properties
attribute
.
The
prefix
URL
for
referencing
these
properties
is
http://idpf.org/epub/vocab/package/itemref/#
.
| Name: |
page-spread-left
|
|---|---|
| Description: |
The
The
|
| Name: |
page-spread-right
|
|---|---|
| Description: |
The
The
|
The
properties
in
this
vocabulary
are
usable
in
the
meta
element's
property
attribute.
The
prefix
URL
for
referencing
these
properties
is
http://idpf.org/epub/vocab/overlays/#
.
The
prefix
"
media:
"
is
reserved
for
use
with
properties
in
this
vocabulary
and
does
not
have
to
be
declared
in
the
package
document
.
| Name: |
active-class
|
|---|---|
| Description: | The CSS class name to apply to the currently playing EPUB content document element. |
| Allowed value(s): |
xsd:string
|
| Cardinality: |
Zero
or
one
|
| Example: |
<meta
property="media:active-class">-epub-media-overlay-active</meta>
|
| 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: |
<meta
property="media:duration">1:36:20</meta>
|
| Name: |
narrator
|
|---|---|
| Description: | Name of the narrator. |
| Allowed value(s): |
xsd:string
|
| Cardinality: |
Zero
or
more
|
| Example: |
<meta
property="media:narrator">Joe
Speaker</meta>
|
| 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: |
<meta
property="media:playback-active-class">-epub-media-overlay-playing</meta>
|
This
section
An
obsolete
but
conforming
feature
is
non-normative.
As
the
Safari
HTML
definition
of
the
viewport
meta
tag,
one
that
was
used
in
earlier
versions
of
EPUB 3,
is
not
an
officially
recognized
standard,
this
specification
defines
a
basic
syntax
to
allow
width
and
height
dimensions
deprecated
but
that
is
also
either
not
designed
for
use
in
EPUB
3
reading
systems
to
or
that
would
ideally
be
expressed
for
fixed-layout
documents
deprecated
except
that
it
would
invalidate
a
significant
base
of
existing
EPUB
publications
.
The
syntax
of
this
grammar
is
also
influenced
by
the
parsing
algorithm
for
EPUB
publications
MAY
include
the
viewport
meta
tag,
as
obsolete
but
conforming
features
defined
in
this
section.
Their
usage
MUST
conform
to
their
referenced
definitions.
Font
obfuscation
[
css-viewport-1
epub-33
].
]
The
syntax
is
intentionally
left
as
generic
as
possible
as
it
NIST
is
advising
that
use
of
the
SHA-1
algorithm
[
fips-180-4
]
be
phased
out
by
the
end
of
2030.
The
Publishing
Maintenance
Working
Group
does
not
intend
to
support
font
obfuscation
in
this
specification's
scope
EPUB
publications
past
that
date
due
to
define
all
the
possible
properties
and
values.
It
only
defines
the
basic
requirements
its
reliance
on
SHA-1,
although
reading
systems
will
have
to
continue
to
support
deobfuscation
for
defining
a
property
existing
EPUB
publications.
Better
methods
of
protecting
fonts
exist.
Both
[
woff
]
and
value
pair
as
well
as
[
woff2
]
fonts,
for
example,
allow
the
possible
separators
between
expressions.
embedding
of
licensing
information
and
provide
some
protection
through
font
table
compression.
The
use
of
remotely
hosted
fonts
also
allows
for
font
subsetting.
collection
element
[
epub-33
For
fixed-layout
documents
,
When
EPUB
3
was
maintained
by
IDPF
,
a
number
of
specifications
were
developed
that
relied
on
the
element.
Due
to
a
lack
of
adoption
and
implementation
in
reading
systems,
these
specifications
are
no
longer
maintained
and
use
of
the
element
is
no
longer
advised.
viewport
collection
OPF
2
meta
element
tag
[
html
opf-201
]
MUST
have
EPUB
3
reading
systems
ignore
these
features.
They
are
replaced
by
the
content
meta
attributes
that
conform
to
element,
the
following
definition:
landmarks
nav
,
and
the
toc
nav
,
respectively.
The
value
features
are
retained
only
to
provide
a
measure
of
the
backwards
compatibility
with
reading
systems
that
only
support
EPUB
2.
As
such
reading
systems
are
now
rare,
including
these
features
has
limited
value.
-epub-text-orientation
-epub-writing-mode
-epub-text-combine-horizontal
-epub-hyphens
-epub-line-break
-epub-text-align-last
-epub-word-break
[
text-transform
value
-epub-fullwidth
-epub-text-emphasis-color
-epub-text-emphasis-position
-epub-text-emphasis-style
-epub-text-underline-position
EPUB 3 originally included these prefixed properties as many CSS features related to world languages were not yet mature. They are only retained now to ensure backwards compatibility for content authored using these prefixes. The Working Group recommends switching to the unprefixed versions as soon as CSS support allows as these prefixed properties are not expected to be maintained in the next major version of EPUB.
The
only
restriction
on
property
names
Working
Group
advises
that
EPUB
conformance
checkers
and
values
not
issue
alerts
about
the
presence
of
obsolete
but
conforming
features
in
EPUB
publications
.
Only
issue
alerts
if
a
feature
does
not
conform
to
its
definition
or
otherwise
breaks
a
usage
requirement.
A
deprecated
feature
is
one
that
they
MUST
NOT
contain
separator
characters
has
limited
or
the
assignment
character
no
support
in
reading
systems
and/or
usage
in
EPUB
publications
.
The
authoring
requirements
in
this
section
apply
after
following
deprecated
features
SHOULD
NOT
whitespace
normalization
be
used.
When
used,
their
usage
MUST
conform
to
their
referenced
definitions.
bindings
element
[
[
xml
epubpublications-301
]
(i.e.,
after
a
reading
system
strips
leading
and
trailing
whitespace
and
compacts
all
instances
of
multiple
whitespace
within
the
attribute
to
single
spaces).
Any
whitespace
characters
new
collection
types
[
xml
epubpackages-32
]
MAY
be
included
in
the
authored
tag
so
long
as
the
result
is
valid
to
this
definition.
Although
switch
element
[
html
epubcontentdocs-301
]
depends
on
epub:trigger
element
the
[
infra
epubcontentdocs-301
]
definition
of
whitespace
,
the
Form
Feed
(U+000C)
character
is
not
valid
whitespace
per
rendition:spread
property
with
the
value
portrait
[
xml
epubpublications-301
]
definition.
It
cannot
be
used
in
—
use
the
XML
syntax
(i.e.,
in
XHTML
content
documents).
value
"
both
"
instead.
There
are
no
restrictions
on
any
other
attributes
allowed
on
the
property
[
epubpublications-301
meta
spread-portrait
element
by
]
—
use
the
property
"
rendition:spread-both
"
instead.
rendition:viewport
property
[
html
epubpublications-301
]
grammar.
Note
xsd
reserved
prefix
[
epub-33
]
for
package
metadata.
For
more
information
about
specifying
the
and
height
msv
reserved
prefixes
[
epub-33
]
for
structural
semantics.
width
prism
8.2.2.5
Content
document
dimensions
.
meta-auth
property
[
epubpublications-30
]
marc21xml-record
property
[
epubpublications-30
]
—
It
is
replaced
by
the
viewport
meta
record
tag
allows
keyword
with
the
use
of
properties
other
than
height
media-type
and
attribute
value
"
".
width
,
as
well
as
to
omit
values
for
application/marcxml+xml
mods-record
property
[
epubpublications-30
]
—
It
is
replaced
by
the
height
record
and
keyword
with
the
attribute
value
"
width
,
such
use
media-type
application/mods+xml
".
onix-record
property
[
epubpublications-30
]
—
It
is
strongly
discouraged.
Setting
other
replaced
by
the
record
keyword
with
the
properties
could
have
unintended
consequences
on
attribute
value
onix
.
The
Working
Group
recommends
that
EPUB
conformance
checkers
alert
about
the
rendering
presence
of
fixed-layout
documents.
deprecated
features
when
encountered
in
EPUB
publications.
This section is non-normative.
A schema for package documents is available at https://github.com/w3c/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/30/package-30.nvdl .
Validation using this schema requires a processor that supports [ nvdl ], [ relaxng-schema ], [ isoschematron ] and [ xmlschema-2 ].
The NVDL schema layer can be substituted by a multi-pass validation using the embedded RELAX NG and ISO Schematron schemas alone.
Updates and corrections to these schemas can occur outside of formal revisions of this specification. As a result, they are subject to change at any time.
A
schema
for
container.xml
files
is
available
at
https://github.com/w3c/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/30/ocf-container-30.nvdl
.
Validation using this schema requires a processor that supports [ relaxng-schema ] and [ xmlschema-2 ].
The
schema
for
encryption.xml
files
is
included
in
[
xmlsec-rngschema-20130411
].
The
schema
for
signatures.xml
files
is
included
in
[
xmlsec-rngschema-20130411
].
A schema for media overlay documents is available at https://github.com/w3c/epubcheck/tree/main/src/master/resources/com/adobe/epubcheck/schema/30/media-overlay-30.nvdl .
Validation using this schema requires a processor that supports [ nvdl ], [ relaxng-schema ], [ isoschematron ] and [ xmlschema-2 ].
The NVDL schema layer can be substituted by a multi-pass validation using the embedded RELAX NG and ISO Schematron schemas alone.
This
appendix
registers
the
media
type
application/oebps-package+xml
for
the
EPUB
package
document.
This
registration
supersedes
RFC4839
(see
https://www.rfc-editor.org/rfc/rfc4839
).
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 ).
application
oebps-package+xml
None.
None.
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 ].
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 need to 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.
None.
This media type registration is for the EPUB package document, as described by the EPUB 3 specification located at https://www.w3.org/TR/epub/ .
The
EPUB
3
specification
supersedes
the
Open
Packaging
Format
2.0.1
specification,
which
is
located
at
https://idpf.org/epub/20/spec/OPF_2.0.1_draft.htm
and
which
also
uses
the
application/oepbs-package+xml
media
type.
This media type is in wide use for the distribution of ebooks in the EPUB format.
none
.opf
TEXT
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 https://idpf.org/epub/linking/cfi/ .
Publishing Maintenance Working Group (epub-maintenance@w3.org)
COMMON
World Wide Web Consortium ( W3C )
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 https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT ). It is used to encapsulate the EPUB publication. OCF and its related standards are maintained and defined by the World Wide Web Consortium ( W3C ).
application
epub+zip
None.
None.
OCF
ZIP
container
files
are
binary
files
encoded
in
the
application/zip
media
type.
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.
None.
This
media
type
registration
is
for
the
EPUB
Open
Container
Format
(OCF),
as
described
by
the
EPUB
3
specification
located
at
https://www.w3.org/TR/epub/
.
The
EPUB
3
specification
supersedes
both
RFC
4839
and
the
Open
Container
Format
2.0.1
specification,
which
is
located
at
https://idpf.org/epub/20/spec/OCF_2.0.1_draft.doc
,
and
which
also
uses
the
application/epub+zip
media
type.
This media type is in wide use for the distribution of ebooks in the EPUB format.
0:
PK
0x03
0x04
,
30:
mimetype
,
38:
application/epub+zip
OCF
ZIP
container
files
are
most
often
identified
with
the
extension
.epub
.
ZIP
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 https://idpf.org/epub/linking/cfi/ .
Publishing Maintenance Working Group (epub-maintenance@w3.org)
COMMON
World Wide Web Consortium ( W3C )
audio
§9.2.2.8
body
§9.2.2.4
Compression
§4.2.6.3.2.2
container
§4.2.6.3.1.1
dc:contributor
dc:creator
dc:date
dc:identifier
dc:language
dc:subject
dc:title
dc:type
EncryptedData
§4.2.6.3.2.1
EncryptedKey
§4.2.6.3.2.1
encryption
§4.2.6.3.2.1
epub-type
epub:type
head
§9.2.2.2
item
itemref
link
links
§4.2.6.3.1.4
manifest
meta
metadata
package
par
§9.2.2.6
rootfile
§4.2.6.3.1.3
rootfiles
§4.2.6.3.1.2
seq
§9.2.2.5
signatures
§4.2.6.3.6.1
smil
§9.2.2.1
spine
text
§9.2.2.7
a
element
area
element
base
element
bdo
element
canvas
element
content
attribute
(for
meta
element)
dir
attribute
(for
html-global
element)
div
element
embed
element
form
element
href
attribute
(for
a
element)
html
element
iframe
element
img
element
li
element
name
attribute
(for
meta
element)
object
type
ol
element
picture
element
role
attribute
rp
element
script
element
source
element
span
element
src
attribute
(for
source
element)
src
attribute
(for
img
element)
srcset
attribute
(for
img
element)
srcset
attribute
(for
source
element)
style
attribute
(for
html-global
element)
track
element
type
attribute
(for
source
element)
video
element
list
)
svg
element
title
element
This section is non-normative.
Note that this change log only identifies substantive changes since EPUB 3.3 — those that could affect the conformance of EPUB publications .
For a list of all issues addressed, refer to the Working Group's issue tracker .
collection
element,
the
legacy
package
document
features,
and
the
prefixed
CSS
properties
to
it.
See
issue
2807
.
xsd
,
msv
,
and
prism
reserved
prefixes
to
the
deprecated
features
section.
See
issue
2739
.
pageBreakSource
property
to
the
meta
properties
vocabulary
to
replace
source-of
.
See
issue
2714
.
application/x-font-ttf
to
the
list
of
core
media
types
for
identifying
TTF
fonts.
See
issue
667
.
script
elements
are
exempt.
See
issue
2649
.
This section is non-normative.
The Publishing Maintenance Working Group would like to make a special acknowledgment to notable contributors, and friends, we have lost along the way. In particular, EPUB, not just EPUB 3, would not be what is today without the vision, knowledge, and preternatural good nature of Garth Conboy. Similarly, Ben Schroeter will always be remembered for his tireless work to help EPUB reach its potential as a universally accessible format. We are forever in their debt.
The following members of the Publishing Maintenance Working Group contributed to the development of this specification:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: