この仕様は、EPUB® 出版物のコンテキストで使用する HTML、SVG、CSS のプロファイルを定義する。

この仕様は、[[EPUB32]] を構成する仕様群のひとつであり、XML や Web 規格に基づいたデジタル出版物の交換や配信形式である。この仕様は EPUB 3 を構成する以下の他の仕様と共に読み、理解することになっている。

この仕様と前身の多くの相違についての詳細情報は [[EPUB32Changes]] を参照されたい。

まえがき

他の仕様との関連性

HTML との関連性

この仕様は、W3C [[HTML]] の特定のバージョンを参照しないが、その代わり、常に最新の勧告を指す日付なしの参照を使用する。このアプローチは、EPUB が常に HTML 規格の変更のペースを維持することを保証する。製作者とリーディング システムの開発者は、HTML の変更を追跡し続け、それらのプロセスやシステムが常に最新の状態に保たれていることを保証する必要があるだろう。

HTML の進化によって、以前のバージョンでは有効だった機能が、非推奨(Obsolete)や取り除かれる可能性がある。製作者のために最小限の混乱を保証するため、そのような変更を慎重に行うことを W3C に期待しているが、後方互換性のない版の場合は、日付のない参照の使用は見直されるかもしれない。

この仕様によって定義された XHTML プロファイルは、他の仕様がない限り、[[HTML]] が提供するセマンティクスや構造、処理動作の全ての定義を継承する。

さらに、この仕様は、製作者によって XHTML コンテンツ ドキュメントに包含できる W3C HTML 文書モデルの拡張セットを定義をする。

この仕様は、スクリプトや HTML フォームもしくは HTML DOM のサポートを EPUB リーディング システムに要求しない。この仕様に準拠した リーディング システムは、適合した EPUB コンテンツ ドキュメントを処理することのみ期待される。スクリプトや HTML フォームのサポートが強制ではないように、適合したリーディング システムは、完全に準拠した HTML のユーザー エージェントでないかもしれない。

SVG との関連性

この仕様は、W3C [[SVG]] の特定のバージョンを参照しないが、その代わり、日付なしの参照を使用する。この参照に曖昧さがある場合は常に、最新の推奨された仕様が正式な参照である。

このアプローチは、EPUB が常に SVG 規格の変更のペースを維持することを保証する。製作者とリーディング システムの開発者は、SVG の変更を追跡し続け、それらのプロセスやシステムが常に最新の状態に保たれていることを保証する必要があるだろう。

SVG の進化によって、以前のバージョンでは有効だった機能が、非推奨(Obsolete)や取り除かれる可能性がある。製作者のために最小限の混乱を保証するために、そのような変更を慎重に行うことを W3C に期待しているが、後方互換性のない版の場合は、日付のない参照の使用は見直されるかもしれない。

CSS との関連性

EPUB 3 は、CSS ワーキング グループ スナップショット [[CSSSnapshot]] によって定義される CSS をサポートする。EPUB 3 はまた、グローバルな言語の一貫したサポートを確実にするために、いくつかのプリフィックス付き CSS プロパティを保持する。

用語

EPUB 3 固有の意味を持つ用語は、このドキュメント(例えば、「製作者」、「リーディング システム」)に利用できる。これらの用語と定義の完全なリストは、[[!EPUB32]] で提供されている。

セクションにある用語の最初のインスタンスのみが、その定義にリンクされる。

名前空間プリフィックスのマッピング

便宜上、次の名前空間プリフィックス [[!XML-NAMES]] は、明示的に宣言されることなく、この仕様で使用される。EPUB コンテンツ ドキュメントでこれらのプリフィックスを使用するに、宣言は必須である(REQUIRED)。

プリフィックス URI
epub http://www.idpf.org/2007/ops
ssml https://www.w3.org/2001/10/synthesis

XHTMLコンテンツ ドキュメント

まえがき

この仕様は、XHTML コンテンツ ドキュメント制作のために [[!HTML]] のプロファイルを定義する。このプロファイルに準拠する XML ドキュメントのインスタンスはコア メディア タイプ リソースであり、XHTML コンテンツ ドキュメントとしてこの仕様で言及される。

他の指定のない限り、この仕様は、[[!HTML]] 仕様からセマンティクスと構造、処理動作の全ての定義を継承する。

コンテンツの適合性

XHTML コンテンツ ドキュメントは、次の基準を全て満たさなければならない(MUST)。

ドキュメントのプロパティ

XHTML 構文に従った [[!HTML]] ドキュメントでなければならない(MUST)。

XML 適合性 [[!EPUB32]] で定義された XML ドキュメントの適合性の制約を満たさなければならない(MUST)。

全てのドキュメントの為に使用されている構成概念は [[!HTML]] により定義され、それは HTML の許容性と制約で明確に上書きされていない限り、その仕様でこれらの構成概念のために定義された適合性の基準に準拠しなければならない(MUST)。

HTML の拡張で定義されている [[!HTML]] 文法の拡張を包含してもよく(MAY)、これらに定義されている全てのコンテンツの適合性の制約に適合しなければならない(MUST)。

[[EPUBAccessibility]] のアクセシビリティ要件に従う EPUB 出版物の推奨は、XHTML コンテンツ ドキュメントに適用する。アクセシビリティ [[EPUB32]] を見よ。

ファイルのプロパティ

XHTML コンテンツ ドキュメントのファイル名は、ファイル拡張子 .xhtml を使用するべきである(SHOULD)。

リーディング システムの適合性

適合した EPUB リーディング システムは、XHTML コンテンツ ドキュメントの処理のために、次の基準を全て満たさなければならない(MUST):

HTML の拡張

このセクションは、[[!HTML]] ドキュメント モデルを基礎にして、EPUB 3 の XHTML コンテンツ ドキュメントの拡張を定義する。

このような拡張がこのセクションに掲載されていない限り、[[HTML]] は、ベンダーの中立的な拡張のサポートをユーザーエージェントに許可しているが、それらは、EPUB 3 でサポートされた機能ではない。

意味の変化

まえがき

