EPUBリーディングシステム 3.3

W3C勧告

この文書の詳細
このバージョン:
https://www.w3.org/TR/2024/REC-epub-rs-33-20241017/
最新公開バージョン:
https://www.w3.org/TR/epub-rs-33/
最新の編集者草案:
https://w3c.github.io/epub-specs/epub33/rs/
履歴:
https://www.w3.org/standards/history/epub-rs-33/
コミット履歴
テストスイート:
https://w3c.github.io/epub-tests/index.html
実装報告:
https://w3c.github.io/epub-specs/epub33/reports/
編集者:
Matt Garrish (DAISY Consortium)
Ivan Herman (W3C)
Dave Cramer (招待専門家)
フィードバック:
GitHub w3c/epub-specs (プルリクエスト, 新しい課題, 未解決の課題)
public-pm-wg@w3.org まで、件名行を [epub-rs-33] … メッセージのトピック … として送信してください(アーカイブ
正誤表:
https://w3c.github.io/epub-specs/epub33/errata.html
この文書は、次の非規範的フォーマットでも利用できます:
EPUB 3

関連項目: 翻訳


概要

EPUB® 3 は、デジタル出版物および文書のための配布・交換フォーマットを定義します。EPUB フォーマットは、構造化され意味的に拡張された Web コンテンツ(HTML、CSS、SVG およびその他のリソースを含む)を、単一ファイルの コンテナで配布するために、表現、パッケージ化、エンコードする手段を提供します。

この仕様は、EPUB 3 リーディングシステム(EPUB 出版物をレンダリングするユーザーエージェント)の適合要件を定義します。

この文書のステータス

この節では、この文書の公開時点におけるステータスを説明します。現在の W3C 出版物の一覧およびこの技術レポートの最新版は、 https://www.w3.org/TR/ の W3C 技術 レポート索引で確認できます。

この文書は、Publishing Maintenance Working Group により、 勧告トラックを用いて 勧告として公開されました。

W3C は、この仕様を Web の標準として広く展開することを推奨します。

W3C 勧告とは、広範な合意形成を経た後、 W3C とその会員によって承認され、 Working Group メンバーから実装に対する ロイヤリティフリーのライセンス のコミットメントを得ている仕様です。 この勧告の将来の更新には、 新機能が組み込まれる可能性があります。

この文書は、 W3C 特許 ポリシーの下で運営されるグループによって作成されました。 W3C は、 グループの成果物に関連して行われた 特許開示の公開一覧 を管理しています。このページには、 特許を開示するための手順も含まれています。実際に その個人が Essential Claim(s) を含むと考える特許を知っている場合、その個人は W3C 特許ポリシー第 6 節に従って その情報を開示しなければなりません。

この文書は、 2023年11月03日版 W3C プロセス文書により管理されます。

1. はじめに

1.1 概要

この節は非規範的です。

EPUB 3 標準は、2 つの明確に異なる関心事に分かれている。EPUB 出版物 の作成は コア仕様 [epub-33] で定義される一方、この 仕様では、それらを EPUB リーディングシステムでレンダリングするための要件を詳述する。

EPUB リーディングシステムは多くの形態を取り得る。たとえば、ユーザーにコンテンツをレンダリングするための 視覚的な表示領域を持つ場合もあれば、コンテンツの音声再生のみを提供する場合もある。そのため、 すべてのリーディングシステムに適用される単一の規則群は存在しない。むしろ、この仕様は、 リーディングシステムの能力およびそれがサポートする機能に基づいてレンダリング要件を分解している。

さらに、この仕様は、開発者が独自のユーザーインターフェイスを作成できるよう大きな柔軟性を認めており、 メタデータ処理などに関する要件は、そのような柔軟性を可能にするため意図的に最小限に抑えられている。

したがって、この仕様はリーディングシステムに対する正式な要件を特定するものではあるが、この文書だけを 切り離して理解することはできない。開発者は、利用可能な情報の完全な範囲を理解するために、 EPUB 出版物のコンテンツ構造全体にも精通しておくべきである。

適合するリーディングシステムは、必ずしも単一の専用プログラムまたはデバイスである必要はなく、 分散システムとして存在する場合もある。

1.2 用語

この仕様では、EPUB 3.3 で定義された用語 [epub-33] を使用する。

また、次の用語も定義する:

コンテンツ表示領域

ビューポート内で、EPUB コンテンツ文書の表示に割り当てられた領域。 コンテンツ表示領域には、EPUB リーディングシステムが ビューポートに挿入する可能性のある境界線、余白、ヘッダー、フッター、その他の装飾は含まれない。

合成見開きの場合、ビューポートには 2 つの コンテンツ表示領域が含まれる。

節内の用語は、最初に出現した場合にのみその定義へリンクされる。

1.3 適合性

非規範的として示された節に加え、この仕様におけるすべての作成ガイドライン、図、例、および注は 非規範的である。この仕様のそれ以外のすべては規範的である。

この文書におけるキーワード MAYMUSTMUST NOTOPTIONALRECOMMENDEDSHOULD、および SHOULD NOT は、 ここに示すようにすべて大文字で現れる場合に限り、 BCP 14 [RFC2119] [RFC8174] に記述されているとおりに解釈される。

すべてのアルゴリズム説明は非規範的である。

1.4 他の 仕様との関係

この節は非規範的です。

1.4.1 HTML との関係

[html] 標準は継続的に進化しており、もはや バージョン付きのリリースは存在しない。 その標準はさらに、MathML、SVG、CSS、JavaScript など、進化を続けるさまざまな技術を参照している。

リーディングシステムの開発者は、 自らのシステムを最新に保つため、HTML および HTML が参照する技術の変更を追跡しなければならない。

この仕様は、EPUB リーディングシステムに対して、スクリプト処理フォーム送信、 または HTML DOM [dom] のサポートを要求しない。この仕様に適合するリーディングシステムは、 適合する EPUB コンテンツ文書を処理できることのみが 期待される。スクリプト処理およびフォーム送信のサポートは必須ではないため、適合するリーディングシステムが 完全に適合する HTML ユーザーエージェントでない場合もある。

1.4.2 SVG との関係

この仕様は [svg] の特定のバージョンを参照せず、 代わりに日付なし参照を使用する。 この参照に曖昧さがある場合は常に、最新の勧告仕様が権威ある参照となる。

この方法により、EPUB は常に SVG 標準の変更に歩調を合わせられる。リーディングシステムの開発者は、 自らのシステムを最新に保つため、SVG 標準の変更を追跡しなければならない。

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

2.1 要件

リーディングシステムがある機能をサポートしなければならないかどうかは、 その節の冒頭で述べられる。 この仕様に適合するため、リーディングシステムは、すべての必須機能に加え、 適用可能なすべての条件付き必須機能(たとえば、リーディングシステムが ビューポートを持つ場合に画像レンダリングをサポートすること) を、それぞれの節で定義されているとおりにサポートしなければならない(MUST)。

リーディングシステムは必ずしも単一のアプリケーションではなく、分散システムとして存在する場合があるため、 リーディングシステム要件が、ユーザーに EPUB 出版物をレンダリングするアプリケーション内で満たされるとは限らない。 例として、管理されたコンテンツリポジトリ(たとえば書店または図書館システム)とのみ対話するリーディングシステムがある。この場合、 リーディングシステム開発者が、要件がそのアプリケーションに適用されないこと(たとえば、重複した itemref エントリ [epub-33] を持つ EPUB 出版物が システムに入ることができない、など)を示せるなら、リーディングシステム全体としては引き続き適合しているとみなされる。

推奨機能および任意機能をサポートする場合、リーディングシステムは、それぞれの節で定義されているすべての 規範的 要件を満たさなければならない(MUST)。

リーディングシステム開発者が推奨機能または任意機能をサポートしないことを選択した場合でも、その節の規範的要件が まったく適用されないことを常に意味するわけではない。場合によっては、機能を実装しない場合の代替要件 (たとえば、スクリプト処理がサポートされない場合にフォールバックを処理すること)が存在することがある。リーディング システムは、機能をサポートしない場合、これらの代替要件を満たさなければならない(MUST)。

EPUB 出版物には、この仕様で要求されない情報(たとえば パッケージ文書のメタデータ)が頻繁に含まれる。リーディングシステムは、 この追加情報を任意の目的(たとえばユーザーインターフェイスの改善)に使用してもよい。

2.2 エラー処理

リーディングシステムは、EPUB 出版物またはその内部のリソースが、 コンテンツ作成要件または処理要件に違反している場合、それらを読み込むことを要求されない。

2.3 エラー報告

この節は非規範的です。

リーディングシステムは、EPUB 出版物の処理およびレンダリング中に遭遇したエラー (たとえば、固定レイアウト文書の寸法が推定された場合など) を報告することは要求されないが、この情報にアクセスする手段を提供することが強く推奨される。比較可能な例として、 Web ブラウザーが HTML ページやアプリケーションのデバッグ用に提供する開発者ツールがある。

たとえば、EPUB 作成者は、そのような処理情報にアクセスできることで大きな利益を得られる (たとえば、EPUB 出版物を効率的にデバッグするため)。デバッグで最大限活用するためには、 リーディングシステムが直接遭遇した問題だけでなく、使用する任意のアプリケーションによって報告された問題 (たとえば、コンテンツのレンダリングに使用される ブラウザーコアから報告される HTML、CSS、JavaScript エラー、または EPUBCheck によって報告される検証問題) も報告することが推奨される。

エラー報告は、ユーザーの通常の読書体験に影響するような煩わしい体験になることは想定されていない。 むしろ、報告情報は、たとえば設定メニューから選択的に有効化できるようにして、 ユーザーを不必要に煩わせないようにできる。

3. 出版物リソース処理

リーディングシステムは、出版物リソース [epub-33] を処理しなければならない(MUST)。

3.1 コアメディア型

リーディングシステムが ビューポートを持つ場合、 それは 画像コアメディア型 リソース [epub-33] をサポートしなければならない(MUST)。

録音済み音声をレンダリングする 能力を持つ場合、それは 音声コアメディア型リソース [epub-33] をサポートしなければならない(MUST)。

リーディングシステムは、H.264 [h264] および VP8 [rfc6386] 動画コーデックの少なくとも一方をサポートすることが推奨されるが、これは 適合要件ではない — リーディングシステムは任意の動画コーデックをサポートしてもよく、まったくサポートしなくてもよい。リーディングシステム開発者は、 どの動画形式をサポートするかを決定する際、採用の広さ、再生品質、技術 ロイヤリティなどの要素を考慮すべきである。

3.2 外部リソース

リーディングシステムは、任意の集合の 外部リソース型をサポートしてもよい(MAY)。外部 リソースがサポートされない場合は、外部リソース [epub-33] で定義されているとおりに フォールバックを処理しなければならない(MUST)。

3.3 リソースの場所

リーディングシステムは、リモートリソースをサポートすべきである(SHOULD)。これは リソースの場所 [epub-33] で定義されている。

ネットワーク攻撃のリスクを制限するため、リーディングシステムは、https URI スキーム [rfc9110] を介して参照されるリモート リソースのみを読み込むべきである(SHOULD)。

3.4 Data URL

リーディングシステムは、コンテキストメニューなどのリーディングシステムのアフォーダンスを通じて開始された場合を除き、 data URL [rfc2397] が トップレベル閲覧コンテキスト [html] で開かれることを 防止しなければならない(MUST)。 リーディングシステムが トップレベルコンテンツ文書にトップレベル閲覧コンテキストを使用しない場合、たとえば トップレベル コンテンツ文書が SVG である場合には、それがトップレベル コンテンツ文書であるかのように data URL が開かれることも防止しなければならない(MUST)。

3.5 File URL

リーディングシステムは、 file URL [rfc8089] を介して参照される リソースへのアクセスを防止しなければならない(MUST)。

3.6 XML 処理

リーディングシステムは、 次の条件を満たす非検証 XML プロセッサー [xml] を使用しなければならない(MUST):

3.7 国際化

出版物リソースの処理の一部として、リーディングシステムは、 XHTML コンテンツ文書または SVG コンテンツ文書において言語および基底方向を設定する属性、ならびに すべての XML 文書(たとえば パッケージ文書および メディアオーバーレイ文書)のための xml:lang 属性を処理することが要求される。

さらに、リーディングシステムは、dir 属性 [epub-33] も パッケージ文書について処理しなければならない(MUST)。ここで、 dir によって指定される基底方向は、それが指定された要素、および別の dir インスタンスで 上書きされない限り、その内容内のすべての要素に適用される。(詳細については 5.1 基底方向も参照。)

出版物リソースにこの情報が存在しない場合、リーディングシステムは、パッケージ 文書で表現された情報(すなわち、xml:lang および dir 属性、link 要素上の hreflang 属性、または dc:language 要素 [epub-33] から)に基づいて、そのリソースの言語または基底方向を 仮定してはならない(MUST NOT)。 明示的な言語または方向情報が存在しない場合の扱いに関する詳細は、リソースの正式な仕様を参照すること。

3.8 ネットワークアクセス

リーディングシステムは、リモート リソースを取得するため、および スクリプト化コンテンツ文書Web ホスト API と通信し、 リソースを取得することを許可するために、ネットワークアクセスをサポートしてもよい(MAY)。

しかし、ネットワークアクセスを提供すると、リーディングシステムに対するセキュリティリスクと、ユーザーに対する セキュリティおよびプライバシーリスクの両方が増大する。これらのリスクは、リーディングシステムおよびそれらが動作する プラットフォームに固有であることが多い — ほとんどのリーディングシステムが基盤とするブラウザーコアは、 Web ブラウザー自体と同じセキュリティおよびプライバシー制御を提供しない。その結果、開発者は ネットワークアクセスを許可する際に特に注意し、リーディングシステムが攻撃に対して脆弱でないことを より徹底的にテストする必要がある。これらのリスクに関する詳細情報は、15. セキュリティとプライバシーで提供される。

リーディングシステム開発者がネットワークアクセスを許可する場合、次の両方を行うことが推奨される:

4. Open Container Format (OCF) 処理

リーディングシステムは、EPUB コンテナ [epub-33] を処理しなければならない(MUST)。

EPUB コンテナを処理するアプリケーションは、本格的なリーディングシステムである必要はない (たとえば、アプリケーションはコンテナの内容を抽出するだけ、またはパッケージ化された内容の 妥当性を確認するだけの場合がある)。このような場合、そのようなアプリケーションの開発者は、 この節で定義されるリーディングシステムのレンダリング要件を無視できる。

4.1 OCF 抽象コンテナ

4.1.1 ルートディレクトリの URL

リーディングシステムは、OCF 抽象コンテナルートディレクトリに URL [url] を割り当てなければならない(MUST)。 この URL は、コンテナルート URLと呼ばれる。これは実装 固有であるが、実装は次の特性を持たなければならない(MUST):

リーディングシステム内の EPUB 出版物のユーザー固有の各インスタンスごとに オリジン [html] が一意であるということは、2 人の異なる ユーザーが同じ EPUB 出版物のコピーを取得した場合、同じリーディングシステムが使用されていても、 それらのコピーにおけるオリジンは 2 人のユーザーで異なることを意味する。

コンテナルート URLの特性により、適合するリーディングシステムは 任意の相対 URL 文字列をコンテンツ URLへ解析する。言い換えると、相対リンクは コンテナ内容の外へ「漏れ」ない。これはセキュリティ上重要な機能である。

実際には、コンテナルート URL は次のように定義された URL と同様に振る舞う:

URL コンポーネント
スキーム http または https
ホスト localhost
ポート EPUB インスタンスに一意に割り当てられた動的ポート

例:

コンテナ ファイル ファイル パス URL
ルートディレクトリ 空文字列 http://localhost:49152/
パッケージ文書 EPUB/package.opf http://localhost:49152/EPUB/package.opf
EPUB コンテンツ文書 HTML/file name.xhtml http://localhost:49152/HTML/file%20name.xhtml
URL 文字列
(たとえば パッケージ文書内で見つかる)
コンテンツ URL
../HTML/file%20name.xhtml http://localhost:49152/HTML/file%20name.xhtml
/Media/img.png http://localhost:49152/Media/img.png
../../../Media/img.png http://localhost:49152/Media/img.png

最後の 2 つのリンクは、非適合またはレガシーのリーディングシステムおよびツールチェーンとの 相互運用性をより確実にするため、EPUB 出版物では禁止されていることに注意。

一部の言語仕様は、[url] に先行する Requests For Commentsを参照しており、 その場合、その特定の言語のコンテンツには以前の RFC が適用される。

ほとんどの言語仕様とは異なり、リーディングシステムは、 META-INF ディレクトリ内のすべてのファイルについて、 コンテナルート URL基底 URL [url] として使用しなければならない。 [epub-33] の META-INF ディレクトリ内の URL の解析に関する節も参照。

4.1.2 ファイル名

EPUB 作成者は、最大限の相互運用性のために、さまざまなファイル名およびファイルパスの 制限 [epub-33] に従う必要があるが、リーディングシステムは、これらの要件に 準拠しないファイル名およびパスの処理を試みるべきである(SHOULD)。無効なファイル名およびパスは、一部のオペレーティングシステムでのみ 問題となる可能性がある。

この仕様は、OCF ファイル名およびパスを表現できないリーディングシステムが、この非互換性を どのように処理するかを規定しない。

4.1.3 META-INF ディレクトリ

コンテナファイル(container.xml

リーディングシステムは、デフォルトで、最初の rootfile 要素 [epub-33] から参照されるパッケージ文書を使用して、EPUB 出版物をレンダリングしなければならない(MUST)。 リーディングシステムが、他の利用可能な選択肢から選択する手段を認識する場合、 より適切なパッケージ文書を選択してもよい(MAY)。

メタデータファイル(metadata.xml

リーディングシステムは、認識できないルート要素を持つmetadata.xml ファイル [epub-33] を無視すべきである(SHOULD)。

マニフェストファイル (manifest.xml

リーディングシステムは、ZIP アーカイブ内またはmanifest.xml ファイル [epub-33] に含まれる補助的なマニフェスト情報を、EPUB 出版物の処理に使用してはならない(MUST NOT)。

署名ファイル(signatures.xml

signatures.xml ファイル [epub-33] 内の署名を検証するために使用されるダイジェストを計算する前に、 リーディングシステムは、署名後に暗号化されたデータを復号しなければならない(MUST) — 署名前に暗号化されたデータは復号してはならない(MUST NOT)。

署名後に暗号化されたデータの識別に関する詳細については、Decryption Transform for XML Signature [xmlenc-decrypt] を参照。

その他のファイル

リーディングシステムは、予約済みファイル [epub-33] に列挙されていない META-INF ディレクトリ内の設定ファイルに遭遇しても、失敗してはならない(MUST NOT)。

4.2 OCF ZIP コンテナ

リーディングシステムは:

OCF ZIP コンテナアーカイブ内の特定のフィールドに関して、リーディングシステムは:

4.3 フォントの難読化

リーディングシステムは、 フォントの 難読化 [epub-33] で定義されるフォントの難読化解除をサポートすべきである(SHOULD)。

元のデータを復元するには、リーディングシステムは単に処理を逆にすればよい。すなわち、ソースファイルが 難読化されたデータとなり、宛先ファイルが生データを含む。

EPUB 3 は EPUB 3.0.1 より前にフォントの難読化を許可していたが、難読化と圧縮の順序を 規定していなかった。その結果、リーディングシステムは展開および難読化解除の後に 無効なフォントに遭遇する場合がある。このような場合、データを展開する前に難読化解除することで、 有効なフォントが返される可能性がある。リーディングシステムはこの取得方法をサポートする必要はないが、 開発者は EPUB 3 コンテンツを一般にサポートする際にこれを考慮すべきである。

5. パッケージ文書処理

リーディングシステムは、パッケージ文書 [epub-33] を処理しなければならない(MUST)。

5.1 基底方向

dir 属性 [epub-33] が設定され、 ltr または rtl の基底方向を示す場合、リーディングシステムは、 [bidi] で定義される 上位レベルプロトコルに従って bidi アルゴリズムを上書きし、基底方向が ltr の場合は段落埋め込みレベルを 0 に、 基底方向が rtl の場合は 1 に設定しなければならない(MUST)。

それ以外の場合、 基底方向は auto であり、この場合リーディングシステムは、[bidi] の 規則 P2 から始めて Unicode Bidi Algorithm を適用し、テキストの方向を決定しなければならない(MUST)。

パッケージ文書 メタデータの方向性の設定は [epub-33] で実装不足として示されているが、 国際的な利用者を対象とするリーディングシステム、または 国際的なコンテンツのサポートを主張するリーディングシステムには、そのメタデータをユーザーに提示する際、 この機能を実装することが強く推奨される。テキストの方向性を無視すると、可読性の問題を引き起こす可能性がある。

リーディングシステムにおいて必要な基準となるサポートが達成されたとき、 [epub-33] から実装不足ラベルは削除される。

5.2 一意な識別子

リーディングシステムは、 一意な識別子が、ただ 1 つの EPUB 出版物にのみ一意であることに依存すべきではない(SHOULD NOT)。同じ一意な識別子を持つ 2 つの EPUB 出版物が同じ出版物の異なるバージョンを表すのか、それとも異なる出版物を表すのかを判断するには、 最終更新日、タイトル、著者など、他のメタデータを調べる必要がある場合がある。

5.3 メタデータ

空白

リーディングシステムは、処理前に、 Dublin Core [dcterms] および meta 要素の [epub-33] から、 ASCII 空白を除去し折りたたま [infra] なければならない(MUST)。

dc:identifier 要素

dc:identifier 要素 [epub-33] の値が、 確立された体系に適合するか、発行機関によって付与されたものかを判断するため、リーディングシステムは identifier-type プロパティ [epub-33] を確認すべきである(SHOULD)。

dc:title 要素

リーディングシステムは、文書順で最初の dc:title 要素 [epub-33] を EPUB 出版物の主タイトルとして認識し、 他のタイトル要素より前にユーザーへ提示しなければならない(MUST)。

この仕様は、追加の dc:title 要素をどのように処理するかを定義しない。

dc:language 要素

dc:language 要素で指定される EPUB 出版物の言語は 情報提供用である。この情報の利用例には次のものが含まれる:

  • リーディングシステムのユーザーインターフェイスを通じてユーザーに提示すること
  • 本棚での機能強化に使用すること(たとえば、言語で並べ替える)
  • 読書インターフェイスの最適化に使用すること(たとえば、テキスト読み上げ 言語を事前読み込みする)

3.7 国際化を参照し、 出版物リソースの言語をどのように判断するかの詳細を確認すること。

dc:creator 要素

表示優先順位を決定する場合、 リーディングシステムは、metadata 節内の dc:creator 要素 [epub-33] の文書順を使用しなければならない(MUST)。 ここで最初に遭遇する creator 要素が主作成者である。リーディングシステムが作成者メタデータを ユーザーに提示する場合、可能な限り(たとえば、表示上の制約がない場合)、 metadata 節に列挙されたすべての作成者を含めるべきである(SHOULD)。

meta 要素

リーディングシステムは、 meta 要素のうち、property 属性 [epub-33] が認識できない式を定義するものをすべて 無視すべきである(SHOULD)。リーディングシステムは、未知の 式に遭遇しても失敗してはならない(MUST NOT)。

リーディングシステムが scheme 属性 [epub-33] の値を認識しない場合、 その要素の値を文字列として扱うべきである(SHOULD)。

リンクされたリソースの取得およびサポートは OPTIONAL である。

hreflang [EPUB-33] 属性で識別される言語は、 純粋に助言的なものである。リソース内で表現された言語情報が、 国際化要件で定義される処理およびレンダリング目的の その言語を決定する。

5.4 マニフェスト

リーディングシステムは、 認識しない properties 属性 [epub-33] の値を 無視しなければならない(MUST)。

リーディングシステムは、 リンクされたリソースEPUB 出版物のレンダリングに使用すべきではない(SHOULD NOT)。 これは、関係する固有の制限およびリスク(たとえば、リソースおよびその処理方法に関する情報の欠如、 リモートホストされたソースによるセキュリティリスク、フォールバックの欠如など)のためである。

リーディングシステムが、ある 出版物リソースの MIME メディア型 [rfc2046] をサポートしない場合、そのリーディングシステムは、 サポートされないリソースの代わりに使用するサポート済み出版物リソースを特定するまで、 マニフェストフォールバックチェーン [epub-33] をたどらなければならない(MUST)。 リーディングシステムがフォールバックチェーン内の複数の 出版物リソースをサポートする場合、そのリーディングシステムは、 リソースの properties 属性 [epub-33] の値に基づいて使用するリソースを選択してもよい(MAY)。そうでない場合は、 EPUB 作成者が望む フォールバック順序を尊重すべきである(SHOULD)。 リーディングシステムがフォールバックチェーン内のどのリソースも サポートしない場合、そのリーディングシステムはコンテンツを表示できなかったことをユーザーに通知しなければならない(MUST)。

マニフェストフォールバック [epub-33] が トップレベルコンテンツ文書に対して提供される場合、リーディング システムは、特定の文脈でレンダリングする最適なバージョンを見つけるため、 利用可能な選択肢から選んでもよい(たとえば、それぞれの properties 属性を調べる)(MAY)。

リーディングシステムは、 すでに遭遇したマニフェスト項目への最初の参照で フォールバックチェーンを終了しなければならない(MUST)。

5.5 Spine

リーディングシステムは、 spine 要素 [epub-33] で定義された順序で EPUB 出版物をレンダリングする手段を 提供しなければならない(MUST)。これには次が含まれる:

ユーザーが spine 要素で定義された既定の読書順序をたどる場合、リーディングシステムは 非線形 itemref 要素 [epub-33] を自動的にスキップしてもよい(MAY)。ただし、ユーザーが非線形 リソースへのハイパーリンクを有効化した場合、リーディングシステムは参照されたリソースまたは指定された フォールバックをレンダリングしなければならない(MUST)。リーディングシステムは、ユーザーが 既定で非線形 コンテンツをスキップするかどうかを選択できるオプションも提供してよい(MAY)。

EPUB 作成者page-progression-direction 属性 [epub-33] を指定していない場合、リーディングシステムは default の値を仮定しなければならない(MUST)。 page-progression-direction の値が default の場合、リーディングシステムはレンダリング方向を選択できる。

page-progression-direction 属性の値が default 以外である場合、 リーディングシステムは、pre-paginated XHTML コンテンツ文書から計算された方向性を 無視しなければならない(MUST)。

リーディングシステムは、 spine の itemref properties 属性 [EPUB-33] で表現された、認識しないすべての値を 無視しなければならない(MUST)。

リーディングシステムは、線形読書順序をレンダリングする際、重複するマニフェスト項目 [EPUB-33] への spine 参照を スキップしてはならない(MUST NOT)。 リーディング システムは、ユーザーインターフェイス(UI)上の目的では、これらを別個の項目として扱わなければならない(MUST) (たとえば、それぞれの出現箇所を個別にブックマークまたは注釈付けできる)。 リーディングシステムが spine 内で複数回参照されるリソースへのハイパーリンクをたどる場合、 リーディングシステムは、線形読書順序におけるその文書の最初の出現箇所へ ナビゲートしなければならない(MUST)。

5.5.1 Spine の上書き

spine itemref 要素の properties 属性グローバルレンダリングプロパティ [epub-33] を上書きする場合、リーディング システムは、その spine 項目を表示するために、上書き対象のグローバル値に関する要件に従わなければならない(MUST)。

たとえば、layout-pre-paginated 上書き [epub-33] を含む spine 項目は、 グローバルな pre-paginatedの要件に従ってレンダリングされる。

同じプロパティに対する上書きが properties 属性内で複数指定されている場合、リーディングシステムは最初の値のみを使用しなければならない(MUST)。

5.6 コレクション

この仕様の文脈では、リーディング システムにおけるコレクション [epub-33] のサポートは OPTIONAL である。リーディングシステムは、 認識できない役割を定義する collection 要素を 無視しなければならない(MUST)。

5.7 レガシー機能

リーディングシステムは、この バージョンの EPUB [epub-33] に適合するコンテンツにおいて、レガシー 機能をサポートしてはならない(MUST NOT)。

6. EPUB コンテンツ文書処理

EPUB コンテンツ文書 [epub-33] の定義には、 コンテンツの相互互換性を最適化するためのさまざまな作成上の制限(たとえば、言語および方向の設定に CSS を 禁止すること [epub-33])が含まれる。 この仕様で別段の記述がない限り、リーディングシステムはこれらの 制限された機能をサポートしてもよい(MAY)。

6.1 XHTML コンテンツ文書

リーディングシステムは、XHTML コンテンツ文書 [epub-33] を 処理しなければならない(MUST)。

この節で上書きされるものとして明示的に定義されていない限り、リーディング システムは、[html] 仕様で定義される意味論を用いて XHTML コンテンツ文書を処理し、 そこに示されている適用可能なユーザーエージェント適合制約を尊重しなければならない(MUST)。

6.1.1 HTML 拡張

6.1.1.1 RDFa

リーディングシステムによる属性処理 モデル [rdfa-core] のサポートは OPTIONAL である。

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

switch 要素の使用は非推奨である [epub-33]。実装情報については、[epubcontentdocs-301] におけるその定義を参照。

6.1.1.3 epub:trigger 要素(非推奨)

trigger 要素の使用は非推奨である [epub-33]。実装情報については、[epubcontentdocs-301] におけるその定義を参照。

6.1.1.4 カスタム属性

リーディングシステムは、その属性がこの仕様の要件を変更しない限り、カスタム属性を サポートしてもよい(MAY)。

6.1.2 HTML の逸脱と 制約

6.1.2.1 Microdata

リーディングシステムによる属性処理 モデルのサポートは OPTIONAL であり、JSON への変換 [html] も同様である。

6.1.2.2 MathML

XHTML コンテンツ文書に埋め込まれた MathML [mathml3] をサポートするため、リーディングシステムは:

リーディングシステムは、MathML レンダリングを提供するために MathJax のようなサードパーティライブラリを使用することを選択してもよい。

6.1.2.3 埋め込み SVG

リーディングシステムは、 XHTML コンテンツ文書に埋め込まれた SVG を、 6.2 SVG コンテンツ文書で定義されるとおりに 処理しなければならない(MUST)。

6.1.2.3.1 埋め込み SVG と CSS

XHTML コンテンツ文書参照により埋め込まれた SVG のスタイル付けの目的では、リーディング システムは、包含文書の CSS スタイル規則を参照先 SVG 文書に適用してはならない(MUST NOT)。

XHTML コンテンツ文書に インクルージョンにより埋め込まれた SVG のスタイル付けの目的では、リーディングシステムは、 包含文書の適用可能な CSS 規則を、含まれる SVG 要素に適用しなければならない(MUST)。

参照により含まれる SVG は別個の文書として処理され、SVG コンテンツ文書と同様に、 独自の CSS スタイル規則を含めることができる。 これは、[html] の object 要素が外部の [html] 要素を参照する状況と一致していることに注意。

6.1.2.4 フォーム送信

リーディングシステムによる [html] の form 要素の送信のサポートは OPTIONAL である。たとえば、リーディング システムは、ネットワーキングへのアクセスを制限することによりフォーム送信を防止する場合がある。

6.2 SVG コンテンツ文書

リーディングシステムは、SVG コンテンツ文書 [epub-33] を処理しなければならない(MUST)。

SVG コンテンツ文書およびXHTML コンテンツ 文書に埋め込まれた SVGを処理するため、リーディングシステムは:

6.3 Cascading Style Sheets (CSS)

リーディングシステムが ビューポートを持つ場合、 CSS による XHTML コンテンツ文書の視覚的レンダリング [epub-33] をサポートしなければならない(MUST)。

CSS をサポートするため、リーディングシステムは:

上記で定義された CSS プロパティのサポートに加えて、リーディング システムのユーザーエージェントスタイルシートは、[html] の推奨 既定レンダリングをサポートすべきである(SHOULD)。

リーディングシステム開発者は、主要ブラウザーのレベルで CSS サポートを実装し、 ユーザーエージェントスタイルシートおよびそれが EPUB 作成者のスタイルシートとどのように相互作用するかを 公開文書化すべきである。

6.4 スクリプト処理

リーディングシステムは、 スクリプト処理 [epub-33] をサポートすべきである(SHOULD)。

リーディングシステムによるスクリプト処理のサポートは、その使用文脈に依存する:

リーディングシステムがスクリプト処理をサポートする場合:

リーディングシステムが スクリプト処理をサポートしない場合、スクリプト化コンテンツ 文書のフォールバック [epub-33] で定義されるとおりに、スクリプト化コンテンツのフォールバックを 処理しなければならない(MUST)。

6.4.1 ローカルストレージ

リーディングシステムは、スクリプトが cookie および Web Storage [html] を通じて永続 データを保存することをブロックしてもよい(MAY)。

ローカルストレージ [html] を許可する リーディングシステムは、ユーザーがそのデータを検査または削除するための方法を提供すべきである(SHOULD)。

6.4.2 イベントモデル

リーディングシステムは、[html] に従って DOM Event モデルに従い、 これらのイベントに関連する既定動作を実行する前に、UI イベントを スクリプト環境へ渡すべきである(SHOULD)。

リーディングシステム開発者は、スクリプトがナビゲーションなどの重要な機能を無効にできないようにし、 潜在的に 悪意のあるスクリプトがリーディングシステムに与え得る影響の範囲を制限しなければならない。その結果、 スクリプト環境は任意のイベントの既定動作をキャンセルできるべきであるものの、一部のイベントは 渡されない場合や、キャンセルできない場合がある。

6.4.3 セキュリティ上の考慮事項

この節は非規範的です。

スクリプト処理もサポートするリーディングシステム開発者は、リーディングシステムがスクリプト化コンテンツを実行する際に 発生するセキュリティ問題を認識していなければならない。リーディングシステムとブラウザーで用いられる基礎的な スクリプトモデルは同じであるため、開発者は Web 文脈で遭遇する同種の問題を考慮しなければならない。

各リーディングシステムは、特定の文書内のスクリプトを信頼できるかどうかを確立しなければならない。リーディング システムはすべてのスクリプトを信頼できないもの(かつ潜在的に悪意のあるもの)として扱うべきであり、開発者は すべての攻撃ベクトルを検討し、それらから保護すべきである。特に、開発者は次を 考慮すべきである:

  • 実行時環境への攻撃(たとえば、ユーザーのハード ドライブからファイルを盗む)。

  • リーディングシステム自体への攻撃(たとえば、ユーザーの蔵書一覧を盗む、または 予期しない挙動を引き起こす)。

  • ある EPUB コンテンツ文書から 別の文書への攻撃(たとえば、異なる文書に由来するデータを盗む)。

  • 暗号化されていないスクリプトによる、文書の暗号化部分への攻撃(たとえば、 注入された悪意のあるスクリプトが保護されたコンテンツを抽出する)。

  • ローカルネットワークへの攻撃(たとえば、ファイアウォール内のサーバーから データを盗む)。

信頼できないスクリプトが与え得る損害を制限するため、この仕様は、リーディング システムが各 EPUB 出版物に割り当てられた一意な オリジン [html] を確立することを推奨する (4.1.1 ルート ディレクトリの URLを参照)。一意なオリジンを割り当てることで、 spine レベルスクリプト [epub-33] は 他の EPUB 出版物から分離され、 cookie [html]、Web Storage [html] などへのアクセスが制限される。

「オリジン」の概念に結び付く Web API の例には、Web Storage [html] および IndexedDB [indexeddb] が含まれ、EPUB コンテンツ文書は スクリプト処理を介してそれらと相互作用できる。ユーザーが管理ライブラリ(「本棚」)に出版物を追加または削除することを 許可するリーディングシステムは、出版物が削除され、その後コンテンツライブラリへ再インポートされた場合にも、 出版物の一意なオリジンを維持してもよい。逆に、リーディングシステムは新しく追加される出版物ごとに 新しい一意なオリジンを作成してもよい。

この仕様はまた、コンテナ制約付きスクリプト [epub-33] が、ホスト EPUB コンテンツ文書の DOM を変更すること、および/または包含矩形を操作することを許可されないようにすることを 推奨する(6.4 スクリプト処理を参照)。

これらの推奨事項に準拠しても、上に列挙した攻撃の可能性から保護されることが保証されるわけではないことに注意。 開発者は、自身のリーディングシステムの文脈内で、潜在的な各脆弱性を検討しなければならない。

7. ナビゲーション文書処理

リーディングシステムは、 EPUB ナビゲーション文書 [epub-33] を処理しなければならない(MUST)。

EPUB ナビゲーション文書を処理するため、リーディングシステムは:

リーディングシステムは、 EPUB ナビゲーション文書が spineの一部であるかどうかに かかわらず、上記の要件を尊重しなければならない(MUST)。

8. レイアウトレンダリング制御 処理

8.1 固定レイアウト文書

リーディングシステムは、 固定レイアウト文書 [epub-33] のレンダリングをサポートしなければならない(MUST)。

8.1.1 固定レイアウトプロパティ

8.1.1.1 rendition:layout プロパティ

EPUB リーディングシステムは、 パッケージ文書 メタデータ [epub-33] に、 rendition:layout プロパティを持つ meta 要素が存在しない場合、既定値 reflowable をグローバル値として仮定しなければならない(MUST)。

rendition:layout プロパティが pre-paginated に設定されている場合、 リーディングシステムは、合成見開きをレンダリングするとき、 隣接するコンテンツスロット間に空間を含めてはならない(MUST NOT)。

rendition:layout プロパティ値には、次の処理 要件がある:

reflowable

リーディングシステムは、レンダリング時に動的なページ付けを適用してもよい(MAY)。

pre-paginated

リーディングシステムは、レンダリング時に spine itemref [epub-33] ごとに、ちょうど 1 ページを 生成しなければならない(MUST)。

8.1.1.2 rendition:orientation プロパティ

EPUB リーディングシステムは、 パッケージ文書メタデータ [epub-33] に、 rendition:orientation プロパティを持つ meta 要素が存在しない場合、既定値 auto をグローバル 値として仮定しなければならない(MUST)。

rendition:orientation プロパティ値には、次の処理 要件がある:

auto

リーディングシステムは、EPUB コンテンツ文書を レンダリングする向きを決定する。

landscape

複数の向きをサポートするリーディングシステムは、EPUB コンテンツ 文書を横向きでレンダリングすべきである(SHOULD)。

portrait

複数の向きをサポートするリーディングシステムは、EPUB コンテンツ 文書を縦向きでレンダリングすべきである(SHOULD)。

それらが意図を伝える手段は実装固有である。

8.1.1.3 rendition:spread プロパティ

リーディング システムは、パッケージ文書 メタデータ [epub-33] に、 rendition:spread プロパティを持つ meta 要素が存在しない場合、既定値 auto をグローバル値として 仮定しなければならない。

rendition:spread プロパティ値には、次の処理 要件がある:

none

リーディングシステムは、spine 項目を合成見開きに組み込んではならない(MUST NOT)。リーディング システムは、画面中央に配置された単一のビューポートを作成すべきである(SHOULD)。

landscape

リーディングシステムは、デバイスが横向きである場合にのみ、spine 項目について 合成見開きをレンダリングすべきである(SHOULD)。

portrait(非推奨)

リーディングシステムは、値 "portrait" を "both" の同義語として扱い、向きに関係なく 見開きを作成すべきである(SHOULD)。

both

リーディングシステムは、デバイスの 向きに関係なく合成見開きをレンダリングすべきである(SHOULD)。

auto

リーディングシステムは、コンテンツ表示領域 利用最適化プロセスの一部として、特定またはすべてのデバイス向きで合成見開きを 使用してもよい(MAY)。

8.1.1.4 rendition:page-spread-* プロパティ

rendition:page-spread-left プロパティ [epub-33] は、指定された spine 項目が 見開きの左側スロットにレンダリングされるべきである(SHOULD)ことを示す。 rendition:page-spread-right プロパティ [epub-33] は、指定された spine 項目が 見開きの右側スロットにレンダリングされるべきである(SHOULD)ことを示す。

rendition:page-spread-left および rendition:page-spread-right プロパティは、pre-paginated コンテンツと reflowable コンテンツの両方に適用され、 リーディングシステムが合成見開きを作成している場合にのみ適用される。

rendition:page-spread-* プロパティは、 page-break-before プロパティ [csssnapshot] に設定されている値が何であれ、 XHTML コンテンツ文書については それに優先しなければならない(MUST)。

reflowable spine 項目が pre-paginated の項目に続く場合、その reflowable 項目は、 rendition:page-spread-* プロパティ値を欠く場合、 page-progression-direction 属性 [epub-33] によって定義される次のページから 開始すべきである(SHOULD)。

リーディングシステムは、 reflowable および pre-paginated の両方の spine 項目上の rendition:page-spread-* プロパティを尊重しなければならない(MUST) (たとえば、空白ページを挿入する)。

pre-paginated spine 項目が reflowable の項目に続く場合、その pre-paginated 項目は、 rendition:page-spread-* プロパティ値を欠く場合、 (page-progression-direction 属性によって定義される)次のページから 開始すべきである(SHOULD)。

リーディング システムが真の見開きを表す 2 つの spine 項目(すなわち、rendition:page-spread-left および rendition:page-spread-right プロパティを持つ隣接する 2 つの spine 項目)に遭遇した場合、隣接ページ間に空間を設けずに 見開きを作成すべきである(SHOULD)。

8.1.2 初期 包含ブロックの寸法

XHTML

リーディングシステムは、 XHTML コンテンツ文書について、 HTML での表現 [epub-33] で定義されるとおり、 viewport meta タグで宣言された幅および高さの式を用いて、初期 包含ブロック(ICB)を作成しなければならない(MUST)。 それらは、ICB の外側に 配置されたコンテンツをクリップしなければならない(MUST)。

viewport meta タグ内の width または height の値が非数値文字を含むが 数字で始まる場合(たとえば、値が "500px" のような長さ単位宣言を含む場合)、 数字接頭部をピクセル値として使用すべきである(SHOULD)。そうでない場合、その値は 無効として扱わなければならない(MUST)。

リーディングシステムは、viewport meta タグの構文が無効であっても、 width および height 値の抽出を試みるべきである(SHOULD)。

リーディングシステムは、viewport meta タグ内の width および height プロパティの 最初の宣言を使用しなければならない(すなわち、繰り返しの宣言を無視する)(MUST)。

viewport meta に width または height の値が含まれていない場合、または これらの値が無効な場合、リーディングシステムはそれらの値を提供してもよい(MAY)。 たとえば、リーディング システムは次のようにしてもよい:

  • これらをそれぞれ device-width および device-height の値を持つものとみなす。または、
  • 該当する場合は spine内の前のコンテンツ文書を探し、 そこで定義された ICB 値を使用する。または、
  • そのコンテンツ文書を誤った XHTML コンテンツとして全体的に扱う。

XHTML コンテンツ文書に 複数の viewport meta タグが含まれる場合、リーディングシステムは、 高さおよび幅の寸法を取得するために、文書順で最初のものを 使用しなければならない(MUST)。後続の宣言は 無視しなければならない(MUST)。

ICB のアスペクト比がリーディングシステムのコンテンツ表示領域のアスペクト比と一致しない場合、 リーディングシステムは、ユーザーインターフェイスに対応するため ICB をその領域内に配置してもよい(MAY)。言い換えると、 追加のレターボックス空間がコンテンツの片側(または両側)に現れてもよい(MAY)。

SVG

リーディングシステムは、 SVG コンテンツ文書をレンダリングするため、 SVG での ICB の表現 [epub-33] で定義される寸法を用いて 初期包含ブロック(ICB)を作成しなければならない(MUST)。

ICB のアスペクト比が リーディングシステムのコンテンツ表示領域のアスペクト比と一致しない場合、 リーディングシステムは、 viewBox および preserveAspectRatio 属性の規則に従うべきである。これは [SVG] で定義される。

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

固定レイアウト文書をレンダリングする場合、既定の意図は、 コンテンツ表示領域が、利用可能な ビューポート領域を可能な限り多く占有するべきである(SHOULD) ということである。リーディングシステムは、境界線、余白、ヘッダー、フッターなどの追加コンテンツを ビューポートに挿入すべきではない(SHOULD NOT)。

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

ユーザーに対するリーディングシステム制御ウィジェットの提示は実装固有であり、 上記の挙動上の期待には含まれない。

8.2 リフロー可能レイアウト

リーディングシステムは、 リフロー可能レイアウトプロパティ [epub-33] を 処理すべきである(SHOULD)。

8.2.1 rendition:flow プロパティ

リーディングシステムが指定されたレンダリングをサポートする場合、オーバーフローコンテンツを処理するために その方法を使用すべきである(SHOULD)が、ユーザーが要求されたレンダリングを 上書きするためのオプションを提供してもよい(MAY)。

このプロパティを持つ meta 要素が metadata [epub-33] に存在しない場合、既定のグローバル値は auto である。リーディングシステムは、この既定値のみをサポートしてもよい(MAY)。

rendition:flow プロパティ値には、次の処理要件がある:

paginated

リーディングシステムは、すべてのオーバーフローコンテンツを動的にページ付けすべきである(SHOULD)。

scrolled-continuous

リーディングシステムは、すべてのEPUB コンテンツ文書を、 オーバーフロー コンテンツがスクロール可能になるようにレンダリングすべきであり(SHOULD)、 EPUB 出版物を spine 項目から spine 項目への 1 つの連続スクロールとして提示すべきである(SHOULD)(ただし、ローカルに上書きされた [epub-33] 場合を除く)。

scrolled-doc

リーディングシステムは、すべての EPUB コンテンツ文書を、ユーザーが オーバーフローコンテンツをスクロールできるようにレンダリングすべきであり(SHOULD)、 各 spine 項目を個別のスクロール可能 文書として提示すべきである(SHOULD)。

auto

リーディングシステムは、該当する方に応じて、既定の 方法またはユーザー 設定を用いてオーバーフローコンテンツをレンダリングしてもよい(MAY)。

rendition:flow-scrolled-continuous プロパティについては、スクロール方向は、 itemref 要素 [epub-33] によって参照される XHTML コンテンツ文書のルート要素の ブロックフロー方向を基準として定義されなければならない(MUST)。ブロックフロー方向が下向き(上から下)である場合、スクロール方向は 垂直でなければならない(MUST)。ルート要素の ブロックフロー方向が右向き(左から右)または左向き (右から左)である場合、水平でなければならない(MUST)。

リーディングシステムは、pre-paginated spine 項目 [epub-33] を処理するとき、 rendition:flow プロパティおよびその上書きを無視しなければならない(MUST)。

リーディングシステム開発者は、この制限を無視し、 rendition:flowscrolled-continuous 値を、各 pre-paginated spine 項目を長い縦長の帯として表示するための切り替えとして受け入れることを決定してもよい (スマートフォンやコンピューターで読みやすくなる)。この種の提示は、しばしば "webtoons" と呼ばれる。一部の 出版者はすでにこの可能性を利用している。さらなる実験およびインキュベーションの後、この 仕様の将来バージョンでは、この方法を固定レイアウト文書の標準機能として導入する可能性がある。 (延期された)GitHub の issue 2412 も参照。

8.2.2 rendition:align-x-center プロパティ

rendition:align-x-center プロパティが spine 項目に設定されている場合、リーディングシステムは、該当する場合、 ビューポートまたは見開き内で、コンテンツを水平方向に中央揃えで レンダリングすべきである(SHOULD)。このプロパティは spine 項目のレンダリングには影響せず、結果として得られるコンテンツボックスの配置にのみ影響する。

リフロー可能コンテンツについては、 このプロパティをサポートするリーディングシステムは、各仮想ページを中央揃えしなければならない(MUST)。

この仕様は、リーディングシステムがこのプロパティをサポートしない場合、またはEPUB 作成者がそれを指定しない場合の 既定レンダリング挙動を定義しない。リーディングシステムは、spine 項目を独自の設計でレンダリングしてもよい(MAY)。

8.3 viewport meta タグ

固定レイアウト文書の初期 包含ブロック寸法を取得する場合を除き、リーディングシステムは viewport meta 宣言内のレンダリング指示を無視しなければならない(MUST)。

この制限は、固定レイアウト文書とリフロー可能文書の両方に適用される。

8.4 カスタムプロパティ

リーディングシステムは、 パッケージレンダリング語彙 [epub-33] で定義されるプロパティと挙動上競合する式を導入しない限り、 カスタムプロパティをサポートしてもよい(MAY)。

9. メディアオーバーレイ処理

リーディングシステムのうち、録音済み音声を レンダリングする能力を持つものは、メディア オーバーレイ [epub-33] を サポートすべきである(SHOULD)。

リーディングシステムがメディアオーバーレイをサポートしない場合、次の両方を無視しなければならない(MUST):

9.1 メディアオーバーレイの読み込み

リーディング システムがパッケージ文書を読み込むとき、それは 対応するメディア オーバーレイを EPUB コンテンツ文書について発見するため、 manifest item 要素 [epub-33] の media-overlay 属性を参照しなければならない(MUST)。

リーディングシステムは、 XHTML コンテンツ文書の再生を サポートしなければならず(MUST)、 SVG コンテンツ文書をサポートしてもよい(MAY)。

再生は、目的の EPUB コンテンツ 文書の開始位置に対応するメディアオーバーレイ要素から開始しなければならない(MUST)。 EPUB コンテンツ文書の開始位置は、メディアオーバーレイの先頭の要素にも、 途中の要素にも対応し得ることに注意。 メディア オーバーレイ文書の再生が終了したとき、リーディングシステムは次の EPUB コンテンツ文書 (パッケージ文書の spineで指定されるもの)を読み込み、 対応するメディアオーバーレイ文書が与えられている場合は、それも読み込むべきである(SHOULD)。

9.2 基本再生

9.2.1 タイミングと同期

リーディングシステムは、 body 要素 [epub-33] の直接の子を 順番にレンダリングしなければならない(MUST)。 seq 要素 [epub-33] の子は順番にレンダリングされなければならず(MUST)、 再生は最後の子の再生が終了したときに完了する。リーディングシステムは、 par 要素の 子 [epub-33] を並列に(それぞれ同じ時刻に開始して) レンダリングしなければならず(MUST)、再生はすべての子の再生が終了したときに完了する。 リーディングシステムによるメディアオーバーレイ文書の再生は、 body 要素の最後の子の再生が終了したときに完了する。

9.2.2 音声のレンダリング

メディアオーバーレイの audio 要素 [EPUB-33] が提示された場合、リーディングシステムは、 src 属性によって参照される音声リソースを、 clipBegin 属性で与えられるクリップオフセット時刻から開始し、 clipEnd 属性 [epub-33] で 与えられるクリップオフセット時刻で終了するよう再生しなければならない(MUST)。

さらに:

  • EPUB 作成者clipBegin 属性を指定していない場合、リーディング システムは値 "0" を仮定しなければならない(MUST)。

  • EPUB 作成者が clipEnd 属性を指定していない場合、リーディングシステムは 物理メディアの全継続時間をその値として仮定しなければならない(MUST)。

  • clipEnd の値が物理メディアの全継続時間を超える場合、 リーディングシステムは、その値を物理メディアの全継続時間として仮定しなければならない(MUST)。

ユーザーが制御可能な音声再生オプションには、ユーザーがピッチを歪めずに再生速度を変更できる タイムスケール変更を含めるべきである(SHOULD)。推奨範囲は半速から 倍速までである。

9.2.3 EPUB コンテンツ文書要素のレンダリング

メディアオーバーレイの text 要素 [epub-33] が提示され、その src 属性に EPUB コンテンツ文書の特定部分を参照するURL フラグメント文字列が含まれる場合、 リーディングシステムは、参照された部分がビューポート内で見えるようにすべきである(SHOULD)。 [html] 要素 ID 参照および SVG Fragment Identifiers [svg] に加えて、リーディングシステムは他の フラグメント識別子スキームをサポートしてもよい(MAY)。

メディアオーバーレイ再生中、ビューポートを持つリーディングシステムは、 メタデータプロパティ active-class および playback-active-class [epub-33] で与えられるクラス名が指定されている場合、 それらを EPUB コンテンツ文書内の適切な要素に追加すべきである(SHOULD)。 逆に、スタイル情報の関連付け [epub-33] で説明されているように、再生状態が変化したときには クラス名を削除すべきである(SHOULD)。

active-class および playback-active-class メタデータプロパティは OPTIONAL であり、省略された場合のリーディングシステムの挙動は 実装固有である。

フラグメント 識別子 [epub-33] が要素を参照しない場合のリーディングシステムの挙動も 実装固有である。

9.3 EPUB コンテンツ文書との対話

この仕様の以前のバージョンには、埋め込み音声 および動画 [epubmediaoverlays-32] に関する情報が含まれていた。 この機能は非推奨となっている。

9.3.1 ナビゲーション

メディアオーバーレイは EPUB コンテンツ文書と密接に結び付いているため、 リーディングシステムは、メディアオーバーレイ再生における現在位置に基づいて EPUB コンテンツ文書内の位置を容易に特定できる。ユーザーが同期再生を一時停止し、 EPUB 出版物の別の部分へナビゲートした場合、 同期再生はその地点から再開しなければならない(MUST)。たとえば、 EPUB コンテンツ文書内の特定のページ番号が目的の位置である場合、メディア オーバーレイ内でも同じ地点が特定され、そこで再生が開始される。

この同じ方法により、EPUB ナビゲーション文書内の ナビゲーション地点をユーザーが選択したことと、メディアオーバーレイ再生を同期できる。リーディング システムは、そのファイルのメディアオーバーレイを読み込み、ナビゲーション地点ターゲットの ID に基づいて 再生開始に適した地点を見つける。

EPUB 作成者は、 内容の同期再生を提供するため、メディアオーバーレイ文書EPUB ナビゲーション文書に直接関連付けてもよい。これは、それが存在する XHTML コンテンツ文書spineに含まれているかどうかに関係しない。 詳細については、EPUB ナビゲーション 文書 [epub-33] を参照。

EPUB 作成者は、メディアオーバーレイ文書要素を、表などの EPUB コンテンツ文書 構造に関連付けてもよい。リーディングシステムは、メディアオーバーレイ再生が 表の行およびセルに対するユーザーナビゲーションと同期したままになるようにすべきである。 リーディングシステムは、セル内容に先立って、対応する表ヘッダーを再生してもよい。

9.3.2 埋め込み音声 および動画(非推奨)

埋め込み音声および動画の自動再生に関する指針は、現在非推奨である。

詳細については、[epubmediaoverlays-32] におけるその定義を参照。

9.3.3 テキスト読み上げ

メディアオーバーレイの text 要素が audio [epub-33] の兄弟要素を持たず、ターゲット EPUB コンテンツ文書内のテキストを参照する場合、 テキスト読み上げ(TTS)再生が可能なリーディングシステムは、参照されたテキストを TTS を用いて レンダリングすべきである(SHOULD)。

リーディングシステムは、メディアオーバーレイレンダリングの一部として音声ストリームを再生するため、 ターゲット EPUB コンテンツ 文書で提供される音声関連情報を使用すべきである(SHOULD)。

EPUB 3 Text-to-Speech Support [epub-tts-10] を参照し、 EPUB 出版物における TTS 技術のサポートに関する 詳細を確認すること。

メディアオーバーレイの text 要素の存続期間は、関連する音声合成のレンダリング時間に対応する。 したがって、text 要素の暗黙の継続時間(推論により親 par 要素の継続時間も)は、 Text-to-Speech エンジンの実行によって決定され、作成時には知ることができない (発話速度、一時停止、その他の韻律パラメータなどの要因が音声出力に影響する)。これはまた、 リーディングシステムが、パッケージ文書内で設定されたduration プロパティ 値を利用する際、それらを近似値として扱うべきであることも意味する。

9.4 スキップ可能性と脱出可能性

9.4.1 スキップ可能性

リーディングシステムは、ユーザーにコンテンツをスキップするオプションを提供するため、 メディアオーバーレイ要素の epub:type 属性で提供される意味情報を使用すべきである(SHOULD)。

コンテンツのスキップが有効な場合、リーディングシステムは、 epub:type 属性にスキップ可能な構造と一致する意味が含まれる par および seq 要素の再生を抑制しなければならない(MUST)。

9.4.2 脱出可能性

メディアオーバーレイの再生中、リーディングシステムは、 脱出可能な 構造 [epub-33] から離脱(「脱出」)するオプションを ユーザーに提供すべきである(SHOULD)。これは、脱出可能な構造リストの値を持つ epub:type 属性 [epub-33] の存在によって決定される。 ユーザーが脱出可能な構造から脱出することを選択した場合、 リーディングシステムはその構造の後にある次の連続要素から再生を続けなければならない(MUST)。

10. 構造的意味の処理

リーディングシステムは、構造的意味 [epub-33] を、EPUB コンテンツ文書でサポートしてもよい(MAY)。

epub:type 属性を処理する場合、リーディングシステムは:

11. property 値の処理

リーディングシステムは、 語彙関連付けメカニズムを、 property データ型値の処理のために サポートしてもよい(MAY) [epub-33]。

この節では、property データ型 値から展開 URL を取得するためのアルゴリズムを定義する。これは、[epub-33] の 語彙関連付け メカニズムをサポートするリーディングシステムにのみ適用される。

[epub-33] の語彙関連付けメカニズムをサポートしないリーディングシステムは、 property 値を単なる文字列値として 処理してもよい(MAY) [infra]。 それらの存在に基づいてリーディングシステムの挙動を追加するために、 これらの値を URL に展開することをサポートする必要はない。

このアルゴリズムは、[infra] で定義される用語およびデータ型を用いて処理を説明し、 成功した場合、展開 URL を持つ文字列値を返す。 無効なプロパティの場合は、null 値が返される。

このアルゴリズムは、次の引数を取る:

展開 URL を 取得するには、次の手順を適用する:

  1. baseURLexpandedURLpropertyPrefix、および propertyReference を空の文字列とする。

    説明

    このアルゴリズムでは:

    • baseURL は、その URL が EPUB 作成者によって割り当てられたものか、 既定語彙に対応するものか、予約済み接頭辞に由来するものかにかかわらず、 値に関連付けられる基底 URL を保持する。
    • expandedURL は、基底 URL とプロパティ参照を連結した結果となる 最終 URL を保持する。
    • propertyPrefix は、プロパティの接頭辞 [epub-33] (すなわち、コロンの前の値)を保持する。既定語彙からのプロパティには接頭辞はないが、 それ以外はすべて接頭辞を持つ。
    • propertyReference は、プロパティの参照 [epub-33] (すなわち、 接頭辞の後の値)を保持する。すべての有効なプロパティは参照を必要とする。
  2. propertyPrefix および propertyReference の値を次のように取得する:

    1. value がコロン(U+003A)を含まない場合、propertyReferencevalue に設定する。

      説明

      property 値にコロンがない場合、それは接頭辞を持たない。この場合、 値はアルゴリズムの次の手順で説明するように既定語彙から取得される。

    2. そうではなく、value がコロンで始まる場合、その値は無効である。null を返す。

      説明

      値の先頭にあるコロンは、接頭辞が設定されていないことを示すため無効である。

    3. そうでなければ、value を最初のコロンで分割し、propertyPrefix を コロンの前の文字列に設定し、propertyReference を コロンの後の文字列に設定する。

    propertyReference が、path-relative-scheme-less-URL 文字列として有効でない場合、 property データ型 定義 [epub-33] が要求するように、その値は無効である。null を返す。

    説明

    path-relative-scheme-less-URL 文字列の定義には、接頭辞の有無にかかわらず参照に適用される 多数の制限がある。

    たとえば、参照は、URL スキーム文字列の後にコロンが続く形で始まってはならない。 この制限は、2 番目のコロンがスキームを表し得るため、次のものは有効な property 値ではないことを意味する: foo:bar:baz/qux

    どの文字をパーセントエンコードしなければならないかについての制限もある。

  3. baseURL の値を次のように取得する:

    1. propertyPrefix が空文字列である場合:

      1. attrepub:type [epub-33] である場合、baseURL
        http://idpf.org/epub/vocab/structure/# に設定する
      2. そうではなく、elem がパッケージ文書の meta 要素 [epub-33] であり、 attrscheme である場合、そのプロパティ値は無効である。null を返す。
      3. そうではなく、elem がパッケージ文書の meta 要素 [epub-33] である場合、 baseURL
        http://idpf.org/epub/vocab/package/meta/# に設定する
      4. そうではなく、elem がパッケージ文書の link 要素 [epub-33] である場合、 baseURL
        http://idpf.org/epub/vocab/package/link/# に設定する
      5. そうではなく、elem がパッケージ文書の item 要素 [epub-33] である場合、 baseURL
        http://idpf.org/epub/vocab/package/item/# に設定する
      6. そうではなく、elem がパッケージ文書の itemref 要素 [epub-33] である場合、baseURL
        http://idpf.org/epub/vocab/package/itemref/# に設定する
      説明

      property 値に接頭辞がない場合、この手順は、それが属する属性または要素に 基づいて、使用する既定語彙 URL を割り当てる。 パッケージ文書内の要素に property データ型を取る属性が複数ある場合、 それらの属性は同じ既定語彙を共有する。このため、どの URL を割り当てるかを決定するために、 要素と属性の両方を確認する必要はない。

      EPUB 3 において既定語彙を持たない 1 つの属性は、scheme 属性 [epub-33] である。接頭辞のない scheme 値は 無効である。

    2. そうでなければ:

      1. doc の文書要素に prefix 属性が宣言されており、 その属性に propertyPrefix と一致する接頭辞が含まれる場合、 baseURL を、その接頭辞宣言に関連付けられた URL に設定する。

      2. そうではなく、propertyPrefixdoc予約済み接頭辞 [epub-33] に一致する場合、baseURL を予約済み接頭辞に関連付けられた URL に設定する。

      説明

      property 値に接頭辞がある場合、その基底 URL を最初に確認する場所は、 文書要素上の prefix 属性宣言である。

      著者がその接頭辞に URL を割り当てていない場合、次の手順は、 その接頭辞が予約済み接頭辞のいずれかと一致するかどうかを確認することである。

      著者が割り当てた接頭辞 URL は、予約済み接頭辞 URL を上書きすることに注意。

    baseURL が空文字列である場合、そのプロパティ値は無効である。null を返す。

    説明

    この処理手順の最後で基底 URL が空である場合、それは接頭辞がマッピングも予約もされていないか、 処理中の要素または属性が、[epub-33] で定義される property データ型を受け入れないことを意味する。

    基底 URL がなければ、展開 URL を生成することは不可能であるため、その値は 無効である。

  4. expandedURL を、baseURLpropertyReference の連結値に設定する。値を連結するときに区切り文字を追加してはならない。
  5. expandedURL有効な URL 文字列でない場合、その値は無効である。null を返す。

    そうでなければ、expandedURL を返す。

    説明

    展開された値を取得できたとしても、それが必ずしも有効な URL であるとは限らない。これは、EPUB 作成者が無効な基底 URL を 接頭辞に割り当てた場合にのみ起こり得る。

リーディングシステムは、結果の URL を解析 [url] する必要も、 結果として得られた展開 URL の参照解決を試みる必要もない。property データ型値を完全な URL に展開することは、リーディングシステムが期待する値に遭遇したことを保証するだけである (すなわち、異なる EPUB 作成者が同じ接頭辞を異なる URL に割り当てることができるため、 2 つの値は展開されるまで同じに見える場合がある)。

12. 後方互換性

リーディングシステムは、そのパッケージ文書version 属性 [epub-33] が "3.0" 未満であるEPUB 出版物の処理を試みなければならない(MUST)。

より古いバージョン番号を持つ EPUB 出版物は、それぞれの仕様に従って 処理されない限り、必ずしも意図どおりに正確にレンダリングされるとは限らない。リーディングシステムは、 それらの仕様で定義されるとおりに、そのような EPUB 出版物をサポートすべきである(SHOULD)。

13. 前方互換性

リーディングシステムは、その パッケージ文書version 属性 [epub-33] が "3.0" より大きいEPUB 出版物の処理を試みるべきである(SHOULD)。

14. アクセシビリティ

この節は非規範的です。

この仕様の主な焦点は、EPUB 出版物をどのように処理しレンダリングするかにあるが、 すべてのリーディングシステムが提供しなければならない特定のユーザーインターフェイスを 義務付けてはいない。これは、すべてのリーディングシステム開発者が認識すべき、 または自分たちのアプリケーションで回避しようとすべき共通のアクセシビリティ上の問題が 存在しないことを意味するものではない。

W3C の User Agent Accessibility Guidelines [uaag20] は、開発者が リーディングシステムを改善するために適用すべき多くの有用な実践を提供している。ブラウザーの アクセシビリティ上の問題の多くは、EPUB 固有のユーザーエージェントにも類似するからである。

次の一覧は、アクセシビリティの欠如がユーザーの読書体験に影響する、EPUB 固有の追加領域の一部を概説する:

DAISY Consortium は、これらの問題などの評価を支援するため、アクセシビリティテストスイート を管理している。

15. セキュリティとプライバシー

15.1 概要

この節は非規範的です。

EPUB 出版物の特性はその構造にある。EPUB フォーマットは、 構造化され意味的に拡張された Web コンテンツ — HTML、CSS、SVG、およびその他のリソースを含む — を、単一ファイルコンテナで配布するために 表現、パッケージ化、エンコードする手段を提供する。

リーディングシステムにとって、これはセキュリティおよび プライバシー上の問題が主としてそれらのフォーマットの機能に基づき、 一般的な Web コンテンツが提示する脅威と密接に対応することを意味する。

リーディングシステム開発者には、自分たちのアプリケーションのセキュリティとプライバシーを保証することと、 その中でレンダリングされるコンテンツからユーザーへの脅威を制限することの、二重の責任もある。 この節の残りでは、開発者がこれらのリスクを認識し軽減する助けとなることを目的として、 EPUB 3 のリスクモデルを検討する。

EPUB 出版物の作成に関連するリスクについては、[epub-33] のセキュリティとプライバシーの節を参照。

15.2 脅威モデル

この節は非規範的です。

ユーザーにとって最大の脅威は、ユーザーが読むコンテンツ [epub-33] から生じ、これらの攻撃に対する第一線の防御は、ユーザーが 使用するリーディングシステムである。ユーザーは、リーディングシステムが悪意のあるコンテンツからの保護手段として 機能することを期待しており、EPUB 出版物が Web サイトと同じセキュリティリスクを受けやすいことに気付いていないことが多い。

しかし、リーディングシステムはセキュリティとプライバシーを提供するものとして依存されている一方で、 情報の取り扱い方によっては、ユーザーに意図しない脅威をもたらす可能性もある。たとえば、体験を 最適化するためにユーザー情報を追跡することは一般的な必要性だが、ユーザーの許可なしに行われると、 リーディングシステムは法的なプライバシー要件に抵触する可能性がある。

この節では、リーディングシステム開発者が考慮しなければならない主要な脅威の一部を概説し、 以降の節でさらに詳細および推奨事項を示す。

スクリプト処理

悪意のあるスクリプトは、リーディングシステムに対していくつもの攻撃ベクトルを提示する。たとえば、 ローカルストレージが安全でない場合、ユーザーのデータを侵害しようとする可能性がある。 ネットワークアクセスが与えられている場合、ユーザーデータの不正な収集を試みる可能性がある。

これらの問題とそれらを軽減する方法についてのより詳細な議論は、6.4.3 セキュリティ上の考慮事項で提供される。

悪意のあるコンテンツ

EPUB 出版物には、リーディングシステムまたはそれらが動作するオペレーティングシステムの セキュリティ欠陥を悪用するよう設計されたリソースが含まれる場合がある。攻撃者は、シンボリックリンクや ファイルエイリアスなどのファイル間接参照技術を使用して、 リモートリソースへのアクセスを得ようとする場合もある。

EPUB 出版物に署名するための標準的な方法がないため、リーディングシステムは、 作成からデバイスへの読み込みまでの間にコンテンツが改ざんされたかどうかを常に検証できるとは限らない。

リモートリソース

リモートリソースは、信頼されないソースから読み込まれた いかなる EPUB 出版物とも同じリスクを提示する。EPUB 出版物の出版者が信頼されている場合でも、 リモートリソースは侵害されている可能性がある。

リモートリソースへの呼び出しは、ユーザーに関する情報を追跡するためにも使用され得る(たとえば、 サーバーログを通じて)。リーディングシステムは、HTTP リクエストを通じて公開する情報を、 リソースの取得に不可欠なもののみに制限すべきである。

EPUB のオリジンは、EPUB 作成者には不明であり、各リーディングシステム 実装に固有である。したがって、EPUB 作成者が自分の制御する Web サーバー上でリモートリソースを ホストする場合、そのサーバーは、CORSContent-Security-Policy、 または X-Frame-Options のヘッダーなど、 許可されるオリジンの指定を必要とするセキュリティ機能を、実質的に使用できない。

外部リンク

リモートリソースと同様に、外部リンクは、リーディングシステムまたはオペレーティング システムを悪用するよう設計された Web 上の悪意のあるリソースを、事情を知らないユーザーに開かせるために 使用される可能性がある。

同様に、リーディングシステムは、リンクのたどりによりユーザーを識別し得る情報を公開することも 避けるべきである(たとえば、追跡識別子を使用しない、ユーザー環境に関する不要な情報を公開しない)。

ユーザー生成コンテンツ

読書体験内のユーザー生成コンテンツ、たとえばテキストエリアやその他の対話的コンポーネントを通じたものは、 コンテンツが適切に保護されていない場合、リーディングシステムのセキュリティまたはユーザーのプライバシーに 脅威をもたらす可能性がある。スクリプト処理のセキュリティに関する詳細は、6.4.3 セキュリティ上の考慮事項で提供される。

ユーザーデータの収集

ユーザーとその読書習慣に関する情報を、許可を得ずに収集することは、 たとえその情報が内部利用のみを意図したものであっても、ユーザーのプライバシーを侵害する可能性がある。

読書習慣または出版物内のメタデータ(たとえばアクセシビリティ設定)を通じて ユーザーをプロファイリングしようとすると、ユーザーを意図しない害にさらす可能性がある。

さらに、[xml] および [zip] ファイルに適用されるセキュリティ上の考慮事項は、 それぞれパッケージ文書およびOpen Container Formatにも適用される。詳細については、application/oebps-package+xml および application/epub+zip フォーマットの メディア型登録における「Security Consideration」の節を参照。

15.3 推奨事項

リーディングシステム開発者がプライバシーのために取ることができる最も強力な措置は、 ユーザーおよび/またはその読書行動について収集し使用することを意図しているデータを明示し、 それを取得するためにユーザーの同意を求めることである。また、この情報に対する個人化および制御も 許可すべきである(SHOULD)。

リーディングシステムがユーザーに永続データ、特に個人を識別できる情報の保存を許可する場合、 それを機微データとして扱い、第三者によるアクセスを許可すべきではない(SHOULD)。

EPUB 出版物の販売、配信、および運用のために、特に EPUB 出版物の販売とその読書方法が結び付いているプラットフォームでは、ある程度のユーザーデータの収集が 必要となる場合があることは理解される。このような場合、リーディングシステムは、収集されるデータ、 その使用方法を特定し、ユーザーがオプトアウトできるようにすべきである(SHOULD)(ただし、小売業者は、たとえばユーザーがその Web サイトでアカウントを作成するときなど、 他の手段でユーザーに通知することを選択してもよい)。 収集されたデータの匿名化は、ユーザーおよびリーディングシステムのプライバシーとセキュリティのために 推奨される(RECOMMENDED)。

ユーザーデータが一部のリーディングシステムのアフォーダンスに必要または有用である場合もあることは理解される。 このような場合も、匿名化が推奨される(RECOMMENDED)。リーディングシステムはまた、 どのデータが必要であり、それが何に使用されるかをユーザーに通知し、オプトアウトする方法を提供すべきである(SHOULD)。

コンテンツプロセッサー — EPUB コンテンツの配布、表示、または販売のための取り込みを扱う主体として定義される — も、取り込みにおける潜在的リスクを認識する必要がある。通常行われる検証手順に加えて、 コンテンツプロセッサーは取り込み時に悪意のあるコンテンツを確認することが推奨される。これには、 ウイルススキャンの実行、外部リンクおよびリモートリソースの検証、その他の予防措置が含まれ得る。

XML 文書を処理する場合、リーディングシステムは DOCTYPE、ENTITY、および NOTATION 宣言内の外部識別子 [xml] を解決すべきではない(SHOULD NOT)。 リーディングシステムは、たとえば DoS 攻撃、別名 "Billion laughs attacks"、または "XML external entity attacks" のような、 内部 または 外部 XML エンティティに関連するセキュリティリスクも考慮すべきである(SHOULD)。

外部リンク、ネットワークアクセス、およびスクリプト処理に関する追加のセキュリティ推奨事項は、 それぞれ3.9 外部リンク3.8 ネットワークアクセス、および 6.4.3 セキュリティ上の考慮事項で利用できる。

A. サポートされない機能

リーディングシステムは、非推奨 機能 [epub-33] をサポートしてもよい(MAY)。

開発者は、非推奨機能を持つコンテンツに遭遇する可能性の低さを、新たにそれらのサポートを追加する前に 考慮すべきである。

B. epubReadingSystem オブジェクト

リーディングシステムは、EPUB 出版物の中核レンダリングエンジンとして機能し、 [dom] 仕様に基づく スクリプト環境を提供する。したがって、このインターフェイス定義は、リーディングシステムによる実装のために [webidl] 記法を使用しているが、Web ブラウザーは一般にこれらのオブジェクトを実装する必要はない。

B.1 インターフェイス定義

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

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

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

この仕様は、 WorkerNavigator オブジェクト [html] に対する epubReadingSystem プロパティ拡張を 定義しない。したがって、リーディングシステムは Workers のスクリプト文脈で epubReadingSystem オブジェクトを公開する必要はなく、EPUB 作成者はその存在に依存できない。

B.2 説明

Navigator.epubReadingSystem オブジェクトは、 スクリプト化コンテンツ文書がユーザーのリーディング システムに関する情報を問い合わせるためのインターフェイスを提供する。

リーディングシステムは、読み込まれたすべてのスクリプト化コンテンツ文書の navigator オブジェクト上に、任意のネストされたコンテナ制約付きスクリプト処理 文脈 [epub-33] を含め、 epubReadingSystem オブジェクトを公開しなければならない(MUST)。リーディングシステムは、 epubReadingSystem オブジェクトが、遅くとも DOMContentLoaded イベントが発火される時点 [html] までに利用可能であることを保証しなければならない(MUST)。

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

B.3 プロパティ

この仕様は以前、nameversion、および layoutStyle プロパティを定義していたが、これらは現在非推奨である [epub-33]。詳細については、  [epubcontentdocs-32] におけるそれらの定義(name および version)および [epubcontentdocs-301] における定義(layoutStyle)を参照。

B.4 メソッド

B.4.1 hasFeature

B.4.1.1 説明

hasFeature メソッドは、リーディングシステムが指定された機能の任意のバージョンをサポートするかどうかを示す boolean 値、またはリーディングシステムが指定された機能を認識しない場合は undefined を返す。

任意指定の version パラメータにより、EPUB 作成者は、時間の経過とともに互換性のない形で変化し得る カスタム機能を問い合わせることができる。戻り値は、指定された機能の指定されたバージョンのみの サポートを示す。

この仕様で定義される機能には バージョンがない。リーディングシステムがこの仕様で定義される機能をサポートする場合、 指定された version パラメータを無視し、true 値を返さなければならない(MUST)。

B.4.1.2 機能

次の表は、 epubReadingSystem オブジェクトをサポートするリーディングシステムが認識しなければならない(MUST) 機能の集合を列挙する。機能が hasFeature メソッドから問い合わせられたとき、 リーディングシステムはそのサポートを示す boolean 値を返さなければならない(MUST)。

名前 説明
dom-manipulation スクリプトは文書の DOM に構造的変更を加えてもよい(spine レベルのスクリプト処理 [epub-33] のみに適用される)。
layout-changes スクリプトはコンテンツレイアウトに影響する属性および CSS スタイルを変更してもよい(spine レベルのスクリプト処理 [epub-33] のみに適用される)。
touch-events デバイスがタッチイベントをサポートし、リーディングシステムがタッチイベントを コンテンツに渡す。
mouse-events デバイスがマウスイベントをサポートし、リーディングシステムがマウスイベントを コンテンツに渡す。
keyboard-events デバイスがキーボードイベントをサポートし、リーディングシステムがキーボード イベントをコンテンツに渡す。
spine-scripting リーディングシステムがspine レベルのスクリプト処理 [epub-33] をサポートするかどうかを示す(たとえば、コンテナ制約付き スクリプト [epub-33] が、 トップレベルコンテンツ 文書におけるスクリプト処理サポートに依存する動作に、試みる前に成功の可能性が あるかどうかを判断できるようにする)。

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

C. 索引

C.1 この 仕様で定義される用語

C.2 参照により定義される用語

D. 変更履歴

この節は非規範的です。

この変更履歴は、EPUB 3.2 以降の実質的な変更、すなわち EPUB リーディングシステムの適合性に影響し得る変更のみを 特定していることに注意。

対処されたすべての課題の一覧については、ワーキング グループの課題トラッカーを参照。

2023年5月25日の勧告以降の実質的な変更

実質的な変更は行われていない。

2022年5月12日の候補勧告以降の実質的な変更
EPUB 3.2 以降の実質的な変更

E. 謝辞

この節は非規範的です。

仕様は、芸術と同じく、人間による創作物である。1999 年の最初の OEB 1.0 から今日の EPUB 3.3 まで、 あらゆる段階に関わってきた Garth Conboy ほど EPUB に貢献した人はいない。 Garth の洞察、知識、そして並外れた善良さがなければ、これらはいずれも実現しなかっただろう。 私たちは EPUB 3.3 を彼の記憶に捧げる。 Garth、私たちは永遠にあなたに恩義がある。

EPUB 3 Working Group の次のメンバーが、この仕様の開発に貢献した:

F. 参照文献

F.1 規範参照

[bidi]
Unicode Bidirectional Algorithm. Manish Goregaokar मनीष गोरेगांवकर; Robin Leroy. Unicode Consortium. 2024年9月2日. Unicode Standard Annex #9. URL: https://www.unicode.org/reports/tr9/tr9-50.html
[css-fonts-4]
CSS Fonts Module Level 4. Chris Lilley. W3C. 2024年2月1日. W3C 作業草案. URL: https://www.w3.org/TR/css-fonts-4/
[csssnapshot]
CSS Snapshot. URL: https://www.w3.org/TR/CSS/
[dcterms]
DCMI Metadata Terms. DCMI Usage Board. DCMI. 2020年1月20日. DCMI 勧告. URL: https://www.dublincore.org/specifications/dublin-core/dcmi-terms/
[dom]
DOM Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://dom.spec.whatwg.org/
[epub-33]
EPUB 3.3. Ivan Herman; Matt Garrish; Dave Cramer. W3C. 2023年5月25日. W3C 勧告. URL: https://www.w3.org/TR/epub-33/
[epubcontentdocs-301]
EPUB Content Documents 3.0.1. Markus Gylling; William McCoy; Elika J. Etimad; Matt Garrish. IDPF. 2014年6月26日. URL: https://idpf.org/epub/301/spec/epub-contentdocs-20140626.html
[epubcontentdocs-32]
EPUB Content Documents 3.2. Dave Cramer; Matt Garrish. W3C. 2019年5月8日. URL: https://www.w3.org/publishing/epub32/epub-contentdocs.html
[epubmediaoverlays-32]
EPUB Media Overlays 3.2. Marisa DeMeglio; Daniel Weck. EPUB 3 Community Group. 2019年5月8日. URL: https://www.w3.org/publishing/epub32/epub-mediaoverlays.html
[html]
HTML Standard. Anne van Kesteren; Domenic Denicola; Dominic Farolino; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[infra]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[mathml3]
Mathematical Markup Language (MathML) Version 3.0 2nd Edition. David Carlisle; Patrick D F Ion; Robert R Miner. W3C. 2014年4月10日. W3C 勧告. URL: https://www.w3.org/TR/MathML3/
[opentype]
OpenType specification. Microsoft. URL: http://www.microsoft.com/typography/otspec/default.htm
[rdfa-core]
RDFa Core 1.1 - Third Edition. Ben Adida; Mark Birbeck; Shane McCarron; Ivan Herman et al. W3C. 2015年3月17日. W3C 勧告. URL: https://www.w3.org/TR/rdfa-core/
[rfc1951]
DEFLATE Compressed Data Format Specification version 1.3. P. Deutsch. IETF. 1996年5月. Informational. URL: https://www.rfc-editor.org/rfc/rfc1951
[rfc2046]
Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types. N. Freed; N. Borenstein. IETF. 1996年11月. Draft Standard. URL: https://www.rfc-editor.org/rfc/rfc2046
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. 1997年3月. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[rfc2397]
The "data" URL scheme. L. Masinter. IETF. 1998年8月. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc2397
[rfc8089]
The "file" URI Scheme. M. Kerwin. IETF. 2017年2月. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc8089
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. 2017年5月. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174
[rfc9110]
HTTP Semantics. R. Fielding, Ed.; M. Nottingham, Ed.; J. Reschke, Ed.. IETF. 2022年6月. Internet Standard. URL: https://httpwg.org/specs/rfc9110.html
[svg]
SVG. W3C. URL: https://www.w3.org/TR/SVG/
[truetype]
TrueType™ Reference Manual. Apple, Inc. URL: https://developer.apple.com/fonts/TrueType-Reference-Manual/
[url]
URL Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://url.spec.whatwg.org/
[w3cprocess]
W3C Process Document. URL: https://www.w3.org/Consortium/Process/
[webidl]
Web IDL Standard. Edgar Chen; Timothy Gu. WHATWG. Living Standard. URL: https://webidl.spec.whatwg.org/
[woff]
WOFF File Format 1.0. Jonathan Kew; Tal Leming; Erik van Blokland. W3C. 2012年12月13日. W3C 勧告. URL: https://www.w3.org/TR/WOFF/
[woff2]
WOFF File Format 2.0. Vladimir Levantovsky. W3C. 2024年8月8日. W3C 勧告. URL: https://www.w3.org/TR/WOFF2/
[xml]
Extensible Markup Language (XML) 1.0 (Fifth Edition). Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau et al. W3C. 2008年11月26日. W3C 勧告. URL: https://www.w3.org/TR/xml/
[xml-names]
Namespaces in XML 1.0 (Third Edition). Tim Bray; Dave Hollander; Andrew Layman; Richard Tobin; Henry Thompson et al. W3C. 2009年12月8日. W3C 勧告. URL: https://www.w3.org/TR/xml-names/
[xmlenc-decrypt]
Decryption Transform for XML Signature. Merlin Hughes; Takeshi Imamura; Hiroshi Maruyama. W3C. 2002年12月10日. W3C 勧告. URL: https://www.w3.org/TR/xmlenc-decrypt/
[zip]
.ZIP File Format Specification. 2020年7月15日. Final. URL: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT

F.2 参考参照

[css2]
Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. Bert Bos; Tantek Çelik; Ian Hickson; Håkon Wium Lie. W3C. 2011年6月7日. W3C 勧告. URL: https://www.w3.org/TR/CSS21/
[epub-tts-10]
EPUB 3 Text-to-Speech Enhancements 1.0. Matt Garrish. W3C. 2023年12月21日. W3C ワーキンググループノート. URL: https://www.w3.org/TR/epub-tts-10/
[epubpackages-32]
EPUB Packages 3.2. Matt Garrish; Dave Cramer. EPUB 3 Community Group. 2019年5月8日. URL: https://www.w3.org/publishing/epub32/epub-packages.html
[h264]
H.264 : Advanced video coding for generic audiovisual services. 2017-04-13. URL: https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=13189
[indexeddb]
Indexed Database API. Nikunj Mehta; Jonas Sicking; Eliot Graff; Andrei Popescu; Jeremy Orlow; Joshua Bell. W3C. 2015年1月8日. W3C 勧告. URL: https://www.w3.org/TR/IndexedDB/
[rfc6386]
VP8 Data Format and Decoding Guide. J. Bankoski; J. Koleszar; L. Quillio; J. Salonen; P. Wilkins; Y. Xu. IETF. 2011年11月. Informational. URL: https://www.rfc-editor.org/rfc/rfc6386
[uaag20]
User Agent Accessibility Guidelines (UAAG) 2.0. James Allan; Greg Lowney; Kimberly Patch; Jeanne F Spellman. W3C. 2015年12月15日. W3C ワーキンググループノート. URL: https://www.w3.org/TR/UAAG20/
[wai-aria-11]
Accessible Rich Internet Applications (WAI-ARIA) 1.1. Joanmarie Diggs; Shane McCarron; Michael Cooper; Richard Schwerdtfeger; James Craig. W3C. 2017年12月14日. W3C 勧告. URL: https://www.w3.org/TR/wai-aria-1.1/