Working Group Draft 15 February 2011
Copyright © 2010, 2011 International Digital Publishing Forum™
All rights reserved. This work is protected under Title 17 of the United States Code. Reproduction and dissemination of this work with changes is prohibited except with the written permission of the International Digital Publishing Forum (IDPF).
EPUB is a registered trademark of the International Digital Publishing Forum.
Table of Contents
This specification, EPUB Content Documents 3.0, defines profiles of HTML5, SVG, and CSS for use in the context of EPUB® Publications.
This specification is one of a family of related specifications that compose EPUB 3, the third major revision of an interchange and delivery format for digital publications based on XML and Web Standards. It is meant to be read and understood in concert with the other specifications that make up EPUB 3:
The EPUB 3 Overview [EPUB3Overview], which should be read first, provides an informative overview of EPUB and a roadmap to the rest of the EPUB 3 documents.
EPUB Publications 3.0 [Publications30], which defines publication-level semantics and overarching conformance requirements for EPUB Publications.
EPUB Open Container Format (OCF) 3.0 [OCF3], which defines a file format and processing model for encapsulating a set of related resources into a single-file (ZIP) EPUB Container.
EPUB Media Overlays 3.0 [MediaOverlays30], which defines a format and a processing model for synchronization of text and audio.
This specification supersedes Open Publication Structure (OPS) 2.0.1 [OPS2]. Refer to [EPUB3Changes] for information on differences between this specification and its predecessor.
This section is informative
The XHTML document type defined by this specification is based on W3C HTML5, and inherits unless otherwise specified all definitions of semantics, structure and processing behaviors from the HTML5 specification.
In addition, this specification defines a set of extensions to the W3C HTML5 document model that Authors may include in XHTML Content Documents.
This specification defines a simplified processing model that does not require Reading Systems to support scripting, HTML5 forms or the HTML5 DOM. EPUB Reading Systems conformant with this specification are only required to be able to process a conforming EPUB Content Document. As support for scripting and HTML5 forms are optional Reading System features, a conformant Reading System may not be a fully-conformant HTML5 User Agent (i.e., it may not implement the complete HTML5 processing model).
This specification defines a restricted subset of SVG 1.1 to represent vector graphics inline in XHTML Content Documents and as standalone SVG Content Documents.
The CSS profile defined in this specification has CSS 2.1 [CSS2.1] as its baseline. Any CSS Style Sheet that conforms to CSS 2.1 may be used in the context of an EPUB Publication, except as noted in CSS 2.1.
This specification also incorporates features defined by CSS3 Modules and introduces EPUB-specific CSS constructs.
EPUB 3 references W3C specifications that are not yet final, and incompatible changes to them may occur in the future that would cause EPUB 3 Content Documents that were previously conformant to no longer be conformant to the latest versions of the referenced specifications.
The IDPF anticipates revising the EPUB 3 specifications if and when such
incompatible changes occur, updating the normative constraints defined herein as
necessary and incrementing the minor version number of EPUB 3 (e.g., publishing
an EPUB 3.0.n
).
A logical document entity consisting of a set of interrelated resources and packaged in a EPUB Container, as defined by this specification and its sibling specifications .
A resource that contains content or instructions that contribute, directly or indirectly, to the logic and rendering of the EPUB Publication (e.g., the Package Document, EPUB Content Documents, EPUB Style Sheets, audio, video, images, embedded fonts, scripts). In the absence of this resource, the Publication cannot be rendered as intended by the Author.
Publication resources are listed in the manifest [Publications30] .
A Publication Resource that is a Core Media Type and may therefore be included in the EPUB Publication without the provision of fallbacks [Publications30] .
A Publication Resource that conforms to one of the EPUB Content Document definitions (XHTML or SVG).
An EPUB Content Document is a Core Media Type, and may therefore be included in the EPUB Publication without the provision of fallbacks [Publications30] .
An EPUB Content Document conforming to the profile of [HTML5] defined in XHTML Content Documents .
XHTML Content Documents use the XHTML syntax of [HTML5].
An EPUB Content Document conforming to the constraints expressed in SVG Content Documents .
A specialization of the XHTML Content Document, containing human- and machine readable global navigation information, conforming to the constraints expressed in EPUB Navigation Documents .
An EPUB Content Document that includes scripting, or an XHTML Content Document that contains HTML5 forms elements.
Refer to Scripted Content Documents for more information.
An EPUB Content Document referenced from the spine
A set of Publication Resource types for which no fallback is required. Refer to Core Media Types [Publications30] for more information.
A Publication Resource carrying bibliographical and structural metadata about the EPUB Publication, as defined in Package Documents [Publications30] .
A list of all Publication Resources that constitute the EPUB Publication.
Refer to manifest [Publications30] for more information.
An ordered list of Publication Resources, typically EPUB Content Documents, representing the default reading order of the publication.
Refer to spine [Publications30] for more information.
The rendering of the textual content of an EPUB Publication as artificial human speech using a synthesized voice.
A CSS Style Sheet conforming to the CSS profile defined in EPUB Style Sheets .
The region of an EPUB Reading System in which the content of an EPUB Publication is rendered visually to a User.
A Viewport capable of displaying CSS-styled content.
A ZIP-based packaging and distribution format for an EPUB Publication, as defined in [OCF3].
The person(s) or organization responsible for the creation of an EPUB Publication, which may or may not be the creator of the content and resources it contains.
An individual that consumes an EPUB Publication using an EPUB Reading System.
A system that processes EPUB Publications for presentation to Users in a manner conformant with this specification and its sibling specifications .
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
All sections of this specification are normative except where identified by the informative status label "This section is informative". The application of informative status to sections and appendices applies to all child content and subsections they may contain.
All examples in this specification are informative.
For convenience, the following namespace prefix mappings [XMLNS] are used throughout this specification:
prefix | namespace URI |
---|---|
epub
|
http://www.idpf.org/2011/epub
|
m
|
http://www.w3.org/1998/Math/MathML
|
pls
|
http://www.w3.org/2005/01/pronunciation-lexicon
|
ssml
|
http://www.w3.org/2001/10/synthesis
|
svg
|
http://www.w3.org/2000/svg
|
This section defines a profile of [HTML5] for creating XHTML Content Documents. An instance of an XML document that conforms to this profile is a Core Media Type and is referred to in this specification and its sibling specifications as an XHTML Content Document.
Unless otherwise specified, this specification inherits all definitions of semantics, structure and processing behaviors from the HTML5 specification. [HTML5]
The EPUB 3 XHTML Content Document definition references features in the W3C HTML5 specification that are still works in progress and may change in incompatible ways. When utilizing such features, authors should consider the inherent risks in terms of the potential impact on interoperability and document longevity.
An XHTML Content Document must meet all of the following criteria:
› It must meet the conformance constraints for XML documents defined in XML Document Content Conformance [Publications30] .
› It must use the XHTML syntax [HTML5].
› It must be valid to the XHTML Content Document schema as defined in XHTML Content Document Schema.
› For all document constructs used that are defined by [HTML5], it must conform to the conformance criteria defined for those constructs in that specification, unless explicitly overridden in HTML5 Deviations and Constraints.
› It must conform to all content conformance constraints defined in HTML5 Extensions and Enhancements.
› The XHTML Content
Document filename should use the file extension
.xhtml
.
All Publication Resources referenced from an XHTML Content Document must conform to the constraints for Publication Resources defined in EPUB Publication Content Conformance [Publications30]
A conformant EPUB Reading System must meet all of the following criteria for processing XHTML Content Documents:
› It must support XHTML Content Documents.
› Unless explicitly defined by this specification or its sibling specifications as overridden, it must process XHTML Content Documents using semantics defined by the HTML5 specification [HTML5], and honor any applicable User Agent conformance constraints expressed therein.
› It must meet all Reading System conformance criteria defined in HTML5 Extensions and Enhancements.
› It must recognize and adapt behaviorally to the constraints defined in HTML5 Deviations and Constraints.
› It must meet the Reading System conformance criteria defined in Scripted Content Documents Reading System Conformance.
› It must support visual rendering of XHTML Content Documents as defined in EPUB Style Sheet Reading System Conformance.
› It should recognize embedded ARIA markup and support exposure of any given ARIA roles, states and properties to platform accessibility APIs [WAI-ARIA].
This section defines EPUB 3 XHTML Content Document extensions to the underlying HTML5 document model.
TODO Issue 20
Semantic inflection is the process of attaching additional meaning about the specific purpose and/or nature that an element plays in an XHTML Content Document. In the context of EPUB Publications, such inflection typically pertains to domain-specific semantics that are not covered by the underlying host language (HTML5) vocabulary.
Semantic metadata is not intended for human consumption; it instead provides a controlled way for Reading Systems and other User Agents to learn more about the structure and content of a document, providing them the opportunity to enhance the reading experience for Users.
This specification defines a method for semantic inflection using the attribute axis : instead of adding new XML elements to the XHTML Content Document vocabulary as needed, a fixed set of attributes are used to inflect the desired semantics. A mechanism to identify external vocabularies that provide controlled values for the attributes is also defined.
epub:type
AttributeNOTE: Issue 73
The epub:type
attribute inflects semantics on the element
on which it appears. Its value is one or more space-separated terms
stemming from external vocabularies associated with the document
instance, as defined in Vocabulary Association
.
The inflected semantic must express a subclass of the semantic of the carrying element. Note that Reading Systems are required to ignore inflected semantics that conflict with the carrying element.
The epub:type
attribute is intended to be
functionally equivalent to the W3C Role Attribute [Role], but with restrictions as
specified in Vocabulary Association
.
type
http://www.idpf.org/2011/epub
May be specified on all elements.
A space-separated list of CURIEs [RDFa11 Core], with restrictions as defined in Vocabulary Association .
NOTE The spec [RDFa11 Core]
underlying the profile
and prefix
attributes is still evolving. The exact mechanism for vocabulary
association in EPUB 3 is therefore subject to
change.
This specification uses a subset of the vocabulary association
mechanism defined in RDFa 1.1 Core [RDFa11 Core]. The
profile
and prefix
attributes of RDFa 1.1
Core are allowed on the root element of XHTML Content Documents, and are
used as follows:
profile
attribute
[conditionally required]
Specifies the URI [RFC3986] of the vocabulary profile for EPUB Content Documents.
This attribute is optional except when the
epub:type
attribute is used in an XHTML Content Document, in which case its use is required.
This version of the specification requires the attribute
have the value
http://www.idpf.org/epub/30/profile/content/
[ContentProfile]
prefix
attribute
[optional]
Declares additional vocabulary prefix mappings beyond the mappings declared in the profile, using the syntax defined in [RDFa11 Core].
The prefix
attribute must not redeclare a prefix that has already been defined through the metadata profile. Similarly, the XML
Namespaces [XMLNS] method of defining namespace prefixes using the
xmlns
pseudo-attribute must not be used to define vocabulary
prefixes.
Besides reserving prefixes for a set of well-known vocabularies, the
vocabulary profile for EPUB Content Documents also reserves the EPUB 3
Structural Semantics Vocabulary [StructureVocab]
as the
default vocabulary
for all XHTML Content
Documents. The terms defined in this vocabulary are used without
prefixes in the epub:type
attribute of XHTML Content
Documents.
Examples
The following example shows the epub:type
attribute
used to inflect footnote and note reference semantics. The
properties used are defined in the default vocabulary.
<html … profile="http://www.idpf.org/epub/30/profile/content/"> … <p> … <a epub:type="noteref" href="n1">1</a> … </p> … <aside epub:type="footnote" id="n1"> … </aside> … </html>
The following example shows the epub:type
attribute
used to inflect glossary semantics on an HTML5 definition list. The
property used is defined in the default vocabulary.
<html … profile="http://www.idpf.org/epub/30/profile/content/"> … <dl epub:type="glossary"> … </dl> … </html>
The following example shows the epub:type
attribute
used to inflect source publication pagebreak semantics. The property
used is defined in the default
vocabulary. (Note that the
source-identifier
[Publications30]
property provides a means of identifying the source publication to
which the given pagination information applies.)
<html … profile="http://www.idpf.org/epub/30/profile/content/"> … <p> … <br epub:type="pagebreak" title="234"/> … </p> … </html>
Reading Systems must process the epub:type
as
follows:
› A Reading System may associate specialized behaviors with none, some or all of the terms defined in the default vocabulary.
› A Reading System may also associate specialized behaviors with terms given in vocabularies other than the default one.
› A Reading System must ignore terms that it does not recognize.
› When Reading System behavior associated with a given
epub:type
value conflicts with behavior
associated with the carrying element, then the behavior
associated with the element must be given precedence.
The W3C Speech Synthesis Markup Language [SSML] is a language used for assisting Text-to-Speech (TTS) engines in generating synthetic speech. While SSML is a language designed as a standalone document type, it also defines semantics suitable for use within other host languages.
This specification recasts the SSML
1.1 phoneme
element as two attributes
(ssml:ph
and ssml:alphabet
), and makes
them available within EPUB XHTML Content Documents.
Reading Systems with Text-to-Speech (TTS) capabilities should support the SSML Attributes as defined below.
NOTE: discussions with SSML WG on reuse of namespace is ongoing
For more information on EPUB 3 features related to synthetic speech, refer to Text-to-speech [EPUB3Overview] .
ssml:ph
attributeThe ssml:ph
attribute specifies a phonemic/phonetic
pronunciation for the text contained within the element on which the
attribute appears.
ph
http://www.w3.org/2001/10/synthesis
May be specified on all elements that have text node descendants, but must not be specified on a descendant of an element that also carries this attribute.
A phonemic/phonetic expression, syntactically valid with respect to the phonemic/phonetic alphabet being used.
This attribute inherits all the semantics of the SSML 1.1 [SSML]
phoneme
element's
ph
attribute, with the following
addition:
› The document text represented by the
ssml:ph
attribute is the string that results
from concatenating the data of all the descendant text nodes of
the carrying element in document order.
Reading Systems that support the SSML Attributes and PLS Documents must honor the defined precedence rules for these two constructs.
ssml:alphabet
attributeThe ssml:alphabet
attribute specifies which
phonemic/phonetic pronunciation alphabet is used in the value of the
ssml:ph attribute.
alphabet
http://www.w3.org/2001/10/synthesis
May be specified on the html
element.
ipa
| x-SAMPA
This attribute inherits all the semantics of the SSML 1.1 [SSML]
phoneme
element's
alphabet
attribute.
This specification restricts the allowed phonemic/phonetic
pronunciation alphabets to ipa
, as defined in [SSML], and x-SAMPA
, as defined at
[X-SAMPA].
If the ssml:alphabet
attribute is omitted from an EPUB Content Document instance, the default value
ipa
must be assumed for the document.
Reading Systems that support the SSML Attributes feature of this specification must support
the ipa
alphabet. Support for the
x-SAMPA
alphabet is optional.
epub:trigger
ElementThe trigger
element enables the creation of markup-defined
user interfaces for controlling multimedia objects, such as audio and video
playback, in both scripted and non-scripted contexts.
trigger
As a child of head
. Repeatable.
id
[optional]
The ID [XML] of this element, which must be unique within the document scope.
action
[required]
The action to perform for this event.
Allowed values: show
|
hide
| play
|
pause
| resume
|
mute
| unmute
ref
[required]
A relative IRI [RFC3987] to the element which is the object of the action (#id form).
ev:event
[required]
The applicable event for this trigger, as defined in [XML Events].
ev:observer
[required]
The source object for this trigger, as defined in [XML Events].
Empty.
The trigger
element associates an event
from a
specified source object (observer
) with a desired action to be
performed with a specified target object (ref
).
The semantics of the defined action
values are:
show
— set the element's visibility property to
visible.
hide
— set the element's visibility property to
hidden.
play
— play the associated resource from the
beginning (only applicable to video or audio elements).
pause
— pause playing (only applicable to video
or audio elements).
resume
— resume playing (only applicable to
video or audio elements).
mute
— mute sound (only applicable to video or
audio elements).
unmute
— unmute sound (only applicable to video
or audio elements).
TODO: example - image button controlling video pause/resume
Reading Systems that support video or audio playback must support the
epub:trigger
element.
In accordance with [AltStyleTags] , the
link
element class
attribute may
include any of the following values: horizontal
,
vertical
, day
and
night
. These values inherit the semantics defined by
that specification for their use.
Reading Systems should select and utilize such tagged style sets as appropriate, and as described in that specification.
This section defines deviations and/or constraints in EPUB 3 XHTML Content Documents to the underlying HTML5 document model.
XHTML Content Documents support embedded MathML [MATHML] but limit its usage to a restricted subset of the full MathML markup language.
This subset is designed to ease the implementation burden on Reading Systems and to promote accessibility, while retaining compatibility with HTML5 User Agents [HTML5].
The
mathml
[Publications30]
property of the
manifest
item
element indicates that an XHTML Content Document
contains embedded MathML.
Any occurrence of MathML markup in XHTML Content Documents must conform to the constraints expressed in the MathML specification [MATHML], with the following additional restrictions:
› The m:math
element must contain only Presentation MathML, with the exception of the
m:annotation-xml
element as defined
below.
›
Content MathML may be included within MathML
markup in XHTML Content Documents, and, when present, must
occur within an m:annotation-xml
child element
of an m:semantics
element.
› When Content
MathML is included as per the previous condition, the given
m:annotation-xml
element's
encoding
attribute must be set to either of
the functionally-equivalent values
MathML-Content
or
application/mathml-content+xml
, and its
name
attribute must be set to
contentequiv
.
› Elements and attributes marked as deprecated in [MATHML] must not be included within MathML markup in XHTML Content Documents.
› XHTML Content Document
fragments may be included within MathML markup in XHTML
Content Documents, and, when present, must occur within an
m:annotation-xml
child element of an
m:semantics
element.
› When an XHTML
Content Document fragment is included as per the above
paragraph, the given m:annotation-xml
element's
encoding
attribute must be set to
application/xhtml+xml
and its
name
attribute must be set to
alternate-representation
.
› Any included XHTML Content Document fragments must not themselves contain MathML markup.
› Any included XHTML
Content Document fragments must conform to the content model
in which the ancestor m:math
element occurs,
such that if the m:math
element is replaced by
the given XHTML Content Document fragment the document
remains valid.
› Alternative content should be included, and, when present, must be represented as defined in Alternative Content.
A conformant EPUB Reading System must meet all of the following criteria for processing MathML embedded in XHTML Content Documents:
› It must support processing of Presentation MathML, and may support processing of Content MathML, using semantics defined by the MathML 3.0 specification [MATHML].
› If it has a Viewport, it must support visual rendering of Presentation MathML.
› When producing alternative textual
content for MathML markup, it should be able to
dynamically generate such content from the given Presentation MathML,
and if not, must give preference to XHTML Content Document fragments followed by the
alttext
attribute on the m:math
element.
› It must regard the
mathml
[Publications30]
property of the Package Document
manifest
item
element as the authoritative definition of
whether an XHTML Content Document includes embedded
MathML.
Reading Systems should be able to generate any necessary
alternative textual renditions dynamically using the given Presentation MathML markup
(e.g., as output to Text-to-Speech (TTS) engines). To
support Reading Systems that are not so capable, however, alternative textual
content should be included with each occurrence of the
m:math
element in XHTML Content Documents.
The alttext
attribute on the m:math
element
should be used for this purpose primarily when shorter alternative text
runs are sufficient. When more extensive alternative text is required,
XHTML Content Document fragments
should be used. (Note that Reading Systems query these two alternative
text locations using a defined preference order.)
For Reading System forward compatibility purposes, fallback images may
be provided using the altimg
attribute on the
m:math
element. It is recommended that the dimension
and alignment attributes (altimg-width
,
altimg-height
and altimg-valign
) be used
in conjunction with the altimg
attribute.
Any images referenced from altimg
attributes must
conform to the constraints for Publication Resources defined in
EPUB Publication Content Conformance
[Publications30]
.
XHTML Content Documents support the embedding
of SVG
by reference
(embedding via reference, for example, from
an img
or object
element) and
by
inclusion
(embedding via direct inclusion of the
svg:svg
element in the XHTML Content Document) [SVG].
The content conformance constraints for SVG embedded in XHTML Content Documents are the same as defined for SVG Content Documents in Restrictions on SVG 1.1.
Reading Systems must process SVG embedded in XHTML Content Documents as defined in SVG Reading System Conformance.
The
svg
[Publications30]
property of the manifest
item
element indicates that an XHTML Content Document
contains embedded SVG.
This section defines conformance requirements for SVG embedded in XHTML Content Documents. Refer to SVG Content Documents for conformance requirements for SVG as an EPUB Content Document.
For the purposes of styling SVG embedded in XHTML Content Documents by reference , Reading Systems must not apply CSS style rules of the containing document to the referenced SVG document.
For the purposes of styling SVG embedded in XHTML Content Documents by inclusion , Reading Systems must apply applicable CSS rules of the containing document to the included SVG elements.
SVG included
by reference
is processed as a
separate document, and must include its own CSS style rules just
like an SVG Content Document would.
Note that this is consistent with situations where an HTML5
object
element references an external HTML5
element.
This section lists restrictions on the Unicode character repertoire.
Any included characters that map to a code point within one of the Private Use Area (PUA) ranges as defined in [Unicode] must occur within a string that is styled or attributed in a manner that includes a reference to an embedded font that contains an appropriate glyph for that code point.
rp
Element
› The rp
element [HTML5] is
intended to provide a fallback — an optional parenthesis display
around ruby
markup — for older version Reading
Systems that do not recognize ruby markup. As EPUB 3 Reading
Systems are ruby-aware, and can provide fallbacks, the use of
rp
elements in Content Documents is
discouraged.
embed
Element
› Since the embed
element [HTML5] does not provide intrinsic facilities to provide fallbacks for
Reading Systems that do not support scripting, its use is
discouraged when the resource referenced has scripting
components. Authors should use the object
element
instead.
This section lists restrictions on XHTML Content Document that are not enforced by the schema for XHTML Content Documents.
› The HTML5
iframe
element src
attribute must
only reference XHTML Content Documents.
The Scalable Vector Graphics (SVG) 1.1 (Second Edition) specification [SVG] defines a format for representing final-form vector graphics and text.
Although an EPUB Publication typically uses XHTML Content Documents as the top-level document type, the use of SVG Content Documents is also permitted. SVGs are typically only used in certain special circumstances, however, such as when final-form page images are the only suitable representation of the content (as may be the case, for example, in the context of manga or comic books).
This section defines a profile for SVG 1.1 [SVG] documents. An instance of an XML document that conforms to this profile is a Core Media Type and is referred to in this specification and its sibling specifications as an SVG Content Document.
This section defines conformance requirements for SVG Content Documents. Refer to Embedded SVG for conformance requirements for SVG embedded in XHTML Content Documents.
An SVG Content Document must meet all of the following criteria:
› It must meet the conformance constraints for XML documents defined in XML Document Content Conformance [Publications30] .
› It must be valid to the SVG Content Document schema as defined in SVG Content Document Schema and conform to all content conformance constraints expressed in Restrictions on SVG 1.1.
› It should adhere to the accessibility guidelines given in [SVG Access].
› The SVG Content Document
filename should use the file extension
.svg
.
All Publication Resources referenced from an SVG Content Document must conform to the constraints for Publication Resources defined in EPUB Publication Content Conformance [Publications30]
This specification restricts the content model of SVG Content Documents and SVG embedded in XHTML Content Documents as follows:
› The SVG Animation Elements must not occur.
› The svg:foreignObject
element must contain only valid XHTML Content Document Flow content, and
its requiredExtensions
attribute, if given, must be set to
http://www.idpf.org/2007/ops
.
› The svg:title
element must
contain only valid XHTML Content Document Phrasing content.
› It should include the
width
and
height
attributes on the svg:svg
element.
A conformant EPUB Reading System must meet all of the following criteria for processing SVG Content Documents and SVG embedded in XHTML Content Documents:
› It must support processing of SVG using semantics defined by the SVG 1.1 specification [SVG].
› It must meet the Reading System conformance criteria defined in Scripted Content Documents Reading System Conformance.
› If it has a CSS Viewport, it must support visual rendering of SVG using CSS, and should support all properties defined in Appendix N of [SVG]. In the case of embedded SVG, it must also conform to the constraints defined in Embedded SVG and CSS.
› It should support User selection and searching of text within SVG elements.
› It must recognize SVG links (i.e., the
svg:a
element), and if it supports exposing links to
Users for activation, then these links must be exposed.
› It must recognize the value
http://www.idpf.org/2007/ops
of the
requiredExtensions
attribute when appearing on the
svg:switch
and svg:foreignObject
elements
as representing the occurrence of XHTML Content Document
fragments.
› It must regard the
svg
[Publications30]
property of the Package Document
manifest
item
element as the authoritative definition of whether an
EPUB XHTML Content Document includes embedded SVG.
EPUB Content Documents may contain scripting using the facilities defined for this in the respective underlying specifications ([HTML5] and [SVG]). When an EPUB Content Document contains scripting, it is referred to in this specification and its sibling specifications as a Scripted Content Document. This label also applies to XHTML Content Documents when they contain instances of HTML5 forms
In the context of XHTML Content Documents, this specification distinguishes between two models of script inclusion:
In this model of scripting, the script execution is constrained to
the scope of a Content Document embedded in a parent Content
Document using one of the HTML5 object
,
iframe
or embed
elements. An executing
script may have read access to the DOM of its parent Content
Document, but the Reading System must not allow it to modify that DOM, nor other content in the
Publication. The script must not manipulate the size of its
containing rectangle.
In this model of scripting, the script execution scope is a top-level Content Document. There are no restrictions on DOM access or modification.
› EPUB Content Documents may include scripting. In the context of XHTML Content Documents, the inclusion model should be restricted to the container-constrained model only.
› EPUB Content Documents that include spine-level model scripting must utilize the so-called progressive enhancement technique: when the document is rendered by a Reading System without scripting support or with scripting support disabled, the top-level document content must retain its integrity, remaining consumable by the User without any information loss or other significant deterioration.
› EPUB Content Documents that include scripting — using any inclusion model — should employ relevant accessibility techniques to assure that the content remains consumable by all Users. [WAI-ARIA] [WCAG20]
› EPUB Content Documents that
include scripting — using any inclusion model —
should provide fallbacks for such content, either by using intrinsic
fallback mechanisms (such as those available for the HTML5
object
and canvas
elements [HTML5] ) or, when intrinsic fallback is not
applicable, by using
manifest-level
[Publications30]
fallback.
The
scripted
[Publications30]
property of the manifest
item
element indicates that an EPUB Content Document is a Scripted Content Document.
› Reading Systems may support scripting — the container-constrained model, the spine-level model, or both.
› Reading Systems that do not support scripting must process fallbacks for scripted content as defined in Fallbacks for Scripted Content Documents.
› Reading Systems may render Scripted Content Documents as an interactive, scripted User Agent according to [HTML5].
› Reading Systems that support scripting may place limitations on the capabilities provided to scripts during execution (e.g., limiting networking or DOM access).
› Reading Systems must regard the
scripted
[Publications30]
property
of the Package Document
manifest
item
element as the authoritative definition of whether an
EPUB Content Document includes scripting.
Reading Systems may render Scripted Content Documents in a manner that disables other EPUB capabilities and/or provides a different rendering and User experience, such as, for example, disabling pagination.
Authors choosing to restrict the usage of scripting to the container-constrained model will ensure a more consistent User experience between scripted and non-scripted content (e.g., consistent pagination behavior).
Authors should use declarative techniques whenever practical to increase the interoperability, longevity, and accessibility of the Publication, and avoid the inclusion of scripting whenever practical.
This section defines a profile for Cascading Style Sheets (CSS) intended to be used for styling of XHTML Content Documents. An instance of a CSS Style Sheet that conforms to this profile is a Core Media Type and is referred to in this specification and its sibling specifications as an EPUB Style Sheet.
The EPUB 3 CSS Profile references CSS specifications that are still works in progress and may change in incompatible ways. When utilizing features from such specifications, authors should consider the inherent risks in terms of the potential impact on interoperability and document longevity.
A conformant EPUB Style Sheet must meet all of the following criteria:
› It must adhere to all content restrictions given in EPUB 3 CSS Profile.
› It may include features not explicitly identified in the EPUB 3 CSS Profile, but should be authored so that rendering fidelity does not depend on such additional features.
› It must be UTF-8 or UTF-16 encoded.
All Publication Resources referenced from a CSS Style Sheet must conform to the constraints for Publication Resources defined in EPUB Publication Content Conformance [Publications30]
› Reading Systems with a CSS Viewport should support — render as defined by the corresponding specification in the Viewport — all features included in this profile unless detailed otherwise in EPUB 3 CSS Profile.
› Reading Systems may support additional CSS features not explicitly identified in the EPUB 3 CSS Profile, and must handle any unsupported CSS features as defined in [CSS2.1].
Reading Systems have varying capabilities with regards to CSS rendering support. For this reason, Reading Systems may ignore some or all style information of an EPUB Style Sheet.
Note also that even when a Reading System does have a CSS Viewport, it is likely to render in a manner that differs from typical HTML5 User Agents (e.g., paginating content rather than providing a infinitely scrolling surface).
The style baseline of an EPUB Style Sheet is Cascading Style Sheets Level 2 Revision 1 [CSS2.1]. An EPUB Style Sheet may include all style sheet constructs normatively defined in [CSS2.1], with the following exceptions:
It is strongly recommended that the fixed
value of
the position property not be included in an EPUB
Style Sheet to avoid potential rendering and interoperability issues.
Reading Systems should not, but may, support this property value.
The direction and unicode-bidi properties must not be included in an EPUB Style Sheet. Authors should use appropriate HTML5 markup to express directionality information instead.
Reading Systems that have a CSS Viewport must support the font-family property.
For forwards compatibility with EPUB 2 Reading Systems that do not support
@font-face
rules,
authors should reference a generic font using the
font-family property.
The ability of Reading Systems to paginate absolutely positioned layouts is not guaranteed, so reliance on absolute positioning is discouraged. Reading Systems may not support these property values.
EPUB Style Sheets may include, in addition to the list styles listed in CSS2.1, the following list style types defined in [CSS2.0]:
cjk-ideographic
hebrew
hiragana
hiragana-iroha
katakana
katakana-iroha
Additional details on these list styles can be found in [CSS3Lists]. The definitions in CSS3 Lists are incorrect, so remove this paragraph if an updated WD has not yet been published.
EPUB Style Sheets may include all features defined in the CSS 3.0 Speech Module [CSS3Speech]. Reading Systems with Text-to-Speech (TTS) capabilities should support the following properties:
cue
pause
rest
speak
voice-family
For more information on EPUB 3 features related to synthetic speech, refer to Text-to-speech [EPUB3Overview] .
EPUB Style Sheets may include @font-face
rules as defined
in the CSS Fonts Module Level 3 [CSS3Fonts]
specification. OpenType [OpenType], WOFF [WOFF] and SVG [SVG] fonts may be referenced
using @font-face
rules.
Reading Systems with a CSS Viewport must support
OpenType [OpenType] and WOFF [WOFF] fonts
embedded using the @font-face
rule, as well as the font
obfuscation mechanism defined in
Font Obfuscation
[OCF3]
. Reading Systems may support SVG
fonts.
In addition, Reading Systems must support at least the following
@font-face
font descriptors:
font-family
font-style
font-weight
src
unicode-range
Refer to Intrinsic fallback: CSS Embedded Fonts [Publications30] for font fallback processing requirements.
EPUB Style Sheets may include the following properties defined in the CSS Text Level 3 [CSS3Text] specification:
line-break
text-align-last
text-emphasis
text-emphasis-color
text-emphasis-style
text-transform
text-trim (force-start
, normal
and no-justify
values only)
word-break
TODO hyphenation
EPUB Style Sheets may include all of the features defined in the CSS Writing Modes Module Level 3 [CSS3WritingModes] specification except for the direction and unicode-bidi properties. Authors should use appropriate HTML5 markup to express directionality information instead.
When specified, the directionality indicated by the writing-mode property must match the directionality for all XHTML Content Documents specified in the in the Package metadata. Refer to page-progression-direction in Package Properties [Publications30] for more information.
EPUB Style Sheets may include @media
and
@import
rules with media queries as defined in the Media
Queries [MediaQueries] specification.
EPUB Style Sheets may include all of the features defined in the CSS Multi-column Layout Module [CSSMultiCol] specification with the exception of the column-span property.
Authors should not rely on column behavior in overflow conditions as this behavior is unstable and may change.
Pagination algorithms are not fully defined in CSS. Authors should therefore expect exact pagination points to vary from Reading System to Reading System.
Reading Systems must treat the oeb-column-number property as an alias for the column-count property. The use of the oeb-column-number property in EPUB Style Sheets is deprecated; this conformance requirement will be removed in the next major version of EPUB.
EPUB Style Sheets may include the -epub3-ruby-position property as defined below:
Name: | -epub-ruby-position |
Value: | over | under | right |
Initial: | over |
Applies to: | ruby text elements |
Inherited: | yes |
Percentages: | N/A |
Media: | visual |
Computed value: | as specified |
This property controls the placement of ruby text with respect to its base text. Values have the following meanings:
over
Ruby text is positioned on the over side of the ruby base.
under
Ruby text is positioned on the under side of the ruby base.
right
Ruby text is positioned on the right side of the base text. (This value is typically used for Zhuyin Fuhao (Bopomofo) ruby.)
Need a name that avoids misuse in vertical
text when over
is intended.
NOTE: This property will become an alias for the ruby-position property in the CSS Ruby Module [CSS3Ruby].
oeb-page-head
and
oeb-page-foot
In addition to the standard values defined for the display
property in Section
9.2.4 of [CSS2.1], EPUB Style Sheets may specify
the values oeb-page-head
and
oeb-page-foot
.
Reading Systems should present the content of an element assigned
display: oeb-page-head
only as a header, and the content of an
element assigned display: oeb-page-foot
only as a footer. Neither
should be presented simply as if it were inline
or
block
. The way Reading Systems present headers and footers is
not defined by this specification, however (for example, they may render them in
fixed positions as per print layouts or pop them up on demand if only limited
screen space is available).
For the purposes of page layout, these display values are similar to block
boxes with an absolute position (i.e., a position value of
fixed or absolute). That is, they
are removed from the normal flow and a new block box is created with its own
flow. Margins, padding, and other block characteristics are determined as if the
element had position: fixed
set.
An element assigned display: oeb-page-head
or display:
oeb-page-foot
must not be considered in effect while any markup
specified before such an element is still being rendered in the same context
(for example, if it is on the same page in a paginated context, or in the
viewport for a scrolled context). Once in effect, the element must remain in effect
until either of the following conditions is true:
another header or footer (respectively) is in effect instead; or
no part of its parent element remains presented.
For example, when rendered to a screen with appropriate style settings, the
myhead-classed div
element in the
following example would become the page header as soon as nothing preceding the
containing div
is displayed, and go out of effect when that
div
is no longer visible:
<div> <div class="myhead" style="display: oeb-page-head"> The OEB Publication Structure: Introduction </div> <h2>Introduction</h2> <p>…</p> </div>
The W3C Pronunciation Lexicon Specification [PLS] defines syntax and semantics for XML-based pronunciation lexicons to be used by Automatic Speech Recognition and Text-to-Speech (TTS) engines.
The following sections define conformance criteria for PLS documents when included in EPUB Publications, and rules for associating PLS Documents with XHTML Content Documents.
For more information on EPUB 3 features related to synthetic speech, refer to Text-to-speech [EPUB3Overview] .
A conformant EPUB Publication must meet all of the following criteria for inclusion of PLS Documents:
› PLS Documents may be associated with XHTML Content Documents. Each XHTML Content Document may contain zero or more PLS Document associations.
› When more than one PLS Document association occurs within the scope of an XHTML Content Document, the referenced PLS Documents must be unique with regards to the language for which the pronunciation lexicon is relevant [PLS].
› PLS Documents must be associated with the
XHTML Content Document to which it applies
using the HTML5 link
element with its rel
attribute set to pronunciation
and its type
attribute set to the
PLS MIME string
(application/pls+xml
).
› The link
element
hreflang
attribute should be specified on each PLS
link
, and its value must match the
language for which the pronunciation lexicon is relevant
[PLS] when specified.
› PLS Documents must meet the content conformance criteria defined in PLS Documents Content Conformance.
› PLS Documents must be represented and located as defined in EPUB Publication Content Conformance [Publications30] .
Examples
The following example shows two PLS Documents (one for Chinese and one for Mongolian) associated with an XHTML Content Document.
<html … > <head> … <link rel="pronunciation" type="application/pls+xml" hreflang="zh" href="../speech/zh.pls"/> <link rel="pronunciation" type="application/pls+xml" hreflang="mn" href="../speech/mn.pls"/> </head> … </html>
To be considered a Core Media Type Resource, a PLS Document must meet all of the following criteria:
› It must meet the conformance constraints for XML documents defined in XML Document Content Conformance [Publications30] .
› It must be valid to the RELAX NG schema for PLS documents available at the URI http://www.w3.org/TR/pronunciation-lexicon/pls.rng [PLS].
› The PLS Document filename
should use the file extension .pls
.
A conformant EPUB Reading System must meet all of the following criteria for processing PLS Documents:
› Reading Systems with Text-to-Speech (TTS) capabilities should support PLS.
› Reading Systems that support PLS must process PLS documents as defined in [PLS].
› Reading Systems that support PLS must apply the supplied pronunciation instructions to all text nodes in the current XHTML Content Document whose language [HTML5] matches the language for which the pronunciation lexicon is relevant [PLS]. The algorithm for matching language tags is defined in BCP47.
› Reading Systems that support PLS and the
SSML Attributes must let
any pronunciation instructions provided via the
ssml:ph
attribute
take precedence in cases where a pls:grapheme
matches a text
node of an element that carries the ssml:ph
attribute.
The schemas in this Appendix are normative. In case of conflicts between the specification prose and the given schema, the schema shall be considered definitive.
Validation using these schemas will require a processor that supports [NVDL], [RelaxNG] and [ISOSchematron].
Note, however, that the NVDL schema layer can be substituted by a multi-pass validation using the embedded RELAX NG and ISO Schematron schemas alone.
The schema for XHTML Content Documents is available at http://www.idpf.org/epub/30/schema/epub-xhtml-30.nvdl.
The schema for SVG Content Documents is available at http://www.idpf.org/epub/30/schema/epub-svg-30.nvdl.
This appendix is informative
EPUB has been developed by the International Digital Publishing Forum in a cooperative effort, bringing together publishers, vendors, software developers, and experts in the relevant standards.
The EPUB 3 specifications were prepared by the International Digital Publishing Forum’s EPUB Maintenance Working Group, operating under a charter approved by the membership in May, 2010 under the leadership of:
Markus Gylling DAISY Consortium Chair |
Garth Conboy Google Inc. Vice-chair |
Brady Duga Google Inc. Vice-chair |
Bill McCoy International Digital Publishing Forum (IDPF) Secretary |
Active members of the working group included:
Alexis Wiles, Alicia Wise, … TODO : COMPLETE LIST OF CURRENT WG MEMBERS
For more detailed acknowledgements and information about contributors to each version of EPUB, refer to Contributors [EPUB3Overview] .
[AltStyleTags] Alternate Style Tags TODO: incorporate content into EPUB spec family .
[CSS2.0] Cascading Style Sheets, level 2 - CSS2 Specification . 12 May 1998 (revised 11 April 2008).
[CSS3Fonts] CSS Fonts Module Level 3 .
[CSS3Lists] CSS3 module: Lists TODO remove this entry if an updated WD has not yet been published . .
[CSS3Ruby] CSS3 Ruby Annotation Module .
[CSS3Speech] CSS3 Speech Module . .
[CSS3Text] CSS Text Level 3 .
[CSS3WritingModes] CSS Writing Modes Module Level 3 NOTE: this spec draft is undergoing major revision .
[CSSMultiCol] CSS Multi-column Layout Module .
[ContentDocs30] EPUB Content Documents 3.0 .
[ContentProfile] Vocabulary Profile for EPUB Content Documents .
[ISOSchematron] ISO/IEC 19757-3: Rule-based validation — Schematron .
[MATHML] Mathematical Markup Language (MathML) Version 3.0 . 21 October 2010.
[MediaOverlays30] EPUB Media Overlays 3.0 .
[MediaQueries] Media Queries .
[OCF3] Open Container Format 3.0 .
[OPF2] Open Packaging Format 2.0.1 .
[OPS2] Open Publication Structure 2.0.1 .
[OpenType] ISO/IEC 14496-22:2009 - Information technology -- Coding of audio-visual objects -- Part 22: Open Font Format .
[PLS] Pronunciation Lexicon Specification 1.0 (PLS) . 14 October 2008.
[Publications30] EPUB Publications 3.0 .
[RDFa11 Core] RDFa Core 1.1 . Syntax and processing rules for embedding RDF through attributes. 26 October 2010.
[RFC2119] Key words for use in RFCs to Indicate Requirement Levels (RFC 2119) . March 1997.
[RFC3986] Uniform Resource Identifier (URI): Generic Syntax (RFC 3986) . January 2005.
[RFC3987] Internationalized Resource Identifiers (IRIs) (RFC 3987) . January 2005.
[RFC5646] Tags for Identifying Languages (RFC 5646) . September 2009.
[RelaxNG] ISO/IEC 19757-2: Regular-grammar-based validation — RELAX NG. Second Edition . 2008-12-15.
[SSML] Speech Synthesis Markup Language (SSML) Version 1.1 . 7 September 2010.
[SVG] Scalable Vector Graphics (SVG) 1.1 (Second Edition) . 22 June 2010.
[SVG Access] Accessibility Features of SVG . 7 August 2000.
[StructureVocab] EPUB 3 Structural Semantics Vocabulary TODO Issue 74 .
[Unicode] The Unicode Consortium. The Unicode Standard, Version 5.0.0, defined by: The Unicode Standard, Version 5.0 (Boston, MA, Addison-Wesley, 2007. ISBN 0-321-48091-0).
[WAI-ARIA] Accessible Rich Internet Applications (WAI-ARIA) 1.0 . .
[WCAG20] Web Content Accessibility Guidelines (WCAG) 2.0 . 11 December 2008.
[WOFF] WOFF File Format 1.0 . .
[XML] Extensible Markup Language (XML) 1.0 (Fifth Edition) . 26 November 2008.
[XML Events] XML Events . 14 October 2003.
[XMLNS] Namespaces in XML (Third Edition) . 8 December 2009.
[EPUB3Changes] EPUB 3 Differences from EPUB 2.0.1 . .
[EPUB3Overview] EPUB 3 Overview .
[Role] Role Attribute . An attribute to support the role classification of elements. 05 August 2010.
[X-SAMPA] X-SAMPA (Extended SAMPA) .