リーディングシステムは、ファイルをレンダリングする前に、メディア タイプを使用してファイルに含まれるコンテンツの種類を判断します。次の表に、最も一般的なファイル形式とそれに対応するメディア タイプ値の一部を示します。

ファイル形式 メディアタイプ
XHTML application/xhtml+xml
SVG image/svg+xml
CSS text/css
JavaScript application/javascript
JPEG image/jpeg

EPUB仕様では、コアメディアタイプと呼ばれる一連のファイル形式が定義されています。これは、コンテンツ製作者が、EPUBコンテンツドキュメントに、フォールバックを必要とせずに含めることができるファイル形式です。

リーディングシステムが特定のレンダリングをサポートするなら、そのレンダリングに必要とされる形式をサポートする必要があります(たとえば、テキストのみを読み上げるリーディングシステムはCSSまたは画像形式をサポートする必要はありませんが、視覚的な表示を備えたリーディングシステムはサポートする必要があります)。

どのリーディングシステムでもその出版物を読めるようにするには、EPUB出版物でコアメディアタイプのみを使用してください。

EPUBの各バージョンでは、サポートされているメディアタイプの完全なリストが提供されます。

フォールバック

EPUB形式は、出版に適した、広くサポートされているファイル形式をできるだけ多く取り入れようとしていますが、コアセットに含まれていない形式が必要になる場合もあります。たとえば、リーディングシステムが、新しい高度な画像形式を最初にサポートする場合があります。

リーディングシステムが広くサポートしていない形式を出版社が利用できるように、また、出版物の読みやすさを損なわないようにするには、EPUBに独自のフォールバック方法とHTMLで元々使用できる方法の両方を組み込みます。コンテンツ製作者はコア メディア タイプへのフォールバックを提供すれば、EPUB出版物に任意のファイル形式を追加できます。

次のサブセクションでは、EPUBが提供するフォールバックメカニズムについて説明します。

HTMLフォールバック

コンテンツ製作者がページに埋め込んだプライマリソースが利用できない場合やリーディングシステムがそれをレンダリングできない場合に備えて、ほとんどのHTML要素にはフォールバック コンテンツを含める手段が提供されています。

たとえば、 audio要素とvideo要素では、コンテンツ製作者は複数のsource要素を使用して、複数の形式でメディアを提供できます。

WebMおよびMP4ビデオオプションを備えたビデオ要素

<video controls="controls">
   <source src="rain.webm" type="video/webm"/>
   <source src="rain.mp4" type="video/mp4"/>
   <p>このリーディングシステムは、ビデオをサポートしていません。</p>
</video>

pタグに埋め込まれたメッセージは、ビデオ要素をサポートしていない古いユーザーエージェント(EPUB2リーディングシステムなど)でのみ表示されることに注意してください。ビデオのフォーマットがサポートされている場合、このメッセージは表示されません。

audio要素やvideo要素とは異なり、 object要素のネストされたコンテンツはフォールバックを表します。リーディングシステムは、ファイルのメディアタイプをサポートしていない場合、このコンテンツをレンダリングします。

HTMLフォールバック付きの埋め込みPDFフォーム

<object src="t1000.pdf" type="application/pdf">
   <h3>Tax Form T-1000</h3>
   <p>…</p>
</object>

画像のフォールバックを埋め込むことは以前は困難でしたが、 srcset属性とpicture要素の追加により状況は大幅に改善されました(フォールバックの欠如が EPUB でマニフェストフォールバックが作成された主な理由でした)。

WebPとJPEG画像のオプションがある画像要素

<picture>
   <source srcset="rainbow.webp" type="image/webp"/>
   <img src="rainbow.jpg" type="image/jpeg"/>
</picture>

EPUBでは、 リーディングシステムがsource要素のオプションをサポートしていない場合でも画像をレンダリングできるように、 imgタグは常にコアメディアタイプを参照する必要があります。

複数のソースを持つ画像要素

この例では、 srcset属性に画像の三つの代替サイズが提供されています。

<img src="rainbow.png"
     srcset="rainbow-1x.png 1x, rainbow-2x.png 2x, rainbow-3x.png 3x"
     alt="Rainbow over wheat fields" />

srcset属性の1x2x3x は、画像のピクセル密度を表します。

免除要素

EPUB3では、次の要素もフォールバック要件から免除されます。

  • rel属性値pronunciationがある場合のlink (発音辞書ファイルを許可するため)。
  • track (キャプション、字幕、および同様の音声/ビデオ トラック形式を含めることができます)
  • video(EPUBでは、すべてのリーディングシステムがサポートする必要がある単一のビデオ形式は定義されていません)。

