See also: IRC log
<trackbot> Date: 28 October 2015
<scribe> scribe: nigel
<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
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.
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].
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]
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.
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
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]
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]