W3C

- DRAFT -

Timed Text Working Group Teleconference

28 Oct 2015

See also: IRC log

Attendees

Present
olivier, andreas, akitsugu, nigel, glenn, zcorpan, pierre, dae, plh, jdsmith, jean-pierre_abellio
Regrets
david_ronca
Chair
nigel
Scribe
nigel

Contents


<trackbot> Date: 28 October 2015

<scribe> scribe: nigel

Introductions

<zcorpan> Simon Pieters, Opera

Nigel Megitt, BBC

<olivier> Olivier Thereaux, BBC (obs)

<glenn> Glenn Adams, Skynav

<akitsugu> Akitsugu Baba , NHK (obs)

<dae> Dae: Netflix

<atai2> Andreas Tai, Institut für Rundfunktechnik

pal: Pierre Lemieux, MovieLabs

Agenda Review

nigel: Goes through agenda. Any proposals to change it?

pal: What are we trying to achieve on each of these topics?

atai2: Can we go for TTML <--> WebVTT mapping immediately after lunch?
... Also tomorrow morning before IMSC can we have a session on industry feedback on TTML?
... Apart from the mapping, are there any other topics we should cover re WebVTT?

zcorpan: I thought also we should have a session on WebVTT.

nigel: When would be a good time to do that?

zcorpan: Maybe this afternoon. The main thing I want to talk about is how we publish
... working drafts, and having a single URL for ED and /TR WD snapshot.

nigel: That fits with the tools discussion..

zcorpan: Can we move that to today?

nigel: I wanted plh to come along for the tools part.

HTMLCue proposal

nigel: Introduces topic - history of this coming from Glenn and Erik Lindstrom of Opera.
... The idea being to use the timing abilities of TextTrackCue to do generic HTML presentation.
... We sent a proposal to WHATWG and in summary the response was that there are
... things that we need to think about, and possible unintended consequences.

atai2: We also wanted to get developer/implementor views, which we did yesterday.

nigel: Yes, yesterday I ran a breakout session on the topic, minutes at
... http://www.w3.org/2015/10/28-htmlcue-minutes.html
... which had good attendance.

zcorpan: There were a few misunderstandings. One was that the HTMLSpec had a
... 250ms potential delay for notifying when a cue was rendered in Javascript. In fact
... that was an unrelated event called timeUpdate. There are separate cue enter and
... cue leave that have accurate timings, so Javascript events aren't going to miss a cue.
... The other conclusion was that instead of using HTMLCue it is a better idea to have
... the js parse the cue data and then render it on top of the video and not have the
... browser do that.
... Going back a step, one of the reasons is that the track element is not capable of
... executing scripts currently, or of referencing external references from the subtitle
... track itself. The assumption is, like the img element, including a subtitle file is safe
... and cannot do anything. If we allow html inside a subtitle track it can suddenly do
... lots of things that could be a security or privacy problem or both, so it is unlikely
... that browser vendors are going to jump at implementing it.

glenn: Of course we're not making the assumption that it is necessary to process
... scripts or fetch resources. It's possible to put restrictions on how the HTML is
... processed

zcorpan: As Ted pointed out, safely subsetting HTML is extremely hard and it is
... probably a bad idea to do that - it's easier and safer to start from zero and add things.

glenn: We already know about flags like sandbox flags that control the context.
... It would be one thing if we were introducing a whole new type of sandbox rather than
... using the existing mechanisms that are already implemented. For example, if we
... triggered it as a sandboxed feature, would that raise the same issues?

zcorpan: The current sandbox was not designed as a be-all security feature, but as a
... defence in depth feature for when untrusted content is also sanitised on the server,
... to catch bugs. Also there is no sandbox value that does what we want to do. It will
... still fetch external resources for instance. So we still have the problem of defining
... what is the safe subset of HTML.

atai2: I think there are 2 different views - one is on the feasibility of the technical solution,
... and the other is how to proceed. We wanted to get browser side perspective,
... but nobody stood up from the browser community to say possibly this is feasible
... instead the view was to use WebVTT with metadata payload and have js then
... render the HTML. For us it would be important to decide what to do. One proposal
... would be to follow this concept and see if that works for our use case.

zcorpan: As an aside, the same technique would work for ad display also.

nigel: This technique is to use a TextTrack whose kind attribute is metadata, then have
... javascript pull out the HTML data and render it on the onenter(). The objection I raised
... was that this subverts the purpose of the kind attribute and prevents accessible
... solutions from knowing that tracks are intended for display for accessibility.
... There was an action that Ted proposed to raise a feature request on this...

zcorpan: Yes, I can take an action item on that, to expose the accessibility preferences
... to Javascript so that scripts can honour the user preference.

<scribe> ACTION: zcorpan Raise an issue on the HTML spec to add an API to expose the user preference [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action01]

<trackbot> Created ACTION-440 - Raise an issue on the html spec to add an api to expose the user preference [on Simon Pieters - due 2015-11-05].

<inserted> zcorpan filed the issue on html https://github.com/whatwg/html/issues/292

nigel: From an architectural perspective it still seems neater to me to keep TextTrack kind
... for its intended purpose and to use different cue types to express different presentation
... semantics - VTTCue is great for expressing how VTT cues should be presented
... but not for other types.

zcorpan: I thought of another approach for HTML - to allow more than one value in the
... kind attribute, for example "metadata subtitles" where the term "metadata" just means
... 'not for direct rendering by the UA'.

atai2: I think we need to decide where to take this forward.

nigel: It feels too soon to stop this now - there's a suggestion from another browser manufacturer that they would be interested in doing some work here.

atai2: For me the next step is to analyse further the proposal to use metadata in this way.

nigel: It's worth noting that dash.js already uses this approach. They had to use VTTCue because it was the only text track cue that is implemented.

zcorpan: It's not overloading VTTCue - it was actually designed to support that.

atai2: Another part of the proposal is to use a VTT file to store the payload.

zcorpan: Yes, but you don't have to use a VTT file - you can get the cue data from anywhere
... XHR, a WebSocket, or wherever. You just need a mapping between a cue and the payload.

nigel: So we have one action - any others?

atai2: It would be good to look in depth at the approach and see how well it works.

zcorpan: If you have any questions on that I'd be happy to help.

nigel: That feels like a mini task force to go and think about this and generate a small
... document.
... That's Andreas, Nigel and Simon.

<scribe> ACTION: atai2 Kick off the analysis work on the VTTCue carrying HTML idea. [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action02]

<trackbot> Created ACTION-441 - Kick off the analysis work on the vttcue carrying html idea. [on Andreas Tai - due 2015-11-05].

TTML2 - Script layout, rubys etc.

glenn: http://www.w3.org/TR/css-ruby-1/#edge-effects
... * ruby overhang
... * ruby overflow
... * ruby reserve
... * ruby offset
... The use case for adding ruby markup to TTML2 was to support the lamba cap semantics.
... It turns out that there are a couple of edge cases that were not handled by CSS.
... In some cases CSS discussed them. In addition the Japanese Language Requirements
... document discussed them, and in others neither of them were discussed. We ended
... up defining 5 different style properties - the 4 as listed above and ruby overhang class
... In the case at the above URL there's an example where the 6 ruby characters take more
... width than the base. So you need to know how to overhang. In the top example
... white space is added around the base to make the width match, so there's no overhang.
... In the next example (example 18) the text is allowed to overhang adjacent base
... characters.
... CSS doesn't define a mechanism to control the behaviour of the rendering process
... Additionally there's ruby overflow, which comes up when you have the case of wider
... ruby than the base and the context is a line edge boundary. (Figure 19)
... Let's say you have a text alignment of start or left, then the base characters push up
... against the left edge. If the ruby text is wider than the base, and you specify a ruby
... alignment such as center. You can specify how the ruby box aligns with the base content.
... You can specify start, end, center, distribute space between, distribute space around.
... In this case if you want to center the ruby then you push the ruby box outside the line
... box to maintain the alignment. The base text has priority the text alignment. You have
... an over constrained environment, which causes the problem. There are two ways to
... resolve the overflow. You can relax the base text alignment and allow it to be pushed
... out away from the line edge so the ruby does not overflow. I call that shift base overflow.
... That maintains the alignment between ruby and base.
... The other way to do it is to keep the base alignment but relax the ruby alignment.
... I call that shift ruby. The third option I defined was overflow, which does not relax
... either constraint but allows the ruby to overflow the line area, in which case you have
... to use the tts:overflow property.

nigel: Do we need to strengthen any of the language in tts:overflow to cover this use
... case? Right now there are no 'SHALLs' in tts:overflow, only 'SHOULD's.

glenn: That's a good point. The question is here if you use overflow but the implementation
... is always clipping then you're going to lose that.

nigel: Do we know why there are only SHOULDs now?

glenn: My recollection is that we weren't sure if implementations could do clipping so we
... kept the language loose.
... The CSS spec says "This level of the specification does not provide a mechanism to control this behaviour."
... It turns out that this isn't sufficient for captions. We need a way to explicitly define this.

atai2: So would the shift base extend the containing box?

glenn: shift base would insert white space, i.e. padding, on the inside of that box to
... move the base content across to maintain the ruby alignment that has been specified.
... Then there's a question about where you allow overhang - everywhere or dependent on
... the base. It turns out that the JLR document defines classes of characters where
... overhang is permissible and where it is not permissible.

<glenn> http://www.w3.org/TR/jlreq/#adjustments_of_ruby_with_length_longer_than_that_of_the_base_characters

glenn: This shows the case when the ruby text is no larger than the corresponding base.
... So there's no problem when the ruby is less than or equal to the base size. You get
... the problem when the ruby requires more inline space than the base.
... Fig 3.79 shows this. When you do allow overhang. In one case a hiragana ruby is
... permitted to overlap a hiragana base, but not on a kanji base - doing the latter could
... be misread as the ruby applying to the kanji character. Hence beneath figure 3.80
... the points a and b describe the rules.
... Fig 3.81 and 3.82 show this.

nigel: Is this based on language dependent rules or do we need syntax to define it?

glenn: Ruby is primarily used in Japanese, very rarely in Chinese and more rarely still
... in Korean. Technically one could use the same layout features in all of those languages.
... It's even potentially useful in other languages that don't normally use ruby, like for
... annotations, like a scholarly piece on Greek, "interlinear text". To handle the
... Japanese use case this is documented fairly thoroughly in the JL Req.
... It describes the different character classes. Appendix A defines the character classes
... that are not defined the same way anywhere else. It's not in Unicode, but it is similarly
... represented in the ICU library.

pal: How much are these features used in subtitles and captions?

dae: They're not common but there's a good chance they're used at least once in a subtitle
... file.

glenn: A better question would be how often does the ruby extend beyond the base?

pal: So they are used!

glenn: Yes, they are used.

atai2: We also have the main use case that is to support Japanese captions and subtitles
... in TTML2?

dae: Yes.

glenn: CSS doesn't handle this yet but the idea is to create a CSS Ruby Level 2 spec, but
... nobody has done that and we have a need for it now. We'd be happy to submit what
... we have done as a point of comparison for CSS.

atai2: That was one of my questions. And are these requirements implemented in other
... print systems?

glenn: Yes they are. The examples in the JLReq document were developed extensively
... by people mostly in the print industry and sometimes in the interactive area.

nigel: Do we need syntax for expressing every case or is there a rule set that we can
... reference?

glenn: It needs to be author controllable. We can make the defaults be the most frequent
... case but we need to specify extensions.

nigel: It would be simpler if we could just reference JLReq if that were possible.

dae: I think it would be useful to get more industry input also.

glenn: The lambda cap defaults set an expectation of how it should always be done,
... but it doesn't always work. So people end up manually inserting white space to subvert
... the defaults. For example the default for overlapping rubys is to overlap them, so
... people insert the white space to prevent the overlap. That's because there was no
... mechanism to control this behaviour in lambda cap.
... It had a variety of issues. They are well documented.

atai2: So it wouldn't work with variable font sizes?

glenn: That's right.
... We need a solution now to handle ruby and subtitles. These are corner cases and we
... want to choose default behaviours that cover 90% if we can. Here's the basic proposal:

https://docs.google.com/document/d/1W9gHl2utlmWqOIeGtQ1uhIr8HMYBYVUw4zA1zW-gtpc

glenn: I'm planning to move these proposals into the draft spec.
... tts:rubyOverhang, with values none|allow|always|overlap, initial value allow.
... tts:rubyOverhangClass, values auto| (characterClassNamed|characterClass)+
... I enumerated the named classes as being similar to the JLReq document.

nigel: Can you do it by reference?

glenn: No, because they don't define symbols that fit our syntax.
... Then if there are unnamed character classes then they can be added manually.
... I've already implemented all of these properties in the TTV validator, and we're
... wrapping up getting the visual semantics implemented in TTPE. It was not complex
... to support the syntax.

atai2: I would back up dae here that it would be good to get feedback from the Japanese
... caption industry. It looks good to me but could be a headache for presentation
... processors to implement.

glenn: Not really. The mechanism is fairly straightforward, it's just how to parameterize
... it that's a bit more complex. You can look at the validation portion on github now.

nigel: How do we get that feedback? Any thoughts?

dae: Get it translated!

glenn: There's already a Japanese translation of the JLReq document which has lots of
... examples, so simply pointing a Japanese subtitling house to that text would be one way.
... One of the reasons I'm pushing this is to see it be as complete as possible. This is actually
... a fairly minor feature. There are other aspects that are even more complex.

