I'm trying to understand what the spec expects of reading systems. The spec says,
The Package Document metadata element has two primary functions:
- to provide a minimal set of meta information for Reading Systems to use to internally catalogue an EPUB Publication and make it available to a user (e.g., to present in a bookshelf).
Reading Systems MUST recognize the first title element in document order as the main title of the EPUB Publication (i.e., the primary one to present to users). This specification does not define how to process additional title elements.
It MUST process the Package Document in conformance with all Reading System conformance constraints expressed in Package Document Definition.
We have phrases like "must process" and "must recognize," but these do not appear to impose any requirement on the reading system.
Is an EPUB reading system required to display the book title to the user? Is a reading system obligated to have a bookshelf? Are there any testable assertions around publication metadata here?
鈥擠ave (who has been thinking about how to actually test the EPUB spec)
I am of two minds about this:
To me this suggests that the spec can/should:
I strongly prefer requirements on documents to those on programs. Requirements on documents are easily testable, but those on programs are not.
I think the two above comments are actually agreeing.
"Say what the UA can do with the metadata, but place no requirement on the UA to do so."
As you'd expect, I'm a "Spec the content, not the Reading System" kind of guy!
Requirements on documents are easily testable, but those on programs are not.
Requirements on documents are easily testable for a particular document, but they do not lead to interoperability, as they don't say what the program is supposed to do if the document does not meet the requirements.
Requirements on documents are easily testable for a particular document, but they do not lead to interoperability, as they don't say what the program is supposed to do if the document does not meet the requirements.
I think that fidelity is a better term than interoperability. For a particular class (i.e., browsers) of applications, fidelity can be achieved by making clear requirements on applications. But there are are many other applications. For example, there is an embedded EPUB3 reader which has a few buttons, a speaker, and no screen. We cannot impose the same set of requirements on such EPUB3 readers.
This seems like a big debate, and I am not sure we should go down that rabbit hole, but the web itself is meant to work on all sorts of devices, including speech only devices and/or devices with very limited input capabilities like the one you mentioned, yet specs like HTML/CSS/DOM/SVG etc are focused on requirements on the UA, not on the document. With an important caveat: they do not impose requirements on the UA's user interface. But they are focused on saying what the UA must/should/may do in all sorts of situations rather than on what the document must/should/may be, and I would argue that this model is a large part of why the web works everywhere, and why it has such good forward/backward compatibility.
+1 to not going down this rabbit (or rat) hole.
To Dave's original:
We have phrases like "must process" and "must recognize," but these do not appear to impose any requirement on the reading system.
Is an EPUB reading system required to display the book title to the user? Is a reading system obligated to have a bookshelf? Are there any testable assertions around publication metadata here?
I would answer "no, no, no" at least for EPUB 3.2.
I'm ok to impose requirements on documents not on program.
I hope Reading System of WP/PWP/EPUB4 will display the title, have a some sort of bookshelf, but that's not the scope of these spec to impose it.
Most helpful comment
I am of two minds about this:
To me this suggests that the spec can/should: