Open bduga opened 5 years ago
The comment I left in https://github.com/w3c/wpub/issues/207#issuecomment-474189586 is applicable to this issue as well.
Quoting the relevant part here for convenience:
We have two similar issues here:
Styling on the web should be done in CSS. If we want CSS to solve styling problems that it currently does not solve, we need to work on solving them, and we need to do so by joining and participating in the CSSWG. The CSSWG is not a group of people we need to wait for, it is a place specifically set up for W3C members (that includes us) to discuss that sort of issue. For all the talk about pagination being an important feature for publications, how many of the members of the publishing community have even raised an issue or commented on an existing one in the CSS-WG? Waiting a while for "them web people" to solve our issues, and then rolling our own, separately from the web platform, when “they” don't, is a strong anti-pattern, and we're never going to make anything that is a “first-class entities on the Web” with that approach.
One of the big difficulty that would get in the way of solving this problem in CSS is that CSS does not have a concept of a publication made of multiple documents stitched together. This is very much not a limitation of CSS that we should work around, it is a limitation of the web platform itself: It's not just CSS that doesn't know how to cope with collections of documents. Neither does the DOM and all other JS APIs; neither does the Single Origin Policy and all other security features; neither does the URL… Fundamentally, this is the same problem as the previous one: waiting a while for "them web people" to solve our issues, and then rolling our own, separately from the web platform, when “they” don't. There's no they; we are W3C members. If we want the web platform to improve, we have to work at it together with the other stakeholders of the web platform, in the various WG chartered to cope with the various parts of the technology stack. I think there are 3 possible ways forward:
We engage with the relevant CGs/WGs that are or could be working on that problem, and try to develop solutions that work for the whole web platform (maybe as part of Web Package, or maybe as a mechanism in HTML). Then we use that as the basis for Web Publications being made of multiple documents.
We give up on the aspiration of making Web Publications a “first-class entities on the Web“. In that case I believe we need to recharter the Working Group, because doing the following sentences form the charter wouldn't be followed (emphasis mine):
The mission of the Publishing Working Group is to enable all Web Publications [...] to become first-class entities on the Web
It is the goal [...] to provide, in concert with other W3C Groups as outlined in Section 4.1, the necessary technologies on the Open Web Platform [...]
We give up on the concept of a publication being composed of multiple documents stitched together (aka. “the spine“ or “the reading order“). This probably requires a group recharter too, since that concept is explicitly mentioned as a goal. (edit: https://github.com/w3c/wpub/issues/302 is about that).
IMO some of these are more useful than others:
page-progression-direction
flow-*
Both linear
and viewport
should be dropped:
resources
without being in readingOrder
viewport
is deprecated anywayThe rest of them are tied to FXL and I would defer any additional comment on them until we have a proper comics/manga/BD TF.
This issue was discussed in a meeting.
As discussed on the March 18th, 2019 WP call, here is a list of rendering related metadata that epub supports and has found some traction in the publishing/reading system community. This is not an exhaustive list, it is intended to contain only those settings that seem to have actual use.
Metadata can be specified at the publication level (applies to the entire publication), the item level (applies to a section of the publication), or both.
page-progression-direction
controls the direction (left or right) that pages should turn when implementing next page functionality. Used extensively in Japan, but has traction for other languages. Frequent use and has been implemented multiple times. Critical to support, otherwise some content will be broken. May not be needed for scrolled content, or for all UIs. Publication level.flow-[auto|paginated|scrolled-continuous|scrolled-doc]
indicates whether the content is intended to be paginated or scrolled, and if scrolled whether it is continuous over multiple items. Differs from CSS@page
as that describes styling when content is paginated, this specifies whether pagination should occur. Unclear how common this is in practice, though I believe there are some implementations. Both item and publication levels, but unclear if mixed content exists.layout-[pre-paginated|reflowable]
indicates whether an item should be considered a single, high design "page", or whether it is a stream of 1 or more pages. Some overlap with theflow-*
properties, above. Widely used and implemented. Both levels, but unclear how common mixed content is.orientation-[auto|landscape|portrait]
hints about the overall aspect ratio of the content. Could be (and is) used to control how a book opens on phones and tablets (auto switches device orientation). Widely used, sometimes correctly. Often coupled withspread-*
properties. Both levels.spread-[auto|both|none|landscape|portrait]
indicates when and how synthetic spreads should be generated (that is, when to put pages side-by-side). Widely used and implemented. Both levels.page-spread-[left|right|center]
whether the first (or only) page of an item should appear on the left or right side of (or centered in) the display when showing more than 1 page (that is, in spreads). Widely used and implemented, particularly in pre-paginated content. When missing this can completely break content. Item level.viewport
defines the aspect ratio of pre-paginated content. May also appear in the document content, so may not be needed at the higher level. Both levels.linear
controls whether the item is part of the linear navigation. When true, this is part of the main publication content, when false indicates where it might appear in a printed publication but indicates that it is not part of the main, linear navigation of the publication. Implementations use this as a hint for how and where to display the content. Item level.