Some popular reading systems such as the Barnes & Noble Nook and Adobe Digital Editions do not currently have native support for EPUB 3 files. As a result, we recommend that you include the following features to ensure that your EPUB 3 file is backwards compatible with these and other EPUB 2-only reading systems.
Include the properties="cover-image"
attribute for EPUB 3:
<manifest> ... <item id="cover" href="images/cover.jpg" media-type="image/jpeg" properties="cover-image"/> ... </manifest>
and the <meta>
tag for EPUB 2 (pointing to the id of the same item in the manifest):
<metadata> ... <meta name="cover" content="cover" /> ... </metadata>
Include an NCX file in addition to your HTML Nav doc. Also, include the properties="nav"
for EPUB 3:
<manifest> ... <item id="nav" href="toc.xhtml" media-type="application/xhtml+xml" properties="nav"/> <item id="toc" href="toc.ncx" media-type="application/x-dtbncx+xml"/> ... </manifest>
Place the toc="toc"
attribute in the <spine>
element for EPUB 2
<spine toc="toc">
In your CSS, you can use the following code to ensure that the hidden PageList and Landmarks nav elements will be invisible in most EPUB 2 reading systems, as well.
nav[epub\:type~='landmarks'], nav[epub\:type~='page-list'] { display: none; visibility: hidden; }
If you prefer, you can just include a class name in the <nav>
elements and assign a display:none;
style to them in your CSS.
Include both the landmarks section for EPUB 3, and the <guide>
section for EPUB 2.
In addition, we highly recommend that you test your EPUB file in all of your targeted reading systems, paying special attention for problems related to:
<section>
, <figure>
and <aside>
that may not be understood. This can sometimes result in issues such as links to ids on these tags not working, broken/missing formatting, etc.