EPUB 3 Working Group Telco — Minutes

Date: 2022-03-11

See also the Agenda and the IRC Log


Present: Dave Cramer, Ivan Herman, Avneesh Singh, Ben Schroeter, Matthew Chan, Tzviya Siegman, Rick Johnson, Gregorio Pellegrino, Brady Duga, Zheng Xu (徐征), Charles LaPierre, Bill Kasdorf, Matt Garrish, George Kerscher, Jen Goulden, GeorgeK, Aimee Ubbink

Regrets: Toshiaki Koike, Masakazu Kitahara, Wendy Reid


Chair: Dave Cramer

Scribe(s): Matthew Chan, Brady Duga, Dave Cramer


Dave Cramer: we have a small number of items on the agenda today, let’s get started.

1. What does it mean to “support” a foreign resource? (issue epub-specs#1464)

See github issue epub-specs#1464.

Dave Cramer: given that CR is approaching we want to work through our remaining issues.
… this is one we’ve discussed many times before, re. foreign resources and manifest fallbacks.
… as you remember I made a bunch of test books, putting weird MIME types in spine with HTML fallback to see what would happen in real RS.
… much to my surprise I have not yet found one where fallback is displayed to end user.
… question is how do we interpret these tests? What are RS expected to do in these circumstances?.
… one of the most straightforward examples is if I have JSON in spine with HTML fallback, pretty much every RS will display JSON in plain text the way a browser would.
… in some sense that’s in keeping with HTML spec since that spec has instructions for how browsers should display all sorts of different MIME types.

Ivan Herman: See Dave’s reference to HTML spec on xml and text.

Dave Cramer: similar thing might happen if you try to put XML in spine, where some RS will give you the browser style tree view.

Dave Cramer: we have something of a conflict between spec and reality, so what do we do? (if anything).
… the idea of fallback is pretty woven through the spec.
… at least one RS will read the fallback chain, though unclear what it does with that data.
… so, is the test with JSON in spine (as described above) failing?.

Brady Duga: fallbacks are at the resource level, but you still have to use the resource correctly.
… a RS may well support JSON if read into a script, the test kind of misuses JSON.
… what happens if you reference an image from an audio resource?.
… you’re still going to get weird rendering even if that image is cmt.
… we still require author to use resource in sensible way.

Dave Cramer: say you are doing book about javascript and you want to hyperlink to JSON file.
… if you hyperlink to something it has to be in the spine, so it still has to work.

Brady Duga: little weird to hyperlink to JSON in spine when author could style JSON text in their style to make it look correct visually.
… so i’m not sure what it means to support it.
… but i think it’s valid to say that you’ve supported JSON if you just display to user.

Dave Cramer: we had once envisioned special purpose RS that could display docbook format, for example, but where same epub could still be displayed reasonably in non-speciality RS.

Rick Johnson: For reference as a reading system, while we support scripting, we do not support manifest fallbacks. We only support xhtml in the spine. For example, if you want to show just an image at the content doc level in Bookshelf, you must wrap it in xhtml for us to be able to present it..

Ivan Herman: re. question about whether fallback should be used - strictly speaking, your test follows what the spec allows.
… but if nobody implements fallbacks, then it becomes an underimplemented feature of epub, and a problem.
… that said, I was intrigued by your comment back in January, because we rely on the HTML spec, and the HTML spec has statement of what to do with text files.
… Reading systems rely of webview which per html display text files properly (per that spec).
… we should liberalize the spec and not force removing a usable feature.

Matt Garrish: Not sure if opening up the spine is a good idea now.
… We can just restrict to epubs for now, to avoid controversy.
… Don’t really like fallbacks, we have kind of made a mess of the html model.
… would love to get rid of it, but what happens to old content?.

Ivan Herman: We can make deprecated, or say it is under-implemented.
… But we can find a backwards compatible way of specifying it.

Dave Cramer: Can we avoid throwing away the concept, but make it clear RSes will never show the fallbacks?.

Rick Johnson: Is this a case for some standard language to say there are not two implementations and it is dangerous to use?.

Ivan Herman: Yes, under-implemented is our current term.

Zheng Xu (徐征): From implementor side, how to support foreign resources is passed of to web engine?.
… But fallback is used in some case depending on region.
… So some resource will work in RS, but not others and it can’t be wrapped in xhtml. How should we do specify this?.
… A normal browser just downloads the resource, but a RS still needs to be able to turn pages.

Matt Garrish: If we put a big scary box in the manifest section it will help, but how do we tell people?.

Brady Duga: we walks the fallback chain for something that should be displayed like html or svg.
… but we haven’t actually tested it.
… we did add this intentionally.
… we might use it in a few other places.
… we have a list of what resources we expect at a particular point.
… and find one on the list.
… responding to Matt.
… if no one supports this, their epubs are going to be stupid :).

Dave Cramer: It has been common to wrap things in <a> tags to make them bigger, but that isn’t legal in epub.

