- From: Dae Kim <dakim@netflix.com>
- Date: Thu, 31 Mar 2016 11:06:12 -0700
- To: Glenn Adams <glenn@skynav.com>
- Cc: John Birch <John.Birch@screensystems.tv>, Pierre-Anthony Lemieux <pal@sandflow.com>, Nigel Megitt <nigel.megitt@bbc.co.uk>, TTWG <public-tt@w3.org>
- Message-ID: <CA+t+Ut_m0iNKu10T39kXyHO9t0f5pVF7=2NVRiQJpbwwCF8caQ@mail.gmail.com>
I've not seen any movement on this topic in the issues or in the meeting notes. Are we happy/content with <initial> or should we add this to next week's agenda? -Dae *Dae Kim | Video Engineer | Encoding Technology* *9420 94f4 a834 b038 2920 34b3 38ad b632 3738 942c 942f* On Wed, Feb 3, 2016 at 7:55 AM, Glenn Adams <glenn@skynav.com> wrote: > > > On Wed, Feb 3, 2016 at 3:12 AM, John Birch <John.Birch@screensystems.tv> > wrote: > >> This is probably a silly question…. But would it be feasible to have an >> *optional* ‘container’ element in TTML2 for multiple region definitions >> within which you can set style(s) that would then be inherited /inheritable >> by any child region elements? >> > > the layout element could potentially be used, but we decided a while back > to use root (tt) instead to manage inheritance by region; see [1]; of > course this is a TTML2 only feature > > [1] > https://rawgit.com/w3c/ttml2/master/spec/ttml2.html#semantics-style-inheritance-root > > >> >> >> e.g. >> >> >> >> <style xml:id="initialStyle" tts:color="white" >> tts:fontFamily="monospaceSerif" tts:textAlign="start" etc…/> >> >> >> >> <regions style =”initialStyle”> >> >> <region xml:id="r1"> >> >> <style tts:color="green"/> >> >> <style tts:textAlign="center"/> >> >> </region> >> >> <region xml:id="r2"> >> >> <style tts:color="yellow"/> >> >> <style tts:textAlign="center"/> >> >> </region> >> >> </regions> >> >> >> >> Of course such a TTML2 document could not be processed correctly by a >> TTML1 processor, but could be down converted by repeating the initial style >> values into each region definition. >> >> >> >> Alternatively, what about allowing chained referential regions… so the >> initial values are set in a region (probably one that is not referenced >> directly by content) that is then referenced by other region definitions. >> > > regions in TTML{1,2} can freely make use of the @style attribute to > referenced defined styles including chained styles > > >> >> >> Like I said, probably silly ideas but just wondering what’s possible. >> >> >> >> Best regards, >> >> John >> >> >> >> >> *John Birch | Strategic Partnerships Manager | Screen *Main Line : +44 >> 1473 831700 | Ext : 2208 | Direct Dial : +44 1473 834532 >> Mobile : +44 7919 558380 | Fax : +44 1473 830078 >> John.Birch@screensystems.tv | www.screensystems.tv | >> https://twitter.com/screensystems >> >> >> *Visit us at BVE, London Excel, 23-25 February 2016, stand C20* >> >> *P* *Before printing, think about the environment* >> >> *From:* Glenn Adams [mailto:glenn@skynav.com] >> *Sent:* 03 February 2016 06:37 >> *To:* Pierre-Anthony Lemieux >> *Cc:* Dae Kim; Nigel Megitt; TTWG >> *Subject:* Re: <initial> vs inherited >> >> >> >> >> >> >> >> On Tue, Feb 2, 2016 at 10:58 PM, Pierre-Anthony Lemieux <pal@sandflow.com> >> wrote: >> >> Hi Glenn, >> >> > firstly, this question is well formed only with respect to inheritable >> properties; it doesn't apply to non-inheritable properties; >> >> Oh. I was thinking of using chained referential styling, i.e. define a >> style element with desired 'initial' values >> >> <style xml:id="s1" tts:color="white" tts:fontFamily="monospaceSerif"/> >> >> and reference the style in all other styles, e.g. >> >> <style xml:id="s2" style="s1" tts:color="yellow"/> >> >> Why would that not work? >> >> >> >> sure, that is possible, but that isn't using inheritance or initial value >> overrides per se; use of @style is just a shorthand for direct (inline) >> specification of styles on a given element; >> >> >> TTML1 states: "The use of chained referential styling encourages the >> grouping of style specifications into general and specific sets, which >> further aids in style specification reuse." >> >> > which effectively applies to all content that may be rendered in any >> region; however, this would not be a viable >> > strategy for an inheritable property that to both region and body, such >> as tts:visible: it is only viable for an inheritable >> > property that applies to body or a descendant of body and does not >> apply to region, e.g., tts:color; >> >> Ah. An inheritable property applies to descendants in the document >> structure, and would not apply to a region into which one of these >> descendants flows. Is that right? >> >> >> >> whether a style property applies to a given element is independent of >> whether it is inheritable or not; each property specifies which elements it >> applies to (semantically) and whether it is inheritable or not; >> >> >> >> tts:visible happens to be the only inheritable property that applies both >> to region and content elements >> >> >> >> >> > tts:backgroundColor >> >> Why is backgroundColor not inheritable, whereas color is, BTW? >> >> >> >> well, it is not inheritable in XSL-FO or CSS, so that is one explanation; >> see [1] for some specifics >> >> >> >> [1] >> https://www.w3.org/wiki/Inheritance_and_cascade#Why_inheritance_is_useful >> >> >> >> >> I am pretty sure it was discussed 10 years ago, but I was not present :) >> >> >> >> actually it wasn't; we simply adopted the XSL-FO semantics which adopted >> the CSS2 semantics >> >> >> >> >> Best, >> >> -- Pierre >> >> >> On Tue, Feb 2, 2016 at 8:26 PM, Glenn Adams <glenn@skynav.com> wrote: >> > >> > >> > On Tue, Feb 2, 2016 at 6:13 PM, Pierre-Anthony Lemieux < >> pal@sandflow.com> >> > wrote: >> >> >> >> Hi Glenn, >> >> >> >> Ok. What is the downside of using style inheritance to avoid having to >> >> set a property explicitly throughout the document, i.e. have all >> >> styles derive from a top-level style that overrides the initial >> >> values? >> > >> > >> > firstly, this question is well formed only with respect to inheritable >> > properties; it doesn't apply to non-inheritable properties; >> > >> > so, for an inheritable property, in TTML1, the only option is to >> specify the >> > property on the top-most inheritable element, namely, on region; so, >> e.g., >> > >> > <region tts:color='yellow'/> >> > >> > however, if there are multiple regions, one would be forced to specify >> this >> > on each region in turn; alternatively, one might specify: >> > >> > <body tts:color='yellow'>...</body> >> > >> > which effectively applies to all content that may be rendered in any >> region; >> > however, this would not be a viable strategy for an inheritable property >> > that to both region and body, such as tts:visible: it is only viable >> for an >> > inheritable property that applies to body or a descendant of body and >> does >> > not apply to region, e.g., tts:color; >> > >> > in contrast, in TTML2, again for inheritable properties only, we have >> the >> > option of either specifying the property on (1) the top-most inheritable >> > element, namely, on tt, or on (2) an initial element, which has the >> effect >> > of overriding the initial value applied to the top-most inheritable >> element; >> > >> > >> >> >> >> >> >> Best, >> >> >> >> -- Pierre >> >> >> >> On Tue, Feb 2, 2016 at 1:08 PM, Glenn Adams <glenn@skynav.com> wrote: >> >> > >> >> > >> >> > On Tue, Feb 2, 2016 at 1:27 PM, Pierre-Anthony Lemieux >> >> > <pal@sandflow.com> >> >> > wrote: >> >> >> >> >> >> Hi Glenn, >> >> >> >> >> >> Ok. What approach does XSL-FO and/or CSS take to allowing authors to >> >> >> avoid having to explicitly set a property through the document? >> >> > >> >> > >> >> > For non-inheritable properties, there is no mechanism other than >> direct >> >> > specification (XSL-FO) or a style rule or style attribute (CSS). >> Also, >> >> > initial values (for inheritable and non-inheritable properties) >> cannot >> >> > be >> >> > overridden in either XSL-FO or CSS, so defining an initial element >> for >> >> > this >> >> > purpose in TTML2 is effectively a new mechanism not found in either >> >> > XSL-FO >> >> > or CSS. >> >> > >> >> >> >> >> >> >> >> >> Thanks, >> >> >> >> >> >> -- Pierre >> >> >> >> >> >> On Tue, Feb 2, 2016 at 11:55 AM, Glenn Adams <glenn@skynav.com> >> wrote: >> >> >> > Because that is not how the semantics of styles in XSL-FO or CSS >> >> >> > work, >> >> >> > and >> >> >> > thus not how the semantics work in TTML (of any flavor). >> >> >> > >> >> >> > Specifying a non-inheritable property on an element to which that >> >> >> > property >> >> >> > does not apply is a NO-OP. >> >> >> > >> >> >> > In TTML1 we have the following (Section 8.2): >> >> >> > >> >> >> > Note: >> >> >> > >> >> >> > Due to the general syntax of this specification (and the schemas >> it >> >> >> > references) with respect to how style attributes are specified, >> >> >> > particularly >> >> >> > for the purpose of supporting inheritance, it is possible for an >> >> >> > author >> >> >> > to >> >> >> > inadvertently specify a non-inheritable style attribute on an >> element >> >> >> > that >> >> >> > applies neither to that element or any of its descendants while >> still >> >> >> > remaining conformant from a content validity perspective. Content >> >> >> > authors >> >> >> > may wish to make use of TTML content verification tools that >> detect >> >> >> > and >> >> >> > warn >> >> >> > about such usage. >> >> >> > >> >> >> > In TTML2 we promoted this to normative language (Section 10.2): >> >> >> > >> >> >> > Unless explicitly permitted by an element type definition, an >> >> >> > attribute >> >> >> > in >> >> >> > the TT Style Namespace should not be specified on an element >> unless >> >> >> > it >> >> >> > either applies to that element or denotes an inheritable style >> >> >> > property. >> >> >> > If >> >> >> > it does not apply to that element and does not denote an >> inheritable >> >> >> > style >> >> >> > property, then it must be ignored for the purpose of >> non-validation >> >> >> > processing. In the case of validation processing, such usage >> should >> >> >> > be >> >> >> > reported as a warning, or, if strict validation is performed, as >> an >> >> >> > error. >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > On Tue, Feb 2, 2016 at 12:48 PM, Pierre-Anthony Lemieux >> >> >> > <pal@sandflow.com> >> >> >> > wrote: >> >> >> >> >> >> >> >> Hi Glenn, >> >> >> >> >> >> >> >> > tts:backgroundColor >> >> >> >> >> >> >> >> Can you remind us why specifying tts:backgroundColor="X" on <tt> >> >> >> >> could >> >> >> >> not mean "set initial value of tts:backgroundColor to X"? >> >> >> >> >> >> >> >> Best, >> >> >> >> >> >> >> >> -- Pierre >> >> >> >> >> >> >> >> On Tue, Feb 2, 2016 at 11:42 AM, Glenn Adams <glenn@skynav.com> >> >> >> >> wrote: >> >> >> >> > >> >> >> >> > >> >> >> >> > 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. >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> > >> >> >> >> > >> >> >> > >> >> >> > >> >> > >> >> > >> > >> > >> >> >> >> This message may contain confidential and/or privileged information. If >> you are not the intended recipient you must not use, copy, disclose or take >> any action based on this message or any information herein. If you have >> received this message in error, please advise the sender immediately by >> reply e-mail and delete this message. Thank you for your cooperation. >> Screen Subtitling Systems Ltd. Registered in England No. 2596832. >> Registered Office: The Old Rectory, Claydon Church Lane, Claydon, Ipswich, >> Suffolk, IP6 0EQ >> >> > >
Received on Thursday, 31 March 2016 18:07:21 UTC