
On 12/9/2011 2:26 PM, James Adcock wrote: [snip]
IE a NCX is NOT a TOC under version 2.0 -- Under version 3.0 they are moving to require the NCX to be a TOC.
[snip]
Version 3.0 EPUB basically shrugs its shoulders and says “Oh well the Adobe approach has won out by now.”
As a frequently ignored member of the ePub 3 working group, I can definitively say that you have this backwards. In ePub 3.0 the .ncx file has been deprecated (actually, I think the word the specification uses is "superseded"). At the outset it must be acknowledged that Adobe is the 800-pound gorilla in this fight. Virtually every suggestion that Adobe makes 1. is adopted, and 2. is designed to make ePub behave more like PDF. I don't believe that the Adobe representatives are really trying to turn ePub into PDF, just that they have lived so long in the "pages as pictures" world they just have a hard time changing their mindset (I think that this kind of ossification goes a long ways towards explaining Project Gutenberg as well.) As near as I can tell ePub 1, based on OEB 1.0, did not address the Table of Contents issue at all. In OEB 1.0 Microsoft started using the OPF "tours" element to construct a table of contents. (This approach actually still makes a lot of sense to me). Even today you can find Microsoft .lit books that have a "toctour" identified in the <guide> element. Adobe didn't like this approach, and started casting about for an alternative. They decided they liked the Navigation Control Center (.ncx) file that the Daisy Consortium used for Digital Talking Books, and kind of rammed that decision through the IDPF when ePub 1 was refined into ePub 2. With ePub 3, the working group realized that they had been "played" by Adobe, and moved back to an XHTML solution. The ePub working group is, however, enamored with HTML 5, so instead of recommending that the Table of Contents be encapsulated in a <div> element the adopted the new HTML 5 <nav> element instead. The remainder of the Table of Contents, however, is much as you would expect it to be: a header, followed by a list, where each item in the list is a link to an anchor in the contents. Ordinarily, I would create a Table of Contents thusly: <div class="toc"> <h3>Table of Contents</h3> <ul> <li><a href="#ch01">Chapter One</li> <li><a href="#ch02">Chapter Two</li> <li><a href="#ch03">Chapter Three</li> ... The new ePub 3.0 spec would have me create it like this: <nav epub:type="toc"> <h3>Table of Contents</h3> <ol> <li><a href="#ch01">Chapter One</li> <li><a href="#ch02">Chapter Two</li> <li><a href="#ch03">Chapter Three</li> ... Now HTML requires that User Agents (that which many call "browsers") ignore unknown elements and continue processing, so if I built a Table of Contents like /this/: <div class="toc"> <nav epub:type="toc"> <h3>Table of Contents</h3> <ol> <li><a href="#ch01">Chapter One</li> <li><a href="#ch02">Chapter Two</li> <li><a href="#ch03">Chapter Three</li> ... I would have a Table of contents that should be rendered correctly in all HTML User Agents, /and/ is a valid ePub 3 Table of Contents.