[CSSWG] Minutes Telecon 2013-04-10 from fantasai on 2013-04-11 (www-style@w3.org from April 2013) (original) (raw)
Summary:
- Liam to add proposal for advanced line-breaking to CSS4 Text
- RESOLVED: Variables move to LC. Inform WebApps, SVG, HTML WGs.
- RESOLVED: Do not adopt MQ-style invalidation for Selectors due to Web-compat concerns.
- Discussed allowing #123abc to be a valid ID selector, to match HTML5. Need to collect data on this.
- RESOLVED: :nth-child()/etc don't require a parent - they're based on siblings.
- RESOLVED: Changed specificity of :matches()/:not() to the specificity of the actual matched selector. But see follow-up issue... http://lists.w3.org/Archives/Public/www-style/2013Mar/0332.html
- RESOLVED: Define a new selector that matches element that is either completely empty or contains only whitespace. Note: Need naming suggestions.
- RESOLVED: Accept the two profiles of Selectors, with "fast" for CSS Selectors and "complete" for Selectors API.
====== Full minutes ======
Present: Glenn Adams Rossen Atanassov Tab Atkins Tantek �elik Bert Bos Jim Dovey Arron Eicholz Elika Etemad Simon Fraser Dael Jackson Sylvain Galineau Daniel Glamzna Rebecca Hauck Koji Ishii John Jansen Brad Kemper Philippe Le H�garet Edward O'Connor Anton Prowse Liam Quin Matt Rakow Simon Sapin Dirk Schulze Alan Stearns Leif Arne Storset Nick Van den Bleeken Steve Zilles
Regrets: danielweck, dbaron, florian, leaverou, SimonPieters
logging to http://www.w3.org/2013/04/10-css-irc Agenda: http://lists.w3.org/Archives/Public/www-style/2013Apr/0197.html Scribe: TabAtkins
Administrative
glazou: Three extra agenda items. glazou: First from Tab about Variables, next about text-decor, another from Simon Sapin about scientific notation.
Line-Breaking Proposal
http://lists.w3.org/Archives/Public/www-style/2013Mar/0183.html liam: I'll just go over general purpose. liam: When you add things like hyphenation, etc. you quickly want to use a line-breaking algorithm that considers more than one line at a time. liam: It's more important in print than on the screen, because print has "show-through", where you can see a shadow of what's on the other side of the sheet.
liam: This proposal is to let an author/script say "this piece of text is going to be interactively edited"... liam: I imagine a print processor would set this to "batch" - not edited. liam: You care about editted or not because if you insert a word in the middle of a paragraph, and you use a multi-line linebreaking algo, your text will reflow and your insertion point might move up or down a line. liam: Some programs handle this by only reflowing when you finish editing, but it's ugly in the meantime. It's a problem with a long history. liam: Two parts of this proposal: liam: 1) Say your intent, interactive or batch. liam: 2) Second, experimentally, say what algorithm to use.
TabAtkins: Is the "interactive" mode about just editting, or about reflowing as well? liam: It only matters if the user is in there. liam: If the text reflows and you care about a particular line of text, that's the same problem you've already got. TabAtkins: Okay, next concern - I thought the problem with the TeX algorithm was it being too complex/slow. Has that changed? liam: It's slow, yes, but normal text is also really mediocre. It has really bad cases that you need markup to fix, because it's meant to be manually checked. liam: Commercial products almost all use an n-line algorithm, that's only slightly slower than the current linear linebreaking (still O(n)). liam: With that, you can get quality of line-breaking close to the best commercial.
SimonSapin: Is this related to Adobe's "text balancing" proposal? stearns: Don't think so. You can implement text-balancing in a more complex linebreaking algo, but it's not necessary.
glazou: Do you think this is for both print and screen media. liam: Both. TabAtkins: Yeah, I know plenty of people who would want good text on the screen.
glazou: I think the next step is an ED. liam: I wasn't sure whether the best step was Text 4 or a new draft. fantasai: I think it should go in Text 4. fantasai: Text 4 needs to be synced up with Text 3 (the text is old, because we branched a while ago). fantasai: Once it's synced up, we can add things to it. liam: When you get to this bit, I'll happily help. ACTION fantasai to add Liam's line-breaking proposal to Text 4. Created ACTION-553 ACTION liam to help fantasai add his line-breaking proposal to Text 4. Created ACTION-554
image-rendering: smooth
http://lists.w3.org/Archives/Public/www-style/2013Mar/0750.html smfr: Don't think there's anything to say here. TabAtkins: Yes, I'm fine with the editting. Was just on vacation last week, so haven't done it yet.
Variables Last Call
TabAtkins: I asked for LC a few weeks ago, but jdaggett wanted a new WD first to pull out feedback. I've done so, and it was useful. Can I go to LC now? SimonSapin: I have some questions about how the Syntax works with Syntax 3, but I can handle that on the list. It's technical, but I don't think it'll change anything. glazou: objections? Bert: I don't object, but I don't think we need it... RESOLVED: Variables move to LC.
Bert: We need to decide as a group what other WGs to talk to. TabAtkins: WebApps. glazou: SVG. glazou: HTML? TabAtkins: Sure, though most of their connection will be through webapps work. RESOLVED: Inform WebApps, SVG, and HTML about Variables LC.
- shepazu wants to talk in-depth with Tab about Variables and Params
Selectors 4
http://lists.w3.org/Archives/Public/www-style/2013Apr/0187.html glazou: Speaking of Selectors, I think some sections of the document (time-based pseudos, for example), need a review from the WG. fantasai: I brought that up on www-style/at a f2f, but nobody had comments. glazou: Right. Everyone, if you have spare cycles, read Selectors 4 and give comments.
fantasai: First issue is about adopting MQ-style invalidation. fantasai: Currently, any invalid selectors invalidates the entire list. fantasai: Alternative is to just drop the selector that's invalid (split by commas). fantasai: But this seems to be quite web-incompatible, because people depend on this behavior. sylvaing: How do people depend on this? glazou: Right now there are style rules which are fully invalid because of one selector, and authors never noticed the wasted rule. If you change, it'll start applying and change the page. TabAtkins: And there is some history of people using prefixed selectors in the selector list as a browser hack, and this would change the behavior they're depending on. RESOLVED: Do not adopt MQ-style invalidation for Selectors.
fantasai: Next issue is whether ID selectors should accept all hash tokens, or just hash tokens with an ident value. fantasai: For example, #1 is a valid hash token, but not a valid id selector. fantasai: HTML now, I believe, allows IDs that start with a number. it does
glazou: Do you think this has compat impact? TabAtkins: I suspect this is used much less. arronei: Isn't this the same case as the last one? Groups could be invalid currently that would become valid. glazou: If HTML now allows non-ident selectors, then this is a needed change. SimonSapin: Any way to assess the impact of this change? [discussion about using Google resources for this] hober: It's hard to say without data. Rossen: We'd have to run a query and see how many hits we have. Without data, we're uncomfortable committing.
tantek: I don't have any hard data, but I can give you anecdotally... tantek: One of the things that happens in mediawiki pages is that whatever you use as a heading/subheading gets turned into an id. tantek: So if you have a heading start with a number, that's the id. tantek: One major complaint I hear is headings that are just numbers. tantek: Whether they're getting styled or not, I have no idea.
TabAtkins: I can confirm that browsers are pretty consistent about allowing full hash tokens in Quirks mode, but only restricted ident hashes in Standards mode. glazou: Two members of the WG are asking for data here. ACTION tab to look for data on non-ident hash usage. Created ACTION-555
- sgalineau if this works in quirks the difference makes it harder to switch to standard mode...
FYI: regarding ID selectors that start with numbers, we do test for the non-support - in the CSS 2.1 test suite: http://test.csswg.org/suites/css2.1/20110323/html4/id-selector-005.htm that's why we have interop among browsers for non-support of ID selectors that start with a number.
http://www.w3.org/Style/CSS/Tracker/issues/317 fantasai: child-index pseudos (:nth-child(), etc.) don't work on unparented elements, such as :root. This makes sense there, because there's not much use in having them apply to root, but there's also the issue of document fragments. fantasai: (the top-level elements in a document fragment won't match :nth-child() etc.) fantasai: The only argument I've heard against it is that the word "child" is in the name, so it should only apply to children. glazou: We deal only with elements in CSS. [tab explains things wrt DocumentFragment case becoming more common, shadow dom, etc]
fantasai: We wouldn't be having this argument if it were called
:nth-sibling
glazou: I would prefer a new pseudoclass.
not 1 new pseudo-classes, 11 of them TabAtkins: It's silly and confusing to add new pseudo-class that means exactly the same thing except when selecting root or DocumentFragment elements
- fantasai agrees strongly with Tab on this point glazou: I don't think it should apply to root. TabAtkins: I'm fine with that, if it applies to docfrags and shadow dom and the like.
glazou: I could live with an addition to the shadow DOM spec that says shadow roots act like a parent. TabAtkins: Then we'd have to add the same thing to DOM for docfrags. Tab's proposed spec text: The pseudo-classes defined in this section select elements based on their index in their parent's list of children (or, if they have no parent, by their index in the list of them and their siblings).
can DocumentFragment contain multiple "root" elements? yes no. ^_^ � ? well, a documentfragment can have multiple child nodes I figured that was what SimonSapin meant :) oyvind: yes in that case it makes sense for :nth-child() to apply
Bert: What does :root match in document fragments? TabAtkins: Nothing, I believe. There's no root element in a docfrag.
- sgalineau cannot tell if we are in a rathole or a bikeshed MINUTE BANKRUPTCY
Bert: I'm trying to find the similarities between document and docfrag.
- SimonSapin agrees with Tab Bert: If we do this for :nth-child, maybe we should do it for :root too. TabAtkins: Nah, no need. :nth-child() is being redefined into just based on siblings. :root is still about document roots, which docfrags don't have.
glazou: I'm okay with this change, though I don't like it. RESOLVED: :nth-child()/etc don't require a parent - they're based on siblings. antonp: Can we have a note saying that the name doesn't make much sense anymore? fantasai: Yes.
Bert: It seems that your addition makes :first-child apply to the root element, which wasn't the case before. Bert: So should there be text saying that it only applies to docfrags, not roots? TabAtkins: I don't think that's necessary. Incidence of :first-child selectors that accidentally hit the root should be so low as to be effectively zero. fantasai: We'll come back with final phrasing so everyone can comment. Bert: I'm not comfortable with changing things for existing documents. Probably rare for HTML, but there are many other kinds of documents. Bert: There's a use-case for fragments, but not for normal documents. TabAtkins: I'm fine with discussing on the list whether :root and :nth-child/etc should be mutually-exclusive. Bert: That's fine.
https://www.w3.org/Style/CSS/Tracker/issues/318 fantasai: Next issue is about the specificity of :matches() and :not(). fantasai: Currently the specificity of :matches() is the specificity of the most specific selector inside it. fantasai: dbaron's proposal was to make it the most specific selector that actually matched, so that it truly becomes syntactic sugar for the combinatorial-explosion of multiple selectors. fantasai: I think there's no reason not to take this, except that it's slightly annoying to implement. SimonSapin: I brought up that it's not possible to do this when converting selectors to XPath. SimonSapin: but we should still do it because even in Selectors 3 some corner cases can (probably) not be expressed in XPath TabAtkins: Yeah, while XPath and Selectors are very similar techs, they both have edge-cases that can't be converted. It's fine, I think. RESOLVED: Changed specificity of :matches()/:not() to the specificity of the actual matched selector.
https://www.w3.org/Style/CSS/Tracker/issues/319 fantasai: Next topic, :empty is pretty useless for most people. fantasai: It only selects elements with no nodes, which means that whitespace makes it not match, even though that gets collapsed away in HTML. fantasai: We can redefine :empty to also match if the element is only filled with whitespace, or we can make a new pseudoclass for it. glazou: I recommend the latter. fantasai: Is there a use-case for the former? Bert: Something with a space isn't empty. glazou: I used :empty as it is for something in Gecko.
we have a test for :empty that checks to make sure it is NOT applied to an element with only white-space: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/css3-modsel-151.html therefore we have interop on it in current form so changing it would break all browsers
fantasai: So what would we name it? Bert: :blank? fantasai: I thought we might use that for empty inputs... :space tantek, it's potentially empty space is pretty empty ;) :visibly-empty glazou: What about :almost-empty? :mostly-empty :insignificant :just-about-empty :this-element-intentionally-left-blank
- sgalineau approves of all these as aliases :good-as-empty :empty-or-space :quiet :boring :silent :white-space szilles: :void TabAtkins: Confusing because void refers to what :empty currently means.
SimonSapin: Would this select elements with other empty children?
RESOLVED: Define a new selector that matches empty or only whitespace.
https://www.w3.org/Style/CSS/Tracker/issues/320 fantasai: :matches() was always intended to be able to accept complex selectors (with combinators). fantasai: Right now the Selectors 4 draft has explicitly excluded them, due to performance concerns. fantasai: But this confuses everybody, because they want complex selectors, and ask for new features. fantasai: Also, the performance concerns don't apply to batch processors or Selectors API - only to CSS Selectors. fantasai: So the idea is to define "fast" and "complete" profiles. "fast" is only compound selectors in :matches()/:not(), "complete" is everything. fantasai: We want to mark this as at-risk. fantasai: The alternative is to just include complex selectors and mark the whole thing as at-risk. fantasai: We just want to find out what implementations actually want to do.
glazou: I have a problem. It implies that after CR we may have shipped impls of either profile, so inconsistency for the web. glazou: I understand you have the two profiles for Selectors API. glazou: I'd prefer that the fast profile be explicitly limited to CSS Selectors, and complete be for everything. Then we can decide to open up the profiles later. glazou doesn't want individual implementations deciding whether to implement "complete" profile for CSS. SimonSapin: I'm concerned that the same impl could match different profiles based on the use (print vs live, etc.) SimonSapin: Would prefer that we restrict selectors on CSS for all types of implementations. fantasai: I'm fine with this. fantasai: I just want to reduce confusion in the spec.
plinss: If we later allow browser to implement the complete profile, there will still be a transitional state, so I'm not sure what we buy here. fantasai: If everyone's ready for it, there will be a short transition period, as opposed to the current undefined transition. glazou: What if we just mark the complete profile as being informative, with it being defined normatively in the future? TabAtkins: I'm opposed to that, because I want Selectors API to pick it up. glazou: I'm okay with that. RESOLVED: Accept the two profiles of Selectors, with "fast" for CSS Selectors and "complete" for Selectors API.
Received on Thursday, 11 April 2013 01:19:28 UTC