- From: Nigel Megitt <nigel.megitt@bbc.co.uk>
- Date: Mon, 20 Nov 2017 12:11:38 +0000
- To: "www-style@w3.org" <www-style@w3.org>
- Message-ID: <D63876F4.4E644%nigel.megitt@bbc.co.uk>
Dear CSS WG, Thank you to all who were able to attend the joint face to face meeting with TTWG at TPAC. Minutes are available in HTML format at: https://www.w3.org/2017/11/09-tt-minutes.html#item35 Relevant extract of those minutes in text format: CSS WG and TTWG joint meeting nigel: Some quick introductions: ... Nigel Megitt, chair TTWG pal: Pierre Lemieux, Movielabs <cyril> Cyril Concolato, Netflix <tmichel> Thierry Michel, W3C <florian> Florian Rivoal, CSS-WG, Vivliostyle <wdh> wdh: Bill Hofmann, Dolby Labs, observer astearns: Alan Stearns, co-Chair CSS WG <ericc> Eric Carlson, Apple <Guest41> Chris Flick, Apple <Guest41> nick /flick fantasai: Elika Etemad, invited expert, editor of half the CSS WG's specs rossen: Co-chair of CSS WG, Microsoft hober: Theresa O'Connor, Apple nigel: High level picture is: how do we work together to get the styling features needed ... for captions and subtitles into CSS where there are gaps? florian: Not sure of the history here but it seems dangerous to map from TTML to CSS ... because if there are differences in semantics then it will be hard to identify. ... If the differences are subtle then it was not worth doing. If they are big then it is bad ... because there isn't a mapping. ... We need to work with you to look at the use cases we have and work out what is missing ... and add to CSS. From there we want to see is how you simply invoke CSS rather than ... define something close and map it. As long as TTML keeps defining something similar ... but not the same then we will have ongoing difficulties. Maybe in TTML3 just describe ... the minimal CSS properties and define the layout. I don't know how you get there but ... for the CSS side we need to work from use cases and look at where it's not adequate ... and go from there. pal: Emphasise that this is not about TTML, in terms of requirements, it is about subtitles ... and captions, and it can be used for example in WebVTT. The delta is for how we ... present subtitles and captions on the web. glenn: Agree with Pierre to focus on the bigger picture. ... In 2003 we adopted a policy of using camel casing so any CSS names we've taken have ... already changed so we can't back out of that. fantasai: I don't think we care about that. glenn: To the extent that we've pulled in CSS we've tried to do it without changing semantics ... but there are some edge cases where we've clarified and had to go beyond CSS. We want ... to minimise any differences. What florian said is true in the ideal world but we have ... practical constraints too such as timing. pal: This is not the topic today! The main question is about gap filling. nigel: I think there's recognition in TTWG that there may be input we can provide. florian: Concern about augmenting CSS - at some point it's possible that CSS will add ... something and it won't work for TTML because it went a different way. atai: Can we move to concrete cases? nigel: Cyril identified 3 buckets. cyril: The first bucket is related to Japanese subtitling, mostly described in the white paper ... I sent to the list. ... Second is line related properties, adding padding, extending background, aligning lines, ... defining lines better in relation to rubys maybe. ... Third is those where a mapping isn't clear, maybe most importantly textOutline. nigel: In that bucket is a recognised issue about white space handling at the ends of lines. Japanese features <fantasai> [88]https://lists.w3.org/Archives/Public/www-style/2017Nov/att- 0006/Japanese_Subtitles_on_the_Netflix_Service.pdf [88] https://lists.w3.org/Archives/Public/www-style/2017Nov/att-0006/Japanese_Subtitles_on_the_Netflix_Service.pdf cyril: I sent the white paper to CSS. ... lists main features - boutens, rubies, slanted text. ... tate chu yoko ... We explain lambdaCap is not a standard, but we used it as the basis. ... I did not send the CSS properties to the group, please understand the context. ... fontShear - we use skewX() and skewY() fantasai: You can fall back to oblique or synthesise it if there are not obliques in the font. cyril: What would be the angle? fantasai: Undefined cyril: David Singer also mentioned font variations, I don't know how well they're supported. ... There is a slant axis. fantasai: That would presumably be usable to solve this case. florian: Do we slant the right way for vertical text? Oblique doesn't do that, I don't know ... what slant would do. cyril: For the TTML ruby properties, there are more TTML2 properties than we currently use at Netflix. ... tts:ruby is strictly equivalent to what is defined in CSS. ... tts:rubyAlign is slightly different - it defines two additional keywords that TTWG is still ... discussing. fantasai: It's worth - the Ruby spec's distribution approach is partly based on justification ... opportunities that can be controlled by the text-justify properties in CSS 3. ... auto means normally justify, or you can say inter-character or spaces only, so you can ... achieve distribution of space you can do that, and control if the spaces are on the outside ... or not through the ruby-align property. cyril: tts:rubyPosition is very similar to the CSS property. ... At Neflix we think subtitles are better on fewer lines. For two lines, the best choice is ... on top for the upper line and beneath for the lower line. ... auto takes care of not knowing where the line breaks will be. florian: This auto value doesn't generalise well to more than 2 lines. cyril: The preferred behaviour is above all the lines but the last one, and below for the ... last line. florian: That variant is not easy, but if you wanted the other way around, you could use ... the first line selector, but we don't have a last-line selector. pal: The point is not about hard or easy but the expectation of what people expect to see. florian: It is easy for two lines cyril: You don't always control how many lines you get astearns: In those cases, >2 lines, what does the "outside" value do? glenn: The first n-1 lines would be above, the last would be below astearns: That's what you want the auto to do? cyril: Yes, the idea is to use "outside" instead of "auto", which we have requested as the default ... for TTML2. ... Is "outside" supported? fantasai: No but we can add it astearns: Seems reasonable to add hober: Seems reasonable astearns: Best way to do this is to open an issue on CSS explaining what you need and the ... use cases, and it would be useful info to say what usage percentage. cyril: I'll take the action to add that pal: How does it get added to the agenda? rossen: We scan the issues before meetings and add an agenda+ label fantasai: For specs in active editing they will get triaged in florian: For others you may need to push hober: The Chair is your escalation path! fantasai: Ask members to tag the issue with agenda+ ... The Ruby spec is temporarily to one side while other things are being worked on, but ... we can make it happen if there are things that are urgent. cyril: Next one: rubyReserve is not yet ingested but we consider it an important feature. ... It is the ability to reserve space where there are no rubies to make sure that the line ... spacing stays consistent, we don't want the baselines to jump up and down. fantasai: Specify a big enough lineheight to deal with the ruby rossen: That's one of the frequent proposals is to set lineHeight >= 1.5em for Japanese so there is ... always enough space. Then you don't need anything else. <astearns> suggestion in the CSS spec is in this section: [89]https://drafts.csswg.org/css-ruby-1/#line-height [89] https://drafts.csswg.org/css-ruby-1/#line-height dbaron: The question is if there is a reliable way to do that in a way that is not font dependent. cyril: It is not clear to me how ruby contributes to line height. fantasai: Currently the content of the line is centered in the line box in CSS and the ruby ... needs to borrow the bottom part of the line height from the previous line, that will ... layout correctly as currently defined but if you put a background on the line box then ... that will be an issue. cyril: How do you apply a background to a ruby? fantasai: Apply it separately to the ruby annotation glenn: TTML2 has that now. fantasai: Increase the padding-top by the height of the ruby to increase the background area ... of the inline box. pal: It's like fillLineGap cyril: textCombine matches with text-combine-upright ... textEmphasis matches to three separate things in CSS. ... This paper doesn't mention rubyOffset, rubyOverflow glenn: rubyOverflow deals with ruby being taller or wider than the base characters so you ... have to introduce new space. For example if it is at a line edge boundary and you have ... alignment constraints on the line do you let the overflow go beyond the block boundary ... that contains the line, e.g. to the left, or do you bring in the ruby and then push out the ... base characters by adding space after them. They are discussed in the CSS ruby spec ... but it does not provide any control mechanisms. fantasai: Earlier drafts of rubies had some controls, but it was too advanced for level 1. ... We just said we would provide more controls for level 2. glenn: This came up because we were trying to mimic a particular implementation's behaviour ... that is commonly used for Japanese subtitle authoring. We wanted to support the right ... thing and also the possibly wrong default behaviour in that tool. It is too advanced for level 1. fantasai: I suggest deferring the controls for that until later. glenn: There is only partial implemetnation in TTML2 so that may be something we ... jettison before CR or mark as at risk. cyril: In particular overhang, is ... <fantasai> [90]https://drafts.csswg.org/css-ruby/#ruby-overhang [90] https://drafts.csswg.org/css-ruby/#ruby-overhang glenn: That's different, it's about deciding which classes of characters can be overhung. cyril: The basic overhang feature is not something we have found but we want to investigate ... further so that may be something we push further out. fantasai: There's a section on this in the CSS ruby spec, which says what you can't do, ... but mostly leaves it to the UA. ... We don't have a really clear idea what we want to do and it is more advanced and less ... critical. I recommend both of us leave it for the next level. cyril: writingMode - there's a difference in how it is specified, to do with the inline ... progression direction. fantasai: XSL-FO handled left to right columns in text was pretty broken and I know you ... don't have content that depends on that so if you don't use it then drop it. pal: In CSS you have to control both writing mode and direction. ... It seems to map to two things. florian: This is one of the bad things about mapping atai: TTML is 15 years old - at the time they began CSS wasn't ready, and we have to deal ... with the solution as is. plinss: Let's not revisit the past. pal: We want to identify things that should be possible but that are not possible. So far ... I have not found anything like that for writingMode. fantasai: Do you have a direction property? glenn: Yes, it's basically the same as in CSS <fantasai> [91]https://www.w3.org/TR/css-writing-modes-3/#svg-writing-mode [91] https://www.w3.org/TR/css-writing-modes-3/#svg-writing-mode fantasai: The writingMode mapping for SVG is as above. You will get better results if you ... map according to this. glenn: writingMode as specified was an additional parameter to unicodeBidi. There's always ... the override or embed (no isolate at that time) bidi context ... There was only one option to define the default bidi level, so that's what direction does ... for a paragraph. Those are the only semantics right now. fantasai: That's fine, it's what it should be. ... The writing-mode from 13 years ago was a shorthand that was harmfully controlling ... both direction and writing mode. I guess nobody is using writing mode for subtitles ... right now so that's not likely to be a problem. ... When we mapped to keywords I did not change the name of the property so that we ... would force implementations to change cyril: So writing mode only sets block progression direction and direction only sets inline? fantasai: Yes <fantasai> s/ writing modes for subtitles on Hebrew or Arabic on Hebrew / Arabic on Hebrew / Arabic/ glenn: right now in TTML writingMode sets an "uber default". <inserted> Cyril: We can take an action to review that in TTML then dbaron: It's important that the direction property matches the underlying text, and where ... the logic is that embeds directionality allows implementations can work out the right way ... to display that regardless of block progression direction. pal: So far I have not run into issues. Suggest moving on. hober: Try the SVG mapping and let us know if you run into problems. cyril: That's about it for the first bucket. Line based styling <dbaron> slide showing [92]https://codepen.io/palemieux/pen/vyzbqW [92] https://codepen.io/palemieux/pen/vyzbqW pal: ebutts:linePadding [shows slide] <dbaron> (although what the slide shows looks different from what I see in my browser) pal: What you'd like is padding on beginning and end of each line, makes it easier to read <dbaron> showing [93]https://codepen.io/palemieux/pen/MEvVjp [93] https://codepen.io/palemieux/pen/MEvVjp pal: This is in widespread use in subtitling and captioning and is not possible in CSS today. fantasai: Really demonstrates we can't use the box model - the padding is not just at the breaks. ... Here there is no fragmentation point, it is just the end of the block. That proves it is not ... related to the breaking controls. pal: When I played with this I noticed there is no control of padding or styling of a line area ... after the break has happened. nigel: These features are not layout affecting? pal: No because padding reduces the line width available so can move the breaks. ... fillLIneGap - style dependent, strong feelings both ways, no way in CSS to guarantee ... that the entire line area is filled with background astearns: It is undesirable to have differences in background height on a line? pal: exactly ... [shows examples from IMSC 1.0.1 spec] [94]IMSC 1.0.1 fillLineGap spec with examples [94] http://w3c.github.io/imsc/imsc1/spec/ttml-ww-profiles.html#itts-fillLineGap pal: ebutts:multiRowAlign - lay out all the lines, pick the longest line, align that according ... to textAlign, but then align all the other lines differently relative to that longest line. rossen: Why can't you do this with a block with alignment? fantasai: When you wrap with a block we don't shrink-wrap to the content. We don't trim ... extra space because that requires another layout pass. [95]codepen demonstrating this. [95] https://codepen.io/palemieux/pen/bgoLzb pal: [describes styling and the effect] fantasai: We have the same problem for headings and it doesn't show up so obviously ... right now because we don't have the balancing thing. ... Once you have the ability to balance the headings so the lines are equal, there's no current ... way to get a box that wraps to that balance. pal: Unless you put an explicit br fantasai: Exactly. As long as the max content size is larger than the containing block @ @ ... We need to specify the need to shrink-wrap around the wrapped text. cyril: Is this intended behaviour? fantasai: It is, there may have been implementations that did shrink wrapping but its ... expensive. glenn: We couldn't find spec language to support the implementations. astearns: It is not straightforward if you don't know CSS layout backwards and forwards. fantasai: There is a max-min formula that gives the result, which doesn't do what we need. glenn: The inline block is expanded to the full containing block? fantasai: Right. This is a problem we need to solve. rossen: Is the intention to be able to support two different alignments? pal: yes fantasai: To do that you have to be able to calculate the width of the shrink-wrapped container hober: Please file an issue pal: Someone filed an issue for this, maybe dbaron ... Different UAs have different behaviours on spaces at the ends of lines, which is really ... annoying. <fantasai> [96]https://github.com/w3c/csswg-drafts/issues/191 <- shrinkwrap issue [96] https://github.com/w3c/csswg-drafts/issues/191 dbaron: The CSS spec defines this but implementations don't do things right. pal: The CSS spec is clear that spaces at the ends of lines should be surpressed - it is right ... in Firefox but not in Chrome. My read is the spec is clear, which should be confirmed. fantasai: [looks up spec] pal: My read is the space should be suppressed. <fantasai> [97]https://www.w3.org/TR/css-text-3/#white-space-phase-2 [97] https://www.w3.org/TR/css-text-3/#white-space-phase-2 <fantasai> Step 3 : “A sequence of collapsible spaces at the end of a line is removed. ” florian: I think so. In chrome there's a bigger thread on the handling of this and we're ... trying to get it fixed. fantasai: The spec is indeed clear [98]codepen showing this issue [98] https://codepen.io/palemieux/pen/PjeKyq pal: The behaviour depends on whether the space is in a span or not ... The last issue is textOutline ... textOutline is used on basically every single movie subtitle. fantasai: We used to have it in the text decoration spec and we were asked to remove it. ... Now we have a dedicated property text shadow and also a fill stroke module. hober: This is controlling the stroke. <fantasai> [99]https://drafts.fxtf.org/fill-stroke/ [99] https://drafts.fxtf.org/fill-stroke/ pal: The stroke model grows the stroke, partially filling inside, you only want to expand on ... the outside. <dbaron> SVG added [100]https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute /paint-order which could help here [100] https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/paint-order rossen: Isn't this the only feature that we pushed to level 4 of text? fantasai: There was a spread radius idea rossen: Text spread is exactly the requested feature, right? fantasai: Depends what you want to do on sharp corners <fantasai> old text-outline property - [101]https://www.w3.org/TR/2011/WD-css3-text-20110412/#text-out line [101] https://www.w3.org/TR/2011/WD-css3-text-20110412/#text-outline <pal> [102]https://codepen.io/palemieux/pen/ZJpwxJ [102] https://codepen.io/palemieux/pen/ZJpwxJ <fantasai> Rossen mentioned the spread radius argument for text-shadow, which should probably be in the L4 draft dbaron: Two solutions that could help, paint order or text shadow spread pal: text-shadow is useful but this is also useful dbaron: paint order controls which of the fill or stroke paints first flick: We had some discussion - it depends on the colours being fully opaque fantasai: stroke-align would do this pal: That's what we really want <astearns> file an issue to fill out this section: [103]https://drafts.csswg.org/css-text-decor-4/#intro [103] https://drafts.csswg.org/css-text-decor-4/#intro pal: For stereoscopic rendering, the use case is only for those displays that are capable ... of stereoscopic presentation so you can decide how important it is. The TTML method ... is very simple, just a disparity value - render and offset the same image by some value. ... Don't do parallax or anything crazy like that, just render, offset. nigel: That matches broadcast TV standards. pal: And every other standard out there. ... Is that something worth adding to CSS today? I'm happy to file an issue. It's pretty ... straightforward. ... This is essential for subtitles or captions to be displayed over stereoscopic video. <fantasai> text-shadow with spread radius will be in text decoration L4 (there's a placeholder in the draft atm, but I should get that filled out in the next month or so) pal: .. Otherwise it is not watchable. fantasai: Is disparity inherited? pal: It's on a region, so effectively like a div dbaron: This is interesting because there are other pieces of tech around and questions ... about how it interacts with 3D, VR etc. pal: This is the minimal feature to avoid hurting brains of viewers watching movies. ... It's compatible with CTA, SMPTE standards etc. dbaron: We just have to make sure it's compatible with other emerging things. ... We need to reach out to the right people. fantasai: It would need to generate a stacking context. pal: No you render individually to two planes, the left eye and the right eye fantasai: For CSS if you set this property on an element it should set a stacking context dbaron: File an issue and we should all pile on. Wrap up, next steps hober: Sounds like we have action items for every issue? nigel: I think so. cyril: Would be useful for Pierre to send those slides or push them online dbaron: Or put them in the minutes and send those. fantasai: The TTWG had filed some issues on these before and we'd asked about edge cases ... and we hadn't got clear responses but those slides really help explain all the use cases. nigel: Great! fantasai: Now we understand much more clearly. astearns: Those pictures and links to more would be very helpful. cyril: We have a way forward for the CSS properties, but the rant is still there about syntax etc florian: When CSS has all the properties then deal with that. nigel: Yes, not in TTML2 but we're open to it in the future. rossen: That was a very productive session for both groups. nigel: I think so, yes. Thanks everyone.
Received on Monday, 20 November 2017 12:12:06 UTC