w3c / dpub-pwp-ucr

Use Cases and Requirements for (Packaged) Web Publications
https://w3c.github.io/dpub-pwp-ucr/
Other
11 stars 19 forks source link

Expected reading system / user agent functionality for print equivalent page numbers. #205

Closed avneeshsingh closed 5 years ago

avneeshsingh commented 5 years ago

The term “page” has multiple meanings in digital publications:

  1. A dynamic page view created through techniques like CSS.
  2. Mark-up for pages inserted in the content document, which map to the page numbers of the physical books.
  3. Virtual pages that do not map to the pages of the physical book, but are added to the content just for convenience for the reader.

This issue describes the expected reading system / user agent functionality for point 2. Print equivalent page numbers.

The page numbers can be in the form of integers as well as alpha numeric strings. The user agent needs to take in account both the conditions, explained as follows:

  1. A user agent should provide go-to-page functionality. It should allow the user to type in the page number, and navigate to the corresponding page mark-up in the publication. This works very well with integers but may be a problem for alphanumeric strings, e.g. the user mistypes the string.
  2. The user agent should show the linear list of page numbers in a similar way as TOC items are displayed. The user should select the destination page string from this list and activate it. The user agent should navigate to the corresponding mark-up in the content. This functionality works well for both integer and alphanumeric page numbers.
  3. The user agent should position the destination page number at the top of the screen on best effort basis. If it is not possible, for example the last page has just one paragraph on it, then at least it should be on the visible area of the screen.
  4. The author may decide to place page mark-up with visible text in the content (e.g. span with text child) or may decide to create page mark-up without visible text (e.g. span without child text), which means that page mark-up mainly identifies a spot in the content. The user agents should be able to inform the reader about the current page number no matter it has the visible text or not.
  5. User agents that support sync media should support skippability. Skippability means the ability to remove page numbers from the reading flow based on user preferences. This means that if the user wants to go to the page, the user agent will navigate to the exact location. However, during continuous reading, the user will not hear “Page XX.” User agents should provide the user a preference for switching this behavior on or off.

Further comments

Note: During a dramatic narration the speaking of page numbers can be intrusive, which is why some people may turn the automatic reading off and skip the reading of them.

Note: doc-pagebreak aria role is very important for implementing skippability.

Note: Having a page list in the publication is important, which points to page mark-up with doc-pagebreak aria role. Providing just page mark-up with doc-pagebreak is not sufficient because it is not practical for a reading system to parse the whole book to collect the page numbers.

atyposh commented 5 years ago

These suggestions were added to a branch (https://github.com/w3c/dpub-pwp-ucr/tree/user-agents-initial) that was not merged because we ultimately decided against adding UA specification to the UCR document.