意味の変化は XHTML コンテンツ ドキュメント内で使用している要素に特定の意味と、または性質に関するさらなる意味を付与する行為である。epub:type 属性は、[[HTML]] の語彙を補足する変化をもたらし、XHTML コンテンツ ドキュメント内のドメイン固有の意味を表現するのに使用される。

適用されるセマンティクスは、それらを含んでいる要素の意味を取り込むことが意図されており、(例えば、属性は、section が作品の章を示すために使用できるが、適切なリスト構造を回避するために、リスト項目に p 要素を動作するもとして設計されていないように)それらの性質を上書きするために提供されていない。

セマンティック メタデータは直接人間に提供されることを目的にしておらず、その代わりにドキュメントの構造とコンテンツについてのより詳細にリーディング システムのために制御方法を提供し、読者のために読書体験を向上させる良い機会を提供する。

この仕様は、新しい要素を追加する代わりに、axis 属性を使用して意味の変化のための方法を定義し、epub:type 属性で求められる意味の変化を既存の要素に付与できる。属性の制御値を提供する外部のボキャブラリを識別するためのメカニズムもまた定義されている。

epub:type 属性

属性名

type

名前空間

http://www.idpf.org/2007/ops

使用方法

グローバル属性。全ての要素に指定してもよい(MAY)。

語彙の関連性で定義された制約による、プロパティ [[!Packages32]] 値の空白で区切られたリスト。

空白は、[[!XML]] に定義されている文字の集合である。

epub:type 属性は、それが出現する要素の意味を変化させる。その値は、語彙の関連性で定義された文書のインスタンスに関連付けられた外部の語彙から抽出される空白で区切られたひとつ以上の用語である。

変化された意味は、含んでいる要素の意味のサブクラスを表現しなければならない(MUST)。例えば [[!HTML]] の divspan 要素など、意味的に中立な要素の場合、変化された意味は、(例えば、div は段落や節を表現している)既存の要素によってすでに含まれている意味を加えてはならない(MUST NOT)。リーディング システムは含んでいる要素と矛盾する変化された意味を無視しなければならない(MUST)。

[[!HTML]] head 要素がドキュメントのメタデータを含むように、構造的なセマンティクスは、この要素上または意味を持たない任意の子孫に表れる。リーディング システムは、これらのセマンティクスを無視しなければならない(MUST)。

語彙の関連性

この仕様は、次の変更を伴う語彙の関連付けメカニズム [[!Packages32]] で定義された語彙の関連性メカニズムを採用する。

標準の語彙

コンテンツ ドキュメントの標準の語彙は、[[!EPUB-SSV]] で定義される。[[!EPUB-SSV]] の一部でないプリフィックスがつかない用語を包含してもよいが(MAY)、これらの使用は、推奨されない。プリフィックスの使用は、カスタム セマンティクスを追加するための望ましい方法である。

予約済みのプリフィックス

製作者は、宣言をすることなく、epub:type 属性に次の予約済みのプリフィックスを使用してもよい(MAY)。

予約済みのプリフィックスは、オーサリング時に便利だが、それらの依存は、相互互換性の問題に繋がる。適合性ツールは、ツールが更新されるまで、新しいプリフィックスを拒否するだろう。製作者は、このような問題を避けるために、使用する全てのプリフィックスを宣言することを強く推奨する。

プリフィックス IRI
msv http://www.idpf.org/epub/vocab/structure/magazine/#
prism http://www.prismstandard.org/specifications/3.0/PRISM_CV_Spec_3.0.htm#
prefix 属性

prefix 属性の定義は変わらないが、属性は EPUB コンテンツ ドキュメント内で使用されるとき、名前空間 http://www.idpf.org/2007/ops で定義される。

prefix 属性は、[[!HTML]] のルート html 要素のみ有効である。

処理の要件

リーディング システムは、次のように epub:type 属性を処理しなければならない(MUST)。

  • 標準の語彙で定義されている用語のいくつかまたは全てに、動作を結びつけなくてもよい(MAY)。

  • 他の語彙からの用語に、動作を結びつけてもよい(MAY)。

  • 認識できない用語を無視しなければならない(MUST)。

指定した epub:type 値に関連付けられているリーディング システムの動作がネイティブの動作と衝突するとき、要素に関連付けられている動作の優先順位を指定しなければならない(MUST)。

意味の強化

まえがき

マークアップした構造を改良することに関して、意味の変化とは異なり、意味の強化は、機械の処理を容易にするためにコンテンツ内の意味の階層化を可能にする。

[[Microdata]] と [[RDFA-CORE]] 仕様の両方は、コンテンツを意味論的に強化する XHTML コンテンツ ドキュメントで使用できる属性のセットを定義する。

RDFa

[[!RDFA-CORE]] 属性の使用は、XHTML コンテンツ ドキュメントで許可されているが、全ての使用方法は、[[!HTML+RDFA]] に定義されている要件に適合しなければならない(MUST)。

[[!RDFA-CORE]] 仕様は、RDFa 属性を使用したときの [[!HTML]] コンテンツ モデルの変更を定義している。この修正されたコンテンツ モデルは、XHTML コンテンツ ドキュメントに妥当である。

属性処理モデル [[!RDFA-CORE]] の EPUB リーディング システムのサポートは、省略可能(OPTIONAL)である。

Microdata

[[!Microdata]] 属性の使用は、XHTML コンテンツ ドキュメントで許可されているが、全ての使用方法は、[HTML+RDFa11] に定義されている要件に適合しなければならない(MUST)。

[[!Microdata]] 仕様は、マイクロデータの属性を使用したときの [[!HTML]] コンテンツ モデルの変更を定義している。この修正されたコンテンツ モデルは、XHTML コンテンツ ドキュメントに妥当である。

JSON への変換 [[!Microdata]] と同様に、属性処理モデルに対する EPUB リーディング システムのサポートは省略可能(OPTIONAL)である。

SSML 属性

まえがき

W3C Speech Synthesis Markup Language [[!SSML]] は、同期スピーチを生成するテキスト読み上げ(TTS)エンジンを支援するために使われる言語である。SSML は独立したドキュメント形式として設計されているが、他のマークアップ言語内で使用するのにも適した意味も定義している。

この仕様は、[[!SSML]] phoneme 要素の二つの属性(ssml:phssml:alphabet)について見直し、XHTML コンテンツ ドキュメント内で利用可能にする。

テキスト読み上げ(TTS)機能のあるリーディング システムは上記で定義されている SSML 属性をサポートするべきである(SHOULD)。

同期スピーチに関連する EPUB 3 の機能に関するより詳細な情報は、テキスト読み上げ [[EPUB3Overview]] を参照されたい。

ssml:ph 属性

ssml:ph 属性は、属性を加えられた要素によって表現されるテキストとしての発話音素や発音記号表記を規定している。

属性名

ph

名前空間

https://www.w3.org/2001/10/synthesis

使用方法

グローバル属性。当て字は論理的に関連付ける(例えば、テキスト情報が含まれている要素)ことのできる全ての要素に指定してもよい(MAY)。

すでにこの属性を含んでいる要素の子孫に指定してはならない(MUST NOT)。

使用されている音韻字母/音声記号に関する構文的に妥当な音素表現/表音。

この属性は、次を追加した [SSML] phoneme 要素 ph 属性の全てのセマンティクスを継承する。

  • ssml:ph 属性がテキスト ノードの子孫要素に出現するとき、発音を適用するのに対応するドキュメントのテキストは、ドキュメントの順で、対応する子孫のテキスト ノードの結果を一続きにする。指定された発音記号表記は、(すなわち、その内容の孤立した部分だけではなく)全体の中のテキスト データの要素と論理的に一致しなければならない(MUST)。

SSML の属性と PLS ドキュメントをサポートするリーディング システムは、これらの二つの構造のために定義された優先順位の規則を履行しなければならない(MUST)。

ssml:alphabet 属性

ssml:alphabet 属性は、発話音素や発音記号表記のアルファベットが ssml:ph 属性の値で使用されることを規定している。

属性名

alphabet

名前空間

https://www.w3.org/2001/10/synthesis

使用方法

グローバル属性。任意の要素に指定してもよい(MAY)。

(継承した)ssml:ph の値で使用される発音アルファベットの名前。

この属性は、次の追加を伴った、[SSML] phoneme 要素 alphabet 属性の全てのセマンティクスを継承する:

  • ssml:alphabet 属性の値はドキュメントツリーに継承される。指定された ssml:ph 属性値に使用される発話アルファベットは、最も近い親要素に続く、ssml:ph 属性が出現する要素から始まる ssml:alphabet 属性の最初に発生する位置によって決定される。

[[SSML]] 仕様は、アルファベットのレジストリを参照していますが、公開されていない。W3C Voice Browser ワーキング グループの憲章は有効期限が切れているため、このようなレジストリの公開は期待されない。したがって、製作者は、サポートされているアルファベット値を決定するために、リーディング システムのサポートドキュメントを参照する必要がある。x-JEITA(x-JEITA-IT-4002 と x-JEITA-IT-4006)および x-sampa などの一般的なアルファベットも包含する。

この仕様の SSML 属性の機能をサポートするリーディング システムは、値「ipa」で表現される IPA アルファベット [[!IPA]] をサポートするべきである(SHOULD)。

コンテンツの切り替え(非推奨)

switch 要素は、EPUB リーディング システムのスクリプト機能に依存せず、製作者が、読者へ表示するコンテンツを調整できる単純なメカニズムを提供する。

switch 要素の使用は、非推奨(deprecated)である。使用法の情報は、[[!ContentDocs301]] の定義を参照されたい。

epub:trigger 要素(非推奨)

trigger 要素は、スクリプト化及び非スクリプト化のコンテキストの両方において、例えば、音声や動画の再生など、マルチメディア オブジェクトを制御するマークアップ定義のユーザー インターフェースの作成を可能にする。

trigger 要素の使用は、非推奨(deprecated)である。使用法の情報は、[[!ContentDocs301]] の定義を参照されたい。

カスタム属性

リーディング システムは、EPUB 出版物のレンダリングを強化するために、この仕様で定義されていない機能を導入してもよい(MAY)。この実験を容易にするために、ベンダーは、XHTML コンテンツ ドキュメントで使用するためにカスタム属性を定義してもよい(MAY)。

カスタム属性は、次の URI のいずれにも一致しない名前空間 [[!XML-NAMES]] として定義されている外部の名前空間から、そのような属性が提供されている XHTML コンテンツ ドキュメント内の任意の要素に包含されてもよい(MAY)。

カスタム属性と、それに結びついた挙動は、EPUB 出版物の整合性を変更してはならない(MUST NOT)。コンテンツは、リーディング システムのレンダリングに関わらず、任意の情報の損失や他の重要な劣化なしに、読者によって消費できるままにしなければならない(MUST)。

リーディング システムを横断するカスタム属性の相互互換性を容易にするために、ベンダーは、[[AttributeExtensions]] で実装される任意の拡張をドキュメント化することを強く推奨する。

HTML の許容性と制約

このセクションは、EPUB 3 の XHTML コンテンツ ドキュメントで許可されている基本的な [[!HTML]] ドキュメントモデルから許容性と制約を定義する。

埋め込み MathML

まえがき

XHTML コンテンツ ドキュメントは、埋め込み [[MATHML3]] をサポートするが、完全な MathML マークアップ言語の制限されたサブセットの使用法に限定をする。

このサブセットは、[[HTML]] ユーザー エージェントとの互換性を保持しながら、リーディング システムの実装負荷の軽減とアクセシビリティを促進するよう設計されている。

マニフェスト item 要素の mathml プロパティ は、XHTML コンテンツ ドキュメントが埋め込み MathML を含んでいることを示している。

コンテンツの適合性

XHTML コンテンツ ドキュメント内の MathML マークアップのいずれかの発生には、次にある追加の制約付きで、MathML 仕様 [[!MATHML3]] 内に述べられている制約に準拠しなければならない(MUST)。

Presentation MathML

math 要素は、下で定義しているような annotation-xml 要素を除外して、Presentation MathML のみ含まなければならない(MUST)。

Content MathML

Content MathML は、XHTML コンテンツ ドキュメントの MathML マークアップ内に包含してもよく(MAY)、そして、表示されるとき、semantics 要素の annotation-xml 子要素に生じなければならない(MUST)。

Content MathML は、上記の条件のように包含するとき、指定された annotation-xml 要素の encoding 属性は、機能的に同等な値の MathML-Content かそれとも application/mathml-content+xml を設定しなければならず(MUST)、その name 属性は contentequiv に設定されなければならない(MUST)。

Deprecated MathML

[[!MATHML3]] で非推奨にマークされた要素と属性は、XHTML コンテンツ ドキュメントの MathML マークアップ内に包含してはならない(MUST NOT)。

XHTML コンテンツ ドキュメント フラグメント

XHTML コンテンツ ドキュメント フラグメントは、XHTML コンテンツ ドキュメントの MathML マークアップ内に包含してもよく(MAY)、そして、表示されるとき、semantics 要素の annotation-xml 子要素内に発生しなければならない(MUST)。

XHTML コンテンツ ドキュメント フラグメントが上記段落経由で包含されるとき、指定された annotation-xml 要素の encoding 属性は、application/xhtml+xml を設定されなければならず(MUST)、name 属性は、alternate-representation に設定されなければならない(MUST)。

全ての包含された XHTML コンテンツ ドキュメント フラグメントは、MathML マークアップ自体を含んではならない(MUST NOT)。

全ての包含された XHTML コンテンツ ドキュメント フラグメントは、math 要素が、特定の XHTML コンテンツ ドキュメント フラグメントによって置き換えられた場合、ドキュメントは妥当なまま、祖先の math 要素が発生するコンテンツ モデルに適合しなければならない(MUST)、

リーディング システムの適合性

適合した EPUB リーディング システムは、XHTML コンテンツ ドキュメントに埋め込まれた MathML をサポートするために次の基準を全て満たさなければならない(MUST)。

  • [[!MATHML3]] 仕様で定義されているように、Presentation MathML の入力に対応するレンダラーでなければならない(MUST)。

  • xml-annotation 要素にある Content MathML のレンダリングをサポートしてもよい(MAY)。

  • ビューポートを持つ場合、Presentation MathML の視覚的なレンダリングをサポートしなければならない(MUST)。

EPUB リーディング システムは、例えば MathML のレンダリングを提供する MathJax など、サードパーティのライブラリの使用を選択してもよい(MAY)。

埋め込み SVG

XHTML コンテンツ ドキュメントは、(参照を介しての埋め込み、たとえば、imgobject 要素による) 参照と、(XHTML コンテンツ ドキュメント内の svg 要素の直接な包含を介しての埋め込みによる)包含による SVG ドキュメント フラグメント [[!SVG]] の埋め込みをサポートする。

XHTML コンテンツ ドキュメントに埋め込まれた SVG のコンテンツの適合性の制約は、SVG の制約SVG コンテンツ ドキュメントために定義されたものと同じである。

リーディング システムは、SVG コンテンツ ドキュメント - リーディング システムの適合性 に定義された XHTML コンテンツ ドキュメントに埋め込まれた SVG を処理しなければならない(MUST)。

マニフェスト item 要素 [[Packages32]] の svg プロパティは、XHTML コンテンツ ドキュメントに埋め込み SVG を含んでいることを示している。

埋め込み SVG と CSS

参照によって XHTML コンテンツ ドキュメントに埋め込まれた SVG のスタイリングのために、リーディング システムは、参照先の SVG ドキュメントに含まれるドキュメントの CSS スタイル ルールを適用してはならない(MUST NOT)。

包含によって XHTML コンテンツ ドキュメントに埋め込まれた SVG のスタイリングのために、リーディング システムは、包含された SVG 要素に含まれているドキュメントの CSS ルールを適用しなければならない(MUST)。

参照によって包含された SVG は、別のドキュメントのように処理され、SVG コンテンツ ドキュメントと同様に独自の CSS スタイル ルールを包含できる。これは、外部の [[HTML]] 要素を参照する [[HTML]] object 要素の状況と一致していると注意されたい。

Unicode の制限

本セクションは、Unicode 文字のレパートリーの制約を記載する。

外字文字と埋め込みフォント

[[!Unicode]] に定義された通りに私用領域(PUA)範囲のひとつの中の符号位置にマッピングされた任意の包含された文字は、その符号位置のために適したグリフを含む埋め込みフォント [[!CSS-Fonts-3]] を参照し包含する方法で、設定または起因し、文字列内に発生しなければならない(MUST)。

推奨されない構造

rp 要素

[[HTML]] rp 要素は、(例えば、丸括弧表示で囲む ruby マークアップなど)ルビのマークアップを見分けられない古いリーディング システムのためのフォールバックの提供を意図している。EPUB 3 リーディング システムがルビを認識し、またフォールバックを提供できるなら、rp 要素の使用は推奨されない。

embed 要素

[[HTML]] embed 要素は、スクリプトをサポートしないリーディング システムのために、フォールバック コンテンツンツを提供するための固有の設備を提供しないので、製作者は、参照されたリソースにスクリプトが包含されているときは、要素の使用が推奨されない。[[HTML]] object 要素は、固有のフォールバック機能を包含するため、代わりに使用できる。

管理外リソースの制約

管理外リソースは、管理外リソースがサポートされていないとき、固有のフォールバック手法で代替表現を提供することが可能である場合には、固有のフォールバック メカニズムを持つ要素から参照されてもよい(MAY)。例えば、多くの [[!HTML]] 埋め込まれたコンテンツ要素は、複数のソースを指定できるようにするか、リソースがレンダリングできないときのために埋め込みの HTML コンテンツを許可するなど、代替レンダリングをオプションを提供する。コア メディア タイプ リソースまたは埋め込まれた HTML コンテンツは、管理外リソースを参照するとき、特定の要素固有のフォールバック メカニズムを介して提供されなければならない(MUST)。

[[!HTML]] フロー コンテンツは、(例えば、EPUB 2 リーディング システムなど)これらの要素が認められていない古いリーディング システムでレンダリングするために、audio 及び video 要素内に埋め込まれてもよいが(MAY)、フォールバックのコア メディア タイプ リソースを表すものではない。