Ivan Herman: What does html spec say about images like that?.
… that is, what to do when the link is an image?.
… Whatever the html spec says is displayable, we should follow or at least allow.

Tzviya Siegman: There is also linking with iframes that has been done in epub. It is clumsy, though, agree with Ivan, we should allow what html allows.

Dave Cramer: [Reading processing model for non-html content].

GeorgeK: This was presented as an a11y issue, but don’t see any real a11y benefits here.
… So I am ok with getting rid of it.

Ivan Herman: The big issue here is a .dmg or .exe file being linked.
… Maybe we need to make this much more explicit in the security section.
… This whole procedure seem obsolete.

Brady Duga: I don’t think that security statement makes sense.
… all that security stuff depends on manifest mime types, which would be false.
… you shouldn’t trust the package here.
… we download all the resources.
… my android reader downloads everything in the manifest.
… but then if you tell me I shouldn’t download certain parts of the epub.
… I don’t think that restriction makes a lot of sense.
… we shouldn’t execute stray code from an epub.
… I’m hoping that’s clear already.
… I don’t see how we turn this into a security issue.

Dave Cramer: There is a distinction between downloading as a RS, vs as an end user clicking on a navigation link that allows me to download.

Matt Garrish: Are we saying we should allow anything in the spine?.

Dave Cramer: I don’t think we are talking about opening the spine.

Ivan Herman: I agree.

Dave Cramer: But we still have the existing epubs that have fallbacks.

Ivan Herman: We may have to separate two situations. Let’s put the spine aside for now.
… the other use case is an <a> element linked to a json file, what should the RS do?.
… I think we should just refer to the html spec in that case.
… The only reason we keep the fallback is for core media in the spine.
… Since there is existing content.
… We may end up with it being under-implemented when we exit CR.

Matt Garrish: These aren’t different cases - if it is linked to it must be in the spine.

Ivan Herman: What if it is outside the epub?.

Matt Garrish: In that case it opens in a new browser context.

Dave Cramer: Say you click on that image that isn’t in the spine, then we have all the nav issues (how do you go forward, bookmark, etc).

Matt Garrish: We have looked at pop out content, but have never gotten that far with it.

Ivan Herman: Why does it have to be in the spine?.

Matt Garrish: To avoid the nav issues.
… Once it is loaded in the viewport, there has to be a position in the spine so the RS can handle it.

Brady Duga: this is related to linear=no.

Ivan Herman: it’s in the spine but linear is no.

Brady Duga: it has to be in the spine to link to it.

Tzviya Siegman: We have had this conversation after about every revision of the spec.
… and we end up saying we can’t rewrite browser contexts, and this conversation has to be about RSes and not content.
… So it is more about RS paging and the concept of a page, and not content.

Charles LaPierre: One thing a browser has is a back button.
… Also solves multiple references to a single place.
… All problems are solved by the back button.

Ivan Herman: +1 to CharlesL.

Zheng Xu (徐征): We have a back button, but then there is still the issue with bookmarks.

Dave Cramer: History and html (ie back buttons) is really complex.

Zheng Xu (徐征): for this issue is the question how we can write a test?.

Matt Garrish: Maybe there is some discussion to resurrect about the target of an <a>.
… So you could do this without having it in the spine.

Dave Cramer: I don’t really know what epub without fallbacks looks like.
… might need something that says a fallback is not likely to be presented.

Tzviya Siegman: +1 to dauwhe.

Ivan Herman: we must solve this before cr….
… We need to say what happens to text.

Dave Cramer: RSes understand JSON.

Brady Duga: from a CR perspective a test for this is JSON in the spine, saying that if you see this means the RS supports JSON.

Dave Cramer: And that is basically the test I made.

Brady Duga: we are trying to define support, when the reading system should define it.

Dave Cramer: Agree.

Ivan Herman: We don’t want to say RSes should support types html says they should.

Brady Duga: it’s up to the RS to decide if they’re gonna use a fallback.
… if you put JSON in you’re supposed to put in a fallback. The RS chooses..

Dave Cramer: And no RSes would display the fallback.

Ivan Herman: Isn’t it correct that all RSes that are newer and rely on browser cores would display json correctly.
… We are saying for epub content to be correct you must put a fallback even though RSes don’t need that.

Brady Duga: fallbacks are not just because RSs cant display something.
… we did this because we need a11y info.
… we could display an image in the spine, no problem. But there’s no a11y and no styling..
… it may look great somewhere and looks terrible somewhere else.
… let’s have authors style things, rather than chasing reading systems.

Dave Cramer: Want time to discuss CR.

2. CR Review.

Dave Cramer: We have a lot of specs - we need people to review them all.
… This is too big a job for one person, so we made a sign up sheet.

Dave Cramer: See Volunteers’ sheet for section-by-section review of the specs.

Dave Cramer: we need volunteers.
… After people volunteer we will just assign people.

Ivan Herman: If you review and find problems, it would help if you submit github PR instead of telling us what to change.
… if you can’t then of course report it anyway!.