I agree with Bob’s point. There’s no reason you can’t transform into a format 
for software that can handle multiple formats and let the rendering software 
figure out what to do.

In fact, that already happens in the XSL 1.0 version of the stylesheets. If you 
have a mediaobject that contains an image or video, and you include a 
<textobject> that contains a <phrase>, the contents of the phrase are used as 
alternate text in the html. I use that all the time (thanks for implementing 
that, Bob).

If the browser decides there’s a good reason to render both at the same time 
(e.g., having a button that lets you display the alt text over or next to an 
image), that seems reasonable to me.

That said, it might be good to adjust the description of mediaobject to not be 
so definite in its ruling out of the option.

I also wonder whether the use of <textobject><phrase> for alt text should be 
made an official part of the specification.

Dick
-------
XML Press
XML for Technical Communicators
http://xmlpress.net
hamil...@xmlpress.net



> On Apr 5, 2023, at 14:00, Bob Stayton <b...@sagehill.net> wrote:
> 
> It seems ok to me.  The idea of a mediaobject is to contain markup for one or 
> more versions of the same content.  Presenting more than one of those to the 
> end user would be redundant and annoying.  If you consider the whole 
> rendering system to be the transformation from DocBook to HTML5 *and* the 
> browser rendering of that HTML5, then your use case does not seem to violate 
> the description because the consumer of the content sees only one version, 
> right?
> 
> Bob
> 
> On 4/5/2023 9:27 AM, Norm Tovey-Walsh wrote:
>> Hello world,
>> 
>> The description of mediaobject states:
>> 
>>   This element contains a set of alternative “media objects.” Exactly
>>   one object will be selected and rendered. … Under no circumstances
>>   should more than one object in a mediaobject be used or presented at
>>   the same time.
>> 
>> Bearing in mind that this markup was invented 15 or 20 years ago, long
>> before any (widely used) web browser offered anything sophisticated in
>> the way of fallback, we anticipated that markup like this:
>> 
>>   <mediaobject>
>>     <videoobject>…</videoobject>
>>     <imageobject>…</imageobject>
>>     <textobject>…</textobject>
>>   </mediaobject>
>> 
>> would be intepreted along the following lines: “… a mediaobject might
>> contain a video, a high-resolution image, a low-resolution image, a long
>> text description, and a short text description. In a ‘high-end’ online
>> system, the video is used. For print publishing, the high-resolution
>> image is used. For other online systems, either the high- or the
>> low-resolution image is used, possibly including the short text
>> description as the online alternative. In a text-only environment,
>> either the long or the short text description is used.”
>> 
>> <aside>I observe that “possibly including the short text” is, by a very
>> narrow reading, a violation of the semantics we’ve already
>> asserted.</aside>
>> 
>> Starting in V5.1 we allow more than one *data element in a *object
>> element[1] with the semantics that the downstream processor will pick
>> one. So now you can do:
>> 
>>   <mediaobject>
>>     <videoobject>
>>       <videodata type="video/mp4" …/>
>>       <videodata type="video/webm" …/>
>>     </videoobject>
>>     <imageobject>…</imageobject>
>>     <textobject>…</textobject>
>>   </mediaobject>
>> 
>> And let the browser decide whether it wants to render MP4 or WebM.
>> 
>> Trouble is, you can’t put imagedata in the videoobject wrapper, so
>> there’s no way to fallback to a still image. We could fix this by
>> changing videoobject (and audioobject) to allow imageobject, but at that
>> point, we might as well do away with the various flavors and just have
>> one wrapper. (That’s probably what we’d do today, if we were starting
>> over.)
>> 
>> Rather than make the markup even more complicated, I’m tempted to squint
>> really hard at the semantics and try to persuade you that selecting
>> multiple objects from the same mediaobject is not a violation of the
>> semantics if the rendering system will only render one of them.
>> 
>> In other words, I want a license to cheat and say that I can render that
>> example above in HTML5 as a video element containing three sources, two
>> videos and an image. What say you?
>> 
>>                                         Be seeing you,
>>                                           norm
>> 
>> [1] But the content model of imageobject weirdly forbids you from mixing
>> SVG and MathML and other formats. What is that about?
>> 
>> --
>> Norm Tovey-Walsh 
>> <n...@nwalsh.com>
>> https://norm.tovey-walsh.com/
>> 
>> 
>> 
>>> Advancement is powered by the dynamic interaction of theory and
>>> practice.
>>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: docbook-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: docbook-h...@lists.oasis-open.org

Reply via email to