w3c / wpub

W3C Web Publications
https://w3c.github.io/wpub/
Other
78 stars 19 forks source link

Mixed media in audiobook linear reading order #322

Closed bduga closed 5 years ago

bduga commented 6 years ago

During a discussion of issue #320 the question of non-audio content (for example, HTML) in the linear reading order of an audiobook came up. Specifically, is that allowed, and if it is what is the expected behavior? Potential answers are "yes" and "we are specifying a format not behaviors". Discuss!

danielweck commented 6 years ago

Possible use-case (?): free audio book sample/preview, first two "chapters" only. The 'reading order' is composed of three items:

1) first chapter (link to audio resource ch1.mp3) 2) second chapter (link to audio resource ch2.mp3) 3) "buy me" page (link to HTML resource gimme-more.html)

I expect that the reading systems / specialised user agents which will implement support for the "audio profile" of web publications (packaged or not) will offer audio-centric user experiences (typical playback-oriented user interface). I suspect that some of these audiobook "players" may in fact not be capable of rendering web pages at all, either by design (e.g. mobile app with no built-in webview) or due to technical limitations (hardware device with physical buttons, basic visual display, or no screen at all).

A mobile app should be able to launch an external web "activity" (e.g. system / installed web browser) in order to present the "buy me" page to the user, assuming the gimme-more.html document and its associated resources are available online via a public URL. However, any authentication + credentials context would be lost when transitioning from the app to a standalone web browser, so I think that this design pattern would be unrealistic in the real world. Plus, this would not work at all in the "packaged web publication" case.

So why not just state: "user agents / reading systems that do not support non-audio resources listed in the reading order should ignore/skip these resources" ?

HadrienGardeur commented 6 years ago

I think you're making several very good points @danielweck but this is a very complex issue:

Based on all of these points, I think we should carefully consider an audiobook profile where:

Such a profile would be immediately (as in not in 2020+) useful for the industry (for the supply chain as well as end users), since there's a complete lack of standard format for audiobooks.

llemeurfr commented 6 years ago

Hadrien’s proposal seems really good. A UA which is able to switch between Audio resources and html resources will not stop when processing a « Book » publication, an audio-only UA will, as it will filter non « audiobook » publications.

iherman commented 6 years ago

This issue was discussed in a meeting.

llemeurfr commented 6 years ago

The following is IMO a proper way to solve this issue: The spec states that an Audiobook publication SHOULD contain audio resources only in its reading order. And it is not expected from UAs supporting this profile that other types of resources will be played/read (be it in the reading order, resources or links). A non-normative note adds that other types of ressources MAY be present in an Audiobook so that advanced UAs may make use of them; and that in such case it is recommended to insert them in "resources".

The SHOULD means that the schema will not constrain the resource type for an Audiobook. We don't constrain the behavior of the UA but we state expectations (non-expectation in this case).

HadrienGardeur commented 6 years ago

One of the most important thing is the ability to detect when the context should switch to "audio-only" or "mostly-audio".

With our current specification, we can't look at the readingOrder and know what to expect since it won't necessarily contain any information concerning the media type of our resources (something that I still find problematic).

We could of course fetch every single resource to figure out what's returned, but this is not the most effective way of dealing with this issue.

Inspecting the value of type is therefore a good fallback and it seems reasonable to expect audio in the reading order when it is set to Audiobook.

