要約

EPUB のspineでコンテンツ ドキュメントを順序付けして、読み上げ順序が論理的であることを確認し、各ドキュメントにリニアコンテンツが含まれているか非リニアコンテンツが含まれているかを識別します。

テクニック

例1 — 表紙を非リニアとして含める

この例では、リーディングシステムが表紙を最初の文書として提示する必要がないため、表紙は非リニアとしてマークされています。

<package …>
   …
   <spine>
      <itemref idref="cover" linear="no"/>
      <itemref idref="title"/>
      <itemref idref="toc"/>
      <itemref idref="intro"/>
      <itemref idref="c01"/>
      <itemref idref="c02"/>
      …
   </spine>
</package>
例2 - 個別の説明ファイルを含める

画像の説明は非リニアとしてマークされ、章の合間に出てこないようにspineの最後に含まれています。

<package …>
   …
   <spine>
      …
      <itemref idref="appendix-03"/>
      <itemref idref="desc-01" linear="no"/>
      <itemref idref="desc-02" linear="no"/>
      <itemref idref="desc-03" linear="no"/>
      <itemref idref="desc-04" linear="no"/>
      <itemref idref="desc-05" linear="no"/>
      …
   </spine>
</package>

よくある質問

リーディングシステムは、出版物のページをめくるときに、非リニアコンテンツを読者から隠しますか?

いいえ、EPUB 仕様では非リニアコンテンツをレンダリングする特定の方法が規定されていないため、リーディングシステムが非リニアとしてマークされたコンテンツを非表示にするかどうかは分かりません。2つの章の間に非リニアドキュメントを配置すると、ユーザーが手動で出版物のページをめくったときにそのコンテンツに遭遇することがあります。

一部のリーディングシステムは非リニアドキュメントを無視し、ユーザーがリンクをクリックした場合にのみレンダリングしますが、このような動作は普遍的ではありません。

解説

Spineの順序

EPUB パッケージ ドキュメントのspine要素は、出版物内のドキュメントの順序を定義します。リーディングシステムはこの要素を使用して、ユーザーが読んでいるときに次にどのドキュメントが来るかを判断します。

spine は1 つ以上のitemref要素で構成され、各要素はmanifest内の項目を参照します。itemrefidref属性は次の例に示すように、レンダリングするマニフェスト項目の特定の ID を提供します。(値は URL ではなく ID 参照であるため、参照の先頭にハッシュ (#) がないことに注意してください。)

<package …>
   …
   <manifest>
      …
      <item id="c01"
            href="xhtml/chapter01.xhtml"
            media-type="application/xhtml+xml"/>
      …
   </manifest>
   <spine>
      …
      <itemref idref="c01"/>
      …
   </spine>
</package>

通常、読者は、EPUB 出版物がspineの多数の文書から成ることを知りません。リーディングシステムは、読者にこの事実を知らせません。読者が 1 つの文書の最後に到達すると、 spineを調べて次のページを読み込むことで、自動的に次のページに移動します。

主要なコンテンツ ドキュメントをすべてspineから参照することは非常に重要であり、これらのドキュメントを順序付けて、出版物の主要な物語を論理的な順序で提示する必要があります。ドキュメントの順序が間違うことはあまりないですが、編集や改訂の際に発生する可能性があります (新しい章やセクションを挿入した場合など)。このような場合、ドキュメントの順序が間違っていたり、ドキュメントが 1 つ欠けていたりすると、すべての読者が混乱します。そのため、これはアクセシビリティの問題というよりも、一般的なユーザビリティの問題です。

リニアコンテンツ

リニア コンテンツ ドキュメントとは、著者がユーザーに順番に読んでもらうことを想定しているドキュメントです。第 1 章の次は第 2 章、第 3 章、というように続きます。リニアな読み上げ順は、出版物の主な流れを表します。

読者はリニア文書を順番に読みますが、非リニア文書はそのように読む必要はありません。非リニア文書の例としては、解答集があります。読者は、対応するクイズを含む章の後で解答集を見直したいかもしれませんし、本の最後まで待ってから解答を確認したいかもしれませんし、または、まったく興味がないかもしれません。つまり、著者がspineに挿入した解答を読むことは必須ではないのです。

非リニアコンテンツ ドキュメントは、次の例に示すように、 itemref要素に値noを持つlinear属性を追加することによって識別されます。

<itemref
    idref="answers-01"
    linear="no"/>

リーディングシステムは、 linear属性のないitemref要素がリニアコンテンツ ドキュメントを表すと想定するため、EPUB 出版物でlinear="yes"が設定されていることはほとんどありません。

非リニアコンテンツをspineに配置すると、コンテンツの読みやすさにいくつかの問題が生じます。すべてのリーディングシステムが非リニアコンテンツを同じように処理するわけではないため、著者はリーディングシステムがそのコンテンツをユーザーにどのように表示するかを想定できません。リーディングシステムは、そのようなコンテンツをspineに配置されている場所に表示する場合と、そうではない場合があります。

したがって、非リニアコンテンツは、その性質と目的がそれ自体で明確である必要があります。読者がリンクをたどって非リニアコンテンツに到達したとき、その目的を知っているとは限りません。

例えば、解答キーの場合、クイズの解答が続くことを示す見出しでファイルが始まるようにします。画像の説明を別の非リニアファイルに配置する場合は、各説明がどの画像の説明なのか明確になるようにします。

非リニアコンテンツのもう 1 つのオプションは、リニアの読書体験への影響が最も少ない場所に配置することです。たとえば、画像の説明とポップアウト画像をspineのすべてのリニアコンテンツの後に配置できます (例 2を参照)。 spineの最後に配置することは、コンテンツを適切に説明できない場合に特に便利です。たとえば、画像の拡大バージョンには、明示的なキャプションが適さない場合があります。

EPUB 3 の非リニアコンテンツ要件は、EPUB 2 とは 1 つの重要な点で異なります。つまり、著者はspineにすべての非リニアドキュメントへのリンクを含める必要があります。この要件により、手動で出版物のページをめくっているときにリーディングシステムが非リニアコンテンツをレンダリングするかどうかに関係なく、読者が非リニアコンテンツにアクセスできるようになります。

ほとんどの場合、著者はリニアコンテンツからリンクされていない非リニアコンテンツを含めないことが一般的であるため、この要件を満たすのは困難ではありません。既知の問題の 1 つは、spineに非リニアの表紙を含めることです (例 1を参照)。このドキュメントへのリンク要件を満たすには、 landmarks navに表紙へのリンクを含めることができます。

関連リンク