-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Progression/direction between resources #126
Comments
@laudrain this is the issue that I mentioned during our call today. Could you post additional use cases and example as well? |
How would this infoset metadata relate to the page progression direction of the primary HTML resources of the publication? What if the infoset value contradicts the value in some or all of the primary resources? |
Page progression is about the reading direction of a single resource. This is about the progression between resources. When each resource of a publication is scrolled vertically, the reading direction can't contradict this value. Paged media is different though. Setting That said, this inconsistency goes beyond that. For example, what happens if the first chapter uses |
@HadrienGardeur just for my understanding: why isn't the default reading order enough? After all, that array would give me what the "next" resources is by default... |
@iherman the default reading order is enough to know what the next and previous resource in the reading order. But it does not contain any information about the direction of this progression. Multiple affordances need this info as well:
|
Can you outline some common scenarios where both reading order and page progression as defined in HTML/CSS is not enough information? Most existing reading systems use the same gesture/swipe/tap/keyboard event to move through both pages and to switch from spine item to spine item. And we also define a publication as a single unit. Do you envision the right arrow key, for example, moving RTL through pages but LTR through chapters? |
It's not enough in EVERY scenario. That's not a super rare special case, this is ALWAYS needed by the reading system. |
I'll ping other people involved in RS development as well to chime in @danielweck @fchasen |
Most reading systems implement swipe/tap/keyboard by either:
Neither solution is ideal, but that's all we have. What you're suggesting @dauwhe (using only what's present in HTML/CSS) is problematic on many levels:
|
So yes, if existing Reading Systems are any clue, this is quite a compat/interop nightmare at the moment, as there are awful issues and edge cases to deal with, and it hurts support for some languages:
|
Perhaps this should be classified as an affordance? We know that in the world of EPUB it is nice to have, but do we need the same thing online? |
This is not an affordance. This is an infoset item that is used by a number of affordances (following the reading order and user settings).
IMO this not "nice to have" but a must have.
|
Sorry to be conservative, but from a publisher perspective, the use cases are limited to progression between all resources as ltr or rtl. I don't know any book with mixed page progression directions... |
|
Strictly, we already have to deal with this for Japanese publications, in which writing-modes are already mixed (so mixed directions as well since Here is a capture from the sample provided with the EBPAJ template, where right page is In paged views, the In scrolled view, one strategy to deal with this is… paginating the |
@JayPanoz, thanks. However, I am not sure I fully understand. Are these two sections within the same HTML file, or are these two separate HTML files within the book? Because we would be concerned by the latter case only; the former is a matter of having the CSS and HTML specifications right. What we are concerned about is the overall direction among the resources of the book (and I agree that we do have to do something about this). Or is it so that there are books whereby, say, the first three resources are to be understood as left to right and, then the second block of resources are to be understood as right to left? |
@iherman those are two separate HTML files.
This is something we can’t currently manage in paged views – cough |
Ouch:-) But I am not really sure what are the publication level metadata that could work. Is there an extra information that would radically change the implementation difficulties? |
Some Japanese printed book has both the right-to-left page progression direction and the left-to-right page progression progression. One half of such a book is a sequence of horizontally-written pages (from left-to-right page direction) and another sequence of vertically-written pages (from right left-to-right page direction). But such books are very rare. When EPUB 3 was being developed, the EGLS subgroup discussed such books. We concluded that (1) providing a sensible user interface is not easy and that (2) we can always Books having a single page progression may have both horizontal writing and vertical writing. One of the two is primary, while the other is only for boxed articles or special pages. The example @JayPanoz mentioned contains a special page (at the very end), which has horizontal writing. |
Thank you @murata2makoto. What I conclude (from the thread) to myself that there is indeed a need for an overall resource progression direction as part of the information set, but that only one of those is really necessary. |
Can we at least state that this metadata must have no effect on the rendering of the individual primary resources? I want to avoid situations where we try to infer things (like |
+1 to @dauwhe. Once we are listing real-world scenarios, what about intra-linear translations? This website https://www.sefaria.org/Genesis.1?lang=bi is a good example of RTL and LTR interlaced throughout. |
That shouldn’t necessarily be an issue. I won’t say I’m 100% sure it won’t be as if there is one thing I learnt during our i18n process, it’s that edge cases can be found all over the place and are still being discussed in the i18n repo. But I’m confident it’s unlikely or so edge-casey that it can be solved later. What has proved to be an issue, is when the direction of a document/HTML page (i.e. In the scroll case, it’s mostly fine i.e. you scroll vertically in both the Arabic Script and Latin so the direction of text doesn’t make any practical difference. One thing to note though, when mixing writing modes, is that you may end up with the following:
The scroll axis switches from horizontal to vertical. So, say in iBooks, That’s obviously an implementation choice but I guess it’s probably noteworthy, UX-wise. In the paged case, as long as you can’t reverse the direction of a document using CSS for instance, it is a tough issue to deal with. [edit] Added Gif and made explanation clearer (sorry if it wasn’t) |
But, well, technical details aside, yes, the conclusion is:
What’s most noteworthy, is that we got practical implementations of those cases (Apple extending the CSS multicol spec to handle this both in paged and scroll, and I can remember other apps are addressing it as well). Then well, you also have authors trying to go from one writing-mode to the other with a switch. BTW, the author of this article can probably give a lot of details in this regard. |
Sorry, missed that. Definitely agree as this proved to be an issue in the real world. And, from the implementation p.o.v., I much prefer not trying to deal with it at all than triggering issues as a result of trying to solve others (in the long term, “filling the gaps” is untenable as it will create expectations others must implement as well). |
(comment from @dauwhe on the corresponding PR #142)
|
@dauwhe that would make no sense IMO to duplicate the notions. But this issue of vertical reading should be addressed. For the sake of clarity, we could consider that the reading order does not have a "left" or "right" document, but a "first" and "last" document instead. Note that the notions of "next" and "previous" fit better with first/last than left/right. Therefore "first to last" (ftl) and "last to first" (ltf) (in the ordered list representing the reading order ... or should we say reading sequence?) ) would make much more sense. |
I'm not sure I follow. Are you suggesting that we drop ltr and rtl in favour of ftl and ltf, add them as values, something else? If it's a replacement, how does this work for paginated content? Documents are read from the first document to the last independent of page progression. Page progression just reflects that there are different concepts of which direction to read in. I can go ltr or rtl when going ftl, in other words. (I'm not sure when anyone reads ltf.) Even in a scrolled environment, you'd want to know whether to move top-to-bottom or bottom-to-top as you move from the first document to the last, so I'd more favour adding ttb and btt. ftl and ltf just don't intuitively map to any direction. Maybe we can accomplish the goal of using one property, but I agree with @dauwhe that we'd need more granularity, not less. It feels like overloading, though, as we'd need allow more than one declaration so that the author can define preferred paginated and scrolled directions. |
Yes this was my suggestion: after all a manga is opened on its "last" page, then the natural reading progression is from the "last" to the "first" page of the book. But after re-reading the HTML page progression spec, that uses "left" and "right" terms (without being bothered by vertical scrolling), I finally retract this suggestion; it's better to use the same terms, as the two properties are complementary (but to equal). |
Reminds me of the I don’t have any strong feeling about that. As a developer, we haven’t implement it yet so I can’t tell what the potential issues are. As a user, I’m used to both since they are a lot of magazine apps using a I would probably have an issue with something like |
I am not sure whether the "top to bottom" issue is relevant here. The RTL/LTR choice dictates things like where menus, TOC-s, etc, are to put on the screen to make it natural to the reader (ie, if the overall progression is RTL then a UI may choose to put the pop-up window with the TOC on the right side of the screen), and this is independent on whether I paginate or scroll. I would propose to accept the PR as is, and the rest of the discussion should be under a different issue, when we get there, namely under the control of pagination vs. scrolling. (@rakutenjeff actually reminded me that this PR is, essentially, what EPUB already does.) |
@HadrienGardeur we included the relevant infoset item; can this issue be closed now? |
Yes, I think so. |
The current infoset does not contain any information about the reading progression (progression between resources) for a given publication.
In EPUB, this was handled using an attribute on the
spine
(the EPUB equivalent for the default reading order), and it's handled throughdirection
in themetadata
section of the RWPM.This is a very important information for User Agents since it's absolutely necessary for providing key affordances.
For instance, in the case of Readium-2, we use three webviews side by side on iOS and Android:
If the reading progression is set to
ltr
, then:If the reading progression is set to
rtl
, then:In addition to setting up these Webviews, this reading progression is also used for:
The text was updated successfully, but these errors were encountered: