w3c / epub-specs

Shared workspace for EPUB 3 specifications.
Other
300 stars 61 forks source link

Reading System Conformance in EPUB Publications 3.1 #807

Closed murata2makoto closed 7 years ago

murata2makoto commented 7 years ago

Reading System Conformance has four bullets:

  1. It must process the Package Document in conformance with all Reading System conformance constraints expressed in Package Document Definition.
  2. It should process presentational metadata, as expressed in Publication Rendering Metadata
  3. It must process fixed layout metadata, as expressed in Fixed-Layout Properties
  4. For fixed layouts expressed using the rendition:layout property, it must determine the rendering dimensions as defined in Fixed Layouts [Content Docs 3.1].
  5. It must ignore proprietary metadata properties that pertain to layout expressions if they conflict behaviorally with the property semantics defined in Fixed-Layout Properties.

First, why is the 2nd bullet a recommendation (SHOULD), while the rest is a requirement (MUST)?

Second, I do not understand why we need the 4th bullet when we have the 3rd bullet already.

Third, do we really need the 5th bullet? Is this already covered by the other bullets?

mattgarrish commented 7 years ago

As I recall, 2 is not a must because presentational metadata is an author suggestion. A reading system is not required to process the metadata.

The fourth bullet is there because there isn't a requirement for reading systems in the content. It points across specifications, so while we could bury it into a property definition, it's probably better to keep it where it is.

I don't see that the 5th bullet is already covered. It's covered for linked metadata, but not for anyone who uses the meta tag to add proprietary expressions.

murata2makoto commented 7 years ago

But Publication Rendering Metadata uses MAY and MUST for RSs.

I checked occurrences of modal verbs in 4.3.

1536: 4.3 Publication Rendering Metadata 1538: 4.3.1 Introduction 1548: 4.3.2 General Properties 1550: 4.3.2.1 The rendition:flow Property 1552: 4.3.2.1.1 Usage 1555:Authors may indicate a preference for dynamic pagination or scrolling. 1558:If a Reading System supports the specified rendering, it should use that method to handle overflow content, but may provide the option for Users to override the requested rendering. 1560:The default value auto must be assumed by Reading Systems as the global value if no meta element carrying this property occurs in the metadata section. 1561:Reading Systems may support only this default value. 1563:If a Reading Systems supports the rendition:layout property, it must ignore the rendition:flow property when it has been set on a spine item that also specifies the rendition:layout value pre-paginated. 1566:In addition to using the rendition:flow property, Authors may override this behavior through an appropriate style sheet declaration, if the Reading System supports such overrides. 1568: 4.3.2.1.2 Allowed values 1573:The Reading System should dynamically paginate all overflow content. 1576:The Reading System should render all Content Documents such that overflow content is scrollable, and the EPUB Publication represented by the given Rendition should be presented as one continuous scroll from spine item to spine item (except where locally overridden). 1579:The Reading System should render all Content Documents such that overflow content is scrollable, and each spine item should be presented as a separate scrollable document. 1583:The Reading System may render overflow content using its default method or a User preference, whichever is applicable. 1596: 4.3.2.1.3 Spine Overrides 1598:The rendition:flow-auto, rendition:flow-paginated, rendition:flow-scrolled-continuous, rendition:flow-scrolled-doc and properties [Rendition Vocab] may be specified locally on spine itemref elements, and will, in such cases, override the global value for the given spine item. 1600: 4.3.2.2 The rendition:align-x-center Property 1602:When the rendition:align-x-center property [Rendition Vocab] is set on a spine item, it indicates that the rendered content should be centered horizontally within the viewport or spread, as applicable. 1605:For reflowable content, Reading Systems that support this property must center each virtual page. 1608:Reading Systems may render spine items by their own design. 1615: 4.3.3 Fixed-Layout Properties 1617: 4.3.3.1 Introduction 1637: 4.3.3.2 The rendition:layout Property 1639: 4.3.3.2.1 Usage 1643:The default value reflowable must be assumed by EPUB Reading Systems as the global value if no meta element carrying this property occurs in the metadata section. 1645:When the rendition:layout property is set to pre-paginated, Reading Systems must not include space between the adjacent content slots when rendering Synthetic Spreads. 1647:When the property is set to pre-paginated for a spine item, its content dimensions must be set as defined in Fixed Layouts [Content Docs 3.1]. 1652: 4.3.3.2.2 Allowed values 1658:Reading Systems may apply dynamic pagination when rendering. 1662:Reading Systems must produce exactly one page per spine itemref when rendering. 1690: 4.3.3.2.3 Spine Overrides 1692:The rendition:layout-pre-paginated and rendition:layout-reflowable properties [Rendition Vocab] may be specified locally on spine itemref elements, and will, in such cases, override the global value for the given spine item. 1694: 4.3.3.3 The rendition:orientation property 1696: 4.3.3.3.1 Usage 1700:The default value auto must be assumed by Reading Systems as the global value if no meta element carrying this property occurs in the metadata section. 1702: 4.3.3.3.2 Allowed values 1715:Reading Systems that support multiple orientations should convey the intended orientation to the user, unless the given value is auto. 1727: 4.3.3.3.3 Spine Overrides 1729:The rendition:orientation-landscape, rendition:orientation-portrait and rendition:orientation-auto properties [Rendition Vocab] may be specified locally on spine itemref elements, and will, in such cases, override the global value for the given spine item. 1731: 4.3.3.4 The rendition:spread Property 1733: 4.3.3.4.1 Usage 1737:The default value auto must be assumed by Reading Systems as the global value if no meta element carrying this property occurs in the metadata section. 1739: 4.3.3.4.2 Allowed values 1744:Reading Systems must not incorporate spine items in a Synthetic Spread. 1747:Reading Systems should render a Synthetic Spread for spine items only when the device is in landscape orientation. 1750:Reading Systems should render a Synthetic Spread regardless of device orientation. 1754:Reading Systems may use Synthetic Spreads in specific or all device orientations as part of a display area utilization optimization process. 1778: 4.3.3.4.3 Spine Overrides 1780:The rendition:spread-landscape, rendition:spread-both, rendition:spread-auto and rendition:spread-none properties [Rendition Vocab] may be specified locally on spine itemref elements, and will, in such cases, override the global value for the given spine item. 1782: 4.3.3.5 The rendition:page-spread-* Properties 1785:By providing one of the rendition:page-spread-left, rendition:page-spread-right or rendition:page-spread-center properties [Rendition Vocab] on a spine itemref element, an Author may override this automatic population behavior by forcing that document to be placed in a particular viewport. 1787:The rendition:page-spread-left property indicates that the given spine item should be rendered in the left-hand slot in the spread, and rendition:page-spread-right that it should be rendered in the right-hand slot. 1788:The rendition:page-spread-center property indicates that the synthetic spread mode should be overridden and a single viewport rendered and positioned at the center of the screen. 1799:When a reflowable spine item follows a pre-paginated one, the reflowable one should start on the next page (as defined by the page-progression-direction) when it lacks a rendition:page-spread-* property value. 1800:If the reflowable spine item has a rendition:page-spread-* specification, it must be honored (e.g., by inserting a blank page). 1802:Similarly, when a pre-paginated spine item follows a reflowable one, the pre-paginated one should start on the next page (as defined by the page-progression-direction) when it lacks a rendition:page-spread-* property value. 1803:If the pre-paginated spine item has a rendition:page-spread-* specification, it must be honored (e.g., by inserting a blank page). 1806:To indicate that two consecutive pages represent a true spread, Authors should use the rendition:page-spread-left and rendition:page-spread-right properties on the spine items for the two adjacent EPUB Content Documents, and omit the properties on spine items where one-up or two-up presentation is equally acceptable.

mattgarrish commented 7 years ago

Yes, but the musts don't entail doing anything the reading system doesn't do by default.

It is designed so the reading system can ignore the presentational metadata and still fully conform.

murata2makoto commented 7 years ago

I don't think that your intention is clear from the text.

4.3.3.4.2 Allowed values

The following values are defined for use with the rendition:spread property:

none Reading Systems must not incorporate spine items in a Synthetic Spread.

landscape Reading Systems should render a Synthetic Spread for spine items only when the device is in landscape orientation.

both Reading Systems should render a Synthetic Spread regardless of device orientation.

Suppose that the RS create synthetic spreads even when rendition:spread is none. Then, the definition of none implies that the RS is non-conformant. The SHOULD in the second bullet in Reading System Conformance basically says that MUSTs in Publication Rendering Metadata can be ignored if there is good reason, and thus allow this RS.

mattgarrish commented 7 years ago

But that's the point. A reading system is not required to process the layout metadata. It's not a mandatory feature.

It is not non-conformant for it to ignore instructions from the author.

It's no different than that publications should conform to the accessibility specification. If they don't follow the musts in that specification, they're still valid publications. They're just not accessible.

/cc @GarthConboy

murata2makoto commented 7 years ago

Then, 4.3 Publication Rendering Metadata shouldn't use MUST.