要約

可能な限り、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 形式には適用されません。

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

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

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

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

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

リモートリソースの識別

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

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

次の例は、音声を埋め込む 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 つです。フォントが利用できない場合、リーディングシステムは自動的に次の利用可能なフォントにフォールバックします。出版物のテキストは意図したとおりにきれいに表示されない可能性がありますが、読みやすさは一般的に損なわれません (次のアクセシビリティに関するセクションで説明する 1 つの例外を除く)。

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

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

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

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

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

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

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

関連リンク