W3C home > Mailing lists > Public > public-tt@w3.org > February 2016

Re: <initial> vs inherited

From: Glenn Adams <glenn@skynav.com>
Date: Tue, 2 Feb 2016 12:42:45 -0700
Message-ID: <CACQ=j+fKpTmWQhgd1bwZ7VXbx5MSksB4z5UQg4rnTuqtOJCqCA@mail.gmail.com>
To: Pierre-Anthony Lemieux <pal@sandflow.com>
Cc: Dae Kim <dakim@netflix.com>, Nigel Megitt <nigel.megitt@bbc.co.uk>, TTWG <public-tt@w3.org>
On Tue, Feb 2, 2016 at 12:28 PM, Pierre-Anthony Lemieux <pal@sandflow.com>
wrote:

> Hi Glenn et al.,
>
> >Perhaps we need to review
> > uninheritable properties in TTML2 to determine if we need to upgrade
> them to
> > inheritable,
>
> I like the idea of having a single mechanism for setting an initial
> value for properties, i.e. avoid having to set a property explicitly
> throughout the document.
>
> Expanding inheritance (instead of introducing a new <initial> element)
> seems promising, and intuitive.
>

That won't be sufficient, since we will not be able to make everything
inherit. The reason for this is related to the semantics of specific style
properties. For example, the following cannot inherit:

   - tts:backgroundColor
   - tts:backgroundImage
   - tts:backgroundPosition
   - tts:backgroundRepeat
   - tts:border
   - tts:bpd
   - tts:display
   - tts:extent
   - tts:ipd
   - tts:opacity
   - tts:origin
   - tts:overflow
   - tts:padding
   - tts:position
   - tts:ruby
   - tts:unicodeBidi
   - tts:writingMode
   - tts:zIndex

Possible candidates for upgrading to inheritable are:

   - tts:displayAlign
   - tts:showBackground

So really, only these two are *potentially* able to be recast as
inheritable in TTML2. All the rest (above) rely on initial value, and, for
that matter, initial value also applies to inheritable properties at the
top of the inheritance tree (region in TTML1, tt in TTML2).

The initial element is already written into the TTML2 spec, implemented,
deployed, and previously discussed in the WG (though perhaps we didn't dive
in too deeply).


>
> > though doing so will require careful consideration of
> > interoperability with TTML1 behavior.
>
> I see two scenarios:
>
> - an author wishes to create a document that conforms to both TTML1
> and TTML2, in which case the author should set the property explicitly
> throughout the document -- this is always safe.
>
> - an author wishes to target only TTML2 processors, in which the
> author can rely on the expanded inheritance rules
>
> Are there other scenarios?
>
> Best,
>
> -- Pierre
>
> On Fri, Jan 29, 2016 at 9:33 AM, Glenn Adams <glenn@skynav.com> wrote:
> >
> >
> > On Fri, Jan 29, 2016 at 10:26 AM, Pierre-Anthony Lemieux <
> pal@sandflow.com>
> > wrote:
> >>
> >> Hi Glenn,
> >>
> >> > This could also be done in other ways, such as by specifying these
> >> > properties on the tt element,
> >> > from which all inheritance would occur (in TTML2); however, that
> >> > wouldn't work for properties
> >> > that don't inherit, like tts:showBackground, etc.
> >>
> >> Why doesn't tts:showBackground inherit?
> >
> >
> > It was originally defined on region in TTML1, which has no way for a
> region
> > to inherit. However, we are adding root element inheritance in TTML2
> (e.g.,
> > from tt to head to layout to region). Perhaps we need to review
> > uninheritable properties in TTML2 to determine if we need to upgrade
> them to
> > inheritable, though doing so will require careful consideration of
> > interoperability with TTML1 behavior.
> >
> >>
> >>
> >> Thanks,
> >>
> >> -- Pierre
> >>
> >> On Fri, Jan 29, 2016 at 9:11 AM, Glenn Adams <glenn@skynav.com> wrote:
> >> > I can provide some respond to this.
> >> >
> >> > On Fri, Jan 29, 2016 at 8:14 AM, Pierre-Anthony Lemieux
> >> > <pal@sandflow.com>
> >> > wrote:
> >> >>
> >> >> Hi Dae,
> >> >>
> >> >> > initial
> >> >>
> >> >> How does Netflix plan to use <initial>?
> >> >
> >> >
> >> > The TTT tools already support the initial element with the ttml2
> model,
> >> > and
> >> > has found it to be very useful in specifying a variety of non-default,
> >> > global style settings, such as default color and font related
> >> > properties,
> >> > etc.
> >> >
> >> > For example, the CAP2TT tool in TTT specifies a test configuration
> file
> >> > that
> >> > specifies a template for generating TTML2 output files in which is
> >> > specified
> >> > the following:
> >> >
> >> > <initial tts:fontSize="4vh"/>
> >> > <initial tts:lineHeight="5vh"/>
> >> > <initial tts:showBackground="whenActive"/>
> >> >
> >> > Here, initial is used to alter the default initial value. This could
> >> > also be
> >> > done in other ways, such as by specifying these properties on the tt
> >> > element, from which all inheritance would occur (in TTML2); however,
> >> > that
> >> > wouldn't work for properties that don't inherit, like
> >> > tts:showBackground,
> >> > etc.
> >> >
> >> > Note that be using initial to specify an explicit tts:lineHeight, then
> >> > there
> >> > is no possibility of using the default initial value of 'normal'
> (which
> >> > has
> >> > been a problem with IMSC content).
> >> >
> >> > It is also useful for redefining the default initial value of
> >> > tts:backgroundColor and resolving the platform dependent default
> initial
> >> > value of tts:color.
> >> >
> >> >
> >> >>
> >> >>
>
Received on Tuesday, 2 February 2016 19:43:34 UTC

This archive was generated by hypermail 2.3.1 : Thursday, 5 October 2017 18:24:27 UTC