applicability
html
sufficient
Digital publications derived from a fixed layout source or that include static page break locations to enable common points of reference.
User agents may provide a specialized interface to the page list rather than render it directly, especially in ebook formats. Users might be presented with an input box into which to enter the page number they wish to go to, for example.
The objective of this technique is to ensure that a page-selection mechanism is provided that makes available programmatically all set page locations in the digital publication.
The page-selection mechanism provides a way to locate static page break locations (i.e., where each new page begins) within a digital publication. These locations typically come from a print equivalent of the edition and allow synchronization in, for example, a mix of print and digital publications in environments such as schools and universities.
The source of pagination is not limited to print but could match up to any statically paginated alternative, such as a PDF or even a fixed-layout EPUB (i.e., where the content does not reflow to fit the available screen size).
The order of the page break locations in a digital publication is not sequential in all cases, and not all page breaks may be represented. Publishers often rearrange and remove content from the paginated source content when creating a digital version.
Page lists are a central feature of many digital publishing formats. EPUB 3 defines the page list in its navigation document,[1] while EPUB 2 and DAISY 3 use the pageList element in the NCX.[2] The DPUB-ARIA module also includes a doc-pagelist role for identifying the navigation element containing the page list.[3]
Other publications provide a means of page navigation through a 'go to' mechanism.
To add a page list to a web-based document, the role "doc-pagelist" is added to the element (typically a nav element) that encloses the list and its title.
<nav role="doc-pagelist" aria-labelledby="pglist">
<h2 id="pglist">Page List</h2>
<ol>
<li><a href="intro.xhtml#pg1">1</a></li>
<li><a href="intro.xhtml#pg2">2</a></li>
…
</ol>
</nav>
The destinations of the page list links are usually explicit page break markers like the following:
<span id="pg1" role="doc-pagebreak" aria-label="page 1">
EPUB 3 uses the epub:type attribute to identify the page list in the navigation document. The attribute is used on a nav element with the value "page-list" (note the different hyphenation). The ARIA role attribute has no effect unless the navigation document can be directly accessed by users (i.e., the document is in the EPUB spine). Like the previous HTML example, the contents of the nav element is a list of links to the page break locations.
<nav epub:type="page-list" role="doc-pagelist" aria-labelledby="pglist">
<h2 id="pglist">Page List</h2>
<ol>
<li><a href="chapter01.xhtml#page001">1</a></li>
<li><a href="chapter01.xhtml#page002">2</a></li>
<li><a href="chapter01.xhtml#page003">3</a></li>
…
</ol>
</nav>
The EPUB 2 and DAISY 3 formats both use an XML grammar called the NCX for expressing navigation aids. The page list is defined within the ncx element using the pageList tag. Each pageTarget within this element identifies a page break, providing both a label and a destination.
<ncx xmlns="http://www.daisy.org/z3986/2005/ncx/"
version="2005-1"
xml:lang="en-US">
…
<pageList>
<pageTarget id="p1" type="normal" value="1">
<navLabel><text>1</text></navLabel>
<content src="content.html#p001"/>
</pageTarget>
<pageTarget id="p2" type="normal" value="2">
<navLabel><text>2</text></navLabel>
<content src="content.html#p002"/>
</pageTarget>
</pageList>
</ncx>
A mechanism provides the ability to enter a page number as an input and reposition the user to the matching target page location.
[1] https://www.w3.org/publishing/epub3/epub-packages.html#sec-nav-pagelist