W3C

- DRAFT -

Cascading Style Sheets (CSS) Working Group Teleconference

19 Sep 2016

Attendees

Present
tantek, Rossen, dholbert, eae, jihye, gregwhitworth, glazou, dauwhe, bradk, Florian, antonp, myles, dael, Rossen__, dbaron, tgraham, myles_, antenna, astearns, plinss, alex_antennahouse, SteveZ, Bert, hober, iank_, rachelandrew, Rossen_, fantasai, fremy_, TabAtkins, vollick, ChrisL, smfr, zcorpan, antonp[, fremy, plh, SteveZ_, MaRakow, joone, Liam_Quin, bkardell_, gsnedders, jensimmons, leaverou, skk, ++++++++1, Guest, LiamQuin, p, tmichel, AndroUser, btw, liam, arybka, (finally), andrey-rybka, surma, skhrshin, tzviya, Charles_LaPierre, ivan_herman, David, Wood, Vlad, Karen, Leonard, Bill_Kasdorf, Paul_Belfanti, Heather_Flanagan, Liam
Regrets
Chair
SV_MEETING_CHAIR
Scribe
shane, gregwhitworth, TabAtkins, fantasai

Contents


<Rossen_> uber driver got is in the wrong city :/ running late...

<Rossen_> Alan, if you're already there please kick off the meetings

<astearns> room is still only half-full

<myles> jdaggett seems to be having connection issues :(

<dbaron> FWIW, I will probably miss significant parts of (a) this morning and (b) Tuesday after 15:00

<astearns> tables first

<astearns> trackbot, start meeting

<frremy> francois remy, microsoft

<gregwhitworth> Greg Whitworth, Microsoft

<birtles> Brian Birtles, Mozilla

<dino> Dean Jackson, Apple

<myles> Myles C. Maxfield, Apple

<dauwhe> Dave Cramer, Hachette

<andrey-rybka> Andrey Rybka, Bloomberg

<jihye> Jihye Hong, LG Electronics

<astearns> Alan Stearns, Adobe

<dbaron> L. David Baron, Mozilla

<ChrisL> Chris Lilley, W3C

<shane> Shane Stephens, Google

<fantasai> fantasai / Elika J Etemad, Invited Expert

<jet> Jet Villegas, Mozilla

<zcorpan> Simon Pieters, Opera

<SimonSapin> Simon Sapin, Mozilla

<gsnedders> Geoffrey Sneddon, Invited Expert

<surma> Surma, Google

<markw> Mark Watson, Netflix

<shane> scribenick: shane

tables

gregwhitworth: I'll start off with an easy one

<rego> Manuel Rego, Igalia

<glazou> Daniel Glazman, Disruptive Innovations

gregwhitworth: one thing that covers all the table discussions - we're going for interop, nothing new, fancy, or that makes sense
... except when there's absolutely no interop

<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/497

gregwhitworth: there we have some new ideas we'd like to discuss
... this one is pretty straightforwards
... caption-side property for left or right. Moz implements but nobody else does. It's useful but would like to push to next level

fantasai: should copy the note from CSS2.1

dbaron: this was in CSS2.0
... so it's effectively already been published as at least CR

<Bert> Bert Bos, W3C

<leaverou> Lea Verou, Invited Expert

gregwhitworth: OK that's fine. I just don't want to go through speccing

<Rossen_> Rossen Atanassov, Microsoft

fantasai: note from 2.1 doesn't cover left and right. Need to add left and right to that.

gregwhitworth: are you steadfast in keeping?

zcorpan: is anyone else going to implement?

fantasai: more important with writing modes

<rbyers> Rick Byers, Google

dbaron: want to keep unless we remove table captions completely
... they're a disastrous feature but these values mitigate

<pal> Pierre-Anthony Lemieux, supported by MovieLabs

<skk> Hiroshi Sakakibara, BPS

Florian: when we throw in vertical writing modes and logical names do we need to have them?

gregwhitworth: with tables don't *need* to have anything
... does anyone else plan to implement?

[ a resounding *no* ]

???: be careful with anything you do wrt accessibility - captions are the unofficial accessible label for tables.

s///jcraig/jcraig/

<fantasai> actually it was resounding silence

RESOLUTION: keep note from CSS2.1 for caption-side, add left & right values to note, move side captions to next level

<skhrshin> Shintaro Sakahara, BPS

frremy: next issue is about collapsible whitespace.

<jcraig> s/be careful with anything you do wrt accessibility - captions are the unofficial accessible label for captions./be cautious how you announce any property changes with anything related to accessibility - caption is the official accessible labeling element for tables./

frremy: during table fixup, collapsible whitespace is mostly removed per-spec. There is a difference in the way browsers do this.
... firefox matches CSS2.1 accurately.
... Chrome (& webkit?) have simplistic behavior - just drop it
... so issue is if you have a table row element that contains another table row
... this is invalid markup but there's a fixup
... rules for collapsing whitespace are very specific - should not collapse because there's some table elements being inserted inside
... but tricky because the elements haven't been inserted yet
... proposal is just use display type of boxes to decide whether to collapse whitespace or not
... reasons: (1) easier to implement. (2) mostly doesn't have any difference.
... only has visible impact if you specify whitespace: ???
... by default parser will fix up your markup for you but if you directly insert elements into the DOM that won't happen

dbaron: are you saying to change the spec from matching gecko to matching edge?

frremy: no we are going to match gecko
... in edge we do fixup, then go back and add spaces to match specified behavior
... we would like Chrome to get interop as well

eae: that makes a lot of sense to us

frremy: so basically saying that we're going to do whitespace collapse *before* the fixup that inserts elements, not after

<Rossen> glazou, many

<gregwhitworth> Proposed resolution: Anonymous inline boxes which contain only white space, are the first and/or last child of a tabular container, and whose immediate sibling (if any) is a table-non-root box, are treated as if they had display: none.

fantasai: if there's a change from 2.1 then you need to fix 2.1 as well

Florian: but you haven't found a valid use case for nested tables with whitespace pre

astearns: does anyone object to this proposal? No? Resolved.

RESOLUTION: Anonymous inline boxes which contain only white space, are the first and/or last child of a tabular container, and whose immediate sibling (if any) is a table-non-root box, are treated as if they had display: none.

<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/466

gregwhitworth: the next one may not need a resolution
... we rewrote fixup because it was horrible. Need a PhD in mathematics. I drove myself mad.
... we rewrote to be more concise, shouldn't change behavior. Could the people who wrote it please confirm? Would like a resolution to accept the new text.

<takamasa_> takamasa,BPS present+

dbaron: I would like bz to review

fantasai: add a note that says if there's any differences from 2.1 then there's an error that needs to be reported

RESOLUTION: gecko to review, then add note to new text and accept

<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/469

gregwhitworth: next. What CSS is applicable to table-track & table-track-grouping elements?
... everyone does this differently. Want to concentrate on what properties are whitelisted

dbaron: for width & height - those only work in the appropriate dimension, right?
... position: relative is weird. There are three different things that position: relative does. Different browsers support different combos. (1) establishes containing block for abspos descendants. (2) moves the thing. (3) messes with z-index ordering
... the containing block one is interoperable (I think)

<gregwhitworth> https://jsfiddle.net/5um10zts/

gregwhitworth: don't want to get too hung up on that. Not only test case.

fantasai: blink most recently rewrote backgrounds impl. Will render much closer to gecko post this.
... not opposed to having a whitelist on tables.
... each individual property should be considered

TabAtkins: I'm kinda against a whitelist, other than for layout properties. Why don't the rest of the properties just work?

dbaron: one of the issues there is the way table backgrounds & borders interact with stuff
... in some ways can be addressed by defining the way backgrounds & borders work more precisely
... e.g. sometimes border mightn't apply to row's own background

frremy: want to whitelist for now to let these things stabilize.
... better to start from a small subset

TabAtkins: but the definitions should just pop out of whatever's been written

<dbaron> I agree with Tab.

Florian: regardless of the color of the list, people are just going to rely on what works

gregwhitworth: not leaving anything undefined. That's the point

<fantasai> +1 to Florian

Florian: yeah but you can't rely on expanding a set later, because people will just rely on it not working

TabAtkins: just a whitelist - OK. But opposite of that is "these properties are banned and guaranteed not to work"
... probably not going to do that.
... instead should make sure everything is defined properly, then we can just allow any non-layout properties without doing anything special

frremy: do we actually want to be able to do this? We'll need to change implementations

TabAtkins: will need to change impls anyway at some point

Florian: if you want to leave it undefined at this level, that's OK. But can't write down that 'it should not work' because will need to change impls, then can't make it work later.

gregwhitworth: ok we have an action from the group. Describe a new paint model.

frremy: next issue. Captions in CSS2.1 inside tables
... are ???
... gecko does it, but that's the only browser that works this way

fantasai: what do you mean by inside the table

<zcorpan> <table><caption>

frremy: if you have a caption inside a table (in markup)

<frremy> https://github.com/w3c/csswg-drafts/issues/471

gregwhitworth: please look at issue
... if you have a table, with a div on top of the table
... in gecko, it's acting as if it's a block box outside of the table
... everyone else sizes it along with the table

frremy: gecko is laying out caption as if table did not exist
... CSS2.1 resolved that width of table should increase to match caption
... makes no sense if both depend on each other
... better to just specify that caption is being laid out as child of table

fantasai: can't do that. If there's a border, caption is not inside that.

frremy: position absolute elements can be outside border area

fantasai: but caption takes up space

Florian: so you're suggesting a new layout mode that only applies to captions?
... so percentage would resolve against table, intrinsic width of table would take caption into account, etc..

frremy: yes. A lot of the CSS2.1 spec already implies this

dbaron: percentage widths are normally resolved according to containing block.
... table boxes and table wrapper boxes are not containing blocks

fantasai: whole point of table wrapper box is to put a border around the table and put the caption outside it.

[ divers alarums ]

<fantasai> https://www.w3.org/TR/CSS21/tables.html#model

<fantasai> "The width of the table wrapper box is the border-edge width of the table box inside it, as described by section 17.5.2."

<fantasai> What exactly is the problem here?

[ decided that a small group should break out to discuss this. ]

<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/473

gregwhitworth: next topic.

<zcorpan> (fantasai sayeth table wrapper was intended to be a containing block)

<dbaron> if the table wrapper box were a containing block, I think that would break percentage width on <table>

gregwhitworth: in 2.1 there was a bunch of text about if this is a valid cell, do x, if this is a row do x, etc.
... we wrote something that merges the empty tracks together so we don't need to do all those checks

<fantasai> dbaron, no there's an exception for that

gregwhitworth: shouldn't see any implementation difference. Just editorial.

<fantasai> "Percentages on 'width' and 'height' on the table are relative to the table wrapper box's containing block, not the table wrapper box itself. "

<fantasai> dbaron, if it wasn't intended to be a containing block, that sentence would not have been necessary

Florian: put the note saying 'this is supposed to be the same as that, if not then tell us'

<dbaron> fantasai, I think that assumes the spec was written all at once by a single author who remembered all the other parts of the spec

Florian: the note distinguishes these sections from the sections where there are behavior changes

frremy: next. Percentage resolution.
... This is for elements that are direct children of table cells.
... if you specify relative width, how do percentages resolve?
... tables have multiple layout passes, need to specify for each of these
... not interoperable.

dbaron: interesting case is height, right?

frremy: mainly, some width issues too
... mainly writing modes related

gregwhitworth: yeah mainly it's height that is the issue

frremy: Gecko does not resolve percentage, treats as auto

dbaron: no we sometimes resolve percentage height

frremy: edge & chrome treat as auto on first layout pass, then in second layout pass when size is known the percentage is resoved
... this is used to size objects based on size of rows.

dbaron: last time I looked at this (10 yrs ago) there was a web compat requirement that the percentages be resolved in some cases, not be resolved in some cases, and no strong requirement in some cases.

frremy: chrome also has diff behaviour is overflow: scroll is specified, then height resolves as 0 in first layout pass
... some sites rely on this
... causes a scroll bar rather than big cell
... suggestion is to specify Chrome's behavior as the correct one

dbaron: I think there are still some cases where there's a requirement not to resolve them in second pass
... e.g. what if table has a height and one row has a height but not the other.
... how do percentages resolve in row with no height.

frremy: can resolve in second layout pass based on heights in first pass

dbaron: I believe there are web compat cases where it's required not to do this

gregwhitworth: use case we've seen is license agreements in table. Big chunk of text with height set to 75%. Button at the bottom isn't accessible in Edge, but scrollbar gives access in Chrome.

frremy: works in Firefox because reasons.

<Rossen> rossen: dbaron, the question about interoperability requirements of 10yrs ago is, do these still apply today?

dbaron: would like to look into this more?

<dbaron> http://dbaron.org/css/test/2006/percent-height-in-tables

gregwhitworth: can we assign issue to you then?
... next. Border radius in collapsed mode
... need to figure out what to do with border radius when in collapsed mode
... edge is only browser that implements this

<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/475

gregwhitworth: there is an interesting test case where you apply drop shadow. Everyone propagates radius into shadow but only edge shows radius on table
... proposing we drop this behavior - add into spec that border-radius doesn't work on tables in collapsed mode.

eae: we're fine with that

dbaron: us too

fantasai: would need to update CSS3 backgrounds spec

RESOLUTION: drop border-radius support on table root for tables in collapsed mode.

<frremy> https://github.com/w3c/csswg-drafts/issues/476

frremy: height on a table-row-group
... no interop
... so broken that nobody can rely on this. Chrome ignores. Firefox implements and distributes height to rows. Edge puts same height on every single row.

dbaron: HTML4 specified that if you put width on a column group it applies that width to every column in the group.
... but it didn't say anything like that for rows

frremy: proposal is to either do what firefox is doing, or specify that we don't care about this height

eae: could go either way

frremy: then let's spec firefox behavior. Better match for author expectations.

RESOLUTION: specify gecko's behavior for height on table-row-group

<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/477

gregwhitworth: min-height on TR
... currently only edge supports
... authors probably expect this but blink/gecko don't support.
... proposing to match other browsers and drop this
... unless other browsers want to implement?

<fantasai> Can whoever is the github admin give edit permissions to jdaggett?

dbaron: it is a somewhat frequently requested feature. min-height shouldn't be that hard.
... I could go either way
... probably can't implement in the short term

fantasai: spec it and mark at risk

<gregwhitworth> https://jsfiddle.net/wj5tjvcy/

<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/471

gregwhitworth: visibility: collapse
... blink don't implement
... big compat risk
... should behave same as visibility: hidden

<astearns> https://github.com/w3c/csswg-drafts/issues/478

gregwhitworth: seems to actually modify layout somewhat. 4 options

<fantasai> (astearns pasted the correct issue, dael, pls replace link :)

gregwhitworth: A: The cell's contents are clipped (What Safari and Edge currently do)
... B: The cell's contents overflow (What Gecko does)
... C: You don't collapse the track since the spanning cell is in the track
... D: You make this a layout change and you re-layout the cell in the new constraint space

dbaron: proposed options seems unrelated to rest of issue
... is issue talking about what happens if you apply visibility: collapse to rows or cells?
... proposed options seems to be cells, everything else rows

frremy: rows. It's when there are cells that span

dbaron: I think A is correct behavior, but getting into this situation doesn't make any sense

fantasai: current behavior is useless, nobody wants that. Should provide something that is usable.

gregwhitworth: I think authors would expect re-layout

dbaron: some cases where you want to be able to hide things without doing relayout

gregwhitworth: but you're already relaying out table wrapper box

dbaron: but nothing inside the table changes size

fantasai: could make it contingent on overflow property?
... if overflow is visible, then do relayout
... otherwise clip

frremy: would rather just choose one thing

fantasai: but this gives both options in a sensible way

frremy: spec is defined so visibility collapse doesn't cause relayout of table
... but I doubt anyone actually avoids layout
... not convinced there's perf benefit

Florian: but from usability POV, hiding some rows shouldn't cause everything else to jiggle
... not an implementation thing

dbaron: one of the effects that can happen is that if you have a row and one of the cells in the row significantly impacts width, then collapsing the row causes all of the cells to change width, and scroll shifts accordingly

frremy: if you have a cell that spans multiple columns with centered text
... collapse center columns (???) and can't see anything any more

Florian: I agree with fantasai's suggestion
... if overflow is visible on the cell then do re-layout, otherwise don't.

Rossen: so if it's auto then you will be introducing a scrollbar

Florian: I think so

Rossen: how are you going to address this? It's a layout issue but you don't want to relayout

gregwhitworth: so where do we stand?
... we'll think about it and come back for a resolution

fantasai: if collapsing things and spanning cell contributes something, might want to subtract out part of that.

<br duration=15min>

<gregwhitworth> scribeNick: gregwhitworth

<astearns> https://github.com/w3c/csswg-drafts/issues/383

url() as image or SVG reference

TabAtkins: so, trying to get this issue resolved on a call
... 4 years ago Roc tried to resolve a url that points to a frag ref in an SVG document
... you might want to refer to it as a particular object or an image
... there wasn't a firm conclusion
... but the concensus seemed to be that urls with a fragment refer to a resource in the document, if not it is an image
... this allows you to cover most issues, but this causes a small difference between CSS and SVG
... I would like to resolve on anything, and I'll do whatever spec work
... Amelia said that SVG is thinking about doing some smart stuff where it tries to resolve as a resource and then fall back as image
... the reason why we didn't want to do this was because we have different paths based on what is being loaded

dbaron: There may be some slight web compatibility issues, eg: svg mask

TabAtkins: yes mask would be expecting to look for a reference
... Not entirely sure how much, but I'm sure there probably are some

Florian: in that case could you utilize the element() for unambiguous issues?

TabAtkins: Don't worry about that

dbaron: though we do have an element function that does a different thing for background-image
... is the CSS different than the moz version?

fantasai: yes

Florian: yeah that's the one I was referring to

TabAtkins: that only exists in Firefox

zcorpan: what do browsers do?

<dbaron> so what background: -moz-element() does could be background: element-image() or something like that

TabAtkins: Similar to what I stated, background-image refers to image and mask refers to object reference
... the mask spec is very badly defined on this matter as they want to refer to them as either
... ideally we should match up the attribute and the property

tantek: are there any tests?

TabAtkins: I didn't link to any here, but I could possibly dig some up

<tantek> could have test cases linked directly from https://github.com/w3c/csswg-drafts/issues/383 ?

tantek: yeah, could please put those in the actual GitHub issue

TabAtkins: the complication is that, unless we changed more recently we'll fail things that are external documents
... at least we didn't do back in the day
... from css

dino: I think it should be ok, I think if it's within SVG where there becomes a problem

shepazu: this is defined in SVG 2 in profiles

astearns: can we make a decision today?

<shepazu> SVG 2 processing modes (security, etc.): https://www.w3.org/TR/SVG2/conform.html#processing-modes

TabAtkins: If anyone is fine to resolve that's great, but if we want to wait until later that's fine too

Rossen: are there any issues in SVG?

TabAtkins: They need to match with what we do

Rossen: that's why I'm asking they're trying to CR SVG2

TabAtkins: agreed, we need to get them as consistent as possible and ASAP

tantek: the folks that are looking at this, did they look at the cursor properties?

TabAtkins: the cursor should be taking it as an image because it can't take an external resource
... that's the problem, everything in CSS refers to it as an image, SVG where it can refers to a resource

plinss: there is an architectural problem here that has bugged me, we shouldn't do anything different only if there is a fragment in the url

tantek: if it's SVG you'll only know that if you go fetch it

TabAtkins: yeah, I think distinguishing it based on a fragment is ok

plinss: it could be anything
... once you know what's there and it's a valid resource then
... I prefer the SVG approach
... theoretically a sub resource of a PNG could grab another image

TabAtkins: being able to re-interpret a document as an image if it isn't the right type of reference
... in our loading pipelines, how reasonable is that?

Florian: that wouldn't matter to a css prop that only takes an image

TabAtkins: of course, only ones - like mask

zcorpan: I don't really like that behavior, I'd prefer it to just fail, makes it obvious to the author

TabAtkins: if we don't do the fallback and we don't want to assume anything in the URL then

<TabAtkins> If prop takes <image>, treat it as image. If prop takes <ref>, treat it as ref. If prop takes both, treat it as ref; override with image() if you want.

<andrey-rybka> i agree with that

TabAtkins: I'm happy with that

dbaron: so a prop takes both, basically makes mask, clip-path, etc
... so if it takes both, treat it as a reference?

TabAtkins: yes load it as a document and search for the reference

dbaron: so you're saying that we should load all external resources as an svg?
... people use mask today pointing to the PNG
... quite a lot
... this will probably break a lot of stuff

TabAtkins: that's what I was worried about
... probably similar to what Roc
... <use> is just fine as it only takes ref()

Rossen: what about marker
... it's not as used, but it should be similiar

leaverou: thanks

TabAtkins: assume it's a ref if it could be a ref or image

Florian: without a fallback?

TabAtkins: yes, there is no fallback

astearns: restates his idea of the proposal

<TabAtkins> 1. For ambiguous cases, always treat url() as ref.

<TabAtkins> 2. For ambiguous cases, introspect on URL; treat fragment as ref, no-frag as image.

<TabAtkins> 3. For ambigusous cases, load as document and see if it's pointing to a valid ref; if not, load as image.

<zcorpan> (1) is not web-compatible per dbaron. (3) is expensive in impl because different loading pipelines

<astearns> 1 probably has web-compat problems, 2 breaks architecture assumptions, 3 is expensive

fantasai: here's an issue, if we take a prop that only allows an image, and extend it to, e.g. handle paint servers a prop that wasn't ambiguous becomes ambiguous

Florian: lists all of the problems

shane: use a random page generator

<zcorpan> Don't Break The plinss

shane: maybe implement all three

leaverou: 2 seems the most obvious to authors

fantasai: the image function isn't implemented by anyone yet

Florian: option 3 is stated that it's incompatible with how browser's are implemented but is that still true

TabAtkins: do we still have a diff between loading something as an image and an SVG image?

esprehn: yes, SVG is super weird

<leaverou> fwiw, after Tab's comment re:SVG stacks, I'm leaning towards 3 being least surprising for authors

TabAtkins: the option we're discussing (catches @esprehn up)

esprehn: I'd support the hash

astearns: even if the url redirects to a url with a fragment?

esprehn: this has to be determined early in the pipeline

Florian: and it sounds author hostile

dbaron: ok, I did find the gecko code to determine which loading path
... get's the URL
... skips any chars that are control chars or space, and if the first char found is a hash then it loads it as a reference

TabAtkins: so it's only doing local matches?

<dbaron> http://searchfox.org/mozilla-central/rev/f6c298b36db67a7109079c0dd7755f329c1d58e2/layout/style/nsCSSValue.cpp#31

dbaron: I believe so

TabAtkins: so everything else would be treated as an image

dbaron: I'm not exactly sure, it seems odd that we don't support external ref for masking

astearns: I'm hearing a lot of implementers wanting option 2, authors want option 3, and it seems SVG wants option 3

dbaron: that's hard

TabAtkins: the point of three is that you have the double load

ChrisL: when you say load, do you actually go fetch it again?

TabAtkins: I believe it does?

dbaron: I think if they have the correct cache headers you could

plinss: this double loading sounds like a red herring

shane: it's only a red herring if you don't want consistency

plinss: seems like something you could change

dbaron: there are benefits also to modularity and security consistencies to take into consideration

plinss: with exception to security issue, that seems like an implementation detail
... I should be able to pass an html document to a background image and it renders it as an image

<birtles> background reading http://robert.ocallahan.org/2012/10/impending-doom-for-svg-stacks-sort-of.html

Florian: should we maybe remove the ambiguous definitions and make them explicit

<tantek> yes there are CSP implications

zcorpan: if we were to start over we wouldn't have the ambiguous issues

<tantek> CSP img-src vs media-src vs child-src

fantasai: so hold on, the issue we're discussing - I think that Firefox is already solving this

dbaron: the local ref thing might be for something different
... actually ignore my code
... it's somehow related

<fantasai> s/think that Firefox is already solving this/didn't dbaron say that FF loads based on local vs non-local URL? That's less more straightforward than switching based on fragment/no-fragment/

dbaron: there are areas where url:#foo is relative to the document and not relative to the CSS

TabAtkins: there is no way to resolve the fragment in CSS

<dbaron> ok, I'm not sure whether this code is actually relevant

<TabAtkins> https://drafts.csswg.org/css-values/#local-urls

fantasai: we resolved on the local urls is relative to itself

TabAtkins: that's not what the spec says

fantasai: what did you do to the spec?

TabAtkins: what I just said

fantasai: we had a discussion and we said we're not doing that

Florian: since we only have this problem when there is an ambiguity, then we only have to deal with it with legacy stuff since we won't design future CSS to be ambiguous. Do you, plinss accept option number 2

plinss: I'm not excited about it, I know we have warts but I don't want to people to point to this as precedent

<dbaron> yeah, we do support remote references -- I think the current gecko test is just "does the URL have a ref"

<SimonSapin> https://lists.w3.org/Archives/Public/www-style/2016Jun/0026.html "Minutes Telecon 2016-06-08"

<SimonSapin> OK to have fragment-only URLs always refer to the host document?

<SimonSapin> ----------------------------------------------------------------

<SimonSapin> - There were strong objections to this approach so TabAtkins will

<SimonSapin> re-write with a different approach.

tantek: the TAG is ok with this?

plinss: saying I'm ok with this - is an overstatement, if we're going to have this stupid behavior then we should deprecate the url() for these properties that have ambiguity

<fantasai> Tab misread his spec, see https://hg.csswg.org/drafts/rev/6e9ea5a746c3

astearns: the only option that I can think of is to go look at the data and then fetch what is correct, but that has an issue because we want to define what browsers actually do

tantek: I'm with plinss on this - this feels bad

TabAtkins: esprehn pointed out that we don't know how mask loading actually works, so we'd prefer a simple option

<fantasai> Alright, issues against https://drafts.csswg.org/css-values-3/#local-urls

TabAtkins: I'd prefer option 2 and make adjustments as necessary and bind ourselves from doing it again

<fantasai> 1. Clarify so that TabAtkins isn't confused by his own spec ;)

tantek: detail the back compat issues

<fantasai> 2. Clarify whether computed value is "#foo" or "baseURL#foo"

TabAtkins: that's what we're doing, we know that mask has the problem

<birtles> from roc's article, "For example, for security reasons external resource documents for paint servers are required to be same-origin with the main document --- in Gecko, at least, and we think the security reasons are good enough to require the same behavior in every browser."

<fantasai> 3. Spec says url(#foo) is treated as same-document, but what if it's in an HTML doc with a <base href> pointing elsewhere?

tantek: if the homework is done then we're willing to take the suggested proposals to ensure that ALL ambiguous issues are covered by our proposal
... if there isn't an issue, then you just cut the ambiguity

TabAtkins: that sounds reasonable, I'm happy to look into this
... I think mask falls into this, we'll need to provide some special casing
... Let's resolve on not introducing no <image> or <reference> ambiguity

zcorpan: does this apply to SVG WG too?

<birtles> not sure fill/stroke actually do support loading images, https://svgwg.org/svg2-draft/painting.html#SpecifyingFillPaint ?

<fantasai> 4. Round-tripping is broken for inherited local URLs afaict

<astearns> https://www.w3.org/dpub/IG/wiki/Detailed_TPAC_2016_Agenda#Meeting_with_CSS_WG

<TabAtkins> ScribeNick: TabAtkins

dauwhe: We wanted to discuss a few issues with CSS, mostly to get input as to what are good areas to continue working in, so we don't conflict with design/impl of CSS.

fantasai: Work on hyphenation!

dauwhe: The first thing is MQs. We have some interesting use-cases.
... Daniel created one of the them.

glazou: The epub world has an issue with MathML. Legacy systems don't know about it.
... In particular, the image fallback for MathML.
... The publishers are not really willing to invest in MathML inside of ebooks, because they're pretty sure legacy systems won't show anything.
... MathML won't render, nor will the fallback.
... One possible solution is to have a feature MQ for MathML (like the script one)
... So you can display:block/none for the (separate) image fallback.
... Not the *only* options for epub, but one of them.

TabAtkins: And this implies that the fallback si done outside of the MathML, so it'll render normally?

glazou: Yes.

Rossen: You mean native support for MathML, not mathjax?

glazou: Yes. Generally just doesn't support MathML. Sometimes they'll render the text, sometimes not; they usually don't render the fallback.

Florian: And if you do have support for script, you load MathJax?

dauwhe: These usually don't have scripting

Bill_Kasdorf: And righ tnow, because of no MathML support, the epubs don't have accessible math at all.

dino: So let's say you're not in a legacy system. You'll say display:block on the mathml and display:none on the fallback?
... So it's just testing for native; script support will be something else?

TabAtkins: In script, if it runs, you can handle that yourself.

<Zakim> liam, you wanted to note I think "gap" in CSS is not exactly the same as "gutter" in typography, as the latter would include padding and margin

tzviya: We're not just talking about MathML here. We want to talk about the future of MQs in general.

<Rossen> liam, you should speak up when you q yourself :)

tzviya: Some work with ARIA has talked about using MQs for some solutions there, so we wanted some more general ideas about MQs.
... Maybe something about affecting the chrome?

Florian: One topic is that we used to have media types; these worked poorly. We're deprecating as much as we can, and instead finding the more granular level of things that distinguish the types. Pages vs not, interactive vs static, etc.
... Granular rather than bundled. That's a big theme we've been running towards.
... Another is to expose various user prefs. User wants high-contrast, etc.
... Not working on that yet, sometimes tricky. Some OSes forcibably invert the screen or contrast; others just epxress the preference to the app.
... We need to reflect both; whether you've been inverted (and you should maybe respond to that), and whether the user requests inverting (that you're expected to do)

duga: About native support, a lot of reading systems provide polyfills.
... I don't necessarily care that the browser renders native MathML; I care whehter it'll look good on a device.
... So they need to be able to respond to that.

glazou: So we might to have the MQ respond to script backfilling support. Some DOM API.

TabAtkins: I'm okay with adding a MathML query, with the added clarification that having a switch to claim support would be useful.

dino: That forces a style reflow?

TabAtkins: Yes.

<zcorpan> hasFeature("MathML")

RESOLUTION: Add a MQ that reports MathML support, with some way for scripts to claim support.

ACTION glazou to report to Epub about the MathML MQ being approved.

<trackbot> Created ACTION-789 - Report to epub about the mathml mq being approved. [on Daniel Glazman - due 2016-09-26].

ACTION Florian to write the MathML MQ.

<trackbot> Created ACTION-790 - Write the mathml mq. [on Florian Rivoal - due 2016-09-26].

[metaaaaaaaaaa]

Rossen: We have a new CSS-AAM joint task force with APA.
... Intent is to define a11y APIs for all CSS modules/features that are deemed inaccessible - like the 'order' property of Flexbox.
... Just an FYI, I'll drop a link.
... Please reach out to us with a11y/CSS-related problems or requests.

dauwhe: Next: tables.
... Aligning on characters in table cells.
... Old feature in specs; it's a high-prio for publishing community. There's some Text 4 language for it.
... dbaron did a quick reading from an impl POV and raised 10 or 15 issues.

<dbaron> https://drafts.csswg.org/css-text-4/#character-alignment

dauwhe: We get to a point in these things where the issues need more input from the impls than on the design.
... Wondering what the next steps are on that.

<Rossen> CSS Accessibility Task Force - http://lists.w3.org/Archives/Public/public-aria-admin/2016Aug/0018.html

dauwhe: And how we get more interest when we need browser details; it gets over our heads, as people who don't write rendering engines.

Florian: I get the impression both groups are waiting on each other.
... CSS is wiating on epub to come up with examples, so dbaron's examples can be solved.

<Rossen> Here's the initial set of features interested to the CSS/APA task force https://github.com/w3c/aria/wiki/CSS-AAM-Potential-Features

Florian: But I think this isni't happening, because those cases don't happen in "normal" content, they're weird corner cases.
... Like, mostly aligning numbers with a period or comma.
... So not really questions about nested markup, or different font sizes, etc.

dbaron: One question is a really substantive one - about intrinsic width.
... If you're in a constrained-width situation, is this flexible? Do you break the char alignment - does your min-content width include the char alignment? Or something else?

<astearns> (summarizes issue 17)

dbaron: In general, if your table has char alignment but is too small to fit.
... Different font size is mostly not much to care, but people will use bold, and that's a different width. Maybe can punt, maybe people will notice.

dauwhe: I can try to translate your questions into actual examples to get feedback on.

dbaron: Another is what happens when you break a line in something that specifies char alignment.

dauwhe: Interesting, don't have an answer.

David_Wood: Speaking as a rep of an editor company, all of these are familiar use-cases. We run into all of them, trying to make WYSIWYG of content, especially with tiny mobile interfaces.
... Bold fonts in a RTL in a list in a table.

[violent agreement]

david_wood: I can take an action to construct examples

Florian: And preferably pair with preferred answers.

dauwhe: I can try to collect this info and bring it directly to Text 4 editors.

<dauwhe> https://drafts.csswg.org/css-text-4/#character-alignment

astearns: I support this, but it's makework until browsers sign onto it. Any chance browsers are going to do this?

dino: If your customers/publishing houses came to Apple asking for it, you'd get results.

tzviya: Chemical journals ahve a huge need for it.

<tzviya> sz??/Tzviya

Bill_Kasdorf: And lining up numbers in financial contexts.

dino: I'd appreciate - you can send emails to me - an email saying you're a publihsing house, you ahve these customers, they need X.

<ChrisL> s/Tzivia/Tzviya, Wiley

r12a: Dave, when you're doing these examples, can you put up some rtl ones?

Florian: Hiroshi provided some japanese examples, don't think they're much different.

r12a: But the bidi ones I'd quite like to see.

dino: Send emails asap. Now is a great time to get into Apple's planning cycle. ^_^

<dino> Send email to dino@apple.com

dauwhe: High-level future task thing.
... Relationship between CSS and FO.
... Seems to be a general trend of using CSS for a lot of document creation tasks, rather than XSL-FO.
... Might be useful to have a more formal summary of what we can do right now in CSS, and what we can't.

liam: I've worked on that somewhat, but not made a document.
... Been writing a program the last few weeks to autoconvert from FO to CSS, to try and find the easy vs hard things.
... Previously I approached it architecturally, but the specs are so different that's hard.

ACTION liam to identify the things in XSL-FO that are hard to do in CSS, and write up some results.

<trackbot> Created ACTION-791 - Identify the things in xsl-fo that are hard to do in css, and write up some results. [on Liam Quin - due 2016-09-26].

dauwhe: Status of Page Floats?

Florian: Johannes did a lot of work; at Vivliostyle we want to work on it, but haven't prioritized it recently.
... The basics of level 1 are in place, needs more error-handling.

<glazou> clapierre: there is no "next version of CSS"

<astearns> me clapierre continuously

<fantasai> clapierre: http://fantasai.inkedblade.net/weblog/2011/inside-csswg/modules

[discussing whether further topics are best done here, or in the Houdini day]

<glazou> gsnedders: C(n,p)

hanging punctuation

myles: In Text 3 we have a hanging-punct property.

<astearns> https://drafts.csswg.org/css-text/#propdef-hanging-punctuation

myles: The keywords in this prop describe character sets *and* situations to apply hanging punct, and the amount to hang that punctuation.
... A single keyword does all of these.
... These keywords are not very compatible with western-style punct. They're designed for Japanese.
... Because this isn't very useful for western-style, and keywords pull together all three pieces, it's impossible to extend syntax in the future to separate these out.
... It's common for different authors to want to specify different sets of characters to hang.
... It should be postponed to level 4.

fantasai: We had a long ML discussion on this.
... Both western and eastern hanging-punc wants to say "put parens/quotes on outside"; hanging-punc does that.
... In CJK you want to hang certain characters fully outside the box, but in Western punc you want optical alignment along that edge.
... Not specific chars, based on the shape of the glyphs instead.
... Different typesetting engines have different fetaures to try and get this effect.
... Some hang hyphens, some period, some both, some more...
... In each case you're not maintaining a grid, you're just looking for a sharper edge.
... It seems to me that classing chars and saying how much they hang isn't the ideal way to control this.
... You don't want that level of details, you want to say "do optical alignment".
... So better solved by having a "pairs kerning" value that pairs a character with the edge of the paragraph.
... So just a single switch in CSS that turns that on.
... Don't know much about font data, but there is a kerning-pairs table. Is there an entry for char+end of line?

lrosenth: No.

fantasai: Ah, would be useful. Powerful and simple for the author.
... I would rather provide that as a switch, rather than the author listing all the unicode tables that should hang, how much they hang, and they're basically writing a kerning table.
... Different fonts have different glyph shapes, different amount of hang is appropriate.
... Swash vs non-swash.
... So then not even character-based, it's glyph-based. Based on the font. Then CSS becomes simpler.
... Just too much complexity for author and CSS otherwise.

dauwhe: I'm gonna action myself to see what InDesign does, to see if they're that fancy.

<Zakim> liam, you wanted to note that a solution that involves editing every font might not be simple in practice

liam: Saying the solution is simpler if it just requires all the fonts in the world to be editted, slight problem there.
... There have been system in the past with "margin kerning" , a kern pair against a margin.
... Could see something like that added, with CSS being able to augment/override the kerning.
... But not sure if that's ismpler in practice than what we've seen.

fantasai: We can also just have an automatic thing where the UA just makes up values.

astearns: That's what InDesign does.

fantasai: So happy to have UA synthesize values when they don't exist.
... But adding character-based kerning in CSS is a lot of complexity for everyone, and doesn't really belong at this level.

SimonSapin: We already have codepoint sets in CSS with unicode-range.
... But not maps.

ChrisL: Two way sof doing kerning - kern-pair table, and a new way with gpos, based on contextual information.
... No way to kern at end of line, because end-of-line isn't given to the text renderer.

myles: People who know more about OPenType than me says the spec allows kerning against margins.

lrosen: But nothing in the gpos or other font tables that define that. You can synth something external, is all.

fantasai: So I'd say rather than doing this character-based (which is wrong anyway), we can add a switch that turns on automatic end-of-line kerning, and that'd be as good as what InDesign does. Then we can work with the fonts to bake this into the data tables.

lrosenth: If the goal is to do something with fonts, and we're okay with it only working with future fonts, the OT group is in the midst of doing OT advancements. Just completed SVG fonts, now doing the variable fonts.
... So good opportunity for change right now.

<ChrisL> I wonder how end of line and start of line contextual swash forms are handled though

dauwhe: I think we do want to decide on which chars hang and which don't - only hang period and quotes, but not hyphens (more subtle), or be really aggressive and hang em-dashes and question marks.
... Doing this off the spec list makes this an all-or-nothing proposal, which I'm wary of.

fantasai: We also have requests from CJK that they want specific punc chars as linebreak.
... And we're like, that's great, but we'll start with generic sets, and in the future add specific controls.
... Much more complicated than doing presets.

<lrosenth> @chrisL - a good question. I’ll see if I can find out

dauwhe: The set hereis inadequate right now, as it has no quotation marks. Definitely want that, possibly a hyphen.

fantasai: Other than quotes, what common things do you want to control? Chars that are common in books/etc.

dauwhe: open/close single/double quote, period, comma, hyphen

myles: In Latin it's uncommon to hang brackets/parens/etc, but the spec hangs them.

Bill_Kasdorf: Even on a char basis, French quotes aren't the same as English - French quotes might not want hanging when you do want English ones.

fantasai: Could see wanting hanging on first/last, but not internal lines.
... Spec currently does that. Only periods/commas/??? hang internally.

David_wood: People want to quote English in French, this is common.

fantasai: You can use whatever quotes you want.

koji: I disagree with fantasai about fonts.
... Some fonts want 49% hang vs 51% hang, we dont' wnat to go there.
... The idea of pair kerning on beginning/end of line isn't great for browsers.
... We shape logical runs, *then* make linebreaks.
... When we pair-kern, we need to reshape on every linebreak, and that's very expensive.
... s/disagree/agree/

myles: My proposal was to push this out to Text 4. Judging by disagreement, sounds like a good idea.
... It also seems very clear that some people want to hang different punc. Maybe font is one input, but not *only* input.
... I think having web author list codepoints would be extremely easy to create typographically bad-looking hanging paragraphs.
... People forget the codepoints all the time, or put in the wrong codepoints.

Florian: I'm convinced there's no easy answer for western punc. Not convinced the property as designed can't be extended to this later. For CJK, it might need extension, but it *works* and is clear.

<SimonSapin> http://www.fileformat.info/info/unicode/category/Pd/list.htm

Florian: So I'd rather not push it, unless it currently prevents us from extending in the future.

myles: I opened with the idea that the current values conflate char sets and ways to hang them, and a reasonable future will separate those out.

fantasai: I think they'll default; there would be an auto value.

<eae> astearns: there's "only" about 30 of them... ;p

fantasai: So we can add anothe rproperty, or make this a shorthand; as long as there's a good initial value matching our current, I don't think we're blocked.
... So I also want to keep the current, as it does work for CJK, and for pullquotes it works for Latin. Refinements I think we can extend into later.

dauwhe: I would first like to get together and design it for Latin, amke sure there's no conflict.

Rossen: Objections to pushing to level 4?

fantasai: Implemented in WebKit?

Rossen: But they're the ones trying to push it. ^_^

r12a: What about CJK users that want it now rather than in a few years?

Florian: The JP gov *will* care about referring to soemthing that's not CR.

fantasai: I think we shouldn't push it unless we find that it's not going to work.

koji: epub referred to the spec before it was CR...

myles: The keywords are "first", "end", "force-start", "force-last". And these specify char sets.

fantasai: Right. If we want to customize, we can add a different property, or extend this prop to specify.

<bobbytung> Hanging Punctuation not happens to Trad. Chinese. Simp. Chinese ebooks recently follow japanese rules in several Reading System.

fantasai: Like "first brackets"

<fantasai> e.g. hanging-punctuation: first quotes last quotes;

koji: correction: this property was not referred to by epub.

<fantasai> Can split into longhands, or add a parallel property

skk: epub already renders with hanging-punctuation, even if not explicitly referencing the spec.

fantasai: I think we should leave it at level 3, unless someone shows me a problem.

dauwhe: I'll work on the syntax.

r12a: Worried we're on a closed community; leaving it off of epub list might have just been an oversight.

Florian: I'd say you can't nicely typeset a book in Japanese without this, and as it is works for most books.

<gregwhitworth> https://speakerdeck.com/jensimmons/proposal-to-csswg-sept-2016

RESOLUTION: Keep hanging-punctuation in level 3, marked as at-risk, study whether it needs to be punted.

Regions proposal from Jen.

<fantasai> ScribeNick: fantasai

jensimmons [introduces self]

[ longtime designer]

jensimmons: Wanted to talk about Regions spec and alternative, and how it ties to Grid
... Grid is totally awesome
... Can do repsonsive layout in one line of code. Thank you everybody
... [shows cool examples]
... writing-modes, transform / rotate, etc.
... You can make Mondiran responsive
... Auto-flows, let Grid handle math
... Grid is fantastic if you have items and you want to place the items
... Can do that traditional way, or do that by adding wehite space
... But when it comes to long passages of text, still stuck with one giant column
... You can center it or right-align it
... Or break it up with some images
... But stuck with one long column
... multicol is awesome... except [scroll up and down problem with 3 cols of text]

<ChrisL> If only we had some way to calibrate output devices and maybe express that in some sort of color profile

<ChrisL> then we could see the presentation

jensimmons: We need some way to place items like this [arrows showing compex flow with short block, wide block, three cols, another spannign block, two col bolock
... Or do rows of multicols

[muil cols in rows, each shorter than viewport]

jensimmons: Could scroll-snap, but don't have to
... Got regions spec
... Regions spe cworks like this

[shows pile of empty divs, plus a few lines of CSS]

jensimmons: Need a bunch of elmeents to use
... You flow your actual content into a variablish thing (named flow), then later you pull out into empty divs
... Not in agreement about this, 'cuz have to useempty divs, add/subtract divs in JS
... Been wondering can we do this in CSS alone?
... Obsessed with this question
... I like this part (flow-into: foobar)
... Then see Grid, I see grid
... We have layout we want in grid, but need to be able to flow things into / out of boxes
... I think ths solution to this is also solution to another problem
... Other problem -
... Let's say ou have a layout
... Title, figure, article, bio
... Can lay these things out on to grid
... What if you want to put a line down the column
... What if you wnated a border down the full length?
... Could put a border on each item, but not on the edge of a grid, or edge of cells
... Or here, got items with background colors... bu what if I want to put a background on the cell?
... Want color blocking on the page, change it on responsive breakpoints?
... Grid doesn't have a way to style empty cells
... Rache Andrew says at every workshop, people aks how to style empty cells
... Design like this [ block borders between random things] can't do it
... or this [circle in the background; retangle in the corner]
... I know how to lay this out, but don't have anything ot style
... How do solve this righ tnow?
... Add empty divs!

[[[[RETURN OF THE SPACER GIFS]]]]

jensimmons: I know how to do this... spacer gifs as <div>s
... Solution is to solve the problem you haven't realized we have yet

<rachelandrew> I get asked the backgrounds and borders question re grid, pretty much every time (unprompted).

jensimmons: Trick of the thing is this
... If I want to style an item on the grid, no problem: place the item, then style it with a color
... What I want to do is to take the thing inside the curly braces and put it outside the braces
... grid: 3/1/4/2 { background: blue; }
... What else in CSS does this kind of thing?
... Animations does that, with @keyframes
... How about we do something like this?

@region foobar { grid: 3 /1/4/2 }

foobar { background:blue }

jensimmons: Name the rgion, target it, and style it
... Let's say we have multiple grid, maybe @region #grid-container foo bar { ... }
... or @grid-container:region(foobar) { ... }
... So in this example, place first three things
... Next, ceate a color block
... Whenever you use grid to explicitly place items
... OK
... But when using auto-placement, just get lots of rows of things
... Not a lot of ways to do creative things in that space
... What if I wanted the item in the 2nd to last column tilt a bit
... I always want that one tilted, however it auto-flows?
... Can do it with this design
... Ability to style a place in the grid, not just an item in the grid
... Another item on my running list of questions...
... I want to skip cells
... I want a bunch of holes in my gri: auto-flow, but skip these cells
... Maybe reuse this syntax for that
... How do you flow content through regions?
... So far can define a place on the grid, give it a name
... Also saying to name a region chain
... Looks like @region-chain .... { 1 { grid ... } 2 { ... } ... }
... Target a named area, tareget a region
... This make sit possible to easily switch from one region chain to another at any break point
... Named grid areas and named regions gets complicated
... Have to rename grid areas every time you want to chang eyour region flow
... This complicates things na dmake sit harder
... Name areas for styling the areas... but have the rgion chain be separate
... Here are some examples
... Here's a bunch of paragraphs
... Grid on my main element
... Region chain, I want these particular areas on the grid to be in the region chain
... In ths way as well,I could say text is bigger in this region
... text is less in this other region
... Here's all the code in one slide [10 line sof code]
... Antoher thing about it
... YOu have mobile version, responsive biger
... Right now reordering wrt ads, etc is done by screwing up a11y
... want to place ads in particular way
... Here have content in <main>, but mix it with ads that are not in <main>

j Here I have two region chains. One is maincontent flow

Another one is the adcontent flow

jensimmons: Great to have ability to pull content from another part of the DOM for this case
... Would be great to pull content from one place and pull it into grid in another part of the docuemnt
... Also helsp to solve CSS shapes
... Can create multiple regions, and then pull content from one to another
... Solves a lot of use cases of exclusions
... A lot of things we want, thought of way off in the dstance, could cover partially by this stuff
... I do think there's a need to fgure out how to do a repeat syntax
... e.g. want an unknown amount of regions
... But maybe a way to do this
... So requires grid, using grid to do heavy lifting for layout sizing targeting, etc.
... Three things: ability to define a region
... property for "skip me during auto flow"
... And then region chain

Rossen: Thank you for presentation

TabAtkins: I saw four things in here
... First is decorative pseudos for grid
... Sounds fine

<Rossen> aah, sorry glazou

TabAtkins: Specify chunk of grid, specify whitelisted properties

<Rossen> glazou, I'll give you an extra q spot

TabAtkins: Second is saying whether those take up auto-flow cases
... Might even be able to dos oemthing automatic there
... Example of tilting something
... Was that selecting a normal item in the grid based on the postion in the grid?

jensimmons: My though twas that the pseudo is like a container for the item in that area

TabAtkins: spanning items ignore it then?

jensimmons: I guess
... Would need to limit CSS that applies

TabAtkins: Reparenting under the pseudo.
... Not sure how difficult it is

plinss: We insert anonymous boxes

<rachelandrew> for some other background stuff, I did a bit of playing around with Grid + Regions as it keeps coming up as a possible answer to certain use cases https://rachelandrew.co.uk/archives/2016/03/25/css-grid-and-css-regions/

TabAtkins: Never insert a pseudo-element as parent of another box

plinss: Anonymous boxes were a long time ago intended to be styleable

<rachelandrew> https://rachelandrew.co.uk/archives/2016/06/17/thinking-about-page-floats-figures-regions-and-grids/ demos in those posts.

glazou: You have summarized what used to be in a lot of our drafts -- @slots
... I think Apple has some earlier version of @slot

dino: Not in WebKit impl

jensimmons: Yes, read that stuff
... Simlar, but not

<ChrisL> twitter points me to https://blogs.igalia.com/mrego/2014/12/10/web-engines-hackfest-2014/

glazou: We had something approachingyour wishes
... Alan and I discusseddiscussed region chains

<ChrisL> "On the other hand, I’ve been talking with Mihnea Ovidenie about CSS Regions and how CSS Grid Layout could help to avoid the criticism regarding empty HTML elements required to create regions."

glazou: Much of this considered, and rejected

jensimmons: Yeah, read up on all that. Was concerend of getting sam ersponse
... But we're also in a different place now than we were then

glazou: THe proposals were made to solve these issues
... Now we have a use case. At that time feedback was internal, not pulled in from external world
... There was almost no progress on regions side... only one implmenter of regions, only one for shapes
... Basically no interoperable progress in the browser world

Florian: Quick point, I mostly agree with you
... A subtle but important difference from before

<Rossen> q Florian

TabAtkins: Fourth point is that region chain is identical to region chains from before, has same problems as regions with later bits of dom and layout effects
... Possible with heuristics or iterative layout, both bad ideas.
... I think anything like region chains will be problematic

astearns: I think Tab is corret that ordered chain in your proposal has all the problems Tab described
... But grid-order pseudos don't have those problems

TabAtkins: Clarification, if we're just handlign overflow-style regions, where something has to be a set size and remainder after overflow is somewhere else, theoretically more handeable
... Cannot reasonably do balancing across regions.
... Might not be enough power to do what you want

jensimmons: I think putting stuff in a region in a differe tpart of the DOM is optional
... My instinct is that something is different here
... A lot of the questions, the naswers are handled by grid
... This is about putting things into a layout, not calculating the layout
... I read some of the earlier conversation... that allowed regions to do any layout, abspos whatever
... Let's do xyz regions because grid takes longer...
... I think we should simplify regions to only work within context of grid.
... Later, talk later

TabAtkins: I think the grid layout algo still has those exact problems
... Very scary circularity issues around size of tracks

<Zakim> david_wood, you wanted to ask DPub folks whether Jen Simmon's proposal would offer a solution for pagination.

david_wood: Wanted to quckly ask dpubig
... How does this affect pagination?

Rossen: Orthogonal

[nodding agreement from ? and dauwhe]

lrosenth: Flow is different

tzviya: lots of problems....

Florian: I agree with Tab's concerna bout this not solving everything
... I think I have a propopsal for solving things
... Havne't studied your styling empty grid slots proposal
... ... then maybe works
... Wrt fragmentation, don't see how it's orthogonal
... If you're using Grid to make your tmeplate, you want different templates on different pages
... So this does interact with pagination to have a set of templates, to ick one in each page

Rossen: We have a module for this -- page templates

Florian: Rehahs of that module is my idea for making this work

Rossen: One thing I wanted to bring as part of conversation, I love the fact that everyone is passionate about solving layout problem here
... Other side of equation is attaching event listeners and interaction, so this needs to be solved as well
... We can have all of the event model into CSS... we can reimplement HTML into CSS...
... But that point stands

jensimmons: Thought about that a lot

Rossen: This is a major sticking point, for when we were implementing regions ths was one of the first requirements
... app developer wnated specific event handlers per region

jensimmons: Style the region

<Zakim> Bert, you wanted to ask about region chains and pagination

Bert: My conern is related to Florian's comments
... In template module, wanted to attach grid to a page, e.g. left and right pages different
... If I have content goes into a slot, but second template doesn't have a correspondign slot, where does the content go?

glazou: I think that the rendering in iBooks solved that issue, not sure

jensimmons: This idea definitely depends on grid
... Up to the author to create layout that they need with grid
... This justgives author a way to flow into grid

Bert: page size is smaller.. content doesn't fit

SteveZ: Just wanted to see if I understood what Tab said
... If layotu cna be done indpeendnetly of content, no problem with region chains
... E.g. all fixed-size boxes

TabAtkins: Not no prolbems, just less problems
... Have to lay out into varying-widht containers

fantasai: That exists in paged media, handled by css-break spec

SteveZ: If you estrict self to grids whose layouts were defined before ocntent added
... No particular problem to regions that didn't exist with fragmentation today

dauwhe: I'm hearing that this might be hard, but it's absolutely worth doing
... What I see on this scren is beautiful, cuts right to the heart of what we want to do in design
... Even first paragraph on first page being different size... such a fundamental thing in our world
... These are the problems we are here to solve.

<TabAtkins> fantasai: One Q: agree that we need to style pieces of the grid, straightforward.

<TabAtkins> fantasai: How much of the regions stuff that you want to do here can we do with overflow:fragments?

<TabAtkins> fantasai: Has less problems than arbitrary regions.

<TabAtkins> jensimmons: Shoudl code up some examples and see what it's like.

<TabAtkins> jensimmons: Should choose something that'll seem elegant to authors.

<ChrisL> Would like to see more worked examples and get author feedback

<TabAtkins> tzviya: When you tell people about overflow:fragment, they don't want to do it.

<astearns> need a way to ensure that the overflow fragments can't be assigned grid slots that are not in grid order

<TabAtkins> fantasai: I mean, it's new. People have a way of doing grids right now that will be abandoned when they use Grid, it's revolutionary.

<TabAtkins> fantasai: I think this goes in line with what we want to do in CSS future.

High Dynamic Range

markw: Try to introduce this topic on 3h sleep! :D
... Doing a lot of work on HDR video
... Standard is luminous from 0 to 100?
... They would master video to look good in that range
... For HDR, available range is up to 100nits (candelas per square meter)
... Wne tfrom content mastered to this new range

<pal> 0 to 10,000 nits for HDR

markw: Nobody has 10000nits
... Highest is 4000 range
... Consumer devices more like 1000

TabAtkins: What's 10000?

pal: sun on a chrome bumper
...

<ChrisL> https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-0-201607-I!!PDF-E.pdf

markw: Immediate question is how do I define colors in CSS with colors that match the pixels in my video
... Or perhaps have a still image

<pal> 10,000 candela/m^2 (or nits)

markw: want to make t match the frame in the video / photo
... Looking at CSS work in Colros spec, great to se ethere are more profiles in there
... BT.2020 profile are ones that people use for HDR video
... Questio that came to mind which I raise don the list is
... How do you signal that the colors you want are from this wid eluinous range, and not from the 0-100nits or 0-80 of sRGB
... The Bt220 was used earlier
... Not a lot of content, really, but it was created for ?]
... PPl use this with an HDR transfer function
... Specced in a diferent one, BT21
... Discussion of maybe using ICC profiles, to solve this problem
... Not sure this solve sthe whole problem
... In problem because when I look at ICC stuff
... It focuses on reproducing on paper
... Peak whit eon paper is blank paper white
... Whereas peak white on HDR is very different, very different of emitted light
... So the qustion that we struggle with is how, given sRGB pixes and HDR pixels, what is the peak white of sRGB? Probably what te user set it to
... But for specular highlights might need it to be brighter
... That's my summary of the problem
... Wanted to get feedback
... At a high leve, probme is how do I take images out of vdieo and get it into the graphic splane, draw things that look the same oclor

dino: Said vido source has define dtranfer function

markw: Several

dino: Would it be nough for us to point at that?
... So you coudl say color(bt020 transfer-function)

ChrisL: Not in the profile though

dino: You'd have to specify the ICC profile and the trnsfer function

ChrisL: CSS color is based on ICC4, white is based on white paper
... HDR has much higher luminoance and shadow detail
... Theres's a new thing, ICC Max, which should handle that

pal: Mark provided uick overvie,w wanted to bring om some spiecific topics

<lrosenth> iccMAX - fantasai:

pal: FIrst one, expanding on combineing rec20202 with extended transfer fucntion (PQ)

<lrosenth> iccMAX - http://www.color.org/iccmax.xalter

pal: Tranfser function encodes absolutes absolute luminance values from 0 to 10K nits into 10-bit

<ChrisL> link to the spec being discussed: https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-0-201607-I!!PDF-E.pdf

pal: In that combination of rec2020 and white point and transfer function
... ITU spec
... Supported today in consumer and professional montors
... This doens't solve the problem of how you composite
... But allows you to capture the most ocmmon wan of distributing and representing HDR images
... Second point is that I noticed is DCI-P3
... It doens't really exist
... no such system define danywhere
... Ppl colloquially use it ot reference on of 2 things
... Diital cinema defines transfer function and quantiation equation
... But doens't specify white point
... Or color primaries
... Maps absolute xyz value sonto integer code values
... ONly supports max of 50 nites
... Not useful for consumer applications
... For cinema, lower peak luminance
... For color primaries and whit epoint, need Reference digital cinema projector
... The white point is avocado green, though
... So that's what digital cineam uses, but it's not good for hte home
... That is the most correct definition of DCI-P3
... Other thing it might refer to is P3D65, which is ued for mastering
... That uses the P3 primaries (same as referenc eprojector) but uses D65 white point and PQ transfer function
... Same as REC2020
... Neithe rof these are used in consumer applciations
... What maeks it to the consumer is Rec.709 for SDR or Rec.2100 for HDR
... I'm not sure that was intended, but wanted to bring some specific comments to the spec

lrosenth: Amogn other things, I represent Adobe at ICC so member of nterational color consotium
... also iso standardiation of ICC
... ICC4 is used on the Web, is not enough for HD color
... ICC is working on addressing this
... Not just for Web, but also pritn, fabric, etc.
... Pasted a link to draft spec, about to become final spec at ICC
... Other piece of work done at ICC
... As of last week, ISO committee met, work is moving to ISO
... Rather than moving entire spec into ISO
... Entire spec is very large, addresses many things
... Rather than bringing many things, decided to create profiels or subsets for individual uses
... So going to make individual profiles for speicfic use cases
... Want to bring to this group, bring subset of ICC Max for the web
... I would love help from the group
... Happy to work wth you in whatever is appropriate fasion
... Obsvously need sto be a joint effort

<ChrisL> I volunteer to work with lrosenth on an ICCMax for Web profile

lrosenth: What I'd like to see from directional perspective, move this forward correctly.
... Adopt CSS color

TabAtkins: Given that we have video profiles that handle high luminance already, do those work for images already?

ChrisL: Undefined
... No way to say "preserve ths frame as an image"

TabAtkins: Separate point wrt css colors
... LAB as it stands doens't have ability to do luminances
... but can add on later
... So for CSS, can punt until ICC Max stabilizes
... Seems like for images will automatically work once browsers update to color psace work

ChrisL: Not a CSS issue, but ppl i nthis group need to be aware to help drive this work

lrosenth: CSS Color would affect SVG and other groups that work in colors
... You need to have one single coor space, color model, for all that

TabAtkins: Yes

lrosenth: Assumi this group will influence the others

TabAtkins: We'll need a syntactic change in css colors, but in the future

SteveZ: The issue of compositing seems to creep in here somehwere
... Whie it may be behind the scenes, seems like a fairly significant change

ChrisL: Yes, once it lands compsiting will need to be updated
... [...]
... This new stuff is input colors
... Like when you take a digital photo, map 14-bit range to this

pal: REC2100 is display-deferred
... The actual output level on the monitor

markw: With compositing, you've got PQ thing that says th output

<pal> REC2100PQ is display-referred

markw: You have sRGB that says ... but ppl don't do that because they make their screens brighter
... Sometiems peak of display, sometimes 200 its
... Seems like can't address the problem untl pp play with it
... Question of where is peak sRGB signal mapped to
... Otherwise whta you end up with is user has set their display brightness so that their sRGB apps look comfortable, if that determines brightness of HDR video
... Part of this problem of ppl boosting up brightness levesl for years, to ...

pal: Added captions and subtitles is an example
... If peak white is 10,000 nits, but on dark scene, don't want to map white subtitels to 10,000nits cuz subtitles will be painfully bright
... Have to composit intelligently so don't end up that

lrosenth: Shouldn't need to change the current spec, refere to profiles

pal: Right now have REC2020, but athat's SDR

Florian: You can also sideload profiles, can load an ICC Max profile

pal: Have to go into deail of whether you can map 1-1
... thorugh an ICC profile

lrosenth: Right now can't do that, without loss. Will clip
... Going forward d it's fine, no problem
... Instead o using PCS / LAB
... Use PCS, wide even more wide in terms of mapping system
... Much richer model transform

pal: How doe sit work?

lr How you define your pfoile table

lrosenth: Can do math, formulas, lookup table

pal: Can you show a sample that demonstrates round-tripping?
... We need to convince ourselves that this will work
... mastered in 2100, seems lots of work to map into this other space and back

lrosenth: Handled by ...
... color management module

<ChrisL> ICCMax spec here http://www.color.org/iccmax-status.xalter

pal: What your'e sainding, color spec would be the 3 10-bit component of the color , associated with that would be mapping
... Up to 10000nits

lrosenth: Whatever you ask for

pal: Have to map the right xyz coordinates

lrosenth: I will work with committee to come up with that

Florian: Short point eralire, ISO wnated to do subsets, and you were interested in subeset for Web
... One tricky thing is that Web is fairly universal. Not sure about txtiles, but e.g. we have to handle books as well as screens

<Zakim> ChrisL, you wanted to wonder about viewing conditions

ChrisL: The DCI-P3 stuff was brought in because Apple was shipping displays descirbed as..

dino: Display P3

ChrisL: P3 primaries, but 2.2 transfer curve
... But ? is 2.6

pal: Yes

ChrisL: Because of dark surround
... Presume that P3 is also ?

pal: No, 0-10Knits
... DCI-P3 is a misnomer here
... Transfer function is intended for displaying n the home

dino: The MQ that detects... that doesn't need to change. Just saying "P3-ish"
... Speicfying color, need to be more precise
...

ChrisL: Latptop, phone, has what it calls a "movie mode", which is P3 with 2.6 curve

pal: Even though monitor is capable of P3, how much content is authored for that?

dino: Our devices generate content with that, we sell minions per day

millions

?

scribe:

dino: I would be overjoyed if keyword we chose was display-p3

Florian: apple-p3

dino: Asusming that when ICC max comes in, point to those profiles, possibly with new keywords, to profile HDR colors

pal: Also have to talk about fallback, tho
... If yo ucan't get it, what happens?

dino: Spec says you can reference one, but never want to do that
... Keyword is important
... browser knows what that profile is
... Choose small but useful set that will alllow 99% of what ppl need

ChrisL: Question to lrosenth, ICC Max is spec plus reference code
... Can we experiment with that now or too early?

lrosenth: Please try out reference implementation. It's fully complete

markw: Some kind of capability discover

ChrisL: Media Queries

dino: color-gamut media query has "good better best" values

<astearns> "good better best bestest" in the future

markw: Understanding profile is different from being able to display it

dino: MQ is for the whole stack

<br duration=20min>

<scribe> ScribeNick: TabAtkins

Transforms 2

shane: translate/rotate/scale are in a l2 delta spec

Transforms L2: backport translate/rotate/scale, as they're stable but L1 still isn't?

shane: We did that because Transforms 1 was gonna be stable Real Soon Now©
... So asking if we can move them to L1

dbaron: How many implementations?

shane: We have one behidn a flag.

dbaron: We had someone working on it, but it was harder than I thought.
... To do animation, it needs to be plumbed all the way thru the compositor. Seemed like too much effort.

shane: I think our impl doesn't plumb; it pulls animations back to the main thread if you animate one of the properties.
... Not a long-term plan, but there's a growing list of props that need the same treatment. offset-* stuff too.
... So our intention was to do everything in one blast.
... Pulling things to compmositor isn't particularly expensive anymore.

dbaron: I was concerned about the cost of new code needing to be written, not perf.

shane: I'd just say that an increased gamut of compositable properties is coming anyway. We're deferring that cost as well, but we'll have to go back and pay it too.

dino: So question is whether to put them into Transforms 1.
... What's wrong with keeping it in level 2?

TabAtkins: CSSWG policy is to not ship publicly until it's stable; delta specs aren't.

dino: Problem remaning is some 3d issues, multiple impls that all disagree a bit.

ChrisL: How are people using 3d if browseers disagree?

shane: There's just a lot of content that works in only one browser.

ChrisL: So there's gonna be compat issues anyway?

shane: Yeah.

<fantasai> plinss: Days since the CSSWG has broken the Web: Zero

dino: I think Simon proposed something that required some tweaking from everyone. We were waiting for Roc, but that drove him from Mozilla.

TabAtkins: So split it back into 2d-transforms and 3d-transforms

<gregwhitworth> TabAtkins: this is partially the chicken and egg issue

Rossen: So thoughts?

fantasai: 2d transforms is done. It can sail thru, then we do the translate/rotate/scale in level 2, + 3d transforms.
... Tab can cut a version and make a DoC.

Rossen: Option 1 is do what Shane is asking, pull translate rotate scale into level 1.
... Option 2 is split 3d transforms into level 2, and send 2d transforms to Rec.
... Option 3 is do nothing.

<leaverou> how is Option 1 different than Option 3?

shane: I like option 2 better

dbaron: This feels like make-work without an editor.

TabAtkins: I can do it. Just mechanical shifts.

RESOLUTION: Punt 3d transforms to level 2, turn it into a real spec, quickly REC Transforms 1.

Action Tab to do the Transforms split/reform.

<trackbot> Created ACTION-792 - Do the transforms split/reform. [on Tab Atkins Jr. - due 2016-09-26].

dino: If we dont' want to have this discussion again in 7 years, I recommend browsers read the 3d stuff and figure out how 3d works.

dbaron: Can dino send a URL to the part you want feedback on?

dino: Yes. Not all of it is in the spec now.

Variables

<fantasai> ScribeNick: fantasai

TabAtkins: Easiest to hardest order..
... How to store/serialize custom property values
... Specifically, when putting non-CSSy syntaxes into a custom property, e.g. SVG path syntax

<TabAtkins> --path: m40.0,20.0;

TabAtkins: This is a single move command
... This is a single move command
... From SVG perspective, this is an "m", a 40.0, a comma, and a 20.0
... From CSS perspective, this is an ident m40, a number .0, a comma, and a number.

<TabAtkins> --path: m40/**/0.0,20.0;

TabAtkins: ...

ChrisL: Can't you just put a space there?

TabAtkins: In this particular case, yeah
... We don't keep around the original information
... so when we reserialize it, can parse out differently (see above)

SimonSapin: What about having property as a single string?

TabAtkins: Suggestion is to carry the value as a single string, and then parse it into tokens when it is used.

leaverou: What is advantage of parsing it as a token stream?

TabAtkins: Simpler 'cuz it just parses in as CSS.
... To parse it in as a string, would need to cross tokenization/parser levels

dbaron: In Gecko and Servo, stores it as a string

Rossen: Observable through white space as well

shane: I think there's a strong author concern, to write in something that looks like an SVG path and get out a thing with a CSS comment in it

<ChrisL> yeah the unexpected blank comment is really unexpected and crufty

TabAtkins: CSS Syntax technically handles this by keeping around the original representation, but nobody does it anyway

<shane> :-P

TabAtkins: I would have to do some fixes to make this all work properly

SimonSapin: Could also punch a hole in the abstraction and say this is just a string.

TabAtkins: i don't know how to write that in specese

SimonSapin: Just specify normativively that it's parsed as a string.

fantasai: Spec is written in English. You can spec normatively anything you can explain to us

TabAtkins: So parse in as a string.

<AmeliaBR_> Re SVG path notation: I prefer to keep it as a string from CSS perspective, so that authors can still copy & paste SVG path data created by existing visual editors. But I also want to add functions to concatenate multiple path strings.

SimonSapin: Then preserve comments in the string?

TabAtkins: Eh, i guess I'll try to spec this and then seen how it comes out
... Guess there's no objection to this, since y'all implement it already

leaverou: Does this make it harder to have interpolable (animatable) values later?

TabAtkins: No, because that's for typed values anywya

leaverou: You don't want to just say "This is a color", want to be able to say "this is a color then a length then a number"

TabAtkins: I think we just give a string in the OM atm

RESOLUTION: Custom properties must preserve their input exactly for serialization

TabAtkins: Value-tainting
... in order to avoid weird behavior loops, if you use a var() in a keyframes rule, we taint it so you can't use it in an animation property
... Tainting applies globally, so if different libraries using same name in different parts of the subtree, still tainted
... However, (Shane can give more detail), we've experimented with just tainting values directly
... And apparently this is extremely easy

<ChrisL> That sounds like a mystery debug session where some custom property suddenly stops being animatable

TabAtkins: Would like to, if possible, do value-based tainting instead of weird name-based tainting.

birtles: Does htis also cover the dispaly property?
... Could you use a custom property to also animate display?

TabAtkins: Only to go from none to block
... Shouldn't bring up new issues
... Only 'display: none' has special animation behaviior

dbaron: I agree that fremy's case is an issue

<frremy> --foo: abc; animation: var(--foo); @keyframes abc { to { --foo: def } }

Tabatkins: This ties into the next issue, which is about using var() in keyframes
... Several engines allow var() in keyframes even though I didn't spec it that way
... Need to define doing var substitutions twice for this
... In this example, need to substitute var(foo) in the animation, get the abc value
... Then run the keyframe, woudl transition to def value
... At which point you redo your vriable substutions, but not in the keyframes

dbaron: That's painful for dynamic changes
... If htere's a dynamic change, need to go back to the orginal one...
... Or keep 2 sets of selectors for each element

heycam|away: You need to do that anyway

TabAtkins: Not generally, but if you are doing var in keyframes, which apparently you do
... Then you do

dbaron: I'm not sure we did it intentionally

TabAtkins: var() in keyframes takes the value from the element the animation is running on
... To do that properl, need to do that once, then resolve, then resubstitute
... Or just do it once and animate a property that doesn't get reflected, very weird

dbaron: I feel like you're crossing var() in keyframes and --custom-prop in keyframes
... Problem you described is problem with having custom-prop in keyframes, not having var()

TabAtkins: It's a problem with having custom properties in keyframes that affect animations, currently handled by tainting
... In ieal non-problematic case, have custom property defined for element, animation of that property on keyframes rule
... var substitution hsould reflect the running animation, not the base value

dbaron: Animations make you compute style

fantasai: How do you anmate a string?

TabAtkins: flip at 50%

<birtles> problem with display property: --foo: block; animation: yer 1s; display: var(--foo); @keyframes yer { from, to { --foo: none } }

fantasai: what's the use case for animating custom properties?

TabAtkins: Adding ability to type custom properties in Houdini
... Lea also has some examples where it's useful to animate keywords

dbaron: How does the global tainting work?

TabAtkins: If a custom propety is animated in any keyframe
... That name is tainted, and becaomes an invalid reference in an animation-* property

dbaron: I think global tainting is less disruptive cuz affects less stuff

shane: Can be bad because blow a way abunch of rules unexpectedly

dbaron: Can you do the other tainting in both directions?
... Such that if you use a custom property in a keyframe then you taint the value and it can't be used in an animation and... that's harder though
... To solve frremy's case, need to also tain in other direction

shane: For frremy's case
... You apply you static style
... That might tigger some animations
... And then you appy your animated style after that
... Don't update var references in animation properties

dbaron: As long as we don't send AnimationStart and AnimationEnd events each time

shane: You don't update animation-* properties EVER as a result of animated styles

dbaron: That's actually really hard for us
... When we apply the animation style, we create a new style context with a different rule, and th eold one is gone now
... We're reying on the way cascading works that it has the same animation values
... And this would mean sometme sthey don't

TabAtkins: Don't update them

dbaron: How do we not update them?

shane: You..

dbaron: We recompute the variable references because we created a new style context

Rossen: Our impl is fairly similar in that respect

frremy: You cannot animate custom properties that are used in animation
... If you use somehting in animation, big red flag to not use it

TabAtkins: One componaent might be using animation name for animation, another using it for something completely dfferent. They could be in different subtrees, b/c this is global

shane: Could maybe look into subtree-scoping... but need to inherit that down...

dbaron: I guess we could do it by keeping the pre-animation style around and get the non-animation properties from that
... Not that crazy
... We'd then end up... I just don't wnat ot use that trick much
... Each time we use that trick, it's another power of 2 in memory... already using it for :visited stuff

fantasai: power of 2 for whole tree?

dbaron: No just that element, but also adds lots of complexity

TabAtkins: Relatedly, I would love to note any idea you have wrt handlign var in keyframes today
... For that still need these multiple phases.
... Do need to run var substitution once to know what your'e animating
... And then need tp ...

dbaron: We're just computing style twice

TabAtkins: That works, that' smulti-phase -- but nobody needs to remember what hte old style was in that case

dbaron: We're only doing it twice when you initially do the animation
... or whenkeyframes applied are changed
... Otherwise we have right animation the first time through.
... But also have the keyframe sthe first time through

TabAtkins: Ok, I would like to at least jsut keep an issue on the name-tainting that we should try to figure out something btter
... Works well for our impl, not so much for y'alls. Would like something cleaner and safer

dbaron: I guess your proposal isn't that horrible, just need to have the other style around
... Might even be able to get away without it

TabAtkins: Alternative is to not allow var() in animations ever
... Don't know what uses show up right now. But could restrict it entirely.

birtles: Common to use variable for animation durations, to set it globally

TabAtkins: Makes sense
... So, dbaron, how much "not that horible" do you feel this is.
... Should we switch the spec to value-tainting, or as an issue

dbaron: Would prefer to keep as an issue until someone implements

gregwhitworth: Raised issue because we want to know what to o

TabAtkins: var in keyframes is a separate issue
... This was just about animation-tainting

<leaverou> TabAtkins, I recently used var() in animation properties. The animation was simulating typing by animating width with steps(), so I used var(--length) in both steps(), and in animation-duration (multiplied by .2s)

TabAtkins: Let's talk about that issue
... Proposed resolution is the var() function works in @keyframes rules, and pulls its values from the element being animated.
... Specifically, from the before-animations-run value.

Rossen: Any objections?

leaverou: If you use --foo in a keyframe, and var() in a keyframe, does it take its value from the elemtn or the keyframe?

TabAtkins: From the base value. You set up the animation keyframes first, and then ????
... Everything else uses the animated value.

Everyone is confused

leaverou: var(--foo) will reflect the base value in the animation but not elsewhere? what?

TabAtkins: It'll work like Lea wants, where var() will be replaced based on custom property in the keyframe

fantasai: Which is not what you said in the beginning

<gregwhitworth> and I'm assuming that the --foo inside of the keyframe will update the values outside of the @keyframe correct?

TabAtkins: It is not
... Objections to proposed resolution?
... var() function works in keyframes, pulls its value from the animated value of the custom property on the element

(proposed resolution)

RESOLUTION: var() function works in keyframes, pulls its value from the animated value of the custom property on the element

SimonSapin: So any cycles are resolved the usual way?

TabAtkins: Yeah
... Only remaining issue is, don't change animation-tainting yet, but may want to change to value-tainting but too expensive atm

dbaron: Might want to describe what value-tainting is in that note

birtles: display issue

TabAtkins: That's a separate issue. Please file it.
... Always been ain issue

fantasai: Adding an issue or a note(prevoius issue, not display issue)

<dbaron> dbaron: ... been an issue since we added ability for keyframes to set non-animatable properties

<TabAtkins> ScribeNick: TabAtkins

implement/ship several transition/animation events

birtles: We have level 2 specs for animations and transitions, delta specs.
... They define some extra events - animationcancel, transitioncancel, transitionstart (Edge and IE10 ship).
... I went to ship in Firefox, but spec and IE differ in delay. After some discussion, I added transitionrun as well.
... Lets us tell if a transition actually fired or not.
... transitionstart in Edge fires at the end of the delay, matching animationstart. Want to make the spec match.
... Then add transitionrun, which fires when a transition is applied, even if it's in a delay period.
... So we were thinking that since Edge ships we can just impl that, and do transitionrun at the same time. And then might as well do the cancels.
... So should we go for it?
... Issue is the elapsedTime member, a little complicated.
... elapsedTime wasn't clear, behavior or use-case. Was it for syncing animations?
... The way it's specced ddoesn't let you do that. It gives you the ideal time of when the event was fired, not the actual time.
... But all browsers are consistent, and spec says that. I've left it as it is.
... So should cancel events use the same thing - time when animation was canceled? Or zero?

SimonSapin: If you're making it 0, does it need to be there at all?

birtles: It's on the interface they all share.
... It's used enough in GitHub that we can't just remove it.

<birtles> https://github.com/w3c/csswg-drafts/issues/68

TabAtkins: Is it used in a way that would break things if we just made it 0 all the time?

dino: Useful in iteration events, to know what iteration you're in.

TabAtkins: Maybe we can cheat and just return multiple of duration in the iteration event, zero elsewhere?

birtles: The start/end events do so too, so you can just divide by duration.
... A lot of uses are just dumping to console for no obvious benefit.

TabAtkins: So the cancels get fired if the transition property is removed?

birtles: Yeah.

TabAtkins: Or if the target-value is changed? WE cancel the current, start a new transition?

birtles: Yeah.

TabAtkins: Okay, then we probably do want the elapsedTime, to know whether we were nearly done with the transition or near the beginning.
... So we need a resolution - do we want to bless these four events as shippable?

SimonSapin: Should we move them to the level 1 spec?

TabAtkins: What level is Trans/Anim at? WD?

[looks, they're both 2013 WDs]

RESOLUTION: move the four transition/animation new events to the level 1 specs

RESOLUTION: after edits, publish new WDS of transitions and animations?

<gregwhitworth> I would like to request a FPWD of tables, hopefully that's short

"revert" keyword

shane: The "revert" keyword is very very expensive to implement properly.

<fantasai> https://www.w3.org/TR/css-cascade-4/#valdef-all-revert

shane: Apple's impl isn't correct as far as we can tell.

https://drafts.csswg.org/indexes/

shane: It's supposed to set the property to what it would be if there were no author stylesheets.
... To do that you have to recompute the entire path from the root to the node, because of inheritance.

fantasai: That's not right, the spec shouldn't be affecting inheritance.
... It only blows away declarations from the cascade; it doesn't touch inheritance. It's okay for the inherited value to be set by author-level rules.

shane: If that's the case, then this is easy, never mind.

RESOLUTION: republish Cascade 4 as CR, with the additional note that inheritance isn't affected by "revert".

RESOLUTION: republish Cascade 4 as CR, with the additional note that inheritance isn't affected by "revert".

<fantasai> shane, is there a URL for your revert issue?

<ChrisL> is that the only change and have there been other comments on Cascade that need a DoC?

<shane> fantasai: no, sorry

SimonSapin: The definition of "revert" says "author-level". Does this mean "author origin"? And what about animations?

TabAtkins: Think the point is that everything from an author-level stylesheet, so animations may fall into that.

dbaron: Should just clear out animations/transitions entirely, always treat them as author-level.

CR timing

<dbaron> and override

tantek: CR deadline for this year is basically tomorrow.
... But also, editors should speak up if they think their specs are near CR.

fantasai: Grid! I need some response from Mats and then we're done.

tantek: So this is our last f2f.
... This year.
... And there's a pub moratorium sometime in Dec, need a staff contact to tell us when it is.

<liam> [ December 19 - Jan 1 ]

Florian_: If we don't have a plan, I'd like to put MQ4 on the CR list.
... Lots of things we want to punt from it.

<Bert> (Dec 14 = deadline for pub request)

tantek: Want to suggest Selectors 4.

TabAtkins: Can punt some stuff.

fantasai: There's some selectors interpretation issues that are harder.

tantek: Another is Box Align.

fantasai: Almost done - baseline is the big stuff.

tantek: I'm picking these because the issue list is small and the feature set seems frozen.

fantasai: Yeah, Box Align should definitely be on the list.
... Tomorrow we can sort out a syntax issue and do the baseline issues.

dbaron: Were my issues about property interaction resolved?

TabAtkins: I think so.

<tantek> Box Align issues: https://github.com/w3c/csswg-drafts/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+%22%5Bcss-align%5D%22

Rossen: So we have Grid, Selectors, Box Align, MQ.

Florian: Text 3?

fantasai: It's in Last Call, I'm working on it.

skk: What about Ruby?

fantasai: That still has a lot to do, unfortunately.
... I'm working on Text 3 in my spare time.
... The Text 3 issues aren't super-complicated / interconnected. They're nice and independent.
... Got some i18n issues, and then probably just push things to telcons.
... There is a complete DoC, we just have to work thru it.

tantek: So for these, can you look thru these and make sure all issues are raised.

fantasai: And Scroll Snap is ready.

tantek: Now how many are gated on two people?

TabAtkins: Florian is on some of them.

ChrisL: During the rechartering, got requests to say real status - "this is gonna wait for 4 years because it's complicated" or "this has X issues" or something.
... Not huge detail, but better than "expect CR".

tantek: For those four or five specs, we can say "2016 Q4" and publicly commit

Florian: When we wrot ethe charter, we focused on Rec, as it seemed to be a process requirement.
... but the AC review seemed to show it's not - just put dates on what can be predicted.
... If we can predict CR but not Rec, just put that.
... Some people still want Rec dates, but idea that it needs Rec dates isn't valid.
... So next charter we can just put "Rec, unknown date, needs tests"

<fantasai> ChrisL, Cascade 4 is ready for publication https://drafts.csswg.org/css-cascade-4/issues-cr-2016 with one editorial issue resolved and fixed.

<ChrisL> https://www.w3.org/Style/CSS/current-work.en.html

<fantasai> ChrisL, can you get it published? :)

tantek: So having CR dates is valuable - we got that feedback.
... There's nothing between CR and PR - we're not communicating when we have no idea about the test suite.

<ChrisL> fantasai, I asked about the DoC for Cascade

tantek: We should be transparent about that.

<fantasai> ChrisL, ? Link above?

<ChrisL> oh right

<ChrisL> excellent!

astearns: Maybe Bikeshed can track it?

TabAtkins: File me an issue?

fantasai: This should be the custom status, instead of the stupid boilerplate.

tantek: So for tomorrow's items - a lot that don't need to be in CR. If there are CR-blocking items, I'd like to prio them.

<ChrisL> fantasai, seems we could get a transition request for Cascading & Inheritance fairly quickly withthat tiny DoC

Florian: We have some MQ4 and 5 issues; the 5 are on the agenda.

tantek: So look thru MQ4 issues and see if any need to be raised.

<jensimmons> hi all — I just updated the slides at https://speakerdeck.com/jensimmons/proposal-to-csswg-sept-2016 to include the things I wrote up, but didn’t present — comparing my proposal to current Regions proposal, and comparing it to Slots, etc. Those slides are at the very end.

<astearns> jensimmons: add a link here as well? https://github.com/w3c/csswg-drafts/issues/499

Rossen: If you're an editor of one of those CR-ready specs, and you do or don't have agenda items for tomorrow, bring it now or email us and we'll make sure they're addressed tomorrow. Otherwise we'll do the agenda as stated.

tantek: And ask for horizontal review for these CR-ready specs?

fantasai: We've sent those out months ago.

tantek: So can we make an action to make sure those 5 specs ahve horizontal reviews?

Rossen: Yes.

gregwhitworth: I'd like to ask for an FPWD on Tables.

RESOLUTION: Publish Tables as FPWD.

dbaron: Make sure it's marked as not ready for implementation yet.

TabAtkins: In Bikeshed, use "Warning: not ready".

tantek: Speaking of, what about Filter Effects 2?

dino: No idea yet.

tantek: I'll ask again in January.

Jan meeting

Rossen: So we've pencilled down Seattle f2f for Jan 11-13.
... Which is mid-week - Wed-Fri.
... I'm working on getting Seattle space, so we don't ahve to do it in Redmond (by popular demand)
... So feel free to book flights. In a week or two I'll have the destination for your hotels.
... Might be a 1-day Houdini meeting on Jan 10 Tuesday.
... We have late April in Japan.

skk: I heard AC meeting in April is held 23-25.

dbaron: In Beijing, yes.

skk: And Tokyo is near. So I'd like to get our meeting before or after that.

Florian: After is about to hit Golden Week.

skk: Right, so maybe before is better. In the 17-21 week?

dbaron: Who's going to the AC Meeting?

<dbaron> How many people not based in East Asia would go to both the AC and CSS meetings?

Florian: dbaron, and maybe me?

dbaron: You're in Asia, ignore you.

<fantasai> dbaron, last day of exams is May 10th, so I could do Wed-Fri that week or anytie after without missing classes

Rossen: So 17-21 hits our bill - late April - and avoids Golden Week
... Hiroshi might not be able to host in May in Tokyo

gsnedders: What about moving it earlier in April? Any easier?

fantasai: No idea right now. Right now it's 2 weeks before end of classes. We'll make it work somehow.

gsnedders: Note that April 16 is Easter.

dbaron: And if you celebrate it, a 19-21 meeting means you have no jetlag day - you leave Monday and land Tuesday.
... If we do a Houdini day before, you have to leave on Easter.

[tons of unminuted discussion about spring/summer meetings]

<Rossen> adjourned

<Rossen> trackbot, end meeting

Summary of Action Items

Summary of Resolutions

  1. keep note from CSS2.1 for caption-side, add left & right values to note, move side captions to next level
  2. Anonymous inline boxes which contain only white space, are the first and/or last child of a tabular container, and whose immediate sibling (if any) is a table-non-root box, are treated as if they had display: none.
  3. gecko to review, then add note to new text and accept
  4. drop border-radius support on table root for tables in collapsed mode.
  5. specify gecko's behavior for height on table-row-group
  6. Add a MQ that reports MathML support, with some way for scripts to claim support.
  7. Keep hanging-punctuation in level 3, marked as at-risk, study whether it needs to be punted.
  8. Punt 3d transforms to level 2, turn it into a real spec, quickly REC Transforms 1.
  9. Custom properties must preserve their input exactly for serialization
  10. var() function works in keyframes, pulls its value from the animated value of the custom property on the element
  11. move the four transition/animation new events to the level 1 specs
  12. after edits, publish new WDS of transitions and animations?
  13. republish Cascade 4 as CR, with the additional note that inheritance isn't affected by "revert".
  14. republish Cascade 4 as CR, with the additional note that inheritance isn't affected by "revert".
  15. Publish Tables as FPWD.
[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.144 (CVS log)
$Date: 2016/09/19 17:14:09 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.144  of Date: 2015/11/17 08:39:34  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: RRSAgent_Text_Format (score 1.00)

WARNING: Bad s/// command: s///???/jcraig/
Succeeded: s/???/jcraig/
Succeeded: s/for captions/for tables/
Succeeded: s/spec/side captions/
FAILED: s/be careful with anything you do wrt accessibility - captions are the unofficial accessible label for captions./be cautious how you announce any property changes with anything related to accessibility - caption is the official accessible labeling element for tables./
Succeeded: s/hide/collapse/
Succeeded: s/what about mark/what about marker/
Succeeded: s/add to it/extend it to, e.g. handle paint servers/
Succeeded: s/eae/esprehn/
Succeeded: s/isn't correct/redirects to a url with a fragment/
Succeeded: s/really//
WARNING: Bad s/// command: s/think that Firefox is already solving this/didn't dbaron say that FF loads based on local vs non-local URL? That's less more straightforward than switching based on fragment/no-fragment/
Succeeded: s/SVG/SVG WG/
Succeeded: s/Chrome/chrome/
Succeeded: s/???/David_Wood/
Succeeded: s/???/David_Wood/
Succeeded: s/sz???/tzviya/
Succeeded: s/???/Bill_Kasdorf/
FAILED: s/Tzivia/Tzivia, Wiley/
Succeeded: s/Tzivia, Wiley/Tzviya, Wiley/
Succeeded: s/???/lrosenth/
Succeeded: s/???/lrosen/
Succeeded: s/based on textual/based on contextual/
Succeeded: s/???/Bill_Kasdorf/
Succeeded: s/???/David_wood/
Succeeded: s/force-quotes/first/
Succeeded: s/doc/book/
Succeeded: s/grids/cells/
Succeeded: s/?/lrosenth/
Succeeded: s/?/nots (candelas per square meter)/
Succeeded: s/nots/nits/
Succeeded: s/nots/nits/
Succeeded: s/bumber/bumper/
Succeeded: s/B2020/BT.2020/
Succeeded: s/Ma/Max/
Succeeded: s/white point and .../white point and transfer function/
Succeeded: s/REC7409 for ??/Rec.709 for SDR/
Succeeded: s/REC??? for/Rec.2100 for/
Succeeded: s/leave it as is/do what Shane is asking, pull translate rotate scale into level 1/
Succeeded: s/heycam|away/shane/
Succeeded: s/glazou/Tabatkins/
Succeeded: s/heycam|away/shane/
Succeeded: s/heycam|away/shane/
Succeeded: s/heycam|away/shane/
Succeeded: s/heycam|away/shane/
Succeeded: s/TabAtkins: I recently/TabAtkins, I recently/
Succeeded: s/var(foo)/var(--foo)/
Succeeded: s/dbaron/TabAtkins/
Succeeded: s/ChrisL:/ChrisL,/
Succeeded: s/later/again in January/
Found ScribeNick: shane
Found ScribeNick: gregwhitworth
Found ScribeNick: TabAtkins
Found ScribeNick: fantasai
Found ScribeNick: TabAtkins
Found ScribeNick: fantasai
Found ScribeNick: TabAtkins
Inferring Scribes: shane, gregwhitworth, TabAtkins, fantasai
Scribes: shane, gregwhitworth, TabAtkins, fantasai
ScribeNicks: shane, gregwhitworth, TabAtkins, fantasai

WARNING: Dash separator lines found.  If you intended them to mark
the start of a new topic, you need the -dashTopics option.
For example:
        <Philippe> ---
        <Philippe> Review of Action Items

Default Present: tantek, Rossen, dholbert, eae, jihye, gregwhitworth, glazou, dauwhe, bradk, Florian, antonp, myles, dael, Rossen__, dbaron, tgraham, myles_, antenna, astearns, plinss, alex_antennahouse, SteveZ, Bert, hober, iank_, rachelandrew, Rossen_, fantasai, fremy_, TabAtkins, vollick, ChrisL, smfr, zcorpan, antonp[, fremy, plh, SteveZ_, MaRakow, joone, Liam_Quin, bkardell_, gsnedders, jensimmons, leaverou, skk, ++++++++1, Guest, LiamQuin, p, tmichel, AndroUser, btw, liam, arybka, (finally), andrey-rybka, surma, skhrshin, tzviya, Charles_LaPierre, ivan_herman, David, Wood, Vlad, Karen, Leonard, Bill_Kasdorf, Paul_Belfanti, Heather_Flanagan
Present: tantek Rossen dholbert eae jihye gregwhitworth glazou dauwhe bradk Florian antonp myles dael Rossen__ dbaron tgraham myles_ antenna astearns plinss alex_antennahouse SteveZ Bert hober iank_ rachelandrew Rossen_ fantasai fremy_ TabAtkins vollick ChrisL smfr zcorpan antonp[ fremy plh SteveZ_ MaRakow joone Liam_Quin bkardell_ gsnedders jensimmons leaverou skk ++++++++1 Guest LiamQuin p tmichel AndroUser btw liam arybka (finally) andrey-rybka surma skhrshin tzviya Charles_LaPierre ivan_herman David Wood Vlad Karen Leonard Bill_Kasdorf Paul_Belfanti Heather_Flanagan Liam

WARNING: No meeting chair found!
You should specify the meeting chair like this:
<dbooth> Chair: dbooth

Found Date: 19 Sep 2016
Guessing minutes URL: http://www.w3.org/2016/09/19-css-minutes.html
People with action items: 

WARNING: IRC log location not specified!  (You can ignore this 
warning if you do not want the generated minutes to contain 
a link to the original IRC log.)


[End of scribe.perl diagnostic output]