[[!HTML]] img 要素に関連付けることができる様々なソースのために、以下のフォールバック条件がその使用に適用される。

次の [[!HTML]] 要素は、フォールバックのコア メディア タイプ リソースを提供することなく、管理外リソース [[!EPUB32]] を参照できる。

管理外リソースは、フォールバックのコア メディア タイプ リソースの提供なしに、前述の三つの要素から参照されてもよい(MAY)。

このような [[HTML]] iframe など、固有のメカニズムのない要素のフォールバックを提供するためにマニフェスト フォールバック [[Packages32]] を参照されたい。

フォーム送信

[[!HTML]] フォームの送信に対するリーディング システムのサポートは、省略可能である(OPTIONAL)。例えば、リーディング システムは、ネットワークへのアクセスを制限することで、フォーム送信を防ぐかもしれない。

SVG コンテンツ ドキュメント

[[!SVG]] の一部の機能は、リーディング システムにおいて完全にサポートされていないか、リーディング システムが動作する全てのプラットフォームを横断してサポートされていない。そのような機能を利用する場合、製作者は、相互運用性とドキュメントの寿命への潜在的な影響の面で、固有のリスクを考慮する必要がある。

まえがき

Scalable Vector Graphics (SVG) 仕様 [[SVG]] は、最終型のベクターグラフィックとテキストを表現するためのフォーマットを定義する。

EPUB 出版物は、典型的に、トップレベルの文書型に XHTML コンテンツ ドキュメントを使用するが、SVG コンテンツ ドキュメントの使用も許可されている。SVG は、典型的に、最終型のページ画像がコンテンツの唯一な適切な表現である場合など、(例えば、カバー アート及びマンガやコミックブックのコンテクスト内など)特殊な状況でのみ使用する

本セクションは、[[SVG]] ドキュメントのプロファイルを定義する。この仕様に準拠した XML ドキュメントのインスタンスはコア メディア タイプ リソースであり、SVG コンテンツ ドキュメントとしてこの仕様を参照している。

本セクションは SVG コンテンツ ドキュメントのための適合性の制約を定義している。XHTML コンテンツ ドキュメントに埋め込まれた SVG のための適合性の制約は埋め込み SVG を参照されたい。

コンテンツの適合性

SVG コンテンツ ドキュメントは、次の基準を全て満たさなければならない(MUST)。

ドキュメントのプロパティ

XML 適合性 [[!EPUB32]] で定義されている XML ドキュメントのための適合性の制約を満たさなければならない(MUST)。

コア メディア タイプ リソースを包含するためにフォールバックを提供する管理外リソースへの参照を包含してもよい(MAY)。

SVG ドキュメント フラグメント [[!SVG]] であり、SVG の制限で述べられている全てのコンテンツの適合性要件に準拠しなければならない(MUST)。

[[EPUBAccessibility]] のアクセシビリティ要件に従う EPUB 出版物の推奨は、SVG コンテンツ ドキュメントに適用する。アクセシビリティ [[EPUB32]] を見よ。

ファイルのプロパティ

SVG コンテンツ ドキュメントのファイル名は、ファイル拡張子 .svg を使用するべきである(SHOULD)。

SVG の制限

この仕様は、次のように SVG コンテンツ ドキュメントのコンテンツモデルと XHTML コンテンツ ドキュメントに埋め込む SVGを制限する。

リーディング システムの適合性

適合した EPUB リーディング システムは、SVG コンテンツ ドキュメントと XHTML コンテンツ ドキュメントに埋め込む SVG の処理のための次の基準を全て満たさなければならない(MUST)。

意味の変化

XHTML の意味の変化で定義された構文とセマンティクスは、SVG コンテンツ ドキュメントepub:typeepub:prefix 属性を使用するために継承される。

epub:prefix 属性の使用は、SVG コンテンツ ドキュメントにおけるルート svg 要素でのみ有効である。埋め込まれた SVG で使用されるプリフィックスは、XHTML の意味の変化で定義されているように、[[!HTML]] ルートの html 要素に宣言されなければならない(MUST)。

CSS スタイル シート

まえがき

CSS は、オープン Web プラットフォームの不可欠な一部である。読者や出版社、ドキュメントの製作者は、HTML がうまく動作するように、CSS が「うまく動作する」と期待している。

過去に、EPUB は、特定のプロパティのサポートを義務付け、他の多数のプロパティにおいてプレフィックス付きバージョンを提供する CSS のプロファイルを定義した。CSS ワーキング グループはプリフィックス付きプロパティの使用をもはや推奨されていないけれども、この仕様は、既存コンテンツとの断絶を避けるためにいくつかのプリフィックス付きプロパティを保持する。しかし、このセクションで定義されているマイナーな例外を除き、EPUB は、CSS を定義する W3C に従う。

コンテンツの適合性

適合している CSS スタイル シートは、次の基準を全て満たさなければならない(MUST)。

いくつかのリーディング システムは、CSS の全ての要求される機能をサポートしていないことに注意されたい。具体的には、次の問題があることが知られている。

  • リーディング システムによって誘発されたページネーションは、スタイルシートに対して不完全に作用する。時折、ページネーションは、ビューポート サイズに対して不完全な値をもたらし、カラムに使用される。。固定及び絶対配置は、特に問題である。

  • スクリーンの一部のタイプは、(例えば、レイテンシが高いなど)アニメーションとトランジションを不完全にレンダリングするかもしれない。

リーディング システムの適合性

適合した EPUB リーディング システムは、CSS スタイル シートを処理するために次の基準を全て満たさなければならない(MUST)。

リーディング システムの開発者は、主要なブラウザのレベルで CSS のサポートを実装することが推奨される。

プリフィックス付きプロパティ

製作者は、プリフィックスのないプロパティと、現在の CSS 仕様をサポートするリーディング システムを使用することが強く推奨される。[[!ContentDocs301]] から広く使用されているプリフィックス付きプロパティは保留されたが、他のプロパティのサポートは取り除かれた。製作者は、必要な時に必要な場所で利用できる、取り除かれたプロパティのためのネイティブな CSS のソリューションを使用することを勧める。

