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

ファイル形式 メディアタイプ
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タグに埋め込まれたメッセージは、ビデオ要素をサポートしていない古いユーザー エージェント(EPUB 2 リーディングシステムなど)でのみ表示されることに注意してください。形式のみがサポートされていない場合は、メッセージは表示されません。

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属性に画像の 3 つの代替サイズが提供されています。

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

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

免除要素

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

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

このような場合、作成者は任意の形式を指定できますが、リーディングシステムがその形式のレンダリングをサポートするという保証はありません。

EPUB 固有のフォールバック

manifestフォールバック

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

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

spineのSVG(EPUB 2)

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

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

HTML

<img src="rainbow.webp" alt="Rainbow over wheat fields"/>

パッケージドキュメント

<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>

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

非推奨のフォールバック手法

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

コンテンツの切り替え

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

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

バインディング

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

バインディングの手法は、機能の実際的な必要性がなく、リーディングシステムでのサポートがまったくないため、最新バージョンの EPUB 3 では非推奨になっています。したがって、使用は避ける必要があります。

リソースの場所

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

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

関連リンク