I don't know if we'll end up with a specific profile or just a best practice document (that's up to the Audiobook TF to decide cc @wareid), but this should be within the scope of such documents.

iherman commented 6 years ago

We could of course fetch every single resource to figure out what's returned, but this is not the most effective way of dealing with this issue.

I would be fine to restrict the current approach described in the current draft so that we would have a series of common suffixes that the processor would recognize to set the media type (after all, these suffixes are part of the media type registration) and the processor would remove all the other ones. I believe that if we do recognize html, svg, jpeg, png, gif, mp3 and maybe a few more common datatypes, we would keep the goal of simplicity for the usual cases and would make the life of implementations easier.

Note, however, that in general, and unfortunately, the only secure way is to fetch the resource and see what is returned, because even if PublicationLink objects are used instead of simply URL-s, the media type may be missing or simply wrong. The Web is messy...

HadrienGardeur commented 6 years ago

I would be fine to restrict the current approach described in the current draft so that we would have a series of common suffixes that the processor would recognize to set the media type (after all, these suffixes are part of the media type registration) and the processor would remove all the other ones

I'm not a super big fan of that approach either:

iherman commented 6 years ago

This issue was discussed in a meeting.

iherman commented 5 years ago

This issue was discussed in a meeting.

wareid commented 5 years ago

PROPOSAL: Leave mixed media content out of the readingOrder and specify that supplemental content live in resources. This will allow it to be referenced in the TOC, but if a user agent cannot support it, it can be skipped.

iherman commented 5 years ago

@wareid: is it a SHOULD or MUST? I mean is it

If the publication is of type audiobook, then the reading order MUST NOT include any content other than audio.

or is it SHOULD NOT? The behaviour of the user agent is very different.

css-meeting-bot commented 5 years ago

The Publishing Working Group just discussed https://github.com/w3c/wpub/issues/322.

The full IRC log of that discussion <bigbluehat> Topic: https://github.com/w3c/wpub/issues/322
<dauwhe> Github: https://github.com/w3c/wpub/issues/322
<bigbluehat> wendyreid: the proposal is to leave mixed media content outside of the reading order
<bigbluehat> ...but keep it in the resources list
<bigbluehat> ...so it doesn't get shown unecessarily
<bigbluehat> ...this would be a MUST
<bigbluehat> ...so only audio content would be in the reading order
<wendyreid> Resolution: Leave mixed media content out of the readingOrder and specify that supplemental content live in resources. This will allow it to be referenced in the TOC, but if a user agent cannot support it, it can be skipped.
<bigbluehat> ...everything else would be in the extra resources
<bigbluehat> q+
<wendyreid> ack bigbluehat
<NickRuffilo> scribenick: nickruffilo
<NickRuffilo> Benjamin: How does a reading system know to make use of any of these resources?
<NickRuffilo> Wendy: Really good question - and not one solved currently by audiobooks - we say if the user opens them they open them
<NickRuffilo> Benjamin: I'm wondering how they know they are there. Publications conceed dependencies across multiple resources. The cover, additional notes, tabs, whatever you might want to put - because of that, there's no binding or way to say where they go or how they should show up
<tzviya> q+
<laurent_> q+
<NickRuffilo> ... so the reader or User Agent wouldn't know what to do with them. That seems like - not like what is actually wanted here.
<wendyreid> ack tzviya
<NickRuffilo> Wendy: This came up - when we discussed last time...
<NickRuffilo> Scribenick: bigbluehat
<bigbluehat> tzviya: it's basically just saying here's a link to your thing
<bigbluehat> ...with no statements of how it should be displayed
<bigbluehat> ...we don't explain how to process links
<wendyreid> ack laurent_
<bigbluehat> ...and we don't need to get into the details of that
<bigbluehat> laurent_: in the example of a cover
<bigbluehat> ...there's a rel attribute that says this is a cover
<bigbluehat> ...the user agent will know what to do with that
<bigbluehat> ...it could be the same for a pdf containing something useful
<bigbluehat> ...we could create a vocabulary of uses
<George> q+
<wendyreid> ack George
<bigbluehat> ...to instruct the UA what it should do with them
<bigbluehat> ...without it being a requirement
<bigbluehat> George: if there's a MUST here for these not to be in the reading order
<bigbluehat> ...is there a MUST that they should be pointed to from a ToC?
<bigbluehat> ...otherwise how would they be utilized?
<bigbluehat> wendyreid: this is then related to the ToC conversation then
<bigbluehat> ...laurent_ brings up a really good point about the rel attributes
<bigbluehat> ...perhaps someone can make an issue for how to express supplemental content
<bigbluehat> laurent_: ok. I can do that
<bigbluehat> wendyreid: I think it deserves it's own discussion
<laurent_> q+
<wendyreid> ack laurent_
<bigbluehat> laurent_: I just wanted to say that a vocabular of rel as a best practice is useful
<bigbluehat> ...I think we shouldn't go toward excluding content
<bigbluehat> ...I will first open the rel attributes for audiobooks
<bigbluehat> wendyreid: I don't think this blocks the issue though from being closed
<bigbluehat> q+
<bigbluehat> scribenick: NickRuffilo
<Avneesh> Should we have another issue for George's recommendation
<wendyreid> ack bigbluehat
<NickRuffilo> scribenick: nickruffilo
<tzviya> I agree with wendyreid and ask George to open a new issue
<tzviya> q+
<NickRuffilo> Benjamin: I think pivoting on types is dangerous and moves us away from the work we've done - and coming up wiht a generic model. We're trending to n+1 possible types with possible processing instructions. If the RELs are valuable for cover, they can't be best practices, they have to be known to the reading systems...
<NickRuffilo> ... It needs to be part of the data model if we expect it to be part of the data model - otherwise it is constructed however... I'm concerned with a lot of this being under specified and under-planned and not addressing accessibility and UA usage...
<NickRuffilo> ... and what the expected behavior would be if a UA sees this. You'd have a reading order thing, a resources thing, some of which is valuable, some of which is not - and it's oddly constructed without clear intentions across different agents.
<wendyreid> ack tzviya
<bigbluehat> scribenick: bigbluehat
<bigbluehat> tzviya: I want to be sure we don't backtrack
<bigbluehat> ...I believe we came to a conclusion about rel values in resources
<bigbluehat> ...I think we need to have that chat there, and not as part of this issue
<bigbluehat> ...we could ask the question about how a UA knows to render anything
<bigbluehat> ...we're focusing right now on whether the audio book profile
<bigbluehat> ...and what to do with these extra resources
<bigbluehat> ...and we should consider this in light of any web publication
<bigbluehat> ...right now, there's no specification about how these things are handled
<bigbluehat> ...my expectation is that these would simply open in a browser
<bigbluehat> ...but we should discuss these in the context of that rel issue
<bigbluehat> ...I think George should open that ToC issue, because that is a valid concern
<bigbluehat> wendyreid: George could you open an issue for your question then?
<bigbluehat> George: sure
<wendyreid> https://github.com/w3c/wpub/issues/323
<tzviya> regrets+ Mateus
wareid commented 5 years ago

Resolution: Leave mixed media content out of the readingOrder and specify that supplemental content live in resources. This will allow it to be referenced in the TOC, but if a user agent cannot support it, it can be skipped.

There will be issues opened to address the TOC and rel questions.

iherman commented 5 years ago

This issue was discussed in a meeting.