現在、これらプリフィックス付きプロパティを使用している製作者は、これらプロパティが、EPUB の次のメジャー バージョンでサポートされる見込がないため、すぐにサポートできるプリフィックスのないバージョンに移行することが推奨される。

CSS Writing Modes

次の表は、[[!CSS-Writing-Modes-3]] の -epub- プリフィックス付きプロパティの一覧である。値の列は、プロパティに対応する値を示している。以前の EPUB マッピングの列は、EPUB 3 の前のバージョンで使用されていた値/プロパティを示している。古いプロパティや値を意味するアスタリスク(*)は、現在は廃止されている。最後の列は、[[!CSS-Writing-Modes-3-20151215]] に基いてプリフィックス付きプロパティを実装する方法を説明している。

プロパティ 以前の EPUB マッピング [[!CSS-Writing-Modes-3-20151215]] へのマッピング
-epub-text-orientation upright upright upright
-epub-text-orientation mixed vertical-right* mixed
-epub-text-orientation sideways-right sideways-right sideways
-epub-text-orientation sideways-right rotate-right* sideways
-epub-text-orientation sideways rotate-normal* sideways
-epub-text-orientation sideways sideways sideways
-epub-text-orientation mixed mixed mixed
-epub-writing-mode horizontal-tb horizontal-tb horizontal-tb
-epub-writing-mode vertical-rl vertical-rl vertical-rl
-epub-writing-mode vertical-lr vertical-lr vertical-lr
-epub-text-combine* -epub-text-combine-horizontal: none none text-combine-upright: none
-epub-text-combine* -epub-text-combine-horizontal: all horizontal text-combine-upright: all
-epub-text-combine* Error horizontal <number> text-combine-upright: digits <number>

CSS Text Level 3

プロパティ [[!CSS-Text-3-20160119]] へのマッピング
-epub-hyphens none | manual | auto 変更なし
-epub-hyphens all 非サポート
-epub-line-break auto | loose | normal | strict 変更なし
-epub-text-align-last auto | start | end | left | right | center | justify 変更なし
-epub-word-break normal | keep-all | break-all 変更なし
text-transform -epub-fullwidth text-transform: full-width

CSS Text Decoration Level 3

プロパティ [[!CSS-Text-Decor-3]] へのマッピング
-epub-text-emphasis-color <color> 変更なし
-epub-text-emphasis-position [ over | under ] && [ right | left ] 変更なし
-epub-text-emphasis-style none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string> 変更なし
-epub-text-underline-position auto | [ under || [ left | right ] ] 変更なし
-epub-text-underline-position alphabetic text-underline-position: auto

Component value combinators [[!CSS-Values-3]] に定義されているプロパティ値の構文。

リーディング システムによる上書き

EPUB リーディング システムは、EPUB コンテンツ ドキュメントに書かれているように、製作者のスタイル シートを適用するべきである(SHOULD)。リーディング システムが許可している場合、ユーザーが必要に応じて製作者のスタイル シートを上書きできるようにするべきである(SHOULD)。EPUB リーディング システムは、特に必要でない限り、製作者のスタイル シートを上書きするべきではない(SHOULD NOT)。

リーディング システムが製作者のスタイル シートを上書きする場合、ユーザー エージェント スタイルシートや getOverrideStyle メソッド [[!DOM-Level-2-Style]]、[[!HTML]] style 属性を介するカスケードを保持する方法で行うべきである(SHOULD)。

リーディング システムの開発者は、ユーザー エージェント スタイル シートおよび製作者のスタイル シートとやり取りする方法を、公の文書にすることを強く推奨する。

スクリプト

スクリプトのコンテクスト

EPUB コンテンツ ドキュメントは、個別の基本的な仕様([[!HTML]] と [[!SVG]])でこのために定義された機能を使用してスクリプトを含んでもよい(MAY)。EPUB コンテンツ ドキュメントがスクリプトを含むとき、この仕様やスクリプト コンテンツ ドキュメントを参照する。このラベルは、それらが [[!HTML]] フォームのインスタンスを含む時、XHTML コンテンツ ドキュメントに適用する。

この仕様は、スクリプトが現れてもよい(MAY)、二つのコンテクストを定義する。

スパイン レベル

トップレベル コンテンツ ドキュメントに包含される [[!HTML]] の script または [[!SVG]] script 要素のインスタンス。

コンテナ制約

次のいずれか。

上記の定義されたコンテクストの両方で、JavaScript のコードは、script 要素内に直接埋め込まれるか、src 属性経由で参照されているどうかで、実行するコンテクストに差はない。

どちらのコンテクストのスクリプトも、リーディング システムがそこに設置する権利と制約を決定して利用する。(全てのリーディング システムが同じスクリプト機能を提供するであろう)順守する必要のあるいくつかの固有の要求事項については、コンテンツの適合性リーディング システムの適合性を参照されたい。

コンテンツの適合性

コンテナ制約のスクリプト

コンテナ制約のスクリプトは、親のコンテンツ ドキュメントまたは EPUB 出版物内の他のコンテンツの DOM を変更する指示を含んではならず(MUST NOT)、含んでいる矩形のサイズを操作するための指示を含んではならない(MUST NOT)。

スパイン レベルのスクリプト

スパイン レベルのスクリプトを包含している EPUB コンテンツ ドキュメントは、この仕様の目的のために次のように定義されている、プログレッシブ エンハンスメントの技法を利用しなければならない(MUST)。ドキュメントが、スクリプトのサポートをしない、またはスクリプトのサポートが無効になっているリーディング システムによってレンダリングされるとき、トップレベル コンテンツ ドキュメントは、いかなる情報も失われたり、他の重大な劣化なしに読者によって消費できるように整合性を保たなければならない(MUST)。

アクセシビリティ

スクリプトを包含している EPUB コンテンツ ドキュメントは、全ての読者によって消費できるコンテンツを確保する関連性のある [[!WAI-ARIA]] アクセシビリティの技法を採用するべきである(SHOULD)。

フォールバック

スクリプトを包含している EPUB コンテンツ ドキュメントは、固有のフォールバック メカニズム(例えば [[!HTML]] objectcanvas 要素のためにそれらを利用できるもの)を使用するか、それとも固有のフォールバックを適用できないとき、マニフェストレベルのフォールバック [[!Packages32]] を使用して、そのようなコンテンツのためにフォールバックを提供してもよい(MAY)。

製作者は、スクリプトが、コア メディア タイプ リソース又はフラグメントの [[!EPUB32]] を生成するだけであることを保証しなければならない(MUST)。

マニフェスト item 要素の scripted プロパティは、EPUB コンテンツ ドキュメントがスクリプト コンテンツ ドキュメントであることを示している。

リーディング システムの適合性

スクリプトをサポートするリーディング システムは、次の基準を満たさなければならない(MUST)。

スクリプトをサポートしないリーディング システムは、次の基準を満たさなければならない(MUST)。

リーディング システムは、他の EPUB の機能を無効にしたり、または(例えば、改ページの無効による)異なるレンダリングやユーザーエクスペリエンスを提供する方法でスクリプト コンテンツ ドキュメントをレンダリングするかもしれない。

コンテナ制約モデルの使用を制限を選択する製作者は、スクリプトと非スクリプトコンテンツの間でより一貫性のあるユーザーエクスペリエンス(例えば、一貫性のあるページネーションの挙動)を確保するであろう。

製作者は、これらの EPUB 出版物の互換性や寿命、アクセシビリティを向上させ、可能な時はスクリプトの包含を避ける現実的な宣言の技法を使用することを勧める。

セキュリティの考慮事項

全ての EPUB 製作者EPUB リーディング システムの開発者は、スクリプトコンテンツが、リーディング システムによって実行されるときに発生するセキュリティ問題に注意する必要がある。リーディング システムとブラウザによって採用されている基本的なスクリプトモデルが同じであるように、Web コンテクスト内で発生した問題と同じ種類を考慮する必要がある。

各リーディング システムは、特定のドキュメント内のスクリプトが信頼できるかそうでないかを、はっきりさせる必要がある。全てのスクリプトが、信頼できない(そして潜在的に悪意のある)ものとして処理され、攻撃の全てのベクトルが分析され、保護されるのを勧める。具体的には、次を考慮する必要がある。

次の推奨事項は、信頼できないスクリプトを処理するためのガイドとして提供する。

これらの推奨事項への順守は、上に挙げた可能性のある攻撃からの保護を保証しないことを注意されたい。開発者は、それらのリーディング システムのコンテクスト内のそれぞれの潜在的な脆弱性を調査する必要がある。

イベントモデルの考慮事項

リーディング システムは、[[HTML]] のような DOM のイベントモデルに従い、これらのイベントに関連付けられている標準のアクションを実行する前に、スクリプト環境に UI イベントを渡す必要がある。リーディング システムの開発者は、潜在的に悪意のあるスクリプトがこれらのリーディング システムに影響を与えることができる範囲を制限するために、スクリプトが重要な機能(たとえばナビゲーションなど)を無効にできないことも保証する必要がある。結果として、スクリプト環境は、いかなるイベントの標準アクションをキャンセルできる必要はあるが、一部のイベントは通過させないかもしれないしキャンセルできないかもしれない。

製作者は、これらの EPUB 出版物にスクリプト機能を加えるとき、リーディング システムの実装の可能性を考慮する必要がある。(例えば、デバイスの全てが物理キーボードを備えているわけではなく、多くの場合、ソフトウェアキーボードが、テキストのインプット要素のためのみに有効化される)。したがって、キーボードのイベントのみに頼るのは勧めない。目的のアクションのトリガーとなる代替の方法は、常に提供される必要がある。

固定レイアウト

まえがき

このセクションは、パッケージ ドキュメントpre-paginated として示された 固定レイアウト ドキュメントEPUB コンテンツ ドキュメントの大きさのプロパティの表現と解釈のための規則を定義する。

この仕様は、初期包含ブロック [[CSS2]] がどのようにリーディング システムのコンテンツ表示領域内に配置されるかを定義しない。

ページ分割された様式(つまり、固定の幅や高さの大きさを持つ)でレンダリングされるレンディションまたは個々のスパイン項目を指定する方法についての情報は固定レイアウト プロパティ [[Packages32]] を参照されたい。

コンテンツの適合性

適合した固定レイアウト ドキュメントは、次の基準を全て満たさなければならない(MUST)。

リーディング システムの適合性

適合した EPUB リーディング システムは、固定レイアウト ドキュメントを処理するための次の基準を全て満たさなければならない(MUST)。

ビューポートのレンダリング

固定レイアウト ドキュメントをレンダリングするとき、デフォルトの意図は、コンテンツ表示領域を可能な限り、使用可能なビューポート エリアの多くを占めるようにするべきである(SHOULD)。リーディング システムは、ビューポートに例えばボーダーまたはマージン、ヘッダー、フッターなどの追加のコンテンツを入れるべきではない(SHOULD NOT)。

ユーザーへのリーディング システムをコントロールするウィジェットは、上記の期待される挙動に包含されていない。

初期包含ブロックの大きさ

HTML の表現

XHTML の固定レイアウト ドキュメントの場合、初期包含ブロック [[!CSS2]] の大きさは、[[!CSS-Device-Adapt-1]] に定義された構文を使用して viewport meta タグで表現されなければならない(MUST)。この仕様のこの版では、幅と高さの表現のみ、リーディング システムによって認識されなければならない(MUST)。

リーディング システムは、viewport meta タグで宣言された初期包含ブロック(ICB)の大きさに XHTML コンテンツを切り抜かなければならない(MUST)。初期包含ブロックの外側に位置するコンテンツは見えないであろう。ICB のアスペクト比がリーディング システムのコンテンツ表示領域のアスペクト比と一致していないとき、リーディング システムはユーザインタフェースに順応するため領域内の ICB を配置してもよく(MAY)、つまり、レターボックスがコンテンツの片側もしくは両側に表示されてもよい(MAY)。

SVG の寸法

SVG 固定レイアウト ドキュメントの場合、ICB の大きさは、viewBox 属性 [[!SVG]] を使用して表現しなければならない(MUST)。

発音辞書

