A couple of weeks back we had a new release of the epub validation tool as the old one was not validating documents properly. epubcheck-1.0.3 was released to fix the XMLParser as it was not allowing multiple validators to be added.
The error was first realised by Jon Noring who noticed that Adobe’s “page-map” attribute extension, which is used in the NCX , was being validated incorrectly. This extended markup can be used for mapping page numbers (to align with those in the paper book edition).
Jon Noring has posted to several communities about the page-map issue. Here’s a short extract (slightly edited);
I recently became aware that a few publishers are using Adobe’s “page-map attribute extension” in their EPUB publications for mapping page numbers (such as in a parallel paper book edition) to the EPUB content.
In principle it is a great feature [the "page-map attribute extension"], and EPUB now provides a standard way (via NCX) to do this. However, Adobe’s proprietary implementation violates two very clear requirements in the OPF “Package” specification (OPF is one of the specs which underlie EPUB):
- See item iii — the ‘page-map’ attribute is not supported in the OPF Package Schema
- See item A-iii. A reading system must ignore all Package markup not supported by the OPF Package schema.
Therefore, any publisher wishing their EPUB to be fully conformant to the IDPF specifications MUST NOT use Adobe’s ‘page-map’ extension.
[...] Adobe implemented ‘page-map’ a long while back, and they may no longer officially support it after NCX became a requirement.
Here is Jon’s full post; Important Advisory to Publishers on EPUB Format: Do not use ‘page-map’ extension.
Jon is pushing on this point as there is actually an alternative to the ‘page-map’ functionality already built into NCX specifications.
The right way to add page markers is with NCX, using the element which is already supported in EPUB, and furthermore is fully accessible! It is trivial for reading system developers, including Adobe, to support it since they already have to support the primary navigation list in NCX — pretty much the same code can be used to support the other link lists NCX can also support, such as page mapping, list of illustrations, and pretty much any other list one wants. NCX support for multiple navigation link lists is very powerful!
I’ll make a post with more details on how to do this in the next few days.
Perhaps it’s difficult to ask publishers to give up a feature that currently works, but as more and more ePub reader systems implement EPUB in accordance with the specifications, then you might suddenly find that your eBooks start to break. I’m sure it’s worth a little effort now to save on what will be lots of effort in the future.