<zcorpan> (i also filed https://github.com/whatwg/html/issues/293 which was raised on the breakout session)

[back from the break]

glenn: The next case is what to do about allocating space for ruby.
... [shows example where adding ruby causes base text to be pushed down]
... Normally if there's no ruby then you don't allocate block progression space for ruby
... however that creates a disconcerting effect where the baseline moves around
... depending on whether ruby is present or not.
... So we had a request to keep the baseline constant regardless of the presence of
... ruby.

pal: When would ruby come and go?

glenn: Between captions in the same region.

pal: Oh I see, you wouldn't want the baseline jumping around between captions.

glenn: You can put rubys below and above. Authors said they generally only use a single
... approach. I came up with a property called tts:rubyReserve.
... [shows example where rubys appear and disappear and the base text stays in the
... same place]
... You can specify where to reserve the space based on the values. How can that be

<scribe> ... done in CSS? Well that can't be done yet. They're working on a line grid spec for

UNKNOWN_SPEAKER: maintaining baselines. It was designed to support some complex print requirements.
... They didn't have a one off property to deal with this problem.
... Here's an example of some real Japanese subtitle text, with a combination of
... horizontal and vertical, where the vertical is sheared.

nigel: Why would they do that?
... (the sheared vertical text)

glenn: They don't have an italic face but they do use shear for emphasis.
... Here's an example including sheared Roman text in a vertical writing mode. The two
... kanji characters are upright whereas the roman characters are sideways. But the shear
... transformation on the kanji is not the same as the shear for the roman characters.
... When you start combining orientation and shear you have to adjust the sign of the
... shear in the x or y axis to get desirable results.
... Here's another interesting effect. When the amount of text in the roman text does not
... exceed the block progression dimension of the line then you put it upright. This is the
... textCombine feature with the auto value. The shear transformations have to be adjusted
... based on their context and orientation.
... Here's a case where three captions have been added: a l-r horizontal and two
... vertical modes, one on the left, one on the right.
... And another example including text emphasis dots.

pal: Today the way ruby is specified in TTML2 is through spans. So what happens if
... one of those documents is sent to a TTML 1 presentation engine?

glenn: That's quite common as default behaviour.

pal: I was told the default behaviour is not to do the ruby.

glenn: It depends who you ask. Dropping the ruby is dropping context. Some style
... guides prefer not to drop content. There's no consistent answer.

pal: So right now they would be displayed one after the other?

glenn: That's right. That's the default browser behaviour right now when the browser
... does not support ruby.

atai2: So the ruby's are displayed before the base text?

glenn: No, after, because that's the syntax. The answer is even more complex.

atai2: But the text can still be understood that way?

glenn: Yes.
... Here are some combinations of ruby with different alignments. Group ruby that
... aligns multiple ruby with multiple base. Then there's ruby before and after which
... has alignment dependent on writing mode (rtl vs ltr).
... This is all using the TTML2 semantics.
... [font shearing example]
... [anamorphic font scaling example]
... [kenda or buten text emphasis above and below and in differenc styles.
... [text combination effects] using digits mode, allowing upright to fit digits in if there's
... enough space or making them sideways if not.
... [different alignment modes]
... [shearing vs orientation dependent on sideways or upright]

nigel: Do you have an editorial task to explain the shearing semantics?

glenn: I have an editorial task to elaborate that in TTML2, interacting with the textOrientation feature.

[text emphasis] you need to center the alignment used for the dots appropriately.

[vertical variant characters] There's a Unicode document explaining how to get variant

scribe: glyphs based on the writing direction - slightly different shapes when in vertical

<dae> Unicode doc is UTR 50: http://www.unicode.org/reports/tr50/tr50-13.html

glenn: modes vs horizontal modes. For example the tilde ~ isn't just rotated, but also inverted.
... [text outline]
... [ruby overhang]
... [combination of textOrientation and textCombination]
... [arabic]
... [vertical variants] Kumamoji combination character ordered top left, top right, bottom left bottom right in horizontal.
... in vertical mode it's top left, bottom left, top right, bottom right.
... A font designed has to build that into the font, for different glyph mappings.
... [a bug that I haven't fixed yet, with text combination and shearing] The shearing on the
... Roman text is not consistent with the shearing on the Kanji.

[pointed arabic] vowel sound marks placement is dependent on the base glyph

scribe: according to the gpos tables in the font.
... Typically base glyphs have 5 or 6 attachment points and then the vowel glyphs have
... correspondingly labelled attachment points.
... This came up in IMSC because the HRM was assuming a 1:1 mapping between
... characters and glyphs.
... [mirroring in bidi context] open parenthesis in right to left appear as ), i.e. the mirrored variant of (.

nigel: Where does this hit TTML?

glenn: What's interesting is that nowhere in CSS or XSL-FO does it say which features
... must be supported when processing bidi or vertical scripts. It doesn't point out that
... you need to select the right variant characters: it's left to implementations based on
... the fact that they'll generate bug reports if they're done wrong.
... There are some areas that are going into more detail now - e.g. CSS font level 3.
... These are all relevant implementation issues that should be specced out at some point,
... somewhere.
... [korean vertical and horizontal mode]
... [chinese]
... [cyrillic]
... This is to alert you that I'm going to add some of these ruby properties to TTML2.
... I'll be pushing the draft document linked earlier into TTML2.

atai2: I have a question about where the CSS and XSL-FO gaps should be filled. If we solve them in TTML2
... and go beyond CSS then for future interoperability is that desirable?

nigel: The worst thing is if they solve the same problems with a different semantic

glenn: I propose that as soon as we get it into text we send a message to CSS WG inviting
... their comments.
... We've diverged in a number of cases from both CSS and XSL-FO in TTML1 already.

atai2: A pretty big part is compatible.

glenn: We're already syntactically non-compatible. The second part of semantic. We have
... to move ahead. Take for example disparity. We can't wait for CSS to come up with a
... solution. We also have the case that when there are existing models we use them, and
... when we need to go outside of the bounds of what is already out there and available
... then we do that, with appropriate caution and care.

nigel: The way to head towards long term alignment is to get the right people together
... and communicate about it.

atai2: I share the same concern, that CSS WG may come up with a different solution to the same problem.
... And the other thing is that quite a lot of use cases are resolved by translating TTML
... to HTML+CSS, so if we specify something that can't translate then it might cause some
... trouble, for internet captions for example.

glenn: There are different approaches. One is to use lower level constructs, like positioning
... each glyph in a separate box, or using SVG to do the formatting.

nigel: We also need to be aware that for accessibility purposes it needs to be possible
... to extract the basic text.

glenn: That's maybe where you use content identification, or metadata.

nigel: We don't have a way to identify accessible text in that way in TTML.

glenn: We have a metadata syntax but not a vocabulary for that.

nigel: That's kind of what I mean.

pal: There are two options: either publish TTML2 without the features and ask users to
... work around them, or you define the features and publish like that.

dae: Or maybe reduce the options.

glenn: The function of the spec is to be complete in the features, and then implementations
... can be restricted using the profile mechanism.

pal: So you would add all the features?

glenn: I see all of the features we're adding as being reasonable. We need also to consider
... if they can be implemented and will be. Those are the questions I ask about adding
... features. If we're specifying a feature that nobody will implement it isn't reasonable to do that.
... I've only written things that pass both tests - they are specifiable and implementable.
... For most of these cases we already have one implementation and I'll soon be able
... to demonstrate the presentation.
... I just want to make one more point about diverging from CSS. In TTMl1 we have
... the two part font specification. Very few implementations actually support it. It turned
... out that it was an essential feature for supporting lambda cap in TTML2, where there
... are lots of use cases for it. That's a divergence from CSS. We pointed out that divergence
... and got comments from them and nobody said we can't do it, just that it was different.

nigel: The thing we need to capture here is that we need to be able to derive a plain
... text version of the text regardless of the syntax needed for complex presentation.

glenn: That's not a barrier to adding ruby to the spec.

nigel: No, I wouldn't pull the ruby work because of it, but we should add the ability.

atai2: That's why it's important to get industry feedback.

glenn: I was mentioning a minute ago the "delimiter".

<scribe> ACTION: nigel Add an issue to TTML2 for ensuring plain text accessibility [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action03]

<trackbot> Created ACTION-442 - Add an issue to ttml2 for ensuring plain text accessibility [on Nigel Megitt - due 2015-11-05].

glenn: [draws example on whiteboard of ruby in HTML5 style syntax]
... Showing fallback behaviour using <rp> element to parenthesise ruby for implementations
... that don't support ruby, that are discarded by those that do support ruby.

<dae> http://www.w3.org/TR/ruby/#rp

glenn: There's a one to one mapping between the HTML5 ruby elements and the TTML2
... syntax to allow the fallback case.
... A TTML1 implementation would behave like a processor that doesn't understand ruby,
... because it would ignore the ruby attributes. A TTML2 implementation would process
... it like one that does understand ruby. I'm not sure what a naive text to speech processor
... would do - it might do the same as a TTML1 processor.

nigel: I'm checking if we have a role in the RoleRegistry for pronunciation... no we don't.

akitsugu: This ruby feature is very interesting and convenient. In Japan we implemented
... ARIB-TT based on TTML, that also has a ruby function. ARIB-TT document is parsed
... and presented by receivers. Broadcasters have specified detailed requirements for
... subtitle presentation. It is very complicated to standardise and implement. So we
... decided that the function of ruby, by referencing the xml:id of the target element
... broadcasters will write TTML with position and size of each ruby independent of the
... base character. That is the Japanese situation.

glenn: When I specified the TTML2 ruby feature set I carefully reviewed the ARIB-TT
... extensions and decided that TTML2 should support all of the semantics of the ARIB-TT
... extensions but I also decided not to adopt the semantics. I understand that ARIB did
... that in a way that would be compatible and would fit into the facilities of TTML1. Since
... in TTML2 we can include new syntax and facilities it made new possibilities that we
... could adopt. For example ARIB uses an id to link the base with the ruby. In this case
... what we ended up with in TTML2 is a model that's more closely aligned with HTML5
... by putting the base and the text in close proximity and have the structure of the markup
... dictate the binding and association. My conclusion is: 1) all of the semantics and
... meaning of the ARIB extensions can be used but with a different syntax.

pal: Have you documented the translation?

glenn: I have not: I think it would be appropriate to define the mappings, and would
... help both in communicating and understanding by the ARIB community. There is not
... a consistent view of how to treat Ruby in Japan. You get different answers depending
... on which community you ask. We should not do as non-Japanese is to make the
... mistake of thinking that there is only a single way of supporting Ruby.
... Also ruby as a phenomenon is used in other scripts. We have more corner cases to
... consider than just Japanese broadcast. We have a liaison with ARIB?

nigel: Yes, with Mr. Takechi.

glenn: What would be appropriate is to prepare a small document like Pierre suggested
... explaining how we matched the ARIB extension features into TTML2 and send it to
... our liaison requeting comments.

<scribe> ACTION: glenn Prepare a document showing mapping ARIB ruby extension features to TTML2 for use as a liaison document to ARIB. [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action04]

<trackbot> 'glenn' is an ambiguous username. Please try a different identifier, such as family name or username (e.g., gadams, ggoldste).

<scribe> ACTION: gadams Prepare a document showing mapping ARIB ruby extension features to TTML2 for use as a liaison document to ARIB. [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action05]

<trackbot> Created ACTION-443 - Prepare a document showing mapping arib ruby extension features to ttml2 for use as a liaison document to arib. [on Glenn Adams - due 2015-11-05].

<dae> dae: is TTML2 planning on supporting tatechuyoko and kumimoji

glenn: Kumimoji is strictly a font issue.
... If you're asking if it's possible to create kumimoji on the fly then we have received
... no requests for that.

dae: So tts:textCombine is how we author tatechuyoko?

glenn: Yes, that's how we do it.

nigel: [adjourn for lunch - back at 1315]
... [restart]

Tools

nigel: The basic proposal is to move away from Tracker and Mercurial onto github for tracking issues and for managing versions.
... There's no plan to change the basic processes of the group, the need to review etc.

plh: The working flow I like is where you have a github repository where anyone can
... propose a pull request (PR), the group reviews and when the editor merges the PR
... it gets automatically published. You need to trust that the Editor doesn't push anything
... that would annoy the working group. In terms of dealing with issues, in today's world
... people use lots of different mechanisms for communication. If you try to find one
... communication tool then you'll never find it. All of the options have pros and cons.
... In Web Performance we use github. The mailing list is pretty much empty. Everything
... is discussed on github. Then it's easier to track, rather than looking at an email thread
... from 2 years ago. In the past we used to use the mailing list and did a bad job
... tracking issues.
... github does not have a way by default to address action items, but we assign
... issues to track it. It's not perfect. We don't give action items in web performance. We
... are productive, and life is simple for us at the moment.
... It works well because it's a small group and the Process doesn't get in the way.

zcorpan: About the process, I think a good model that's used for the HTML spec for example
... is that all changes to through a PR. You don't merge into master until it has been
... reviewed. The state of the master should never be in a broken state.

plh: I meant that. Sometimes you ask for a +1 etc.

zcorpan: It means that just because it's an ED published on /TR doesn't mean that
... it's ever in a broken state.

plh: When we push into a draft we're sure that it's what we want.

atai2: So the PR comes from a branch that's not on github?

plh: Look at http://www.w3.org/TR/performance-timeline-2/
... The date is yesterday - it's an official WD from W3C.
... The latest ED will be pretty much the same..

zcorpan: The process for an external contributor is the normal github PR. They fork
... the repo, make the change, submit a PR to upstream. The only difference for me as
... an editor is that my branch is in the same repo.

nigel: What if an external contributor makes a PR and we accept it - what about IPR?

plh: That's the same as today with contributions via email - it's a chair training issue!

nigel: That's for me to deal with then!

plh: Looking back at https://github.com/w3c/performance-timeline/
... We have one repo per specification, which is my recommendation. It's easier for
... people to track one document.

zcorpan: It's easier with issues too.

nigel: There's a tool for tracking contributions?

plh: We have a tool for it. It's relatively crude.

<plh> https://labs.w3.org/hatchery/ash-nazg/

nigel: How does it match a github user name with a member?

plh: That tool has a way to link github accounts with w3c accounts.
... [demonstrates how the PR process works]

pal: The EME guys decided not to adopt this. Do you know why?

plh: I don't know why.

atai2: So can you see the as-rendered HTML version incorporating the PR?

plh: Yes, using rawgit.com you can see the actual document.

zcorpan: It's not a link you can click on but there's a simple transformation you can apply to a link.

glenn: You have to use labels on the issues to track state. There's no state.

plh: There are two states, Open and Closed.

glenn: You can attach labels to each issue. In some ways it's more flexible.
... I have no objection to moving to github.

pal: There's something about squashing commits.

zcorpan: That's for cleaning the history. If you have a PR and you merge the change,
... it probably consists of one commit. Then if you get comments then you can fix it
... with a new commit on the same PR. Then if you merge it then you get two commits
... on the master. What you want is one commit without the little adjustments.
... Then you get a cleaner history. You can change the message when you squash the commits.

PROPOSAL: Move to github.

plh: You need to think about who can merge the PRs. Just the Editor?

glenn: I propose that the Editor(s) of the document merge the PRs and coordinate between themselves.

nigel: Does raising a PR create a notification?

plh: You can set up your github account to notify you.

zcorpan: It would be useful if everyone in the group clicked Watch on the repo. Then they will get the notifications.

nigel: How do we know what's reasonable in terms of review time for example?
... I think if people don't Watch then they shouldn't expect to be told about PRs to review.

plh: You have weekly telecons so you can discuss it there. Or editors can accept non-controversial changes.

zcorpan: For typo fixes the editor can just commit to master without a PR, if it doesn't need discussion.
... For an external contribution, then the Editor can merge directly without consulting the group.
... We leave it up to the Editor to make the judgement call for if a PR needs group review.
... If so then we should allow a week or whatever.

nigel: The unstated thing here is that we would also link the ED to echidna to auto-publish
... to /TR. Right now publishing to /TR is subject of a group review. This way if only the
... Editor chooses what is significant that has kind of taken something away from the group.
... So I think anyone should be able to put their hand up and say that they want a bigger review.

pal: I think the risk is that people get snowed under by emails from github.

zcorpan: We can have a rule that if the Editor notices that a change is significant then
... they email the reflector to say this PR (linked) is a major change.

plh: That's the safest way to start, then if you get more confident then you can change
... away from that if you want to.

zcorpan: The WebVTT spec currently generates an email to the mailing list for new PRs, new issues and closed issues with a script from Dominique.
... We can use that for everything.

pal: +1

zcorpan: It still notifies re minor PRs but that's fine.

pal: So the general rule is that when you see an open PR on the mailing list that you care about then you should subscribe.

zcorpan: Yes. You can subscribe to specific PRs too without subscribing to the entire repo.

atai2: I have a question regarding subsequent PRs. If you're editing a draft and there are
... several PRs, and only a subset are accepted, does it give you problems with merging?

zcorpan: You mean if there are conflicts?

atai2: Yes.

zcorpan: It doesn't cause any issues with other groups. If you have 2 PRs that change the
... same thing then you need to resolve the conflict. The editor needs to do that.

nigel: Is that when people get asked to rebase?

zcorpan: I think the Editor should rebase rather than asking the contributor to rebase.
... It's too hard for contributors because the order of merging matters.
... And only the Editor knows that.

pal: Keep your PRs small, right?!

zcorpan: yes.
... The healthiest state is to have zero open PRs but many issues.

pal: Yes.

plh: Creating a PR is cheap.

nigel: Moving on to tracker and the issues.
... but first, can staff help copy the existing Hg repo into github?

plh: Yes, I can help that.

glenn: Keep in mind that we may want to create multiple repos in github.

plh: Ah, yes.
... I can talk to the editors about that implementation detail.

pal: Tracker: I propose that we agree not to add to tracker on some fixed date. Then
... every time there's an update to an issue the Editor creates an issue on github and then
... links back to it.

zcorpan: You don't need to create an issue on github - you can point to a tracker issue from the PR.

glenn: It would be better for history to put a link in there.

pal: I want a really simple rule that is that only the Editor touches tracker.

nigel: We have a pressing issue, which is to get notifications on changes to issues.

zcorpan: If you point to a tracker issue from a PR then you can discuss the issue in the PR
... without needing to create a github issue.

nigel: Logically you might want to create more than one PR for a single issue. Then the best place to compare them is in the issue.

zcorpan: Issues are very similar to PRs. In practice it's not a problem.

plh: I can look into writing a script to create issues from the existing tracker issues.

<scribe> ACTION: plh Look at writing a script to create github issues from tracker issues. [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action06]

<trackbot> Created ACTION-444 - Look at writing a script to create github issues from tracker issues. [on Philippe Le Hégaret - due 2015-11-05].

nigel: Then there are actions - I propose to create a label for actions and use issues for them.

zcorpan: You could have an irc bot to create issues with the action label.

plh: I'm not so sure about doing that.

RESOLUTION: We will move our repositories onto github

PROPOSAL: When we are on github using the PR mechanism then we auto-publish to /TR every time there's a new ED.

plh: The way this works is you tell the tool where the working draft is and it publishes it.
... You need a manifest file - it fetches that, slurps everything and publishes it.
... The difficulty is to create the WD to publish.

glenn: Why is that difficult?

plh: How do you create your drafts?

glenn: We use ant to generate the HTML.

plh: I don't know how to integrate ant with Travis.
... The way it would work is that there would be a specific branch that Travis would watch.
... Keep using ant. When you have a version that's ready you push to that branch and
... Travis will fetch it and publish it.
... What do you use pierre?

pal: Respec.

plh: That's the easiest case - I can set it up for you in 2 minutes.
... But you can't use auto-publish when you're in CR. You have to manually publish.

pal: The problem is that people don't look at the latest version, just the most recent
... published one.

plh: My opinion is that you don't move to CR until you're ready to move to Rec because
... maintaining several documents is a pain. It minimises cost. Stay in WD and then
... when you're ready to move to Rec ask the Director for a 4 week CR when you have
... the tests and implementations ready.

pal: The only drawback is the difficulty of persuading people to implement a WD.

plh: That is the drawback.
... By August 1st 2016 the tool will support all the types of publishing. Publishing a CR
... requires Director approval. If you assert that a change is non-substantive then it can
... just go through. The bar for what is substantive is relatively low.

RESOLUTION: When we are on github using the PR mechanism then we auto-publish WDs to /TR every time there's a new commit on the relevant branch.

TTML/WebVTT Mapping Document

atai2: We decided in Las Vegas to go ahead with the draft mapping document.
... Our goal was to have something ready to discuss at this meeting. Thanks to Courtney
... Kennedy, Loretta Guarino Reid and me we did this. We met once and had some calls
... and emails to sync on the draft. Then we published it to the group for review a month or so ago.
... From the context I think we should say that there will be a change to the editorial team.

nigel: Yes, Courtney is leaving Apple at the end of this week so she has to step down as
... Editor of WebVTT and this mapping document.

atai2: So I'll stay as editor with Loretta's support. We have to see if someone else can
... also step in.
... I'll introduce the concept and structure of the document and an implementation
... and then we can look at first thoughts and issues raised so far.
... [Slide showing structure]. First, an overview of the main concepts of TTML and WebVTT.
... including layout, styling and timing. We expect that either one or both formats is not
... well known to readers of the spec, document authors or implementors.
... Then we include TTML to WebVTT mapping. We tried to partition the complexity.
... Instead of describing the mapping of all possible TTML documents, we mapped to
... an intermediate document type that makes the mapping much easier. We call
... the intermediate type TVTT.
... Then there's the WebVTT to TTML mapping part. The capabilities of WebVTT are more
... restricted so that's a shorter part.
... [TTML -> WebVTT]
... The first approach was to think how to map all TTML documents to WebVTT. We
... decided to start with a constrained profile. In Las Vegas we thought of using IMSC
... because it has a similar purpose. A lot of the features used for archiving and in the
... broadcast world are not there so it is easier to map.
... In the discussion it came out that in operation a lot of documents are not yet IMSC
... compliant so the scope needs to be wider. To ease the mapping process we thought
... about which kinds of TTML are closer to the WebVTT structure. So we created a TVTT
... intermediate type that is easier to map to WebVTT. This also has a didactic purpose to
... show that some of the concepts are the same in both formats and if you start from
... scratch with authoring TTML you might start already with something that's easy to map.
... [Constraints of TVTT] The constraints are in:
... * Timing - must be like WebVTT time expressions, not using frames or metrics.
... * Reference stylings only, no inline styling.
... * Some structures have no corresponding concept in WebVTT, like the div element.
... It's impossible to map nesting div elements to WebVTT.
... * Length metrics must be relative % metrics not pixels or cells.
... It's important that the constraint just applies to the intermediate step. The goal is
... still to be able to map from any TTML document.

pal: But this is not a constraint of TVTT, just of the mapping that is in the document?
... The mapping specified in the document does not specify mapping that includes cell units for instance.

atai2: The mapping document does describe the strategy for going from cell units etc.
... It means you stay in the TTML world until the last step to convert to WebVTT. There's
... no extra document type.

zcorpan: You're saying there's a TTML -> TTML -> WebVTT two step process?

atai2: Exactly. It's easier to explain this way.
... If you want to start with something similar to TVTT then that's fine too.

glenn: Does the transformation to TVTT involve flattening the timing hierarchy?

atai2: Yes.

glenn: The ISD mechanism is quite similar and there's already an implementation. It does
... not normalise times and positions yet.

atai2: There's more to be done. We decided against using ISD because it is not a valid TTML document.

glenn: It is in TTML2.

atai2: I know. We thought about that but decided this approach would be easier.
... Courtney spent a lot of time describing the flattening of the timing. This is also
... useful for IMSC.

glenn: One thing that would be useful would be run through some timing flattening
... scenarios to verify that the algorithm that Courtney came up with is consistent with
... the normative ISD model.

nigel: Just for clarity ISD is not normative in TTML1.

glenn: From a syntactic point of view it is not but semantically it is.

atai2: [Still to be decided/added]: display align, writing direction, unicode bidi.
... This was quite hard so we decided to leave writing mode and bidi out for the time being.
... We did not add a strategy for display align yet.

nigel: Is there a reason why it would be difficult?

zcorpan: I'm not sure about regions yet.

atai2: There's a parameter for it in WebVTT but if you do not use regions you can align
... the top left of the cue point but not the bottom, relative to the viewport.

zcorpan: Is this vertical alignment?

atai2: yes, and I think you can apply it to line.

zcorpan: i'll have to check it.

atai2: It's something we just missed. It makes it more difficult also to map writingMode
... and textAlign.
... [Proposed next Steps]
... * Further review
... * Fix errors + small edits
... * Add informative notes for clarification
... * Proof of mapping by doing it.
... It would be good to get more feedback and fix the errors that we've found. Pierre
... has already found some. Most important would be to prove that the mapping is correct
... by running through some examples and seeing if it works out.
... I have an example where some of the concepts don't work yet in browsers or we
... missed some parts. I did this based on some samples that IRT published on github.

<zcorpan> https://w3c.github.io/webvtt/#webvtt-line-cue-setting line:100%,end

zcorpan: The line thing does have a second parameter - see above. This would align

<atai2> https://github.com/IRT-Open-Source/irt-ebu-tt-d-application-samples

zcorpan: the bottom of the cue with the bottom of the viewport.

atai2: We tested some samples created for testing EBU-TT-D for rendering on TV sets.
... [ An EBU-TT-D file ] cellResolution is 50 30. fontSize is 160%.
... [ Intermediate TVTT file ] backgroundColor, fontFamily do not change. The fontSize
... does though. The cell resolution is 1 1. The fontSize is noe 5.334%. Then the font size
... is relative to the height of the viewport. So the value can be carried across to the WebVTT document.
... the alignment is now directly applied to a p element, which corresponds to a cue box in WebVTT.
... Then you have to separate the information in CSS and WebVTT.
... [ WebVTT document ] The ID for the each cue is from the p element. The timecode
... is directly mapped from the begin, and the end from the end. The size is the width
... of the region, the position the origin and so on. For the cue payload you enclose
... everything with a <lang> tag.
... because WebVTT doesn't have a whole document language setting.

nigel: I've raised an issue for that.

zcorpan: There's an issue.

atai2: Then the style is set using a class id, matched in the CSS style element on a ::cue pseudo element selector.
... And that has the corresponding style to the style element in the TTML.
... It's possible to directly map the styling from TTML to CSS.
... The font size is 5.334vh.

nigel: Is that right that vh relates to the video viewport?

zcorpan: That's right - it's normally the page viewport but specified as the video viewport for VTT.
... There's a bug in Chromium that treats vh as the page viewport, but it is a bug.

atai2: [video demo of this in action] As you can see there may be some things not supported or wrong in the implementation, so it's not quite there yet, but the mapping is correct.

zcorpan: The position is wrong because the second parameter isn't supported yet.

atai2: We can use this as guidance to show implementors what they need to do to get
... correct rendering. This is an example only.
... There are some features not supported in all browsers but there is no listing of what
... is supported in all browsers yet. It would be useful to list feature support against
... browsers to show what can be used.

nigel: Sounds like caniuse

zcorpan: Yes but much more granular.
... That would also be useful for the test suite - there is one but it is out of date. It would
... answer what is supported if we were to update the test suite.

atai2: I plan to do it with the samples and we can use those as the basis.
... This was an introduction about the status. It's important to know how you see this.
... Also we can go through the issues that have been raised. What is interesting is in general
... what was the first impression and suggestions for improvement.

glenn: I'm just scanning it but I've seen a couple of issues to report.
... I need to go over the timing preprocessing steps. A quick glance suggests it is overly
... simplified and doesn't account for all of the containment semantics.

atai2: The timing part is especially complex because TTML allows much more than WebVTT
... and for me there's also the question about what level of detail we go to in the mapping.

glenn: For example since you have the ability to express simple duration using the dur
... attribute as well as active begin and end and there's temporal clipping if for example
... a child has a longer interval than a parent. Some of those things might not have been
... considered. I'd be the first to admit that by adopting the SMIL timing model we dug
... ourselves into quite a hole. In terms of understanding what was intended in TTML we
... normatively referred to the SMIL timing model, which you can get lost in pretty quickly!
... I think this is very interesting, especially the detailed work.
... Clearly a lot of thought went into this document and its a great result that I want to find time to do it justice.
... I'm going to be thinking about my own mental model of what ISD is supposed to implement that is not necessarily elaborated in TTML1.
... Given that this is effectively a separate reading of the semantics it will be interesting
... to see how it differs from my mental model.

zcorpan: One thing I would like to discuss is what the goal of the document is. You said
... that you've tested it in browsers and the mapping doesn't work because of
... implementation bugs and missing features?

atai2: Yes.

zcorpan: Having something that is spec correct but not usable in practice seems nice
... but academic. It would be more useful if it documents something that works in
... browsers now even if the result is not valid VTT documents.

glenn: That affects the end result not the transformation itself.

atai2: It would not give people any benefit and could be dangerous if people trust the
... use of features that are not fully supported in browsers. The Web and TV IG pushed
... for this approach in the Charter of the TTWG, so the industry is concerned by having
... two formats and they have to deliver both of them. We heard on Monday there are
... already mappings out there. It's useful for people to be able to check that their mapping
... is correct. It's valid to highlight what is still controversial or not implemented and choose
... safe solutions. The community cannot wait for browsers to implement the features.

zcorpan: This document is an opportunity to find bugs in browsers, that we should report,
... and to create a test case that they can use as part of their integration process.

atai2: Is what I've shown something that can be used already?

zcorpan: Not exactly, it needs to be in a slightly different format.

<zcorpan> http://www.webvtt.org/ has a basic support table that silvia made

atai2: Jerry, for MS you're supporting both formats?

Jdsmith: We have some support for VTT but it's plain text with no styling support.
... We did work on TTML SDP for IE 8.1 but WebVTT has not been updated recently.

zcorpan: Do you support the <b> tag to make text bold for example?

Jdsmith: I haven't done any tests - my understanding is that it's just default styling, maybe not with positioning.
... We had a certain amount of enthusiasm for TTML in Windows 8.1 with SDP but we're
... the only browser that implemented it which keeps it from being useful.
... We don't have interoperation. WebVTT has better interop across other browsers. We
... didn't do anything like for Windows 10.

atai2: We should not forget that we also map from WebVTT to TTML. We should also
... look at that.

Jdsmith: We would have better support in the reverse mapping.

zcorpan: I posted a link for support of WebVTT that Silvia made. It doesn't have any
... tick marks for styling, position settings etc in IE. so it supports your statement.

atai2: Something like that would be useful with a bit more detail.

nigel: I thought this is a really good piece of work, with all the right things in that we need.
... I did file a ticket that it is implicitly scoped to the text that would be displayed, whereas
... it would be valid to extract chapterisation from div elements and create WebVTT files
... from those for use where the track kind is not subtitles or captions.

atai2: I think we wanted to keep it restricted to a simple scope.

nigel: That would be valid but it needs to be clear in the scope section at the top.

atai2: Agreed.

zcorpan: You could solve the font size problem by removing font size and using the default. Would that work?

atai2: XXXX it would be better to specify the height.

nigel: Is the rendering plane assumed to be the same as the plane of the video?

atai2: Yes it is. Pierre, is the root container in IMSC if ittp:aspectRatio isn't used the same as the video?

pal: Yes

zcorpan: The other thing to bear in mind is that the video viewport is not necessarily the same
... size as the video itself. It depends on how people want to use it. The assumptions we
... make may or may not be valid for the intended use.

atai2: Yes. we can see what is the most used option. We need to call out the assumptions
... so if people have different assumptions then they have to do something different.

nigel: Is there a way to find the size of the video?

zcorpan: The natural-width and natural-height properties give you the size of the video itself.

nigel: That's interesting. Do you also get the position of the video in the viewport?

zcorpan: There's a separate spec for that, in the CSS Object Model.

atai2: One question for me is what the process is for editing. If I make changes now
... and go through the same process for the working draft as for specs using PRs etc.
... I'm not sure if that's needed.

zcorpan: If you don't expect review then just commit to master and tell us when you have
... something you want us to review.

nigel: We can be more relaxed with a Note than a Rec track document, so that's fine.
... We still can review the commits.

atai2: Looking at the tickets that are filed:
... They all have comments added to them now.

issue-435?

<trackbot> issue-435 -- Forbidden font family names -- open

<trackbot> http://www.w3.org/AudioVideo/TT/tracker/issues/435

atai: Some generic font family names do not have a mapping into CSS.

nigel: I see that our TTML list of generic font family names is larger than the CSS set.
... Does someone need to have an issue raised to fix their list?

zcorpan: You can use "initial" in place of "default".

plh: Do we have a sense of which are used from a TTML perspective? Are all those
... values used?

glenn: This was a mapping from 608 or 708. I don't recall the details.

pal: You could map TTML generic family names to actual font names like monospaceSerif would go to Courier.

zcorpan: Extending CSS with new keywords won't help us now because they wouldn't
... be supported in browsers. We would need specific fonts written in the CSS.

pal: Every example of CSS monospaced serif font seems to include Courier.

nigel: There are two ways to tackle this - short term to make something work and more strategically by raising an issue on CSS.

zcorpan: Sure you could do that.

glenn: The 608 spec does allow for some of those generic font family names.

atai2: I think we have to use values that work now.

plh: If I was in the CSS WG I would notice that named downloadable fonts are used everywhere.

nigel: monospaceSerif is all over the web used for displaying code.

plh: One thing you could use is to map the generic font family name to a downloadable font, though I don't recommend that.

zcorpan: You can map to the commonly available fonts in a stack based on the platform that you care about.

atai2: That's a good comment.

issue-436?

<trackbot> issue-436 -- Move Overview to Annex -- open

<trackbot> http://www.w3.org/AudioVideo/TT/tracker/issues/436

atai2: I'd like more feedback about this.

pal: You have to go half way through the document to find the mapping part.

atai2: It would be good to get more views on that.

issue-437?

<trackbot> issue-437 -- #time-clock is forbidden -- open

<trackbot> http://www.w3.org/AudioVideo/TT/tracker/issues/437

atai2: That's an error that we'll fix.

action-438?

<trackbot> action-438 -- Andreas Tai to Correct feature use of #time-clock in TVTT profile -- due 2015-11-01 -- OPEN

<trackbot> http://www.w3.org/AudioVideo/TT/tracker/actions/438

atai2: This accounts for other tickets too.

issue-440?

<trackbot> issue-440 -- Add support for ittp:aspecRatio -- open

<trackbot> http://www.w3.org/AudioVideo/TT/tracker/issues/440

atai2: At the moment of editing we didn't consider any extensions, just TTML as a base.
... So IMSC has at least two extensions that it would be good to have a mapping for.
... One is forced display, the other is aspect ratio.
... aspectRatio cannot be supported in VTT but forced display can be done using tracks.
... It needs some more work.

pal: [explains ittp:aspectRatio]

zcorpan: I see. I need to understand why this is a problem for video on the web.

pal: Because subtitles and captions are created as a single file for a single aspect ratio.
... If there's no mapping then you'll have to create two WebVTT files, one for 4:3 and one for 16:9.
... That could be in the document.

nigel: This is partly needed because people author subtitles against specific positions.

atai2: One of the benefits of this might be to identify feature requests for WebVTT.

issue-446?

<trackbot> issue-446 -- Should be a subset of IMSC1 -- open

<trackbot> http://www.w3.org/AudioVideo/TT/tracker/issues/446

atai2: Pierre raised that this should be a subset of IMSC1. It is already. The question is if you would
... like a clearer relationship, for your review.

pal: If it is then that's okay. It would be good to add it.

atai2: It's also worth noting that the region definition is different between TTML and WebVTT.

nigel: Regions are a relatively new feature in WebVTT, and we committed to keeping semantic alignment between new features in WebVTT or TTML2.
... We should check if it's too late to fix this, and we should use TTML2 regions as the comparison point.

atai2: We need to think more about the details and styling. It would make sense to be able to apply styles to regions.

zcorpan: I think the CSS WG raised that too. We can file an issue if we need to. They said that ::cue-region should be ::cue instead since the two seem like the same thing from CSS's point of view

<pal> new repo: imsc1

<glenn> new repos: ttml1 ttml2

<atai2> new repo ttml-webvtt-mapping

<glenn> default branch for ttml1, ttml2: master

<atai2> default branch for ttml-webvtt-mapping : master

IMSC

issue-428?

<trackbot> issue-428 -- Definition of identical glyph -- open

<trackbot> http://www.w3.org/AudioVideo/TT/tracker/issues/428

issue-429?

<trackbot> issue-429 -- Glyph vs code point in HRM -- open

<trackbot> http://www.w3.org/AudioVideo/TT/tracker/issues/429

pal: Then there are other issues that go back to issue-450 - it would be good to back to those now.

issue-450?

<trackbot> issue-450 -- IMSC1 Does Not Require Any Feature/Extension be supported by a Processor -- open

<trackbot> http://www.w3.org/AudioVideo/TT/tracker/issues/450

pal: To summarise, the reported issue is that IMSC 1 specifies a document profile. There are some processor requirements too.
... Primarily it is a document profile. A typical example in §7.4. It says that a document
... shall conform to the following table, which contains a set of features. Unfortunately
... if you look at how TTML1 is written the definition of the referenced features are nothing
... to do with document conformance. They are processor requirements. That doesn't
... make sense from a conformance standpoint. After much discussion and feedback from
... Andreas, Glenn and Nigel, I propose to resolve that based on what is captured in Issue-450.
... [ Shows a new table for §7.4]. The goal is to avoid big changes to the document while
... tightening up the conformance trail.
... §4 Conformance now defines 'permitted' as the use of syntax, vocabulary or attribute values that can be successfully be processed.

Jdsmith: So now it's in terms of processing.

pal: That's my proposed fix. Before I go ahead and push this I wanted to get any feedback.
... [shows proposal on screen]

group discusses details including what an empty cell means in the table.

atai2: Looks good to me.

glenn: A reader of this needs to make the connection between what is permitted in a document and what is required in a processor.
... So none of the features must be present in a document?

pal: No it says it shall be a conformant TTML 1 document.

glenn: Okay that's reasonable.
... Is it logically required that processors are required to support any feature that is shown as "permitted"?

pal: Yes [shows the thread of conformance]

glenn: Could you add a note to say that what this means is that every feature that is "permitted" is required by a document processor?

pal: Unless the feature is further constrained by the profile.

glenn: So you've subsetted some things here?

pal: Yes.

glenn: Another potential ambiguity here is that #length is generically permitted, which
... seems to allow cell to be allowed everywhere and therefore supported everywhere.

pal: Yes. I've been correcting those things. What threw me off here is that not all features
... in TTML1 have a nice note line #length. For example #fontSize doesn't mention the
... link to #fontSize-anamorphic and #fontSize-isomorphic.

glenn: That's true, we don't always indicate the hierarchy.

pal: I have to go through, and they will be corrected. For example with #bidi, we make
... no statement because some implied features are permitted, others prohibited.
... Once we're happy with the format I need to go through and clean that up.

glenn: My preference on the Conformance section would be to rewrite at least the 3rd bullet of presentation processor
... to do more than imply the connection but be more explicit.
... Anyway I think you understand my concern and you're trying to deal with it.
... I'd prefer to see the 3rd bullets on the presentation and transformation processor conformance sections.
... It would be useful to include a processor profile also.

pal: I can't do that unfortunately.

glenn: Why?

pal: Because some of the features are constrained, and there's no way to express that.

glenn: I see. That's where the careful exclusion language comes in.

issue-428?

<trackbot> issue-428 -- Definition of identical glyph -- open

<trackbot> http://www.w3.org/AudioVideo/TT/tracker/issues/428

issue-429?

<trackbot> issue-429 -- Glyph vs code point in HRM -- open

<trackbot> http://www.w3.org/AudioVideo/TT/tracker/issues/429

pal: [shows slide describing HRM and its purpose]
... The HRM assumes that the glyphs matching a code point are basically the same.
... However for some scripts that isn't the case. [shows an arabic example where the glyphs are different for the same code points based on adjacent code points]
... So the mapping is out of the window for a number of scripts.
... How to deal with that? First, express the HRM in terms of codepoints because that's
... what is in the document.
... Approach #1 is to remove the glyph buffer, set the rendering rate for (latin, greek, cyrillic) to Gcpy,
... and set the rendering rate for all other scripts to current CJK rate.
... Approach #2 is to limit the glyph buffer to (latin, greek, cyrillic, hebrew) where there is generally a one to one mapping between codepoints and glyphs.

glenn: There's another approach, which is to include a multiplier to take into account the
... likely number of textual variants. The constant could be on a per script basis as an
... approximation of what would be expected in the expansion.
... In practice e.g. in TTPE it does cache glyphs for all scripts.

nigel: What does it cache?

glenn: It caches the SVG path.

nigel: Okay - I'm just reminded about Issue-318 which is about the HRM assuming pixel copying

pal: There's just a constant that indicates the speedup - it's assumed that it's faster to
... render a glyph that has been seen before.

nigel: I see.

glenn: For complex scripts there are usually 3-4 glyphs per codepoint, up to a max of about 8.
... Hindi might have 2. Arabic could have 4-5 roughly.

pal: Do you cache all 4 or just the one that you saw?

glenn: If I don't have any context that generates that variant I would not pull it out
... of the font and cache it. I would only cache the glyph that I needed to draw.
... So a number of 4 as an expansion ratio would be conservative because it would over-
... estimate the complexity of documents but would set an upper bound on the processing
... complexity.

pal: Right now GCpy is 10x Ren for non-CJK.
... Another question is if paint on is ever used for Arabic?
... Because the glyph would change.

glenn: Live captioning applies for all scripts.

nigel: So for users would it be weird when a character is added for a previously visible glyph to change?

glenn: No it's normal - readers are used to that. Words are delimited by whitepace in
... arabic, and the orthographic symbol in indic, so the glyphs can't change that often.
... [ explains how the glyphs change for an arabic example, with isolated, initial, medial and final variants of the same code point.]
... There will be random distribution on most of those characters just like in English.
... Any letter can appear anywhere in a word. There may be slight biases but generally the distribution will be even.

pal: So a factor of 4 would be reasonable.

glenn: Some fonts have up to 60 variants per letter, for example to represent long-hand
... English, where you draw each letter slightly differently dependent on the adjacent
... ones. The point is that in the standard Arabic typography and fonts.

nigel: Now do you have everything you need to make progress Pierre, since we're out of time?

pal: Yes, I can work with Glenn to get the numbers, and propose an edit for tomorrow.

nigel: We'll adjourn for now. We've had a really good day - thanks everyone, let's do that again tomorrow!
... [Adjourns meeting]

Summary of Action Items

[NEW] ACTION: atai2 Kick off the analysis work on the VTTCue carrying HTML idea. [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action02]
[NEW] ACTION: gadams Prepare a document showing mapping ARIB ruby extension features to TTML2 for use as a liaison document to ARIB. [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action05]
[NEW] ACTION: glenn Prepare a document showing mapping ARIB ruby extension features to TTML2 for use as a liaison document to ARIB. [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action04]
[NEW] ACTION: nigel Add an issue to TTML2 for ensuring plain text accessibility [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action03]
[NEW] ACTION: plh Look at writing a script to create github issues from tracker issues. [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action06]
[NEW] ACTION: zcorpan Raise an issue on the HTML spec to add an API to expose the user preference [recorded in http://www.w3.org/2015/10/28-tt-minutes.html#action01]
 
[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.140 (CVS log)
$Date: 2015/10/29 08:25:03 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.140  of Date: 2014-11-06 18:16:30  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: RRSAgent_Text_Format (score 1.00)

Succeeded: s/NHK/NHK (obs)/
Succeeded: s/prsent+ dae//
Succeeded: s/Institut/Andreas Tai, Institut/
Succeeded: s/nd/ng/
Succeeded: s/In the case/glenn: In the case/
Succeeded: i|nigel: From an architectural perspective|zcorpan filed the issue on html https://github.com/whatwg/html/issues/292
Succeeded: s/[k/... [k/
Succeeded: s/is TTML2/dae: is TTML2/
Succeeded: s/squashing PRs/squashing commits/
Succeeded: s/difficulty of persuading people to publish a WD/difficulty of persuading people to implement a WD/
Succeeded: s/Every single example of CSS monospaced serif font is Courier./Every example of CSS monospaced serif font seems to include Courier./
Succeeded: s/They said that region's should have pseudo selectors for styling./They said that ::cue-region should be ::cue instead since the two seem like the same thing from CSS's point of view/
Succeeded: s/t./t.]/
Succeeded: s|dae/me||
Succeeded: s|skynavga||
Succeeded: s|try dae-kim||
Found Scribe: nigel
Inferring ScribeNick: nigel
Present: olivier andreas akitsugu nigel glenn zcorpan pierre dae plh jdsmith jean-pierre_abellio
Regrets: david_ronca
Found Date: 28 Oct 2015
Guessing minutes URL: http://www.w3.org/2015/10/28-tt-minutes.html
People with action items: add an atai2 gadams glenn issue nigel plh zcorpan

[End of scribe.perl diagnostic output]