- From: Philip Jägenstedt <philipj@opera.com>
- Date: Mon, 15 Feb 2010 21:04:25 +0800
- To: "Silvia Pfeiffer" <silviapfeiffer1@gmail.com>
- Cc: "Eric Carlson" <eric.carlson@apple.com>, "HTML Accessibility Task Force" <public-html-a11y@w3.org>
On Mon, 15 Feb 2010 19:29:48 +0800, Silvia Pfeiffer
<silviapfeiffer1@gmail.com> wrote:
> On Mon, Feb 15, 2010 at 6:06 PM, Philip Jägenstedt <philipj@opera.com>
> wrote:
>> On Mon, 15 Feb 2010 14:41:53 +0800, Silvia Pfeiffer
>> <silviapfeiffer1@gmail.com> wrote:
>>
>>>> lang="" is already inherited,
>>>
>>> Where from? I am confused.
>>
>> The language of a node in HTML depends on the node itself and all
>> ancestor
>> nodes. [1] In other words lang="" is inherited and I'm saying that if
>> one
>> motivation for grouping is to save typing then we can let role="" be
>> inherited in the same way.
>
> Actually, I have wondered about @lang before and just forgotten about
> it. I don't think we can use the normal @lang attribute anyway, since
> it specifies the "primary language for the element's contents". In our
> case, we actually want it to specify the language of the resource in
> @src. So, in other such elements it was called @hreflang. We probably
> need to come up with something like this, too.
>
> About inheritance of the value: I agree that that's what is expected
> from the top-level element.
Right you are, @lang probably isn't appropriate here.
>> We've agreed on the basics for a long time, this is all about finding
>> the
>> appropriate markup/structure to express it, isn't it? I find my
>> <track><source> suggestion confusing because <track> actually contains
>> many
>> tracks. Also, it makes the nesting mandatory, as <source> cannot be
>> given as
>> a direct child to <audio>/<video> as that would conflict with the
>> resource
>> selection algorithm. <trackgroup><track> is intended to address both of
>> these problems.
>
> Oh, I didn't believe we would use <source> as the top-level, but it
> would continue to be track.
>
> So, it would be either:
>
> <track role="SUB">
> <source src="subtitles.en.srt" lang="en">
> <source src="subtitles.sv.srt" lang="sv">
> <source src="subtitles.fr.srt" lang="fr">
> <source src="subtitles.zh.srt" lang="zh">
> </track>
> <track role="captions">
> <source src="captions.en.srt" lang="en">
> <source src="captions.sv.srt" lang="sv">
> <source src="captions.fr.srt" lang="fr">
> <source src="captions.zh.srt" lang="zh">
> </track>
>
> when we want just one of the sources be chosen as the subtitle track.
>
> Or it would be:
>
> <track src="caption.en.srt" lang="en" role="CC">
> <track src="subtitles.sv.srt" lang="sv" role="SUB">
> <track src="subtitles.fr.srt" lang="fr" role="SUB">
> <track src="subtitles.zh.srt" lang="zh" role="SUB">
>
> if they were all independent and possible to be activated in parallel,
> just like the grouped tracks above can be active in parallel.
Regardless of the element names, I think that if a minimized form (where
the inner element is omitted) is allowed it should result in 4 mutually
exclusive tracks, as this is quite surely the most common case.
> I do like the re-use of <source> since it overlaps with so many
> elements with the existing <source> element - all we need to do is add
> a @srclang attribute (or something similar).
>
> Alternatively, the language could of course always be stuck into the
> @media element with other media queries. However, I'm increasingly
> wondering if the @media element is not just an framework for
> introducing new attributes without making them explicit. But that's
> another discussion altogether.
Since we all seem to be at least somewhat confused, here's a "common" and
"complex" case expressed in both <track><source> and <trackgroup><track>
markup. <track> in both forms clearly does *not* mean the same thing. Draw
your own conclusions about which is better.
Simple case: two subtitle tracks in two different languages:
In <track><source> markup:
<video src="video.ogv">
<track role="SUB">
<source src="subs.en.srt" srclang="en">
<source src="subs.sv.srt" srclang="sv">
</track>
</video>
In <trackgroup><track> markup:
<video src="video.ogv">
<track src="subs.en.srt" role="SUB" srclang="en">
<track src="subs.sv.srt" role="SUB" srclang="sv">
</video>
<trackgroup> is omitted because it is only needed when some tracks can be
enabled in parallel. If one doesn't like typing role="SUB" twice one can
use <trackgroup role="SUB">. In practice I think role="" will simply be
omitted in simple cases like this, if the selection algorithm we define
allows it.
Complex case: two subtitle tracks and two caption tracks in two different
languages:
In <track><source> markup:
<video src="video.ogv">
<track role="SUB">
<source src="subs.en.srt" srclang="en">
<source src="subs.sv.srt" srclang="sv">
</track>
<track role="CC">
<source src="cc.en.srt" srclang="en">
<source src="cc.sv.srt" srclang="sv">
</track>
</video>
In <trackgroup><track> markup:
<video src="video.ogv">
<trackgroup role="SUB">
<track src="subs.en.srt" srclang="en">
<track src="subs.sv.srt" srclang="sv">
</trackgroup>
<trackgroup role="CC">
<track src="cc.en.srt" srclang="en">
<track src="cc.sv.srt" srclang="sv">
</trackgroup>
</video>
Personally, I prefer <trackgroup><track> because it matches what I think
of as a "track" and the minimized form caters to the common case. Avoiding
<source> makes it unproblematic to make the grouping element optional, as
it cannot conflict with the resource selection algorithm for
<audio>/<video>.
I don't think that making <trackgroup> optional is a must-have feature and
would probably be OK with <*><source> if we can find a suitable value for
*.
--
Philip Jägenstedt
Core Developer
Opera Software
Received on Monday, 15 February 2010 13:05:11 UTC