要約

極力、EPUBコンテナー外からのリソースの提供は避けましょう。

テクニック

例 1 — 代替音声へのリンク

audio要素の後にリンクが提供されていれば、ユーザーは、リーディングシステムによるリモート リソースへのアクセスがブロックされた場合に、ブラウザーから音声ファイルを開くことができます。

<audio src="https://example.org/audio/war_of_the_worlds.mp3" …>
   …
</audio>
<p>
   <a href="https://example.org/audio/war_of_the_worlds.mp3">
      Listen in browser
   </a>
</p>
例 2 — フォールバックフォント

リモート フォントが使用できない場合に備えて、フォールバック システム フォントを指定できます。

@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');

body {
   font-family: 'Roboto', Arial, sans-serif;
}

よくある質問

リモートファイルへの代替リンクはaudioまたはvideo要素内に配置する必要がありますか?

audiovideo要素内のフォールバック コンテンツは、リーディングシステムが要素をサポートしていない場合にのみユーザーに提示されます(例:EPUB 2リーディングシステムでは、XHTML 1.1にvideo要素がありません)。

<audio …>
   <p>Sorry, your reading system does not support
      the audio element. The audio file cannot be
      played.</p>
</audio>

リーディングシステムがリソースをダウンロードできない場合、または提供された形式を再生できない場合、要素内のコンテンツにはアクセスできません。このような場合、リーディングシステムは独自のエラー メッセージを表示します(つまり、内部のフォールバック コンテンツは表示されません)。

古いリーディングシステムを使用しているユーザーのアクセスを可能にするために、要素内に Webでホストされているファイルへのリンクを提供すると便利に思えるかもしれませんが、他の状況での可用性が制限されます。たとえば、最新のリーディングシステムがファイルにアクセスできない場合、誰でもアクセスできるリンクを使用すると、柔軟性が向上します。

これらの要素内に、トランスクリプトなどのアクセシビリティのための代替手段を置いてはいけません。

リモートオーディオやビデオをYouTubeで提供できますか?

場合によります。

ユーザーをWeb上の音声ファイルまたはビデオ ファイルにリンクしたい場合は、任意のサイトでホストできます。EPUBでは、外部ハイパーリンクを配置する場所に制限はありません。

HTML iframe要素を使用して YouTubeページをEPUBに埋め込もうとしている場合は、答えは「いいえ」です。セキュリティ上の理由から、EPUBではWebページを出版物に直接埋め込むことはできません。出版社がEPUBコンテナー外でリモート ビデオファイルをホストすることを許可する例外は、ビデオファイルにのみ適用され、ビデオを埋め込むWebページには適用されません。

解説

リモートリソースに関する問題は主にユーザビリティに関するもので、すべてのユーザーに影響するものも、そうではないものもあります。このセクションでは、リモートリソースをEPUBに含める方法と、発生する可能性のあるユーザビリティとアクセシビリティの問題を軽減する方法について説明します。

注記

EPUB2ではリモート リソースは許可されませんでした。このセクションのガイダンスは、EPUB2形式には適用されません。

リモートで許可されるリソース

EPUB3では、EPUBコンテナー(つまり、出版物を格納するzipファイル)の外部でホストできるリソースは次の四種類のみです。

  • 音声
  • ビデオ
  • スクリプトによって取得されたリソース(例:JavaScript XmlHttpRequest およびFetch APIを使用)。
  • フォント

音声とビデオの場合、対応するメディアタイプ (例:MP3ファイルの場合はaudio/mp3)を持つファイルのみ適用できます。音声プレーヤーまたはビデオ プレーヤー(例:YouTube)を埋め込んだHTMLページを参照することはできません。

リモートリソースと外部ハイパーリンクを混同しないでください。リモートリソースは、ユーザーをWebに送るハイパーリンクとは対照的に、出版物に取り込まれるリソースです。 audio要素とvideo要素を使用すると、参照先のファイルがどこにあるかに関係なく、音声リソースとビデオ リソースを埋め込むことができます。その一方で、YouTubeへのハイパーリンクは、ユーザーをそのWebサイトに送ります。

リモートリソースの識別

リモート リソースはEPUBコンテナーに含まれていませんが、EPUBマニフェストにパブリケーション リソースとして列挙しなければなりません。リソースの完全なURLは、マニフェストエントリのhref属性に記載します。

加えて、リモートリソースを参照するEPUBコンテンツ ドキュメントには、properties属性に対して"remote-resources"の値を設定しなければなりません。(リーディングシステムは、このプロパティにより、たとえば、必要なファイルに対してのみリモートアクセスを選択的に有効にできます。)

次の例は、音声を埋め込むXHTMLファイルとリモートMP3ファイルのマニフェストエントリを示しています(ファイルc01.xhtmlには、例1に示すようにaudio要素が含まれます)。

<package …>
   …
   <manifest>
      <item id="audio01"
            href="https://example.org/audio/war_of_the_worlds.mp3"
            media-type="audio/mp3"/>
      
      <item id="c01"
            href="xhtml/c01.xhtml"
            media-type="application/xhtml+xml"
            properties="remote-resources"/>
      …
   </manifest>
   …
</package>

リモートリソースURLをマニフェストに追加する場合、文字列内のアンパサンド(&)をエスケープする必要があることに注意してください。たとえば、URLに複数のパラメーターを含むクエリ文字列がある場合は、次の例のように &amp; エンティティを使用して各アンパサンドをエンコードする必要があります。

Font URL:
https://fonts.googleapis.com/css2?family=Roboto<strong>&</strong>display=swap

Manifest encoding:
<item id="font01"
      href="https://fonts.googleapis.com/css2?family=Roboto&amp;display=swap"
      media-type="font/ttf"

ユーザビリティの考慮

リソースをリモートでホストする最も一般的な理由は、そのサイズです。出版物に数ギガバイトのデータに相当するビデオが複数含まれている場合、そのような出版物を配布することは現実的ではない可能性があります。ベンダーはサイズ制限のために出版物を拒否する可能性があります。また、ベンダーがそのような大きな出版物を受け入れたとしても、ユーザーはビデオを見ることに興味がない場合でも、すべてのデータがダウンロードされるまで待ってから読み始めなければなりません。

リソースをリモートでホストすることは、サイズ制限を回避し、一部のリソースのダウンロードを必要になるまで延期できますが、深刻なユーザビリティの問題も伴います。ユーザーには、アクティブなインターネット接続を備えたデバイスと、インターネットへのアクセスをブロックしないリーディングシステムが必要になります。たとえば、インターネット接続を備えたタブレットを持っているからといって、リーディングシステムが出版物に Web からのリソースの取得を許可するわけではありません。セキュリティ上の問題が発生する可能性があります。

フォントは、ユーザーが通常フォントの不在に気付かないため、リモート ホスティングに最適な候補の一つです。フォントが利用できない場合、リーディングシステムは自動的に次の利用可能なフォントにフォールバックします。出版物のテキストは意図したとおりにきれいに表示されない可能性がありますが、読みやすさは一般的に損なわれません (次のアクセシビリティに関するセクションで説明する 1 つの例外を除く)。

EPUB コンテナの外部で音声とビデオをホストする前に、それらが利用できない場合のユーザー体験を考慮してください。それらがテキストの理解に不可欠な場合、アクセスできないユーザーは重要な情報を見逃すことになります。

リーディングシステムのサポートと接続の問題を軽減するには、音声ファイルまたは動画ファイルに直接リンクする方法をユーザーに提供してみてください (例1を参照)。これにより、ユーザーはリーディングシステムを回避して、ブラウザで直接コンテンツを開くことができるようになります。

EPUBコンテナーの外部で提供されているスクリプト データは、ユーザビリティの観点から最も問題のあるタイプのリモート リソースです。EPUB ではスクリプトのサポートが普遍的ではないだけでなく、スクリプトをサポートするリーディングシステムでも、外部データを呼び出すための API がサポートされていない場合があります。つまり、リモート音声とビデオを許可するリーディングシステムであっても、リモート スクリプトの呼び出しは許可されない可能性があります。

リモート データ呼び出しの場合、外部スクリプト呼び出しが最新バージョンのデータを取得するためだけのものである場合は、既定のデータ セットを埋め込むことを検討してください。これにより、少なくとも、ユーザーは出版物の中で動作しないアプリケーションを持つことなく、スクリプト化されたコンテンツを操作できるようになります。

アクセシビリティに関する考慮事項

リモート リソースに関する問題は主にユーザビリティに関するものですが、出版物のアクセシビリティが影響を受ける可能性のあるケースが少なくとも一つあります。読みやすさを補助するために特殊なフォントを使用する場合 (たとえば、ディスレクシアのユーザーがテキストを読めるようにするため)、フォントをリモートでホストすると、対象ユーザーが出版物にアクセスしにくくなる可能性があります。この場合、フォントをリモートでホストすることによるメリットは、リスクに見合わない可能性があります。

音声およびビデオ リソースの場合、アクセシブルな制作方法に従うことで、リーディングシステムがそれらを取得できない場合に生じる不便さを軽減できます。たとえば、音声およびビデオの書き起こしを提供することで、ユーザーが情報にアクセスできるようになることがあります。

関連リンク