#page for ad hoc group to work on rendition metadata vocabulary.
Mission
The group is defining a specification for additional package document metadata called rendition metadata, which while primarily applicable to fixed layout content, can also be used for reflowable content. Rendition metadata provides reading systems information about the renditions in the epub so that the reading systems can select the appropriate rendition to display based upon device characteristics and user input.
Members
- Takeshi Kanai (Sony) - LEAD
- Peter Sorotokin (Adobe)
- Markus Gylling (IDPF)
- Roger Webster (Barnes & Noble)
- Jim Lester (Barnes & Noble)
- Brady Kroupa (Barnes & Noble)
- MURATA Makoto (JEPA)
- Dave Cramer (Hachette)
- Eric Freese (Aptara)
- PLEASE ADD YOUR NAME TO END
Action items
- To review if the vocabulary is sufficient.
- To choose one from the ways to set the vocabulary for each item.
General Principles
- The newly introduced items should follow ePub 3.0 schema as much as possible.
Vocabulary
| Description | The orientation property indicates appropriate orientation for the contents. Reading systems should display the content in the orientation |
| Value | portrait | landscape | auto |
| Initial | auto |
| Description | The page-spread property indicates whether the title is optimized for full screen or not. The value 'full' indicates that the content should be displayed on entire screen. The value 'double' indicates the content requires 'double-page-spread' to display. The value 'auto' indicates that Reading system can drive the way to display the content. |
| Value | full | double | auto |
| Initial | auto |
| Description | The property specifies whether the content prohibits style changes, such as font change or margin adjustment. |
| Value | true | false |
| Initial | false |
| Description | The property specifies whether the content is visible by scrolling when it overflows display area. |
| Value | true | false |
| Initial | false |
| Description | (Same as CSS Device Adaption: viewport) Provides a way for publication to specify the initial size. |
| Value | width, height, initial-scale, minimum-scale, maximum-scale, user-scalable |
| Initial | N/A |
Anything else?
Syntax
For the spine item rendition, the most appropriate one should be selected from the candidates.
metadata in OPF
Publication base
- To use the vocabulary for meta@property.
Example:
<meta property="page-spread">double</meta>
Open questions:
- A prefix for the vocabulary should be assigned?
Spine item base
- To use the vocabulary for meta@property for each item.
Example:
<metadata>
:
<meta refines="#page5" property="page-spread">double</meta>
:
<metadata>
<manifest>
:
<item id="page5" href="page5.xhtml" media-type="application/xhtml+xml" />
:
</manifest>
Open questions:
Manifest item Properties
Spine item base
- To use the vocabulary as Manifest item Properties.
Example:
<item properties="page-spread-double" id="page5" href="page5.xhtml" media-type="application/xhtml+xml" />
Open questions:
- Should we introduce a new attribute for this purpose?
Spine itemref Properties
Spine item base
- To use the vocabulary as Spine itemref Properties.
Example:
<itemref idref="page5" properties="page-spread-double" />
Open questions:
XHTML metadata
| Description | These dimensions determine the aspect ratio of a page, allowing a page to maintain its precise layout on any size device, in any orientation, for both landscape-dominant and portrait-dominant books. |
| Inherited | yes |
| Value | width, height |
| Initial | N/A |
CSS viewport
viewport property See CSS Device Adaption viewport
Open questions:
- The spec is a technical report. Should we support it at this stage?
Relation To Other Specifications
- Mapping|RenditionMappingAdHocGroup
Rendition Metadata helps in the process of selecting a rendition to view, while Rendition Mapping provides a way of expressing the relationship between content in the rendition. For instance in a document with 3 renditions - text, portrait-fixed, and landscape-fixed, the Rendition Metadata allows the Reading System to select the appropriate rendition - such as selecting between portrait and landscape as the user rotates the device. The Rendition Mapping allows the Reading system to synchronize the content while switching between those renditions.
- Others (TBD - Media Queries, CSS as the syntax for the metadata is agreed upon)
Use cases
- A publication containing double-page spread as an image file. E.g.) Comics, Children books
- The publication will be set page-spread:full to indicate that each spine item is designed to display it on entire screen.
- The publication will be set viewport to indicate its aspect ratio, expecting the content will be fit to the screen size automatically.
- The publication will be set fixed-layout:true to indicate that the content does not need any adjustments, such as font-size change, font face change and margin adjustment.
- The publication might be set orientation:landscape to indicate that the content is designed for landscape.
- A publication offering Web like user experience. E.g.) Magazines
- The publication will be set page-spread:full to indicate that each spine item is designed to display it on entire screen.
- The publication will be set overflow-scroll:true to indicate that the content requires scroll control, not pagination.
- The publication might be set fixed-layout:true to indicate that the content does not need any adjustments.
- A publication which contains single page as an image file, and needs to be displayed with the previous or next page. E.g.) Comics, Children books
- The publication will be set page-spread:double to indicate that two spine item should be displayed simultaneously.
- The publication will be set fixed-layout:true to indicate that the content does not need any adjustments.
- A publication containing a huge stuff, such as tables or maps, in a page. In most cases, the page has linear='no' attribute in the spine.
- The page will be set overflow-scroll:true to indicate that it requires scroll view to display the content.
Rendition Metadata Processing model
(To be updated)
- Parse the rendition metadata written in the target OPF and calculate 'Viewport' width and height for each EPUB Content Document following the rules below.
- orientation Calculate available Viewport dimension by using the direction of 'orientation' to render an EPUB Content Document. 'orientation:landscape' indicates that the content calls for vertical 'Viewport'. 'orientation:portrait' indicates that the content calls for horizontal 'Viewport'. 'orientation:auto' indicates that Reading Systems can display the content in anyways.
- page-spread Update the caliculated Viewport dimension by using page-spread setting. When 'page-spread:double' is set, Reading Systems should split the Viewport into two and display both at the same time. If it is 'page-spread:full', Reading Systems should use entire the Viewport for rendering the content. 'page-spread:auto' indicates that Reading Systems can display the content in anyways.
- overflow-scroll When 'overflow-scroll:true' is set, Reading Systems should display the content on scrollable view. If it is 'overflow-scroll:false' or Reading Systems have no capability to switch the view mode, Reading systems should ignore the setting and follow EPUB Content Document processing model.
- fixed-layout When 'fixed-layout:true' is set, Reading Systems should render the EPUB Content Document as it is.
- viewport Reading systems should apply the setting to each EPUB Content Document.
- Render an EPUB Content Document into the 'Viewport' following EPUB Content Document processing model.
Proposals
(To be updated.)
Hi Takeshi, I added another item: reading-direction. Thanks!
Missing from the BNFixedFormat is per manifest item or (group of manifest items) metadata. For instance we need a way of stating which group of images/xhtml files is a story/article (eg in a magazine), and have metadata on that item.
Hi Brady, Is 'reading-direction' different from 'page-progression-direction' specified in EPUB Publication 3.0 3.4.12 The spine Element?
Hi All, I'm afraid of this is interrupting. But, May I ask a question about container.xml and package document? Now I'm developping an epub reader software(windows application) and I'm wondering How should I handle epub which contains multiple package document. What is the correct way to handle multiple package document in one epub file? or is there any suggestive document to do it?
Hi Takeshi,
thank you for pointing out that attribute. Let's stick with that. I'll remove my entry from the wiki.
Best, Brady
I think this is too much of a kitchen sink approach. Are these parameters for selecting a particular opf file or layout parameters that affect rendering of a document? These should not be mixed. Layout properties should be integrated with styling (e.g. see http://dev.w3.org/csswg/css-device-adapt/ ). Rendition selection parameters should only be introduced when there is a specific use case (so perhaps these use cases should be specified), and we should look at reusing what is out there already (e.g. CSS media query string seems like a good starting point).
I've updated the first paragraph to be more explicit that the primary use of the rendition metadata is for selection, and not rendering instructions - per agreement from Friday's meeting.
Also I withdraw my Nov 2. comment about the need for article metadata: Kanai-san was polite enough to privately point out to me how this could already be accomplished using the refines attribute.
As the workshop facilitator, I have always believed that these parameters never affect rendering. They may be used for selecting one of the OPF files in a retrieved EPUB publication, and they may also be used for e-books stores to create a list of double-page-spread publications, etc.
I propose to replace the paragraph under "Mission" by the following.
The group is defining a specification for additional package document metadata called rendition metadata. These rendition metadata have no control over how EPUB publications are rendered by EPUB reading systems. Rather, the rendition metadata may be used for selecting one of the EPUB publications in a given EPUB container. They may also be used by other purposes. For example, libraries or bookstores might extract these metadata from EPUB publications for creating catalogs or allowing users to choose what is appropriate for their reading systems.
Just a few editorial tunes...
The group is defining a specification for additional EPUB Package Document metadata called Rendition Metadata. Rendition Metadata does not provide control over how EPUB publications are rendered by EPUB Reading Systems. Rather, Rendition Metadata may be used for selecting a particular EPUB publication from a collection of renditions in an EPUB container. Rendition Metdata may also be used by other purposes. For example, libraries or bookstores might extract this metadata from EPUB publications for creating catalogs or allowing users to choose what renditions are appropriate for their reading systems.
It's not clear why one needs metadata indicating things like "landscape" -- doesn't the actual aspect ratio of the content provide this information? I can see perhaps wanting an indication of whether or not there are spreads that span multiple images. These are all document-level notions, not spine-item specific.
I was thinking of my previous comment in the context of trying to sort out selecting an OPF from rendering. Landscape is a valid selection criteria, but once chosen, no additional hints are needed by the reading system.
thank you for pointing out that attribute. http://www.projectin.eu