このような場合、コンテンツ製作者はいずれの形式も指定できますが、リーディングシステムがこれらの形式のレンダリングをサポートする保証はありません。

EPUB固有のフォールバック

manifestフォールバック

manifestフォールバックは、EPUBパッケージドキュメントでどのように実装されているかによって名前が付けられます。 manifest要素には、出版物で使用されるすべてのリソースがリストされ、その中の各item要素では、 fallback属性を使用して別のitemをフォールバックとして指定できます。

manifestフォールバックを使用する方法は二つあります。一つ目は、未知のメディア タイプをspine(出版物を読み順でドキュメント化するリスト)に含める方法です。ただし、この方法は主にEPUB2でXHTMLフォールバックを使用してspineにSVG画像を許可するために使用されていたため、ほとんど使用されなくなりました。

spineのSVG(EPUB2)

<manifest>
   <item id="c01"
         src="images/plate01.svg"
         media-type="image/svg"
         fallack="c01-xhtml"/>
   <item id="c01-xhtml"
         src="images/plate01.xhtml"
         media-type="application/xhtml+xml"/>
   …
</manifest>
<spine>
   <itemref idref="c01"/>
   …
</spine>

この場合、リーディングシステムが SVG をサポートしていないと、サポートできるメディアタイプが見つかるまでfallback属性参照に従い続けます。上記のケースではフォールバックは 1 つだけですが、サポートされているメディア タイプに到達するまで、複数の項目をフォールバックし続けます。フォールバックチェーンの唯一の要件は、コアメディアタイプを含める必要があることです。

manifestでフォールバックを使用するもう一つの方法は、HTML img要素のフォールバック画像を用意するものです。最近srcset属性が追加され、新しいpicture要素が作成されるまでは、HTMLではimg要素を使用して埋め込まれた画像のフォールバックを提供することができませんでした。回避策として、リーディングシステムは、img要素のソースをmanifestで指定されたフォールバックに変更することが期待されています。

manifest内の画像フォールバック

HTML

<img src="rainbow.webp" alt="麦畑にかかる虹"/>

パッケージドキュメント

<manifest>
   <item id="img01"
         src="rainbow.webp"
         media-type="image/webp"
         fallack="img01-fb"/>
   <item id="img01-fb"
         src="rainbow.jpg"
         media-type="image/jpeg"/>
   …
</manifest>

EPUB2で他に選択肢がない場合を除いて、画像のmanifestフォールバックは避けるのが最善です。manifestフォールバックは十分にサポートされていません。

廃止されたフォールバック手法

EPUBには、使用が推奨されなくなった2つのフォールバック手法があります。

コンテンツの切り替え

EPUBのコンテンツ切り替えメカニズムにより、コンテンツ製作者はXHTMLコンテンツ ドキュメント内にMathMLなどのマークアップ言語を埋め込むことができました。このメカニズムはプログラミング言語のswitch文case文をモデルにしており、case要素に外部マークアップが含まれています。リーディングシステムがこれらのマークアップ言語をサポートしていない場合、 default要素にフォールバックとして使用するHTMが含まれています。

コンテンツ切り替えは、XHTMLコンテンツ ドキュメント内でMathMLまたはSVGが許可されなかった EPUB2用に開発されました。EPUB3では一時的に許可されていましたが、サポート不足のため最終的に廃止されました。

バインディング

EPUB 3では、外部メディア タイプ用のスクリプト フォールバックを提供するためにバインディングの方法が作られました。リーディングシステムがobjectタグ内のメディア タイプをサポートしていない場合、コンテンツ製作者はパッケージ ドキュメント内のリソースを、 objectで指定された引数が渡されるフォールバック スクリプト ドキュメントに「バインド」できます。

バインディングの手法については、機能が実務的には必要とされず、リーディングシステムでのサポートもまったくないため、最新バージョンのEPUB3では非推奨になりました。したがって、使用は避けるべきです。

リソースの場所

EPUBでは、次の種類のコンテンツをZIPコンテナ内に保存するのではなく、Web上でホストできます。

ただし、このような場合には注意が必要です。ユーザーがリモートでホストされているコンテンツをダウンロードできるという保証はなく、ネットワーク アクセスが利用可能であっても、リーディングシステムがリモートでホストされているリソースを取得できるという保証もありません。

関連リンク