関連項目: 翻訳。
Copyright © 1999-2024 International Digital Publishing Forum and World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
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 プロセス文書により管理されます。
この節は非規範的です。
EPUB 3 標準は、2 つの明確に異なる関心事に分かれている。EPUB 出版物 の作成は コア仕様 [epub-33] で定義される一方、この 仕様では、それらを EPUB リーディングシステムでレンダリングするための要件を詳述する。
EPUB リーディングシステムは多くの形態を取り得る。たとえば、ユーザーにコンテンツをレンダリングするための 視覚的な表示領域を持つ場合もあれば、コンテンツの音声再生のみを提供する場合もある。そのため、 すべてのリーディングシステムに適用される単一の規則群は存在しない。むしろ、この仕様は、 リーディングシステムの能力およびそれがサポートする機能に基づいてレンダリング要件を分解している。
さらに、この仕様は、開発者が独自のユーザーインターフェイスを作成できるよう大きな柔軟性を認めており、 メタデータ処理などに関する要件は、そのような柔軟性を可能にするため意図的に最小限に抑えられている。
したがって、この仕様はリーディングシステムに対する正式な要件を特定するものではあるが、この文書だけを 切り離して理解することはできない。開発者は、利用可能な情報の完全な範囲を理解するために、 EPUB 出版物のコンテンツ構造全体にも精通しておくべきである。
適合するリーディングシステムは、必ずしも単一の専用プログラムまたはデバイスである必要はなく、 分散システムとして存在する場合もある。
この仕様では、EPUB 3.3 で定義された用語 [epub-33] を使用する。
また、次の用語も定義する:
ビューポート内で、EPUB コンテンツ文書の表示に割り当てられた領域。 コンテンツ表示領域には、EPUB リーディングシステムが ビューポートに挿入する可能性のある境界線、余白、ヘッダー、フッター、その他の装飾は含まれない。
合成見開きの場合、ビューポートには 2 つの コンテンツ表示領域が含まれる。
節内の用語は、最初に出現した場合にのみその定義へリンクされる。
非規範的として示された節に加え、この仕様におけるすべての作成ガイドライン、図、例、および注は 非規範的である。この仕様のそれ以外のすべては規範的である。
この文書におけるキーワード MAY、MUST、MUST NOT、OPTIONAL、RECOMMENDED、SHOULD、および SHOULD NOT は、 ここに示すようにすべて大文字で現れる場合に限り、 BCP 14 [RFC2119] [RFC8174] に記述されているとおりに解釈される。
すべてのアルゴリズム説明は非規範的である。
この節は非規範的です。
[html] 標準は継続的に進化しており、もはや バージョン付きのリリースは存在しない。 その標準はさらに、MathML、SVG、CSS、JavaScript など、進化を続けるさまざまな技術を参照している。
リーディングシステムの開発者は、 自らのシステムを最新に保つため、HTML および HTML が参照する技術の変更を追跡しなければならない。
この仕様は、EPUB リーディングシステムに対して、スクリプト処理、フォーム送信、 または HTML DOM [dom] のサポートを要求しない。この仕様に適合するリーディングシステムは、 適合する EPUB コンテンツ文書を処理できることのみが 期待される。スクリプト処理およびフォーム送信のサポートは必須ではないため、適合するリーディングシステムが 完全に適合する HTML ユーザーエージェントでない場合もある。
この仕様は [svg] の特定のバージョンを参照せず、 代わりに日付なし参照を使用する。 この参照に曖昧さがある場合は常に、最新の勧告仕様が権威ある参照となる。
この方法により、EPUB は常に SVG 標準の変更に歩調を合わせられる。リーディングシステムの開発者は、 自らのシステムを最新に保つため、SVG 標準の変更を追跡しなければならない。
リーディングシステムがある機能をサポートしなければならないかどうかは、 その節の冒頭で述べられる。 この仕様に適合するため、リーディングシステムは、すべての必須機能に加え、 適用可能なすべての条件付き必須機能(たとえば、リーディングシステムが ビューポートを持つ場合に画像レンダリングをサポートすること) を、それぞれの節で定義されているとおりにサポートしなければならない(MUST)。
リーディングシステムは必ずしも単一のアプリケーションではなく、分散システムとして存在する場合があるため、
リーディングシステム要件が、ユーザーに EPUB 出版物をレンダリングするアプリケーション内で満たされるとは限らない。
例として、管理されたコンテンツリポジトリ(たとえば書店または図書館システム)とのみ対話するリーディングシステムがある。この場合、
リーディングシステム開発者が、要件がそのアプリケーションに適用されないこと(たとえば、重複した
itemref
エントリ [epub-33] を持つ EPUB 出版物が
システムに入ることができない、など)を示せるなら、リーディングシステム全体としては引き続き適合しているとみなされる。
推奨機能および任意機能をサポートする場合、リーディングシステムは、それぞれの節で定義されているすべての 規範的 要件を満たさなければならない(MUST)。
リーディングシステム開発者が推奨機能または任意機能をサポートしないことを選択した場合でも、その節の規範的要件が まったく適用されないことを常に意味するわけではない。場合によっては、機能を実装しない場合の代替要件 (たとえば、スクリプト処理がサポートされない場合にフォールバックを処理すること)が存在することがある。リーディング システムは、機能をサポートしない場合、これらの代替要件を満たさなければならない(MUST)。
EPUB 出版物には、この仕様で要求されない情報(たとえば パッケージ文書のメタデータ)が頻繁に含まれる。リーディングシステムは、 この追加情報を任意の目的(たとえばユーザーインターフェイスの改善)に使用してもよい。
リーディングシステムは、EPUB 出版物またはその内部のリソースが、 コンテンツ作成要件または処理要件に違反している場合、それらを読み込むことを要求されない。
この節は非規範的です。
リーディングシステムは、EPUB 出版物の処理およびレンダリング中に遭遇したエラー (たとえば、固定レイアウト文書の寸法が推定された場合など) を報告することは要求されないが、この情報にアクセスする手段を提供することが強く推奨される。比較可能な例として、 Web ブラウザーが HTML ページやアプリケーションのデバッグ用に提供する開発者ツールがある。
たとえば、EPUB 作成者は、そのような処理情報にアクセスできることで大きな利益を得られる (たとえば、EPUB 出版物を効率的にデバッグするため)。デバッグで最大限活用するためには、 リーディングシステムが直接遭遇した問題だけでなく、使用する任意のアプリケーションによって報告された問題 (たとえば、コンテンツのレンダリングに使用される ブラウザーコアから報告される HTML、CSS、JavaScript エラー、または EPUBCheck によって報告される検証問題) も報告することが推奨される。
エラー報告は、ユーザーの通常の読書体験に影響するような煩わしい体験になることは想定されていない。 むしろ、報告情報は、たとえば設定メニューから選択的に有効化できるようにして、 ユーザーを不必要に煩わせないようにできる。
リーディングシステムは、出版物リソース [epub-33] を処理しなければならない(MUST)。
リーディングシステムが ビューポートを持つ場合、 それは 画像コアメディア型 リソース [epub-33] をサポートしなければならない(MUST)。
録音済み音声をレンダリングする 能力を持つ場合、それは 音声コアメディア型リソース [epub-33] をサポートしなければならない(MUST)。
リーディングシステムは、任意の集合の 外部リソース型をサポートしてもよい(MAY)。外部 リソースがサポートされない場合は、外部リソース [epub-33] で定義されているとおりに フォールバックを処理しなければならない(MUST)。
リーディングシステムは、リモートリソースをサポートすべきである(SHOULD)。これは リソースの場所 [epub-33] で定義されている。
ネットワーク攻撃のリスクを制限するため、リーディングシステムは、https URI スキーム
[rfc9110] を介して参照されるリモート
リソースのみを読み込むべきである(SHOULD)。
リーディングシステムは、コンテキストメニューなどのリーディングシステムのアフォーダンスを通じて開始された場合を除き、 data URL [rfc2397] が トップレベル閲覧コンテキスト [html] で開かれることを 防止しなければならない(MUST)。 リーディングシステムが トップレベルコンテンツ文書にトップレベル閲覧コンテキストを使用しない場合、たとえば トップレベル コンテンツ文書が SVG である場合には、それがトップレベル コンテンツ文書であるかのように data URL が開かれることも防止しなければならない(MUST)。
リーディングシステムは、 file URL [rfc8089] を介して参照される リソースへのアクセスを防止しなければならない(MUST)。
リーディングシステムは、 次の条件を満たす非検証 XML プロセッサー [xml] を使用しなければならない(MUST):
出版物リソースの処理の一部として、リーディングシステムは、
XHTML コンテンツ文書または SVG コンテンツ文書において言語および基底方向を設定する属性、ならびに
すべての XML 文書(たとえば パッケージ文書および メディアオーバーレイ文書)のための xml:lang
属性を処理することが要求される。
さらに、リーディングシステムは、dir
属性 [epub-33] も パッケージ文書について処理しなければならない(MUST)。ここで、
dir によって指定される基底方向は、それが指定された要素、および別の dir インスタンスで
上書きされない限り、その内容内のすべての要素に適用される。(詳細については 5.1 基底方向も参照。)
出版物リソースにこの情報が存在しない場合、リーディングシステムは、パッケージ
文書で表現された情報(すなわち、xml:lang および dir
属性、link
要素上の hreflang 属性、または
dc:language
要素 [epub-33] から)に基づいて、そのリソースの言語または基底方向を
仮定してはならない(MUST NOT)。
明示的な言語または方向情報が存在しない場合の扱いに関する詳細は、リソースの正式な仕様を参照すること。
リーディングシステムは、リモート リソースを取得するため、および スクリプト化コンテンツ文書が Web ホスト API と通信し、 リソースを取得することを許可するために、ネットワークアクセスをサポートしてもよい(MAY)。
しかし、ネットワークアクセスを提供すると、リーディングシステムに対するセキュリティリスクと、ユーザーに対する セキュリティおよびプライバシーリスクの両方が増大する。これらのリスクは、リーディングシステムおよびそれらが動作する プラットフォームに固有であることが多い — ほとんどのリーディングシステムが基盤とするブラウザーコアは、 Web ブラウザー自体と同じセキュリティおよびプライバシー制御を提供しない。その結果、開発者は ネットワークアクセスを許可する際に特に注意し、リーディングシステムが攻撃に対して脆弱でないことを より徹底的にテストする必要がある。これらのリスクに関する詳細情報は、15. セキュリティとプライバシーで提供される。
リーディングシステム開発者がネットワークアクセスを許可する場合、次の両方を行うことが推奨される:
リンクが http または https の
スキーム
[url]
を持つ場合、リーディングシステムは:
読み込みにヘルパーアプリケーションを必要とするスキームを持つリンクについて、 リーディングシステムはユーザーの同意を得て(SHOULD)、 ヘルパーアプリケーションを開くためのプラットフォームのガイダンスに従うべきである。
外部リンクは EPUB コンテンツ文書内にのみ存在するわけではない。たとえば、リーディング システムは、 パッケージ文書のメタデータ内にある外部の リンクされたレコード [epub-33] への アクセスを提供する場合がある。
外部リンクに関するセキュリティおよびプライバシーの問題について詳しくは、15.2 脅威モデルを参照。
リーディングシステムは、EPUB コンテナ [epub-33] を処理しなければならない(MUST)。
EPUB コンテナを処理するアプリケーションは、本格的なリーディングシステムである必要はない (たとえば、アプリケーションはコンテナの内容を抽出するだけ、またはパッケージ化された内容の 妥当性を確認するだけの場合がある)。このような場合、そのようなアプリケーションの開発者は、 この節で定義されるリーディングシステムのレンダリング要件を無視できる。
リーディングシステムは、OCF 抽象コンテナのルートディレクトリに URL [url] を割り当てなければならない(MUST)。 この URL は、コンテナルート URLと呼ばれる。これは実装 固有であるが、実装は次の特性を持たなければならない(MUST):
/" を解析した結果は、コンテナ
ルート URLである。
.." を解析した結果は、コンテナ
ルート URLである。
リーディングシステム内の 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 の解析に関する節も参照。
EPUB 作成者は、最大限の相互運用性のために、さまざまなファイル名およびファイルパスの 制限 [epub-33] に従う必要があるが、リーディングシステムは、これらの要件に 準拠しないファイル名およびパスの処理を試みるべきである(SHOULD)。無効なファイル名およびパスは、一部のオペレーティングシステムでのみ 問題となる可能性がある。
この仕様は、OCF ファイル名およびパスを表現できないリーディングシステムが、この非互換性を どのように処理するかを規定しない。
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)。
リーディングシステムは:
内容をセグメントに分割するOCF ZIP コンテナ [zip] を、エラーとして扱わなければならない(MUST)。
Deflate [rfc1951] 以外の 圧縮技術を使用する OCF ZIP コンテナを、エラーとして扱わなければならない(MUST)。
「Version 1」として定義される ZIP64 拡張 [zip] をサポートしなければならない(MUST)。
[zip] の暗号化機能を使用する OCF ZIP コンテナを エラーとして扱わなければならない(MUST)。
内容を展開する場合、OCF 抽象コンテナのルートディレクトリ用に 物理ディレクトリを生成してもよい(MAY)。
OCF 抽象コンテナの文脈外での読み込みおよび保存操作を通じて、 OCF ZIP コンテナからの情報を保持する必要はない。特に、リーディングシステムは、 CRC 値、コメントフィールド、または特定のオペレーティングシステムに対応するファイルシステム情報を保持する フィールド(たとえば、External file attributes および Extra field)を保持する必要はない。
OCF ZIP コンテナアーカイブ内の特定のフィールドに関して、リーディングシステムは:
ローカルファイルヘッダーテーブル
[zip] 内の
version needed to extract フィールド値が
10、20、または 45 以外である場合、
エラーとして扱わなければならない(MUST)。
ローカルファイルヘッダーテーブル [zip] 内の
compression メソッド
フィールド値が 0 または 8 以外である場合、
エラーとして扱わなければならない(MUST)。
Archive decryption
header または Archive extra data record [zip] を持つ OCF ZIP
コンテナを、
エラーとして扱わなければならない(MUST)。
リーディングシステムは、 フォントの 難読化 [epub-33] で定義されるフォントの難読化解除をサポートすべきである(SHOULD)。
元のデータを復元するには、リーディングシステムは単に処理を逆にすればよい。すなわち、ソースファイルが 難読化されたデータとなり、宛先ファイルが生データを含む。
EPUB 3 は EPUB 3.0.1 より前にフォントの難読化を許可していたが、難読化と圧縮の順序を 規定していなかった。その結果、リーディングシステムは展開および難読化解除の後に 無効なフォントに遭遇する場合がある。このような場合、データを展開する前に難読化解除することで、 有効なフォントが返される可能性がある。リーディングシステムはこの取得方法をサポートする必要はないが、 開発者は EPUB 3 コンテンツを一般にサポートする際にこれを考慮すべきである。
リーディングシステムは、パッケージ文書 [epub-33] を処理しなければならない(MUST)。
dir
属性 [epub-33] が設定され、
ltr または rtl の基底方向を示す場合、リーディングシステムは、
[bidi] で定義される
上位レベルプロトコルに従って
bidi アルゴリズムを上書きし、基底方向が
ltr の場合は段落埋め込みレベルを 0 に、
基底方向が rtl の場合は 1 に設定しなければならない(MUST)。
それ以外の場合、
基底方向は auto であり、この場合リーディングシステムは、[bidi] の
規則
P2
から始めて Unicode Bidi Algorithm を適用し、テキストの方向を決定しなければならない(MUST)。
パッケージ文書 メタデータの方向性の設定は [epub-33] で実装不足として示されているが、 国際的な利用者を対象とするリーディングシステム、または 国際的なコンテンツのサポートを主張するリーディングシステムには、そのメタデータをユーザーに提示する際、 この機能を実装することが強く推奨される。テキストの方向性を無視すると、可読性の問題を引き起こす可能性がある。
リーディングシステムにおいて必要な基準となるサポートが達成されたとき、 [epub-33] から実装不足ラベルは削除される。
リーディングシステムは、 一意な識別子が、ただ 1 つの EPUB 出版物にのみ一意であることに依存すべきではない(SHOULD NOT)。同じ一意な識別子を持つ 2 つの EPUB 出版物が同じ出版物の異なるバージョンを表すのか、それとも異なる出版物を表すのかを判断するには、 最終更新日、タイトル、著者など、他のメタデータを調べる必要がある場合がある。
リーディングシステムは、処理前に、
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 出版物の言語は
情報提供用である。この情報の利用例には次のものが含まれる:
dc:creator 要素表示優先順位を決定する場合、
リーディングシステムは、metadata 節内の
dc:creator
要素 [epub-33] の文書順を使用しなければならない(MUST)。
ここで最初に遭遇する creator 要素が主作成者である。リーディングシステムが作成者メタデータを
ユーザーに提示する場合、可能な限り(たとえば、表示上の制約がない場合)、
metadata 節に列挙されたすべての作成者を含めるべきである(SHOULD)。
meta 要素リーディングシステムは、
meta
要素のうち、property 属性
[epub-33] が認識できない式を定義するものをすべて
無視すべきである(SHOULD)。リーディングシステムは、未知の
式に遭遇しても失敗してはならない(MUST NOT)。
リーディングシステムが
scheme 属性 [epub-33] の値を認識しない場合、
その要素の値を文字列として扱うべきである(SHOULD)。
link 要素リンクされたリソースの取得およびサポートは OPTIONAL である。
hreflang [EPUB-33] 属性で識別される言語は、
純粋に助言的なものである。リソース内で表現された言語情報が、
国際化要件で定義される処理およびレンダリング目的の
その言語を決定する。
リーディングシステムは、
認識しない properties
属性 [epub-33] の値を
無視しなければならない(MUST)。
リーディングシステムは、 リンクされたリソースを EPUB 出版物のレンダリングに使用すべきではない(SHOULD NOT)。 これは、関係する固有の制限およびリスク(たとえば、リソースおよびその処理方法に関する情報の欠如、 リモートホストされたソースによるセキュリティリスク、フォールバックの欠如など)のためである。
リーディングシステムが、ある
出版物リソースの MIME メディア型
[rfc2046]
をサポートしない場合、そのリーディングシステムは、
サポートされないリソースの代わりに使用するサポート済み出版物リソースを特定するまで、
マニフェストフォールバックチェーン [epub-33]
をたどらなければならない(MUST)。
リーディングシステムがフォールバックチェーン内の複数の
出版物リソースをサポートする場合、そのリーディングシステムは、
リソースの properties 属性
[epub-33] の値に基づいて使用するリソースを選択してもよい(MAY)。そうでない場合は、
EPUB 作成者が望む
フォールバック順序を尊重すべきである(SHOULD)。
リーディングシステムがフォールバックチェーン内のどのリソースも
サポートしない場合、そのリーディングシステムはコンテンツを表示できなかったことをユーザーに通知しなければならない(MUST)。
マニフェストフォールバック [epub-33] が トップレベルコンテンツ文書に対して提供される場合、リーディング システムは、特定の文脈でレンダリングする最適なバージョンを見つけるため、 利用可能な選択肢から選んでもよい(たとえば、それぞれの properties 属性を調べる)(MAY)。
リーディングシステムは、 すでに遭遇したマニフェスト項目への最初の参照で フォールバックチェーンを終了しなければならない(MUST)。
リーディングシステムは、
spine
要素 [epub-33] で定義された順序で
EPUB 出版物をレンダリングする手段を
提供しなければならない(MUST)。これには次が含まれる:
itemref [epub-33] を、既定の読書順序の開始として認識すること。
および、spine で与えられた順序で、後続の主要項目をレンダリングすること。ユーザーが
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)。
spine
itemref
要素の properties 属性が
グローバルレンダリングプロパティ [epub-33] を上書きする場合、リーディング
システムは、その spine
項目を表示するために、上書き対象のグローバル値に関する要件に従わなければならない(MUST)。
たとえば、layout-pre-paginated
上書き [epub-33] を含む spine 項目は、
グローバルな pre-paginated
値の要件に従ってレンダリングされる。
同じプロパティに対する上書きが properties
属性内で複数指定されている場合、リーディングシステムは最初の値のみを使用しなければならない(MUST)。
この仕様の文脈では、リーディング
システムにおけるコレクション [epub-33] のサポートは
OPTIONAL である。リーディングシステムは、
認識できない役割を定義する collection 要素を
無視しなければならない(MUST)。
リーディングシステムは、この バージョンの EPUB [epub-33] に適合するコンテンツにおいて、レガシー 機能をサポートしてはならない(MUST NOT)。
EPUB コンテンツ文書 [epub-33] の定義には、 コンテンツの相互互換性を最適化するためのさまざまな作成上の制限(たとえば、言語および方向の設定に CSS を 禁止すること [epub-33])が含まれる。 この仕様で別段の記述がない限り、リーディングシステムはこれらの 制限された機能をサポートしてもよい(MAY)。
リーディングシステムは、XHTML コンテンツ文書 [epub-33] を 処理しなければならない(MUST)。
この節で上書きされるものとして明示的に定義されていない限り、リーディング システムは、[html] 仕様で定義される意味論を用いて XHTML コンテンツ文書を処理し、 そこに示されている適用可能なユーザーエージェント適合制約を尊重しなければならない(MUST)。
switch 要素の使用は非推奨である
[epub-33]。実装情報については、[epubcontentdocs-301] におけるその定義を参照。
trigger 要素の使用は非推奨である
[epub-33]。実装情報については、[epubcontentdocs-301] におけるその定義を参照。
リーディングシステムは、その属性がこの仕様の要件を変更しない限り、カスタム属性を サポートしてもよい(MAY)。
リーディングシステムによる属性処理 モデルのサポートは OPTIONAL であり、JSON への変換 [html] も同様である。
XHTML コンテンツ文書に埋め込まれた MathML [mathml3] をサポートするため、リーディングシステムは:
[mathml3] 仕様で定義されるとおり、Presentation MathML のための 入力適合プロセッサー でなければならない(MUST)。
ビューポートを持つ場合、 Presentation MathML の視覚的レンダリングをサポートしなければならない(MUST)。
annotation-xml
要素 [mathml3]
に含まれる Content MathML のレンダリングを
サポートしてもよい(MAY)。
リーディングシステムは、MathML レンダリングを提供するために MathJax のようなサードパーティライブラリを使用することを選択してもよい。
リーディングシステムは、 XHTML コンテンツ文書に埋め込まれた SVG を、 6.2 SVG コンテンツ文書で定義されるとおりに 処理しなければならない(MUST)。
XHTML コンテンツ文書に 参照により埋め込まれた SVG のスタイル付けの目的では、リーディング システムは、包含文書の CSS スタイル規則を参照先 SVG 文書に適用してはならない(MUST NOT)。
XHTML コンテンツ文書に インクルージョンにより埋め込まれた SVG のスタイル付けの目的では、リーディングシステムは、 包含文書の適用可能な CSS 規則を、含まれる SVG 要素に適用しなければならない(MUST)。
参照により含まれる SVG は別個の文書として処理され、SVG コンテンツ文書と同様に、
独自の CSS スタイル規則を含めることができる。
これは、[html] の object 要素が外部の
[html]
要素を参照する状況と一致していることに注意。
リーディングシステムによる [html] の
form
要素の送信のサポートは OPTIONAL である。たとえば、リーディング
システムは、ネットワーキングへのアクセスを制限することによりフォーム送信を防止する場合がある。
リーディングシステムは、SVG コンテンツ文書 [epub-33] を処理しなければならない(MUST)。
SVG コンテンツ文書およびXHTML コンテンツ 文書に埋め込まれた SVGを処理するため、リーディングシステムは:
この仕様で上書きされるものとして明示的に 定義されていない限り、[svg] 仕様で定義される意味論を用いて SVG コンテンツ文書を 処理し、そこに示される適用可能なユーザーエージェント適合制約を尊重しなければならない(MUST)。
6.4 スクリプト処理で定義される 適合基準を満たさなければならない(MUST)。
ビューポートを持つ場合、ビューポート、 Styling [svg] で定義されるとおり、 CSS を用いた SVG の視覚的レンダリングをサポートしなければならない(MUST) かつ、 Property Index [svg] で定義されるすべてのプロパティをサポートすべきである(SHOULD)。 埋め込み SVG の場合、 リーディングシステムは、6.1.2.3.1 埋め込み SVG と CSSで定義される制約にも適合しなければならない(MUST)。
リーディングシステムが ビューポートを持つ場合、 CSS による XHTML コンテンツ文書の視覚的レンダリング [epub-33] をサポートしなければならない(MUST)。
CSS をサポートするため、リーディングシステムは:
[csssnapshot] で記述される CSS の公式定義を サポートしなければならない(MUST)。
[csssnapshot] に含まれる適用可能なモジュールのうち、 少なくとも候補 勧告ステータス [w3cprocess] に達しており (かつ広く実装されている)すべてをサポートすべきである(SHOULD)。
@font-face 規則
[css-fonts-4] から参照される
[truetype]、
[opentype]、[woff]、
および [woff2] フォントリソースをサポートしなければならない(MUST)。
CSS スタイルシート — 接頭辞付き プロパティ [epub-33] で定義されるすべての接頭辞付きプロパティを サポートすべきである(SHOULD)。
EPUB 作成者のスタイルシートを、記述どおりに EPUB コンテンツ文書へ適用すべきである(SHOULD)。
EPUB 作成者のスタイル
シートを上書きすべきではない(SHOULD NOT)が、必要な場合には、
カスケードを保持する方法、すなわちユーザーエージェントスタイルシートまたは
[html]
style
属性を通じて行うべきである(SHOULD)。
ユーザー操作により、EPUB 作成者の スタイルシートの一部を上書きしてもよい(MAY)。
上記で定義された CSS プロパティのサポートに加えて、リーディング システムのユーザーエージェントスタイルシートは、[html] の推奨 既定レンダリングをサポートすべきである(SHOULD)。
リーディングシステム開発者は、主要ブラウザーのレベルで CSS サポートを実装し、 ユーザーエージェントスタイルシートおよびそれが EPUB 作成者のスタイルシートとどのように相互作用するかを 公開文書化すべきである。
リーディングシステムは、 スクリプト処理 [epub-33] をサポートすべきである(SHOULD)。
リーディングシステムによるスクリプト処理のサポートは、その使用文脈に依存する:
リーディングシステムは、リフロー可能な コンテナ制約付き スクリプト処理 [epub-33] をリフロー可能な EPUB コンテンツ文書で サポートすべきである(SHOULD)。
リーディングシステムは、spine レベルのスクリプト処理 [epub-33] を 固定レイアウト文書 [epub-33] でサポートすべきである(SHOULD)。
リーディングシステムは、"scrolled-doc" または "scrolled-continuous"
[epub-33] 表示モードを使用するリフロー可能な EPUB コンテンツ文書において、
rendition:flow プロパティで定義される
spine レベルのスクリプト処理をサポートすべきである(SHOULD)。同様に、
リフロー可能な EPUB コンテンツ文書で spine レベルのスクリプト処理をサポートする場合、
MUST
"scrolled-doc" 表示モードを実装し、
"scrolled-continuous" 表示モードを実装すべきである(SHOULD)。
リーディングシステムは、他の 文脈でスクリプト処理をサポートしてもよい(MAY)が、この仕様はそのようなスクリプト処理を扱わない。 その結果、これらの文脈でのスクリプト処理の使用は、リーディングシステム間で一貫しない可能性がある。
リーディングシステムがスクリプト処理をサポートする場合:
それは、スクリプト化コンテンツ文書を、 [html] に従って、対話的な スクリプト対応ユーザーエージェントとしてレンダリングしてもよい(MAY)。
そのオリジン [html] は、 リーディングシステム内の EPUB 出版物のユーザー固有の各インスタンスについて一意でなければならない(MUST)。
それは、コンテナ制約付きスクリプトがホスト EPUB コンテンツ 文書または EPUB 出版物内の他の内容の [dom] を変更することを 許可してはならない(MUST NOT)かつ、 それが包含矩形のサイズを操作することを許可してはならない(MUST NOT)。 (注: スクリプトがコンテナ制約付きでない場合でも、リーディングシステムは変更に制限を課す場合がある。 dom-manipulation 機能を参照。)
それは、実行中にスクリプトに提供される能力に 追加の制限を課してもよい(たとえば、ネットワーキングの制限)(MAY)。
それは、[html] の
navigator オブジェクトを、B.
epubReadingSystem オブジェクトで
定義される epubReadingSystem インターフェイスで拡張しなければならない(MUST)。また、
コンテナ制約付きスクリプト処理の文脈において、B.4.1.2
機能で定義される
dom-manipulation および layout-change 機能も
サポートしなければならない(MUST)。
リーディングシステムが スクリプト処理をサポートしない場合、スクリプト化コンテンツ 文書のフォールバック [epub-33] で定義されるとおりに、スクリプト化コンテンツのフォールバックを 処理しなければならない(MUST)。
リーディングシステムは、スクリプトが cookie および Web Storage [html] を通じて永続 データを保存することをブロックしてもよい(MAY)。
ローカルストレージ [html] を許可する リーディングシステムは、ユーザーがそのデータを検査または削除するための方法を提供すべきである(SHOULD)。
リーディングシステムは、[html] に従って DOM Event モデルに従い、 これらのイベントに関連する既定動作を実行する前に、UI イベントを スクリプト環境へ渡すべきである(SHOULD)。
リーディングシステム開発者は、スクリプトがナビゲーションなどの重要な機能を無効にできないようにし、 潜在的に 悪意のあるスクリプトがリーディングシステムに与え得る影響の範囲を制限しなければならない。その結果、 スクリプト環境は任意のイベントの既定動作をキャンセルできるべきであるものの、一部のイベントは 渡されない場合や、キャンセルできない場合がある。
この節は非規範的です。
スクリプト処理もサポートするリーディングシステム開発者は、リーディングシステムがスクリプト化コンテンツを実行する際に 発生するセキュリティ問題を認識していなければならない。リーディングシステムとブラウザーで用いられる基礎的な スクリプトモデルは同じであるため、開発者は 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 スクリプト処理を参照)。
これらの推奨事項に準拠しても、上に列挙した攻撃の可能性から保護されることが保証されるわけではないことに注意。 開発者は、自身のリーディングシステムの文脈内で、潜在的な各脆弱性を検討しなければならない。
リーディングシステムは、 固定レイアウト文書 [epub-33] のレンダリングをサポートしなければならない(MUST)。
EPUB リーディングシステムは、
パッケージ文書
メタデータ [epub-33] に、
rendition:layout
プロパティを持つ
meta
要素が存在しない場合、既定値 reflowable をグローバル値として仮定しなければならない(MUST)。
rendition:layout プロパティが pre-paginated に設定されている場合、
リーディングシステムは、合成見開きをレンダリングするとき、
隣接するコンテンツスロット間に空間を含めてはならない(MUST NOT)。
rendition:layout プロパティ値には、次の処理
要件がある:
EPUB リーディングシステムは、
パッケージ文書メタデータ [epub-33] に、
rendition:orientation
プロパティを持つ
meta
要素が存在しない場合、既定値 auto をグローバル
値として仮定しなければならない(MUST)。
rendition:orientation プロパティ値には、次の処理
要件がある:
リーディングシステムは、EPUB コンテンツ文書を レンダリングする向きを決定する。
複数の向きをサポートするリーディングシステムは、EPUB コンテンツ 文書を横向きでレンダリングすべきである(SHOULD)。
複数の向きをサポートするリーディングシステムは、EPUB コンテンツ 文書を縦向きでレンダリングすべきである(SHOULD)。
それらが意図を伝える手段は実装固有である。
リーディング
システムは、パッケージ文書
メタデータ [epub-33] に、
rendition:spread
プロパティを持つ
meta
要素が存在しない場合、既定値 auto をグローバル値として
仮定しなければならない。
rendition:spread プロパティ値には、次の処理
要件がある:
リーディングシステムは、spine 項目を合成見開きに組み込んではならない(MUST NOT)。リーディング システムは、画面中央に配置された単一のビューポートを作成すべきである(SHOULD)。
リーディングシステムは、デバイスが横向きである場合にのみ、spine 項目について 合成見開きをレンダリングすべきである(SHOULD)。
リーディングシステムは、値 "portrait" を
"both" の同義語として扱い、向きに関係なく
見開きを作成すべきである(SHOULD)。
リーディングシステムは、デバイスの 向きに関係なく合成見開きをレンダリングすべきである(SHOULD)。
リーディングシステムは、コンテンツ表示領域 利用最適化プロセスの一部として、特定またはすべてのデバイス向きで合成見開きを 使用してもよい(MAY)。
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)。
リーディングシステムは、
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 の値を持つものとみなす。または、
XHTML コンテンツ文書に
複数の viewport meta タグが含まれる場合、リーディングシステムは、
高さおよび幅の寸法を取得するために、文書順で最初のものを
使用しなければならない(MUST)。後続の宣言は
無視しなければならない(MUST)。
ICB のアスペクト比がリーディングシステムのコンテンツ表示領域のアスペクト比と一致しない場合、 リーディングシステムは、ユーザーインターフェイスに対応するため ICB をその領域内に配置してもよい(MAY)。言い換えると、 追加のレターボックス空間がコンテンツの片側(または両側)に現れてもよい(MAY)。
リーディングシステムは、 SVG コンテンツ文書をレンダリングするため、 SVG での ICB の表現 [epub-33] で定義される寸法を用いて 初期包含ブロック(ICB)を作成しなければならない(MUST)。
ICB のアスペクト比が
リーディングシステムのコンテンツ表示領域のアスペクト比と一致しない場合、
リーディングシステムは、
viewBox
および
preserveAspectRatio
属性の規則に従うべきである。これは [SVG] で定義される。
固定レイアウト文書をレンダリングする場合、既定の意図は、 コンテンツ表示領域が、利用可能な ビューポート領域を可能な限り多く占有するべきである(SHOULD) ということである。リーディングシステムは、境界線、余白、ヘッダー、フッターなどの追加コンテンツを ビューポートに挿入すべきではない(SHOULD NOT)。
この仕様は、初期 包含ブロック [css2] が リーディングシステムのコンテンツ表示 領域内にどのように配置されるかを定義しない。
ユーザーに対するリーディングシステム制御ウィジェットの提示は実装固有であり、 上記の挙動上の期待には含まれない。
リーディングシステムは、 リフロー可能レイアウトプロパティ [epub-33] を 処理すべきである(SHOULD)。
リーディングシステムが指定されたレンダリングをサポートする場合、オーバーフローコンテンツを処理するために その方法を使用すべきである(SHOULD)が、ユーザーが要求されたレンダリングを 上書きするためのオプションを提供してもよい(MAY)。
このプロパティを持つ meta 要素が metadata
節 [epub-33] に存在しない場合、既定のグローバル値は
auto である。リーディングシステムは、この既定値のみをサポートしてもよい(MAY)。
rendition:flow プロパティ値には、次の処理要件がある:
リーディングシステムは、すべてのオーバーフローコンテンツを動的にページ付けすべきである(SHOULD)。
リーディングシステムは、すべてのEPUB コンテンツ文書を、 オーバーフロー コンテンツがスクロール可能になるようにレンダリングすべきであり(SHOULD)、 EPUB 出版物を spine 項目から spine 項目への 1 つの連続スクロールとして提示すべきである(SHOULD)(ただし、ローカルに上書きされた [epub-33] 場合を除く)。
リーディングシステムは、すべての EPUB コンテンツ文書を、ユーザーが オーバーフローコンテンツをスクロールできるようにレンダリングすべきであり(SHOULD)、 各 spine 項目を個別のスクロール可能 文書として提示すべきである(SHOULD)。
リーディングシステムは、該当する方に応じて、既定の 方法またはユーザー 設定を用いてオーバーフローコンテンツをレンダリングしてもよい(MAY)。
rendition:flow-scrolled-continuous プロパティについては、スクロール方向は、
itemref
要素 [epub-33] によって参照される
XHTML コンテンツ文書のルート要素の
ブロックフロー方向を基準として定義されなければならない(MUST)。ブロックフロー方向が下向き(上から下)である場合、スクロール方向は
垂直でなければならない(MUST)。ルート要素の
ブロックフロー方向が右向き(左から右)または左向き
(右から左)である場合、水平でなければならない(MUST)。
リーディングシステムは、pre-paginated spine
項目 [epub-33] を処理するとき、
rendition:flow プロパティおよびその上書きを無視しなければならない(MUST)。
リーディングシステム開発者は、この制限を無視し、
rendition:flow の scrolled-continuous 値を、各 pre-paginated
spine 項目を長い縦長の帯として表示するための切り替えとして受け入れることを決定してもよい
(スマートフォンやコンピューターで読みやすくなる)。この種の提示は、しばしば
"webtoons" と呼ばれる。一部の
出版者はすでにこの可能性を利用している。さらなる実験およびインキュベーションの後、この
仕様の将来バージョンでは、この方法を固定レイアウト文書の標準機能として導入する可能性がある。
(延期された)GitHub の issue 2412 も参照。
rendition:align-x-center プロパティが
spine 項目に設定されている場合、リーディングシステムは、該当する場合、
ビューポートまたは見開き内で、コンテンツを水平方向に中央揃えで
レンダリングすべきである(SHOULD)。このプロパティは spine
項目のレンダリングには影響せず、結果として得られるコンテンツボックスの配置にのみ影響する。
リフロー可能コンテンツについては、 このプロパティをサポートするリーディングシステムは、各仮想ページを中央揃えしなければならない(MUST)。
この仕様は、リーディングシステムがこのプロパティをサポートしない場合、またはEPUB 作成者がそれを指定しない場合の 既定レンダリング挙動を定義しない。リーディングシステムは、spine 項目を独自の設計でレンダリングしてもよい(MAY)。
固定レイアウト文書の初期
包含ブロック寸法を取得する場合を除き、リーディングシステムは
viewport meta
宣言内のレンダリング指示を無視しなければならない(MUST)。
この制限は、固定レイアウト文書とリフロー可能文書の両方に適用される。
リーディングシステムは、 パッケージレンダリング語彙 [epub-33] で定義されるプロパティと挙動上競合する式を導入しない限り、 カスタムプロパティをサポートしてもよい(MAY)。
リーディングシステムのうち、録音済み音声を レンダリングする能力を持つものは、メディア オーバーレイ [epub-33] を サポートすべきである(SHOULD)。
リーディングシステムがメディアオーバーレイをサポートしない場合、次の両方を無視しなければならない(MUST):
media-overlay 属性。
これは manifest
item
要素 [epub-33] 上のものである。および
media-type 属性値が
application/smil+xml と等しい item 要素。
リーディング
システムがパッケージ文書を読み込むとき、それは
対応するメディア
オーバーレイを EPUB コンテンツ文書について発見するため、
manifest
item
要素 [epub-33] の media-overlay 属性を参照しなければならない(MUST)。
リーディングシステムは、 XHTML コンテンツ文書の再生を サポートしなければならず(MUST)、 SVG コンテンツ文書をサポートしてもよい(MAY)。
再生は、目的の EPUB コンテンツ 文書の開始位置に対応するメディアオーバーレイ要素から開始しなければならない(MUST)。 EPUB コンテンツ文書の開始位置は、メディアオーバーレイの先頭の要素にも、 途中の要素にも対応し得ることに注意。 メディア オーバーレイ文書の再生が終了したとき、リーディングシステムは次の EPUB コンテンツ文書 (パッケージ文書の spineで指定されるもの)を読み込み、 対応するメディアオーバーレイ文書が与えられている場合は、それも読み込むべきである(SHOULD)。
リーディングシステムは、
body
要素 [epub-33] の直接の子を
順番にレンダリングしなければならない(MUST)。
seq
要素 [epub-33] の子は順番にレンダリングされなければならず(MUST)、
再生は最後の子の再生が終了したときに完了する。リーディングシステムは、
par
要素の
子 [epub-33] を並列に(それぞれ同じ時刻に開始して)
レンダリングしなければならず(MUST)、再生はすべての子の再生が終了したときに完了する。
リーディングシステムによるメディアオーバーレイ文書の再生は、
body 要素の最後の子の再生が終了したときに完了する。
メディアオーバーレイの
audio
要素 [EPUB-33] が提示された場合、リーディングシステムは、
src 属性によって参照される音声リソースを、
clipBegin 属性で与えられるクリップオフセット時刻から開始し、
clipEnd 属性 [epub-33] で
与えられるクリップオフセット時刻で終了するよう再生しなければならない(MUST)。
さらに:
EPUB 作成者が
clipBegin 属性を指定していない場合、リーディング
システムは値 "0" を仮定しなければならない(MUST)。
EPUB 作成者が clipEnd 属性を指定していない場合、リーディングシステムは
物理メディアの全継続時間をその値として仮定しなければならない(MUST)。
clipEnd の値が物理メディアの全継続時間を超える場合、
リーディングシステムは、その値を物理メディアの全継続時間として仮定しなければならない(MUST)。
ユーザーが制御可能な音声再生オプションには、ユーザーがピッチを歪めずに再生速度を変更できる タイムスケール変更を含めるべきである(SHOULD)。推奨範囲は半速から 倍速までである。
メディアオーバーレイの
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] が要素を参照しない場合のリーディングシステムの挙動も 実装固有である。
この仕様の以前のバージョンには、埋め込み音声 および動画 [epubmediaoverlays-32] に関する情報が含まれていた。 この機能は非推奨となっている。
埋め込み音声および動画の自動再生に関する指針は、現在非推奨である。
詳細については、[epubmediaoverlays-32] におけるその定義を参照。
メディアオーバーレイの
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 プロパティ
値を利用する際、それらを近似値として扱うべきであることも意味する。
リーディングシステムは、ユーザーにコンテンツをスキップするオプションを提供するため、
メディアオーバーレイ要素の
epub:type
属性で提供される意味情報を使用すべきである(SHOULD)。
コンテンツのスキップが有効な場合、リーディングシステムは、
epub:type 属性にスキップ可能な構造と一致する意味が含まれる
par および seq 要素の再生を抑制しなければならない(MUST)。
メディアオーバーレイの再生中、リーディングシステムは、
脱出可能な
構造 [epub-33] から離脱(「脱出」)するオプションを
ユーザーに提供すべきである(SHOULD)。これは、脱出可能な構造リストの値を持つ
epub:type
属性 [epub-33] の存在によって決定される。
ユーザーが脱出可能な構造から脱出することを選択した場合、
リーディングシステムはその構造の後にある次の連続要素から再生を続けなければならない(MUST)。
リーディングシステムは、構造的意味 [epub-33] を、EPUB コンテンツ文書でサポートしてもよい(MAY)。
epub:type
属性を処理する場合、リーディングシステムは:
展開 URL を 取得してもよい(MAY)。これは各値について行う。
epub:type の
定義 [epub-33] で使用が許可されていない要素に
その用語が使用されている場合、それらを無視しなければならない(MUST)。
他の語彙の用語に挙動を関連付けてもよい(MAY)。
リーディングシステムは、
語彙関連付けメカニズムを、
property データ型値の処理のために
サポートしてもよい(MAY)
[epub-33]。
この節では、property データ型
値から展開 URL を取得するためのアルゴリズムを定義する。これは、[epub-33] の
語彙関連付け
メカニズムをサポートするリーディングシステムにのみ適用される。
[epub-33]
の語彙関連付けメカニズムをサポートしないリーディングシステムは、
property 値を単なる文字列値として
処理してもよい(MAY)
[infra]。
それらの存在に基づいてリーディングシステムの挙動を追加するために、
これらの値を URL に展開することをサポートする必要はない。
このアルゴリズムは、[infra] で定義される用語およびデータ型を用いて処理を説明し、 成功した場合、展開 URL を持つ文字列値を返す。 無効なプロパティの場合は、null 値が返される。
このアルゴリズムは、次の引数を取る:
property 値。展開 URL を 取得するには、次の手順を適用する:
baseURL、expandedURL、propertyPrefix、および propertyReference を空の文字列とする。
このアルゴリズムでは:
propertyPrefix および propertyReference の値を次のように取得する:
value がコロン(U+003A)を含まない場合、propertyReference を value に設定する。
property 値にコロンがない場合、それは接頭辞を持たない。この場合、
値はアルゴリズムの次の手順で説明するように既定語彙から取得される。
そうではなく、value がコロンで始まる場合、その値は無効である。null を返す。
値の先頭にあるコロンは、接頭辞が設定されていないことを示すため無効である。
そうでなければ、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。
どの文字をパーセントエンコードしなければならないかについての制限もある。
baseURL の値を次のように取得する:
propertyPrefix が空文字列である場合:
epub:type
[epub-33] である場合、baseURL を
http://idpf.org/epub/vocab/structure/# に設定する
meta
要素 [epub-33] であり、
attr が scheme である場合、そのプロパティ値は無効である。null
を返す。
meta
要素 [epub-33] である場合、
baseURL を
http://idpf.org/epub/vocab/package/meta/# に設定する
link
要素 [epub-33] である場合、
baseURL を
http://idpf.org/epub/vocab/package/link/# に設定する
item
要素 [epub-33] である場合、
baseURL を
http://idpf.org/epub/vocab/package/item/# に設定する
itemref
要素
[epub-33] である場合、baseURL を
http://idpf.org/epub/vocab/package/itemref/# に設定する
そうでなければ:
doc の文書要素に prefix 属性が宣言されており、
その属性に propertyPrefix と一致する接頭辞が含まれる場合、
baseURL を、その接頭辞宣言に関連付けられた URL に設定する。
そうではなく、propertyPrefix が doc の 予約済み接頭辞 [epub-33] に一致する場合、baseURL を予約済み接頭辞に関連付けられた URL に設定する。
property 値に接頭辞がある場合、その基底 URL を最初に確認する場所は、
文書要素上の prefix 属性宣言である。
著者がその接頭辞に URL を割り当てていない場合、次の手順は、 その接頭辞が予約済み接頭辞のいずれかと一致するかどうかを確認することである。
著者が割り当てた接頭辞 URL は、予約済み接頭辞 URL を上書きすることに注意。
baseURL が空文字列である場合、そのプロパティ値は無効である。null を返す。
この処理手順の最後で基底 URL が空である場合、それは接頭辞がマッピングも予約もされていないか、
処理中の要素または属性が、[epub-33] で定義される
property データ型を受け入れないことを意味する。
基底 URL がなければ、展開 URL を生成することは不可能であるため、その値は 無効である。
expandedURL が有効な URL 文字列でない場合、その値は無効である。null を返す。
そうでなければ、expandedURL を返す。
展開された値を取得できたとしても、それが必ずしも有効な URL であるとは限らない。これは、EPUB 作成者が無効な基底 URL を 接頭辞に割り当てた場合にのみ起こり得る。
リーディングシステムは、結果の
URL を解析 [url] する必要も、
結果として得られた展開 URL の参照解決を試みる必要もない。property データ型値を完全な
URL に展開することは、リーディングシステムが期待する値に遭遇したことを保証するだけである
(すなわち、異なる EPUB 作成者が同じ接頭辞を異なる URL に割り当てることができるため、
2 つの値は展開されるまで同じに見える場合がある)。
リーディングシステムは、そのパッケージ文書のversion 属性 [epub-33] が
"3.0" 未満であるEPUB 出版物の処理を試みなければならない(MUST)。
より古いバージョン番号を持つ EPUB 出版物は、それぞれの仕様に従って 処理されない限り、必ずしも意図どおりに正確にレンダリングされるとは限らない。リーディングシステムは、 それらの仕様で定義されるとおりに、そのような EPUB 出版物をサポートすべきである(SHOULD)。
リーディングシステムは、その
パッケージ文書のversion 属性
[epub-33] が
"3.0" より大きいEPUB 出版物の処理を試みるべきである(SHOULD)。
この節は非規範的です。
この仕様の主な焦点は、EPUB 出版物をどのように処理しレンダリングするかにあるが、 すべてのリーディングシステムが提供しなければならない特定のユーザーインターフェイスを 義務付けてはいない。これは、すべてのリーディングシステム開発者が認識すべき、 または自分たちのアプリケーションで回避しようとすべき共通のアクセシビリティ上の問題が 存在しないことを意味するものではない。
W3C の User Agent Accessibility Guidelines [uaag20] は、開発者が リーディングシステムを改善するために適用すべき多くの有用な実践を提供している。ブラウザーの アクセシビリティ上の問題の多くは、EPUB 固有のユーザーエージェントにも類似するからである。
次の一覧は、アクセシビリティの欠如がユーザーの読書体験に影響する、EPUB 固有の追加領域の一部を概説する:
DAISY Consortium は、これらの問題などの評価を支援するため、アクセシビリティテストスイート を管理している。
この節は非規範的です。
EPUB 出版物の特性はその構造にある。EPUB フォーマットは、 構造化され意味的に拡張された Web コンテンツ — HTML、CSS、SVG、およびその他のリソースを含む — を、単一ファイルコンテナで配布するために 表現、パッケージ化、エンコードする手段を提供する。
リーディングシステムにとって、これはセキュリティおよび プライバシー上の問題が主としてそれらのフォーマットの機能に基づき、 一般的な Web コンテンツが提示する脅威と密接に対応することを意味する。
リーディングシステム開発者には、自分たちのアプリケーションのセキュリティとプライバシーを保証することと、 その中でレンダリングされるコンテンツからユーザーへの脅威を制限することの、二重の責任もある。 この節の残りでは、開発者がこれらのリスクを認識し軽減する助けとなることを目的として、 EPUB 3 のリスクモデルを検討する。
EPUB 出版物の作成に関連するリスクについては、[epub-33] のセキュリティとプライバシーの節を参照。
この節は非規範的です。
ユーザーにとって最大の脅威は、ユーザーが読むコンテンツ [epub-33] から生じ、これらの攻撃に対する第一線の防御は、ユーザーが 使用するリーディングシステムである。ユーザーは、リーディングシステムが悪意のあるコンテンツからの保護手段として 機能することを期待しており、EPUB 出版物が Web サイトと同じセキュリティリスクを受けやすいことに気付いていないことが多い。
しかし、リーディングシステムはセキュリティとプライバシーを提供するものとして依存されている一方で、 情報の取り扱い方によっては、ユーザーに意図しない脅威をもたらす可能性もある。たとえば、体験を 最適化するためにユーザー情報を追跡することは一般的な必要性だが、ユーザーの許可なしに行われると、 リーディングシステムは法的なプライバシー要件に抵触する可能性がある。
この節では、リーディングシステム開発者が考慮しなければならない主要な脅威の一部を概説し、 以降の節でさらに詳細および推奨事項を示す。
悪意のあるスクリプトは、リーディングシステムに対していくつもの攻撃ベクトルを提示する。たとえば、 ローカルストレージが安全でない場合、ユーザーのデータを侵害しようとする可能性がある。 ネットワークアクセスが与えられている場合、ユーザーデータの不正な収集を試みる可能性がある。
これらの問題とそれらを軽減する方法についてのより詳細な議論は、6.4.3 セキュリティ上の考慮事項で提供される。
EPUB 出版物には、リーディングシステムまたはそれらが動作するオペレーティングシステムの セキュリティ欠陥を悪用するよう設計されたリソースが含まれる場合がある。攻撃者は、シンボリックリンクや ファイルエイリアスなどのファイル間接参照技術を使用して、 リモートリソースへのアクセスを得ようとする場合もある。
EPUB 出版物に署名するための標準的な方法がないため、リーディングシステムは、 作成からデバイスへの読み込みまでの間にコンテンツが改ざんされたかどうかを常に検証できるとは限らない。
リモートリソースは、信頼されないソースから読み込まれた いかなる EPUB 出版物とも同じリスクを提示する。EPUB 出版物の出版者が信頼されている場合でも、 リモートリソースは侵害されている可能性がある。
リモートリソースへの呼び出しは、ユーザーに関する情報を追跡するためにも使用され得る(たとえば、 サーバーログを通じて)。リーディングシステムは、HTTP リクエストを通じて公開する情報を、 リソースの取得に不可欠なもののみに制限すべきである。
EPUB のオリジンは、EPUB 作成者には不明であり、各リーディングシステム
実装に固有である。したがって、EPUB 作成者が自分の制御する Web サーバー上でリモートリソースを
ホストする場合、そのサーバーは、CORS、Content-Security-Policy、
または X-Frame-Options のヘッダーなど、
許可されるオリジンの指定を必要とするセキュリティ機能を、実質的に使用できない。
リモートリソースと同様に、外部リンクは、リーディングシステムまたはオペレーティング システムを悪用するよう設計された Web 上の悪意のあるリソースを、事情を知らないユーザーに開かせるために 使用される可能性がある。
同様に、リーディングシステムは、リンクのたどりによりユーザーを識別し得る情報を公開することも 避けるべきである(たとえば、追跡識別子を使用しない、ユーザー環境に関する不要な情報を公開しない)。
読書体験内のユーザー生成コンテンツ、たとえばテキストエリアやその他の対話的コンポーネントを通じたものは、 コンテンツが適切に保護されていない場合、リーディングシステムのセキュリティまたはユーザーのプライバシーに 脅威をもたらす可能性がある。スクリプト処理のセキュリティに関する詳細は、6.4.3 セキュリティ上の考慮事項で提供される。
ユーザーとその読書習慣に関する情報を、許可を得ずに収集することは、 たとえその情報が内部利用のみを意図したものであっても、ユーザーのプライバシーを侵害する可能性がある。
読書習慣または出版物内のメタデータ(たとえばアクセシビリティ設定)を通じて ユーザーをプロファイリングしようとすると、ユーザーを意図しない害にさらす可能性がある。
さらに、[xml] および
[zip] ファイルに適用されるセキュリティ上の考慮事項は、
それぞれパッケージ文書およびOpen
Container Formatにも適用される。詳細については、application/oebps-package+xml
および application/epub+zip フォーマットの
メディア型登録における「Security Consideration」の節を参照。
リーディングシステム開発者がプライバシーのために取ることができる最も強力な措置は、 ユーザーおよび/またはその読書行動について収集し使用することを意図しているデータを明示し、 それを取得するためにユーザーの同意を求めることである。また、この情報に対する個人化および制御も 許可すべきである(SHOULD)。
リーディングシステムがユーザーに永続データ、特に個人を識別できる情報の保存を許可する場合、 それを機微データとして扱い、第三者によるアクセスを許可すべきではない(SHOULD)。
EPUB 出版物の販売、配信、および運用のために、特に EPUB 出版物の販売とその読書方法が結び付いているプラットフォームでは、ある程度のユーザーデータの収集が 必要となる場合があることは理解される。このような場合、リーディングシステムは、収集されるデータ、 その使用方法を特定し、ユーザーがオプトアウトできるようにすべきである(SHOULD)(ただし、小売業者は、たとえばユーザーがその Web サイトでアカウントを作成するときなど、 他の手段でユーザーに通知することを選択してもよい)。 収集されたデータの匿名化は、ユーザーおよびリーディングシステムのプライバシーとセキュリティのために 推奨される(RECOMMENDED)。
ユーザーデータが一部のリーディングシステムのアフォーダンスに必要または有用である場合もあることは理解される。 このような場合も、匿名化が推奨される(RECOMMENDED)。リーディングシステムはまた、 どのデータが必要であり、それが何に使用されるかをユーザーに通知し、オプトアウトする方法を提供すべきである(SHOULD)。
コンテンツプロセッサー — EPUB コンテンツの配布、表示、または販売のための取り込みを扱う主体として定義される — も、取り込みにおける潜在的リスクを認識する必要がある。通常行われる検証手順に加えて、 コンテンツプロセッサーは取り込み時に悪意のあるコンテンツを確認することが推奨される。これには、 ウイルススキャンの実行、外部リンクおよびリモートリソースの検証、その他の予防措置が含まれ得る。
リーディングシステムは、 統合された書店からのものを含む任意の新しいソースのコンテンツを、安全でないものとして扱うべきである(SHOULD) (たとえば、そのソースへ初めてアクセスするときに、スクリプト処理およびネットワークアクセスを許可するよう ユーザーに求める)。リーディングシステムがユーザーに自分のコンテンツを読み込むことを許可する場合 (たとえば「サイドローディング」のプロセスを通じて)、各インスタンスは安全でないものとして扱われるべきである(SHOULD)。
XML 文書を処理する場合、リーディングシステムは DOCTYPE、ENTITY、および NOTATION 宣言内の外部識別子 [xml] を解決すべきではない(SHOULD NOT)。 リーディングシステムは、たとえば DoS 攻撃、別名 "Billion laughs attacks"、または "XML external entity attacks" のような、 内部 または 外部 XML エンティティに関連するセキュリティリスクも考慮すべきである(SHOULD)。
外部リンク、ネットワークアクセス、およびスクリプト処理に関する追加のセキュリティ推奨事項は、 それぞれ3.9 外部リンク、3.8 ネットワークアクセス、および 6.4.3 セキュリティ上の考慮事項で利用できる。
リーディングシステムは、非推奨 機能 [epub-33] をサポートしてもよい(MAY)。
開発者は、非推奨機能を持つコンテンツに遭遇する可能性の低さを、新たにそれらのサポートを追加する前に 考慮すべきである。
リーディングシステムは、EPUB 出版物の中核レンダリングエンジンとして機能し、 [dom] 仕様に基づく スクリプト環境を提供する。したがって、このインターフェイス定義は、リーディングシステムによる実装のために [webidl] 記法を使用しているが、Web ブラウザーは一般にこれらのオブジェクトを実装する必要はない。
この仕様は、Navigator オブジェクト [html]
を次のように拡張する。
WebIDL[Exposed=(Window)]
interface EpubReadingSystem {
boolean hasFeature(DOMString feature, optional DOMString version);
};
この仕様は、
WorkerNavigator
オブジェクト [html] に対する epubReadingSystem プロパティ拡張を
定義しない。したがって、リーディングシステムは Workers のスクリプト文脈で
epubReadingSystem オブジェクトを公開する必要はなく、EPUB 作成者はその存在に依存できない。
Navigator.epubReadingSystem
オブジェクトは、
スクリプト化コンテンツ文書がユーザーのリーディング
システムに関する情報を問い合わせるためのインターフェイスを提供する。
リーディングシステムは、読み込まれたすべてのスクリプト化コンテンツ文書の
navigator オブジェクト上に、任意のネストされたコンテナ制約付きスクリプト処理
文脈 [epub-33] を含め、
epubReadingSystem オブジェクトを公開しなければならない(MUST)。リーディングシステムは、
epubReadingSystem
オブジェクトが、遅くとも DOMContentLoaded
イベントが発火される時点 [html] までに利用可能であることを保証しなければならない(MUST)。
リーディングシステム実装は、技術的実現可能性の理由から、スクリプト化コンテンツ文書内に
epubReadingSystem オブジェクトの複製インスタンスを作成してもよい。このような場合、
リーディングシステムは、コピーされたすべてのインスタンス間で、オブジェクトのプロパティおよびメソッドの値に
反映される状態を一貫して維持することを保証しなければならない。
この仕様は以前、name、version、および
layoutStyle プロパティを定義していたが、これらは現在非推奨である
[epub-33]。詳細については、
[epubcontentdocs-32] におけるそれらの定義(name
および version)および [epubcontentdocs-301] における定義(layoutStyle)を参照。
hasFeature
メソッドは、リーディングシステムが指定された機能の任意のバージョンをサポートするかどうかを示す
boolean 値、またはリーディングシステムが指定された機能を認識しない場合は
undefined を返す。
任意指定の version パラメータにより、EPUB 作成者は、時間の経過とともに互換性のない形で変化し得る
カスタム機能を問い合わせることができる。戻り値は、指定された機能の指定されたバージョンのみの
サポートを示す。
この仕様で定義される機能には
バージョンがない。リーディングシステムがこの仕様で定義される機能をサポートする場合、
指定された version パラメータを無視し、true 値を返さなければならない(MUST)。
次の表は、
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)が、この 仕様の将来バージョンでは、この一覧に追加される可能性があり、その追加がそのようなカスタム追加と 競合したり互換性を持たなかったりする可能性がある。
EpubReadingSystem インターフェイス
§B.1
hasFeature メソッド
(EpubReadingSystem 用)
§B.4.1.1
Navigator.epubReadingSystem 属性
(Navigator 用)
§B.2
audio
要素
body
要素
dc:creator 要素
dc:identifier 要素
dc:language 要素
dc:title 要素
epub:type 属性
item
要素
itemref
要素
link
要素
meta
要素
par
要素
META-INF ディレクトリ内の URL の解析
rootfile 要素
seq
要素
spine
要素
text
要素
form
要素
object
型
style 属性(html-global
要素用)
boolean
型
DOMString インターフェイス
[Exposed] 拡張属性
[LegacyUnforgeable] 拡張属性
[SameObject] 拡張属性
この節は非規範的です。
この変更履歴は、EPUB 3.2 以降の実質的な変更、すなわち EPUB リーディングシステムの適合性に影響し得る変更のみを 特定していることに注意。
対処されたすべての課題の一覧については、ワーキング グループの課題トラッカーを参照。
実質的な変更は行われていない。
getOverrideStyle への参照を削除。
プルリクエスト 2531を参照。
rendition:flow の値が Webtoon 風の出版物の公開を制御する可能性がある
将来機能についての注を追加。issue 2412を参照。
epubReadingSystem オブジェクトの name および
version プロパティを非推奨化。issue
1872を参照。
hreflang 値を処理目的で使用しないという重複要件を削除。
プルリクエスト
2343を参照。
rendition:layout と整合させるため、rendition:spread および
rendition:orientation プロパティの既定値に関する記述を要件へ格上げした。
issue
1936を参照。
page-spread-center が spread-none の別名になった。
issue 1929を参照。
textref 属性および text 要素の
src 属性で、HTML ターゲット要素および SVG フラグメント識別子への参照を
リーディングシステムがサポートすることを推奨。その他のフラグメント識別子スキームのサポートは任意。
issue 1586を参照。
meta 要素プロパティが独自の空白処理規則を定義できるという例外を削除。
issue 1295を参照。
dc:language 要素内の言語をリソースの言語として使用しない明示的要件を追加。
auto 値の追加を考慮し、dir 属性の基底方向判定規則を追加。
issue 1491を参照。
link 要素上の新しい hreflang 属性内の言語情報が
権威あるものではないことを記載。issue 1488を参照。
この節は非規範的です。
仕様は、芸術と同じく、人間による創作物である。1999 年の最初の OEB 1.0 から今日の EPUB 3.3 まで、 あらゆる段階に関わってきた Garth Conboy ほど EPUB に貢献した人はいない。 Garth の洞察、知識、そして並外れた善良さがなければ、これらはいずれも実現しなかっただろう。 私たちは EPUB 3.3 を彼の記憶に捧げる。 Garth、私たちは永遠にあなたに恩義がある。
EPUB 3 Working Group の次のメンバーが、この仕様の開発に貢献した:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: