- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Tue, 17 Nov 2009 15:31:40 -0800
- To: www-style@w3.org
display: run-in --------------- Worked through issues summarized in Bert's email <http://lists.w3.org/Archives/Public/www-style/2009Sep/0126.html> - RESOLVED: Accept proposal at the bottom of http://lists.w3.org/Archives/Public/www-style/2009Aug/0607.html - RESOLVED: Add "The content of replaced elements is not considered in the CSS rendering model." to the definition of "replaced element" - Filed http://wiki.csswg.org/spec/css2.1#issue-142 - RESOLVED: Run-ins inherit from their document parent, not their sibling. It is explicitly undefined in 2.1 what happens with parent/sibling ::first-lines and run-ins. ====== Full minutes below ===== http://www.w3.org/2009/11/03-CSS-minutes.html http://krijnhoetmer.nl/irc-logs/css/20091103#l-266 <RRSAgent> logging to http://www.w3.org/2009/11/03-CSS-irc Present: Tab Atkins David Baron Bert Bos Tantek Çelik Arron Eicholz fantasai Etemad Sylvain Galineau Daniel Glazman Chirs Lilley Peter Linss Boris Zbarsky (Mozilla, via telephone+IRC) display: run-in --------------- * bz calls <Zakim> +bzbarsky <Zakim> +SteveZ Scribe: TabAtkins <Bert> http://lists.w3.org/Archives/Public/www-style/2009Sep/0126.html Bert: As a reminder, general idea of runin is a heading followed by a paragraph, and you want to display the header inline, perhaps with styles to make it stand out. Bert: Another application is a dl where the dt runs into the dd that follows rather than above it. Bert: First issue: When can this happen? When can the run-in element become inline in the next element, and when not? Bert: This depends on the element itself, and what follows. Bert: There must be a block afterward, for it to run into, and it can't contain blocks. Bert: Original definition wasn't precise. Bert: *points to email* Bert: The first link goes to page holding conditions for element following the run-in. <bz> which page are these links on? Bert: It must have a following sibling. Bert: Ignore anything that's not in flow. <bz> ah, I see, archives <bz> ok Bert: Such as floats, display:none elems, etc. Bert: At top of the message, first point is about run-in itself. Come back to that later. Bert: Point 2! Bert: You need to have an element after the run-in that is either block or list-item, or else the element displays as block. Bert: Also, it clarifies that run-in comes before any pseudo-elements of the following sibling, so element order is retained. Bert: There was discussion about whether block+list-item was sufficient. Frex, would run-in+run-in+block causes the two run-ins to run together, or would the first make the second a block, and then the second doesn't run in. Bert: Frex, an <h2> followed by an <h2>. Perhaps the content between the two headers is temporarily suppressed. fantasai: What about <h2> followed by <h3>? Tantek: You can just put several run-ins in a row, right? And they'll all run in? Bert: No, not by current language. The first would go block, the second would run-in. Bert: The dt case makes a stronger example. You may want multiple <dt>s applying to the same <dd> to run together. Bert: But I think the heading case is strong enough that we don't want to make multiple consecutive run-ins go together. Bert: Point 1! Conditions on the run-in, and what children it can contain. Bert: You have to look not only at children, but at all in-flow descendants. Bert: The definition is in terms of elements that are incompatible with run-in behavior; elements that inhibit run-in. Bert: If one of the children inhibits run-in, the run-in must go block. Bert: Again, ignore out-of-flow children. But if one of the remaining children is block/list-item/table/run-in, the run-in cannot go inline. Bert: The remaining children must be inline, so recursively descend to look for children with block/list-item/etc. If there are no in-flow children that inhibit, the element can run-in. Fantasai: You can combine a,b,d and say "all children, including :before and :after". Bert: Yeah, that's already done. Bert: Rewritten definition at bottom of email that has only two clauses. fantasai: Can we say block-level element or display type, so we're not tying things to a specific list? fantasai: The more we can do that, the better we'll be in the future when we introduce new types. tantek: That's mostly good, but it might also causes problems if a future display type specially should interact with run-in. fantasai: More things should prevent run-in than less. plinss: It's far more likely that something new would inhibit run-in than allow it. Bert: I haven't looked into that specifically, to see if the definition of "block-level" would work. fantasai: Yeah, we've just had a lot of problems with inline-blocks, because a lot of specific lists didn't take it into account. tantek: That's a good argument. inline-block may act like a block *or* inline. fantasai: What we need is the ability to say something is a block on the outside, or a block on the inside. tantek: Yeah, but we didn't even know that until we made inline-block. We didn't realize the abstraction was even necessary. fantasai: You have the same problem with tables and table-cells. Table cells act like a block container, but it's not like a block on the outside. fantasai: I don't want to introduce a new display-type and say "Let's go audit CSS2.1 and fix all the places." fantasai: But I think for the new display types, our abstractions are good enough to talk about. plinss: If we have a new list, we're *guaranteed* to update it. An abstraction *may* need to be updated. tantek: I'd rather have things fail obviously than subtly. fantasai: It's never obvious. People look at the list of things that are allowed, and just assume that it's still correct. dbaron: We do have the terms "inline-level" and "block-level" elements, which can work as the excluded/included lists. Peter: If we had an include list and an exclude list, then people would notice "oh, it's missing". But if we have an include list and "everythingg else" is excluded, nobody notices that something's wrong. dbaron: I've noticed the list of Bert's seems to be wrong. A run-in containing a run-in is inhibited. Bert: That's what is says. dbaron: Sorry, yeah. <bz> That was updated <bz> http://lists.w3.org/Archives/Public/www-style/2009Sep/0013.html has the right text tantek: How many implementors have some kind of run-in. smfr: Webkit has basic run-in behavior, but sort of broken. dbaron: I think everyone but Moz implements, but they all do it differently. tantek: And presumably the test-cases that demonstrate lack of interop is published? TabAtkins: Yeah, I think Boris published those. tantek: It would be good to get a pointer for that. <Bert> -> http://www.w3.org/Style/Group/css2-src/visuren.html#block-boxes Definition of "block-level elements" (9.2.1) <Zakim> -SteveZ <sylvaing> http://lists.w3.org/Archives/Public/www-style/2009Sep/0018.html dbaron: I think Boris is waiting to publish the test-cases until he's sure that they're right. tantek: It's useful to have real examples, not just specified abstractly. <sylvaing> correction; a testcase from bz: http://lists.w3.org/Archives/Public/www-style/2009Sep/0017.html tantek: It may turn out that once we see a real example of the prose text, it's not what we wanted. Bert: I don't have a preference for a list or a "block-level" definition. Bert: There's some subtlety in that it would refer to run-ins and say "some of the time". Bert: Verdict on the definition? fantasai: I think I'd prefer it to say "block-level elements", but I don't need to block this on this. We can raise a separate issue for it. Bert: So that sounds like proposal #1? <fantasai> http://lists.w3.org/Archives/Public/www-style/2009Aug/0607.html <fantasai> accept text at bottom <bz> http://lists.w3.org/Archives/Public/www-style/2009Aug/0594.html RESOLVED accept text at bottom. Bert: Next issue. Should still be easy. Bert: What do to with replaced elements? <bz> I assume we decided that behavior is ok? Bert: Maybe a wider issue. In my implementation replaced elements are always empty. fantasai: No. Bert: I know what I think. fantasai: In the document tree it's not necessarily empty: textarea, object, etc. Bert: That's the issue. Do you look in the document tree, or just in the things considered for rendering? Bert: In replaced elements, the children are thrown away. fantasai: And form elements may or may not be replaced, depending. Bert: Let's look at the proposal. There's proposed text to clarify. Bert: Section 3.1 Bert: Do we consider replaced elements as empty so we never look at its children, or do we look at the children of the replaced element? fantasai: Replaced elements are defined as children being outside of the scope. fantasai: Whether or not it has children doesn't matter Bert: So that seems to mean that we don't have to look at them. fantasai: Right, but that doesn't mean it doesn't *have* children <dbaron> bz, doesn't the table-cell have a block wrapping it in that case? <bz> dbaron, it doesn't <bz> dbaron: or rather.... <bz> dbaron: the interaction is interesting Boris: I think the behavior is well-defined for if the run-in is into a table cell or not. Boris: It's a little weird because if it has a table child it can't run in, but I think it's all consistent. Boris: It's something to be careful with. <tantek> sylvaing thanks - http://lists.w3.org/Archives/Public/www-style/2009Sep/0017.html helps but would prefer actual live test cases we can quickly click and run across browsers/machines. dbaron: I would think that if it has any table stuff in it, except inline-table, it should inhibit run-in. Bert: But if you have a table-cell inside an inline element, it automatically generates an inline table. tantek: Did we ever define pseudo-elems for the generated wrappers for tables? ?: No. Boris: Anonymous blocks have to have something to do with what's going on here. dbaron: I don't think there's an inconsistency between boris's two cases, because it only occurs into inlines and not other things. <dbaron> bz, I don't think we're inconsistent between those two cases, since the recursion in Bert's proposal only recurs into inlines Boris: The issue raised here was addressed in Bert's proposal, and should both result in the run-in running in. <Zakim> +SteveZ <tantek> anonymous table pseudo-elements and anonymous table-row pseudo-elements - that get auto-generated when an element is set to display:table-cell outside of any kind of table context for example <bz> tantek, http://lists.w3.org/Archives/Public/www-style/2009Jul/0030.html has another test <bz> tantek: but yes, testcases that are clickable (or at least reftest-like) will happen <bz> tantek, my current estimate is we need ~100ish tests to test all reasonably <tantek> bz - thanks much - that will help a lot <tantek> ouch! <bz> tantek, dynamic changes make it extra fun. ;) <bz> tantek, e.g. webkit gets confused if you change textnodes between the run-in and the block from whitespace to not or vice versa <tantek> bz - even just a few live static tests to start with, even if "exploratory" in nature (i.e. not knowing exactly what *should* occur) would help answer some of the design questions. <tantek> bz - agreed, things are much more difficult when dynamic. <tantek> useful to at least get the static cases figured out first though right? <bz> yeah, no point testing dynamic much till static is defined * tantek implemented some degree of CSS2 display:run-in in IE5/Mac about 10 years ago. * tantek curious how many cases he got right/wrong. <bz> tantek, http://lists.w3.org/Archives/Public/www-style/2009Jul/0025.html has an attached testcase <bz> tantek, with lots of different cases tested <tantek> http://lists.w3.org/Archives/Public/www-style/2009Jul/att-0025/test.html is a good start <bz> tantek, sadly, without much description of what _should_ happen <tantek> bz - presumably red means wrong? <bz> tantek, sorry, no. color is just used to tell apart the various blocks <bz> tantek, I should have used purple or blue..... <bz> tantek, all the right/wrong is in whether things run in or not. So whether they're on one line or two lines <bz> tantek, and which is contained in which border * bz gathered this was normal, yes. ;) Bert: Back to replaced elements. Proposal is to clarify definition in section 3.1, where it says "out of scope" Bert: Definition of replaced elements in 3.1 says that content is out of scope. I want to clarify that you don't have to look inside a replaced element to determine if it inhibits run-in. fantasai: I disagree with Bert's proposed text Bert: Proposal is that document tree is empty for CSS. Bert: you disagree, fantasai? fantasai: Yeah, in the document tree the element isn't considered empty, and for selectors and such you don't *want* it to be empty. fantasai: We'll be referring back to this later, and you can't screw around with the document tree for future extensions. Bert: But that's the definition of replaced. The content that was there no longer appears. fantasai: But what about inline SVG? There's obviously children there. Bert: But it looks empty for CSS. fantasai: You're talking about the rendering tree, which is different from the document tree. Bert: There is no rendering tree. <glazou> "There is no rendering tree" -- Bert 2009-11-03 fantasai: If we can reword it so we don't say the element is empty, I may be happy with it. Bert: We may avoid 'empty', but need to say that the contents of a replaced element is ignored for CSS. Fantasai: Sure, just don't call it empty. tantek: so it's opaque Bert insists that it's empty <bz> I just have nothing to say on this; the behavior we want is obvious; the only question is how to define it. <fantasai> Let's say I have a <p> element with an <a> inside it <fantasai> I write a selector for <p>s that have <a>s inside them using Selectors 4 <fantasai> then I say { content: url(image.png); } <fantasai> That makes it replaced <fantasai> which makes the selector no longer apply <fantasai> because it's replaced <fantasai> and now it's empty!! <bz> so... <bz> it's even simpler <bz> Say I have an HTML <img> <bz> that I style with :empty <bz> img:empty { border: 10px solid purple; } <tantek> fantasai - no selector feedback loops glazou: But why would this no longer apply? fantasai: Because we say that it's a replaced element now, and thus it would be empty. No selector can target the contents anymore. dbaron: We should fix this issue in the run-in section, not by changing the definition of a replaced element. TabAtkins: fantasai is saying that run-ins can ignore children of replaced, but we shouldn't just say that the children don't exist. Bert: We don't care about the DOM, we care if CSS says they exist. fantasai: But they do exist. You can select on them. Chris: Ignoring them and making them disappear are two different things. Bert: I just want to clarify that we're using a definition is internally consistent. Bert: Per CSS, whatever's inside a replaced element simply isn't there. <dbaron> object:empty only matches some of the time fantasai: Let's just say that you can't do anything with it, not say that it isn't there. dbaron: You're saying the object:empty should match *all* of the time. Bert: Yeah, it should say that. glazou: When doesn't object:empty work? dbaron: When <object> has fallback, frex. glazou: Object has children in the DOM. Bert: If it's replaced it has no children. glazou: It does. Bert: Does not. <bz> is too, is not Chris: We're going in circles. Chairs? tantek: How do you assign different styles to an object based on whether the object loads or not. tantek: This decision is made before CSS happens. tantek: How do you decide? TabAtkins: :incomplete? fantasai: There was some discussion of this on www-style tantek: That's an old thing, right? fantasai: Nah, it's relatively recent. But it's out of scope of this conversation. Bert: Let's make it clear that you don't look at the DOM content of replaced elements. Bert: We just need to exclude children from being looked at for this. Bert: So how do we phrase this? <fantasai> "The children of replaced elements are not considered in the CSS rendering model." <fantasai> for 3.1 Bert: But that sounds like a contradiction. Replaced elements don't have children. glazou: Nah, everyone agrees that they do. dbaron: So if a <select> is a replaced element, browsers can't render <option>s? fantasai: They're not unrenderable, just CSS won't see them. Whatever draws forms will. Bert: In CSS1 form elements were defined as replaced, but we've gradually been removing that. tantek: And in CSS3, <select> is appearance:popup-menu. <tantek> http://w3.org/TR/css3-ui glazou: Bert, do you have a counterproposal, since you're blocking this sentence? Bert: Can we say that the "content", not "children"? fantasai: Okay. <Zakim> -SteveZ <fantasai> "The content of replaced elements is not considered in the CSS rendering model." Bert: That's fine. Chris: So what about <foo-img src=bar><tooltip>baz</tooltip></foo-img>. Does this mean we can't ever style the tooltip? ChrisL: I think the real answer is we *can* target and style the tooltip. Maybe it has display:tool-tip or whatever, but it should be there. Bert: How do you display that image? Does it replace the contents? ChrisL: Ys. * sylvaing expects an :nth-illegitimate-child() proposal by end of day Bert: Defined by the document format? ChrisL: Yes. <annevk> XBL! Bert: Then it has no children. ChrisL: But we may want to do so. <dbaron> So which case of run-in behavior are we trying to affect, anyway? Bert: Then we'll need to change CSS to do so. Bert: When we use CSS3 Generated Content, we'll be able to do so. <dbaron> The definition for whether things run in seems fine for replaced elements already. Bert: If the document language says how to display it, we can no longer say anything about it. ChrisL: I was trying to get away from <object>, because the children there are clearly alternates. I wanted an example where the children are used alongside the content. glazou: What Chris is saying is that this restricts new language design. <fantasai> http://www.w3.org/TR/CSS21/intro.html#processing-model ChrisL: I'm happy to say "formatting structure" rather than "rendering tree". It's in *that* that replaced elements have no children. ChrisL: The point is that it's not the source tree, so we don't have to *pretend* that the document-tree has no children. Bert: Ok. <dbaron> Instead, I propose changing: <dbaron> C has a computed value for 'display' of 'inline' and it has one or <dbaron> more children that inhibit run-in behavior <dbaron> to: <dbaron> C has a computed value for 'display' of 'inline', is non-replaced, and has one or more children that inhibit run-in behavior <dbaron> and changing: <dbaron> If A has any children <dbaron> to: <dbaron> If A is non-replaced and has any children glazou: We were at 3. Accept the proposal with Bert's new text? RESOLVED Accept Bert's new text for issue 3 in the run-in email <Bert> http://lists.w3.org/Archives/Public/www-style/2009Sep/0126.html Bert: Next issue. What is the containing block of the run-in and children? Bert: Every box needs a containing-block. If the run-in goes inline, which box is containing it? Bert: 10.1 supposedly defines the containing block for all elements. Bert: In my reading, it does, and the definition there only follows the document tree. It doesn't look at the visual place it appears, just ancestors in the document tree. Bert: So the run-in will have it's normal parent as the containing block, not the sibling that it's flowing into. Bert: Do we want that, or do we want the sibling to be the containing block? fantasai: The second one. fantasai: Frex, width:50% on the run-in's inline-block child should be taking its width from the sibling it's flowing into. sylvain: So it would get its color, frex, from its parent, but other things would come from the eparent. fantasai: Yeah, we do something similar with abspos. The containing block may be an ancestor far up, even though it still inherits from its parent. Boris: To be clear, I think we want to say this... Boris: The other question is if you have floating children of the run-in, then what happens with those? Which block is the containing block for those floats? Boris: And with abspos children of the run-in. fantasai: For floats it should be the same - the containing sibling. fantasai: For abspos children, I have no opinion. I'm happy to go with whatever's easiest. TabAtkins: For consistency, I'd prefer abspos to do the same thing. Bert: It seems most are in favor of taking the sibling as the containing element for run-in and all children? <bz> yay! ;) RESOLVED The sibling that the run-in runs into is the containing block for it and all children. Bert: Next issue. Boris believes 10.1 is ambiguous. It says "ancestor box". Bert: In my reading it's just the ancestor. But Boris thinks it might refer to the formatting structure, and so it may refer to the ancestor in the formatting structure. Bert: So should we go through the spec and look for "ancestor box", "parent box", etc and replace it with something umabiguous, so we're clear if it refers to the content or the visual structure or containing block. Bert: I don't personally think it's necessary. I read "ancestor box" as referring to the document structure. Bert: But if others think it's ambiguous, we have to go through the text and replace those occurances. Thoughts? fantasai, sylvain: I always interpreted that as being formatting structure. plinss: Especially since it says "box", not "element". ChrisL: Yeah, it's ambiguous, especially frex for abspos. dbaron: Why is "ancestor" clearly one tree and not the other? dbaron: I think it's clear that it's in the formatting tree. ChrisL: If you have an abspos element, is the ancestor the whole document? Bert: That's the ICB, not an ancestor. plinss: The fact that we're having the conversation means it's ambiguous. Bert: You can say that about any line in the spec. Bert: It's a bit of work to go through the spec. ChrisL: I'm okay with saying it's unambiguous if someone explains it clearly. plinss: If it's supposed to be the box of the ancestor, say "box of the ancestor". fantasai: For run-ins, we don't want to look up the element tree here. We want to look up the formatting tree. fantasai: Frex, with several runs of nested spans around an abspos, is the run-in's containing block (sibling) relpos? That's a formatting ancestor, not a document ancestor. fantasai: We don't want to make this decision unless we're careful about run-ins? Bert: Are you saying that if we keep it how it is we don't need to make a change? I think you're going opposite from me. Bert: I think we'll have to rewrite 10.1 anyway, at least an extra clause. fantasai: I'm saying for children of the run-in, frex when they're looking for fixpos/relpos ancestors, they're going up the formatting tree and will find the run-in's containing block. fantasai: So I guess file this as an issue and deal with it later? Somebody has to go through and look through the whole spec and figure out what we're doing all over the place. Bert: I think deciding that is progress already. At least we know it has to be done. RESOLVED: File an issue to go through the spec for this. Either fantasai or Bert will take care of this. At least clarify/define the "ancestor box". <fantasai> http://wiki.csswg.org/spec/css2.1#issue-142 Bert: Now the famous ::first-line issue. Bert: Consider a run-in displayed inline in the sibling. The sibling has a ::first-line pseudo. Where does the first line get its properties from? Bert: Imagine the run-in is short, so half of the first line comes from the run-in, and half comes from the content. Bert: There are 3 or 4 reasonable ways of creating that inheritance tree. Bert: Tab's proposal was to avoid the whole issue and just create ::run-in. Then ::first-line doesn't apply to run-in, just the content from the paragraph. Bert: But we don't have that pseudo in CSS2, so it's quite a change. fantasai: I propose just following the document tree. plinss: I don't know if that makes stylistic sense. plinss: I don't think a run-in should pick up any style from the first line of the paragraph that it's running in. Bert: What about background? fantasai: Run-in should be included in ::first-line in the box model, but shouldn't inherit from ::first-line. [Tab explains the issue ::run-in is trying to solve: being able to style the element differently when it runs in than when it is block.] [Tantek says you typically use run-in when you're pretty sure the element *will* run in.] [tantek and fantasai point out that you can't have a pseudo-class match depending on display type] Peter: but you could have a pseudo-element Peter: that selects its contents RESOLVED: run-ins inherit from their document tree parent dbaron: what about the common ancestor's ::first-line? dbaron: I don't think we want to ignore the paragraph's ::first-line but honor the ancestor's fantasai: Yeah, we should either ignore all ::first-lines for run-in inheritance, or honor all of them <fantasai> bz, can you type in your example pls? :) <bz> <div style="color: blue"> <bz> <div style="display: run-in">Text</div> <bz> <div style="color: yellow"></div> <bz> </div> bz: If there are no ::first-line styles, then we've just decided the run-in is color: blue bz: If there is a ::first-line style on the second <div>, what happens? bz: If that ::first-line style also sets color: orange (or color: yellow), what happens? plinss: I think the run-in should inherit from its parent always. The remaining content of the sibling on the first-line coms from the sibling's ::first-line, the run-in doesn't care. fantasai: If you have ::first-line {color:green;} on the ancestor, should it affect the run-in? plinss: yes. plinss: You're in effect getting two separate first-line boxes. TabAtkins: Is this actually any more difficult than current ::first-line behavior? <bz> of course dbaron: I don't think we implement the full ::first-line behavior anyway, so we can't really say. <bz> first-line + inheritance is just a bad scene, no matter what fantasai: counterproposal is to ignore ::first-line for run-ins always. * annevk still likes the idea of dropping run-in :) TabAtkins: So the sibling's ::first-line never affects the run-in. The difference is whether the ancestor's ::first-line applies to the run-in or not. dbaron: I think it's more consistent to say the run-in always ignores ::first-line. <Bert> [Fantasai copies bz's mark-up to the flipover and starts drawing...] <bz> annevk, can we drop ::first-line too? ;) <annevk> I wouldn't mind :) fantasai: Does ::first-line have values for properties that aren't explicitly set on it? alex: I've just tried this in several browsers. <alexmog> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0D%0A%3Cstyle%3E%0D%0Adiv%3Afirst-line%20%7Bcolor%3Agreen%7D%0D%0Ap%3Afirst-line%20%7Btext-decoration%3Aunderline%7D%0D%0Ab%20%7B%20display%3Arun-in%20%7D%0D%0A%3C%2Fstyle%3E%0D%0A%3Cdiv%3E%0D%0A%3Cb%3Erun-in%3C%2Fb%3E%0D%0A%3Cp%3E%20paragraph%20text%20paragraph%20text%20paragraph%20text%20paragraph%20text%20paragraph%20text%20paragraph%20text%20paragraph%20text%20paragraph%20text%20pa alex: In IE8, the run-in does inherit from parent first-line, but not sibling first-line alex: FF and Opera it doesn't make it a run-in. * annevk ... the way it works with inheritance and how it may have to depend on the property is just too hairy alex: In Safari, the ancestor style is ignored, and the run-in gets the sibling's ::first-line. dbaron: Just punt it as undefined and move on? fantasai: 2 things we can leave undefined. fantasai: 1 is inheritance for run-ins in general. 2 is inheritance for run-ins just in ::first-line. RESOLVED Run-ins inherit from their document parent, not their sibling. It is explicitly undefined what happens with parent/sibling ::first-lines and run-ins. <bz> mmm yummy undefined RESOLVED ADDENDUM: Undefined for CSS2.1, maybe for CSS3 (Box Module may be able to take care of it.) * bz looks forward to implementing "the simplest thing that doesn't crash" <fantasai> :) * bz has no outstanding run-in issues <fantasai> yay! <bz> well, other than the fact that I have to write the code... ;) <tantek> http://wiki.csswg.org/planning/tpac-2009 * bz is going to sign off, since we seem to be done with run-in <ChrisL> bz, yes we are on break now * bz hangs up
Received on Tuesday, 17 November 2009 23:32:23 UTC