まえがき

W3C 発音辞書仕様 (PLS) [[PRONUNCIATION-LEXICON]] は、自動音声認識とテキスト読み上げ(TTS)エンジンの使用による XML ベースの発音辞書のための構文とセマンティクスを定義している。

次のセクションは、EPUB 出版物を包含している PLS ドキュメントのための基準と、XHTML コンテンツ ドキュメントに PLS ドキュメントを結びつけるためのルールの適合性を定義している。

合成音声に関連する EPUB 3 の機能の詳細な情報は、テキスト読み上げ [[EPUB3Overview]] を参照されたい。

EPUB 出版物の適合性

適合した EPUB 出版物レンディションは、PLS ドキュメントに含むために次の基準を全て満たさなければならない(MUST)。

コンテンツの適合性

PLS ドキュメントは次の基準を全て満たさなければならない(MUST)。

ドキュメントのプロパティ

XML 適合性 [[!EPUB32]] で定義された XML ドキュメントための適合性の制約を満たさなければならない(MUST)。

URI https://www.w3.org/TR/2008/REC-pronunciation-lexicon-20081014/ [[!PRONUNCIATION-LEXICON]] で利用できる PLS ドキュメントのための RELAX NG スキーマに妥当でなければならない(MUST)。

ファイルのプロパティ

PLS ドキュメントのファイル名はファイル拡張子の .pls を使用するべきである(SHOULD)。

リーディング システムの適合性

テキスト読み上げ(TTS)機能を持つリーディングシステムは、PLS ドキュメントをサポートするべきである(SHOULD)。

適合した EPUB リーディング システムは、PLS ドキュメントの処理のための次の基準を全て満たさなければならない(MUST)。

JavaScript epubReadingSystem オブジェクト

インターフェースの定義

この仕様は、次のように、[[!HTML]] Navigator オブジェクトを拡張する。

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

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

[[!WEBIDL]] notation.

この仕様は、WorkerNavigator オブジェクト [[WebWorkers]] の epubReadingSystem プロパティ拡張を定義していない。したがって、リーディング システムは、ワーカーのスクリプト コンテクストで epubReadingSystem オブジェクトの公開を必要とせず、製作者は、その存在に依存することはできない。

概要

Navigator.epubReadingSystem オブジェクトは、スクリプト コンテンツ ドキュメントが、ユーザーのリーディング システムに関する情報を照会できるインターフェースを提供する。

オブジェクトは、リーディング システムのプロパティ(名前とバージョン)を表示し、そのサポートする機能を決定するために呼び出すことができる hasFeature メソッドを提供する。

リーディング システムは、ネストされたコンテナ制約のスクリプト コンテクストを包含する、ロードされた全てのスクリプト コンテント ドキュメントの navigator オブジェクト上に epubReadingSystem オブジェクトを公開しなければならない(MUST)。リーディング システムは、DOMContentLoaded イベントがトリガー [[!HTML]] されたときよりも遅延することなく、epubReadingSystem オブジェクトを利用できることを担保しなければならない(MUST)。

リーディング システムの実装は、技術的な実現可能性の理由から、スクリプト コンテンツ ドキュメント内に epubReadingSystem オブジェクトの複製されたインスタンスを作るかもしれない。このような場合に、リーディング システムは、(そのプロパティとメソッドの値によって反映されるように)オブジェクトの状態が一貫してコピーされた全てのインスタンス間で維持されることを保証する必要がある。

プロパティ

次のプロパティで、リーディング システムに関する情報を読み出せるようにしなければならない(MUST)。

名前 概要
name リーディング システム(例えば、"iBooks" や "Kindle")の名前を表す String 値を返す。
version リーディング システム(例えば、"1.0", "2.1.1")のバージョンを表す String 値を返す。
layoutStyle layoutStyle プロパティの使用は、非推奨(deprecated)である。使用例の情報は、[[!ContentDocs301]] の定義を参照されたい。

メソッド

hasFeature

概要

hasFeature メソッドは、指定された機能のいずれかのバージョンがサポートされているかどうかを示すブーリアン値、または指定した機能が認識されない場合は undefined を返す。

省略可能な(OPTIONAL) version パラメータは、時間とともに互換性のない方法で変更できるカスタム機能を問い合わせるために包含されている。返り値は、機能の特定のバージョンのみサポートすることを示している。

製作者は、この仕様に定義された機能を問い合わせるとき、version パラメータを包含するべきではない(SHOULD NOT)。これらの機能は、バージョンを持たないと見なされる。リーディング システムがこの仕様に定義された機能をサポートしない場合、全ての提供された version パラメータと true 値の返りを無視しなければならない(MUST)。

機能

次の表は、epubReadingSystem オブジェクトをサポートするリーディング システムが(戻り値を提供するため)認識しなければならない(MUST)機能のセットを掲載している。これらの機能のサポートは、省略可能(OPTIONAL)である。

名前 概要
dom-manipulation スクリプトは、ドキュメントの DOM(スパイン レベルのスクリプトのみ適用される)に構造の変更をしてもよい(MAY)。
layout-changes スクリプトは、コンテンツのレイアウト(スパイン レベルのスクリプトのみ適用される)に影響を及ぼす属性と CSS スタイルの変更をしてもよい(MAY)。
touch-events デバイスはタッチイベントをサポートしており、リーディング システムは、コンテンツにタッチイベントを渡す。
mouse-events デバイスはマウスイベントをサポートしており、リーディング システムはコンテンツにマウスイベントを渡す。
keyboard-events デバイスはキーボードイベントをサポートしており、リーディング システムはコンテンツにキーボードイベントを渡す。
spine-scripting リーディング システムが、(例えば、コンテナ制約のスクリプトは、トップレベル コンテンツ ドキュメント内でサポートしているスクリプトに依存している全てのアクションが、それらを試みる前に達成のチャンスがあるかどうか決定できる)スパイン レベルのスクリプトをサポートするかどうかを示す。

追加機能は、リーディング システムの開発者により加えられてもよいが(MAY)、この仕様の将来のバージョンで、そのようなカスタムの追加と競合したり互換性のない方法でこの一覧に追加するかもしれない。