W3C – Thoughts From Erichttp://meyerweb.com/eric/thoughts
Things that Eric A. Meyer, CSS expert, writes about on his personal Web site; it's largely Web standards and Web technology, but also various bits of culture, politics, personal observations, and other miscellaneous stuffThu, 08 Dec 2016 19:13:33 +0000en-UShourly134146138“The Vendor Prefix Predicament” at ALAhttp://meyerweb.com/eric/thoughts/2012/02/14/the-vendor-prefix-predicament-at-ala/
http://meyerweb.com/eric/thoughts/2012/02/14/the-vendor-prefix-predicament-at-ala/#commentsTue, 14 Feb 2012 18:11:36 +0000http://meyerweb.com/eric/thoughts/?p=1652Published this morning in A List Apart #344: an interview I conducted with Tantek Çelik, web standards lead at Mozilla, on the subject of Mozilla’s plan to honor -webkit- prefixes on some properties in their mobile browser. Even better: Lea Verou’s Every Time You Call a Proprietary Feature ‘CSS3,’ a Kitten Dies. Please—think of the kittens!

My hope is that the interview brings clarity to a situation that has suffered from a number of misconceptions. I do not necessarily hope that you agree with Tantek, nor for that matter do I hope you disagree. While I did press him on certain points, my goal for the interview was to provide him a chance to supply information, and insight into his position. If that job was done, then the reader can fairly evaluate the claims and plans presented. What conclusion they reach is, as ever, up to them.

We’ve learned a lot over the past 15-20 years, but I’m not convinced the lessons have settled in deeply enough. At any rate, there are interesting times ahead. If you care at all about the course we chart through them, be involved now. Discuss. Deliberate. Make your own case, or support someone else’s case if they’ve captured your thoughts. Debate with someone who has a different case to make. Don’t just sit back and assume everything will work out—for while things usually do work out, they don’t always work out for the best. Push for the best.

And fix your browser-specific sites already!

]]>http://meyerweb.com/eric/thoughts/2012/02/14/the-vendor-prefix-predicament-at-ala/feed/21652Unfixedhttp://meyerweb.com/eric/thoughts/2012/02/09/unfixed/
http://meyerweb.com/eric/thoughts/2012/02/09/unfixed/#commentsThu, 09 Feb 2012 18:37:49 +0000http://meyerweb.com/eric/thoughts/?p=1622Right in the middle of AEA Atlanta—which was awesome, I really must say—there were two announcements that stand to invalidate (or at least greatly alter) portions of the talk I delivered. One, which I believe came out as I was on stage, was the publication of the latest draft of the CSS3 Positioned Layout Module. We’ll see if it triggers change or not; I haven’t read it yet.

The other was the publication of the minutes of the CSS Working Group meeting in Paris, where it was revealed that several vendors are about to support the -webkit- vendor prefix in their own very non-WebKit browsers. Thus, to pick but a single random example, Firefox would throw a drop shadow on a heading whose entire author CSS is h1 {-webkit-box-shadow: 2px 5px 3px gray;}.

As an author, it sounds good as long as you haven’t really thought about it very hard, or if perhaps you have a very weak sense of the history of web standards and browser development. It fits right in with the recurring question, “Why are we screwing around with prefixes when vendors should just implement properties completely correctly, or not at all?” Those idealized end-states always sound great, but years of evidence (and reams upon reams of bug-charting material) indicate it’s an unrealistic approach.

As a vendor, it may be the least bad choice available in an ever-competitive marketplace. After all, if there were a few million sites that you could render as intended if only the authors used your prefix instead of just one, which would you rather: embark on a protracted, massive awareness campaign that would probably be contradicted to death by people with their own axes to grind; or just support the damn prefix and move on with life?

The practical upshot is that browsers “supporting alien CSS vendor prefixes”, as Craig Grannell put it, seriously cripples the whole concept of vendor prefixes. It may well reduce them to outright pointlessness. I am on record as being a fan of vendor prefixes, and furthermore as someone who advocated for the formalization of prefixing as a part of the specification-approval process. Of course I still think I had good ideas, but those ideas are currently being sliced to death on the shoals of reality. Fingers can point all they like, but in the end what matters is what happened, not what should have happened if only we’d been a little smarter, a little more angelic, whatever.

I’ve seen a proposal that vendors agree to only support other prefixes in cases where they are un-prefixing their own support. To continue the previous example, that would mean that when Firefox starts supporting the bare box-shadow, they will also support -webkit-box-shadow (and, one presumes, -ms-box-shadow and -o-box-shadow and so on). That would mitigate the worst of the damage, and it’s probably worth trying. It could well buy us a few years.

Non-WebKit vendors are in a corner, and we helped put them there. If the proposed prefix change is going to be forestalled, we have to get them out. Doing that will take a lot of time and effort and awareness and, above all, widespread interest in doing the right thing.

Thus my fairly deep pessimism. I’d love to be proven wrong, but I have to assume the vendors will push ahead with this regardless. It’s what we did at Netscape ten years ago, and almost certainly would have done despite any outcry. I don’t mean to denigrate or undermine any of the efforts I mentioned before—they’re absolutely worth doing even if every non-WebKit browser starts supporting -webkit- properties next week. If nothing else, it will serve as evidence of your commitment to professional craftsmanship. The real question is: how many of your fellow developers come close to that level of commitment?

And I identify that as the real question because it’s the question vendors are asking—must ask—themselves, and the answer serves as the compass for their course.

]]>http://meyerweb.com/eric/thoughts/2012/02/09/unfixed/feed/211622CSS Editors Leaderboardhttp://meyerweb.com/eric/thoughts/2011/02/04/css-editors-leaderboard/
http://meyerweb.com/eric/thoughts/2011/02/04/css-editors-leaderboard/#commentsFri, 04 Feb 2011 20:15:29 +0000http://meyerweb.com/eric/thoughts/?p=1478I recently decided to create a CSS Editors Leaderboard, which is my attempt to rank the various editors of CSS modules based on the current process status of their modules, how current the modules are, and so on. It’s kind of a turn of the wheel for me, given that I started out my CSS career with browser support leaderboards. Now you can see who’s amassed the most spec points, and who’s made the most effective use of their time and energy. Who knows? Maybe some editors will try to game the system by pushing their specs along the process track. That’d be just awful.

One thing of note: I decided to write the leaderboard script so that it directly parses an HTML file to figure out the rankings. You can see the file yourself, if you like. At the moment it’s just a bunch of dls, but at some point I suspect I’ll convert it to a table. The advantage is that it’s easier for other people to fact-check the source data this way: just load it up in a browser.

I thought about just parsing specs directly but it seemed like overkill to load the entirety of the CSS2.1 module just to figure out the process status, publication date, and editor list. And then do that same thing for every one of the 38 tracked modules. This way I have the leaderboard and a central summary of the modules’ status, and hopefully the latter will be even more human-readable in the future.

Anyway, it was a fun little project and now it’s loose in the world. Enjoy.

]]>http://meyerweb.com/eric/thoughts/2011/02/04/css-editors-leaderboard/feed/71478CSS3 Feedback: Graphical Thoughtshttp://meyerweb.com/eric/thoughts/2009/02/24/css3-feedback-graphical-thoughts/
http://meyerweb.com/eric/thoughts/2009/02/24/css3-feedback-graphical-thoughts/#commentsTue, 24 Feb 2009 14:35:20 +0000http://meyerweb.com/?p=1073Graphical Effects" part of the feedback document.]]>(This is part of the Feedback on ‘WaSP Community CSS3 Feedback 2008′ series.)

My few thoughts on the “Graphical Effects” part of the feedback document. A lot of what was mentioned by the community is already in the pipeline, so there’s not a lot to say about those except “hurry ’em up, willya?”.

Gradients — like rounded corners, no surprise these came up. (All we need is to define wet-floor-reflect and we’ll complete the Web 2.0 design tricks hat trick.) I’d like to see them myself, and I don’t think defining them is quite as hard as the commentary implies:

Imagine, for example, applying a gradient to the text of a <span> broken across two lines. Do you apply the gradient to each part individually? Glue them together as if they were all on one line first? Draw a rectangle around both parts and apply the gradient to that? (CSS3 Backgrounds and Borders has a control for this.)

I’d say the answer is right there, in the form of background-break, but let’s assume for a moment that said property never existed and we still had to deal with this problem. I can think of two solutions:

Only allow gradients to be applied to non-inline boxes. This would not be my preference, but it could be so defined. There’s already precedence with CSS for that sort of limitation: width, height, text-align, and other properties are restricted to non-inline boxes.

Treat gradients the way backgrounds and borders are already treated on inline boxes. I’d be much more in favor of this. In other words, lay out the inline box as though it is all on one line and then break it in pieces as needed to fit into the actual text flow. (This is the behavior of continuous, the default value of background-break.)

But since background-break exists, you just treat gradients as you would any other background in accordance with background-break‘s definitions.

The somewhat trickier problem is how to define the value syntax for background-gradient so that’s both powerful and extensible without being unusable. I think that’s solvable, but not easily, and probably not in a way that will satisfy everyone.

(Though this would be a fabulous place for the cardinal-point values from pre-CSS1 days, which you can still find in the specification if you look hard enough, to make a roaring comeback, wouldn’t it?)

Unidirectional background repeats — I say yes. Here, have some values: repeat-up, repeat-right, repeat-down, and repeat-left. In each case, the image would be repeated in the indicated direction from the origin image (the one placed by background-position). Ironically, really old versions of IE did half of this by not correctly supporting repeat-x and repeat-y, treating them instead as if they were repeat-right and repeat-down.

There are occasions where this would be very useful, especially if you can combine the values into something like repeat-down repeat-right, and most especially in conjunction with multiple backgrounds. So you could put an image stripe across the top of the element background, another one down the left side, and then fill in the rest of the background with a repeat-down repeat-right image. Not a particularly common case, but the only way to handle it at present is with multiple nested elements, each with its own background and possibly a lot of negative margin trickery, and nobody wants that. (Which may also be why it isn’t a particularly common case.)

You could also put an image in the center of your page and then a single stripe that goes only downward from behind it. Like a golf ball on a tee, say; or a tree trunk below the leafy crowm; or a stem from a flower.

Slanted corners — sure, why not? The issues are all the same as with rounded corners; the only difference is that you have a flat corner instead of a rounded one. It makes joins between different borders styles/colors more obvious, but that’s a good thing: any solution that works well for the slant corner should work as well for the rounded corner. Besides, if we’re already going to the effort of rounding corners, this seems like a pretty easy add-on.

Multiple borders — I think this would be quite useful. I occasionally fake this with a border and an outline (as in my diagnostic styles) but that only works for two; if you want three or more nested borders (or two or more in IE/Win) you have to start nesting elements. Also, having multiple borders lets you define your own gradient borders like you were a pixel artist, and who doesn’t like pixel artists?

At the same time, though, I do feel that this should be fairly low on the implementation totem pole. And, as pointed out in the document, if image borders get implemented then a lot of the need for multiple borders goes away.

Alpha channel image masks — the problem I have here is what happens if you, say, try to use an image to alpha-mask a non-replaced element? How does it scale? Or does it? Will there be a mask-stretch property? Who really wants to stretch an image over a great big div anyway? (From a visual-results point of view, I mean.)

Allowing masks might help in figuring out how to do non-rectangular float areas, in that you could use the alpha image to define the area used for float exclusion. Combine that with a stretch ability and SVG support, so you can draw scalable vector masks, and I think you’re really getting somewhere. (As does Matt Wilcox; he and I have been chewing this over in the comments on the previous post in the series.)

]]>http://meyerweb.com/eric/thoughts/2009/02/24/css3-feedback-graphical-thoughts/feed/271073CSS3 Feedback: Animated Shapeshttp://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/
http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#commentsThu, 19 Feb 2009 17:00:24 +0000http://meyerweb.com/?p=1055devoted to shapes had two overarching themes, as I saw it.]]>(This is part of the Feedback on ‘WaSP Community CSS3 Feedback 2008’ series.)

The portion of the feedback devoted to shapes had two overarching themes, as I saw it. That makes this entry a bit short, but when I tried to combine it with my feedback on “Graphical Effects“, it quickly got too long. So, a little amuse cerveau, as it were.

Animations, transformations, and so on — the WebKit team have of course been having a field day in this area, and what they’ve done will likely make is way to other browsers. Or not. I don’t know. I’m not entirely thrilled about the effort that’s gone into those properties when there are so many other, more basic things that need love and care, but there’s no denying the essential coolness of slowly rotating an entire page. Which I totally need to do the next time I give a presentation.

I’m not going to get into the “these things are behavior and therefore JavaScript!” argument. CSS already does behavior (think :hover) and it’s going to do more over time. I don’t see how that historical pressure can be resisted for much longer, short of outright refusing to take on any more behaviors and thus making itself a prime candidate for replacement with something else. We may as well do our best to make sure CSS does good behaviors well, in ways that makes the most sense to the most authors.

So that’s basically my feedback: since we’re going to do it, let’s do it right. Apple’s made a start, and unless the syntax they’ve defined in their CSS Animations draft is completely unworkable in other browsers for technical reasons, then let’s just roll with it. And please note I said the syntax, not the overall concept. (Ditto for their CSS Transforms draft.)

Stuff that isn’t rectangular — including both polygonal element boxes and polygonal floats. I’ve wanted these for at least a decade, so it’s little surprise that I’m in favor. Ragged floats were invented as a hack to make the latter happen, of course, and the basic idea’s been improved uponmore than once.

The tricky part, of course, is actually defining polygons. Regular polygons, as in hexagons and octagons and dodecagons, are not terribly difficult; but creating an irregular polygon requires defining a set of point coordinates in relation to some origin and resolving what happens when the lines cross over each other and… well, yeah.

The build-on-what-exists approach would just adopt the syntax HTML areaelements use in the coords elements. There would be two interesting questions there, which are what happens with negative coordinate values, and what happens if you draw a polygon that cuts through some of the element’s content. For example, you have a div containing an image, and you define the polygon to be smaller (in places) than the image. Is the browser obligated to prevent content overlap in such cases? I would tend to say no but I can see arguments for the opposite view, particularly when it comes to floats.

Then there’s the problem that you’d have to define a separate polygon for every element that needed a non-rectangular float, as Bert Bos notes in his thoughts on the topic from a couple of years ago. His contour idea is certainly interesting, though I’d then start to wonder how you define a contour point on, say, an irregular faded gradient.

Anyway, I thought about adapting clip to the purpose of defining float polygons, but then I remembered the long, tortuous hell that is the history of clip (and offset-clip) and decided that a new property is the way to go. Clean break, start fresh, et cetera. I don’t know what it would be called. content-shape, maybe, to go with element-shape. Or not.

]]>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/feed/141055Wanted: Layout Systemhttp://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/
http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#commentsTue, 17 Feb 2009 15:00:14 +0000http://meyerweb.com/?p=1052asking for better layout mechanisms. Actually, people were asking for any decent layout mechanism at all, which CSS has historically lacked. It needs one.]]>(This is part of the Feedback on ‘WaSP Community CSS3 Feedback 2008’ series.)

Not surprisingly, there was a lot of community feedback asking for better layout mechanisms. Actually, people were asking for any decent layout mechanism at all, which CSS has historically lacked. Floats mostly work, but they’re a hack and can be annoyingly fragile even when you ignore old-browser bugs. Positioning works in limited cases, but does not handle web-oriented layout at all well.

Why do we use floats for layout, anyway? clear. That’s pretty much the whole answer. The unique in-flow/out-of-flow nature of floats means they interact with each other and with the normal flow, which means they can be cleared, which makes them useful. Because with clear, we can float layout blocks around and then push other non-floated blocks, like footers, below the floats.

Positioning, of course, permits total layout freedom in the sense that you can put a layout block anywhere with respect to its containing block. The downfall is that absolutely positioned elements are entirely out of the normal flow, so they can’t stay out of each others’ way like floats do, and you can’t clear anything with respect to a positioned element. If there had been a position-clear or its equivalent from the outset, we’d never have bothered with floats.

(And if we can just add position-clear to CSS, that would be completely awesome. It’s been done with JavaScript and it will most likely be done again and better. It wouldn’t even be that hard to implement, at least for 99.5% of cases.)

All this is why the old “only use tables for layout” argument keeps coming up over and over: strip away the overheated rhetoric and obvious link-baiting, and you find the core of a real need. Because as powerful as CSS can be, table cells do certain things very easily that CSS makes very, very hard. Cells stretch vertically, keeping equal heights as a matter of their intrinsic nature. They stay out of each others’ way, while still being allowed to sit next to each other and use any sizing dimensions. They tie their layout to their parent elements, and vice versa.

There are no equivalents in CSS. There have been various very clever attempts to replicate bits and pieces of those capabilities using CSS. What CSS does, it does very well: if you don’t need equal-height layout blocks, then no problem. If you do, it’s a massive pain. Clever techniques provide substitutes, but can’t replace what tables already do.

And please, let’s put the whole “display: table-cell will grant those abilities through CSS” to rest. Saying that is just saying “use tables for layout” with different words. Turning a bunch of divs or list items or whatever into table-role boxes is no better than just using table markup in the first place, and it’s arguably worse. Using element names other than table and td to create layout tables, and then claiming it’s not using tables for layout, borders on self-deception.

Not to mention doing things that way means you’re doing your layout in a highly source-order-dependent fashion, which was one of the things about table layout we were trying to get away from in the first place.

So how do we get really powerful source-order-independent layout? I wish I knew. The Advanced Layout module has been sitting around for a while now, and even if you’re a fan of defining layout as ASCII art—which I find repels and appeals in equal measure, but that’s probably just me—there appears to be close to zero implementor interest. So how do we get those abilities in a form that implementors will, y’know, implement? I don’t know. I don’t care. We just need it, and have needed it for a good decade or so. Without it, CSS is a styling language but not a layout language. We’ve bent it into being something close to a layout language, which is nice but not really ideal.

Maybe CSS isn’t the place for this. Maybe there needs to be a new layout language that can be defined and implemented without regard to the constraints of the existing CSS syntax rules, without worrying about backwards compatibility. Maybe that way we can not only get strong layout but also arbitrary shapes, thus leaving behind the rectangular prison that’s defined the web for almost two decades.

I don’t have a concrete idea to propose here, because it’s not up to us any more. A solution was worked out over the course of several years and then found wanting by the implementors. Really, it’s up to the implementors to figure it out now. I personally would like to just lock the browser teams from Microsoft, Mozilla, Opera, and Apple in a room and not let them out until they’ve defined something that works and they’ve all agreed to implement soonest. I might even supply food and water.

And yes, I just advocated doing this outside the W3C process. Why wouldn’t I? The process has, in the last decade, not produced anything even remotely resembling an answer to this problem. Time to try another path and see if it gets any closer to the goal.

No doubt someone’s going to spin this as “See, even noted standards zealot Eric Meyer now says CSS is flawed!”—only they’ll be wrong because this isn’t a now thing. I’ve been saying this for years in interviews, in person, and in general. Any time someone asks me what CSS is missing or should do better, the answer has always been a variant on “a strong layout system”. I’ve been saying it for at least a decade. So I’m not saying it now. I’m saying it again. And again and again and again and…

If I sound frustrated, it’s because I am, and have been for a good long while. I’m not the only one. It rankles to have CSS be, as Winston Churchill would have put it, the worst form of layout except for all the others that have been tried.

In this round, layout. Not all of it, but the bits that struck me as either really useful or really, really way too long overdue.

Float containment — yes, we need a property that does just that. As long as we’re tied to floats for layout—and I plan to rant about that soon—there should be a clear, unambiguous, intentionally defined property that tells elements to wrap themselves around floated descendant elements. overflow works in most cases but can fall down in unusual circumstances (I’ve seen scrollbars appear where none were actually needed) and anyway, it wasn’t intended to provide the wrapping effect in the first place. That it does so is a happy side effect, but it’s still a side effect. The rest of the float-wrapping techniques are even more convoluted. “There are already ways to do that so we don’t need a property” is rather like saying “we can already do layout with tables so why do we need CSS layout?”.

Positioning by center — yes, please. The way to center an absolutely positioned element within its containing block is to set the top and left to 50% each and then define negative top and left margins that are half the positioned element’s height and width. That’s just awful, and requires at least an explicit width, if not an explicit height. When I did the structured timeline, here’s how I got the version numbers to center below the dots:

See that -1em left margin, and the 2.1em width? Just to get the center of positioned elements’ boxes sit on top of a certain left offset (defined elsewhere in the CSS). Ditto the negative top margin, to pull it upward just enough so that the elements’ boxes would have the point five pixels down from their tops line up with the vertical midpoint of their containing blocks.

That would have said that the point in the center of the absolutely positioned element should be placed at the point in the containing block 21.7% down from the top and 44% of the way across from the left. That would hang the positioned element’s center on that point, regardless of the size of the positioned element—note that I took out the width. I could stop defining explicit sizes and just let the elements be the size they want to be to show their content.

The problem is that approach doesn’t fit at all well with the way positioning layout is defined. Suppose I said this:

Now what? I’m not even sure myself. Maybe define rename it to position-offset and define percentages to be relative to the height and width of the positioned element (not its containing block), so that it doesn’t interact directly with the offset properties like top and right?

All I want is a way to hang elements off of offset points, and not be restricted to the corners of the elements, and have the solution work even when the elements have automatic height and width, and not require extra markup to make it happen. Oh, and a ponycar.

Box sizing — what in the nine hells of Valeria is taking so long? We needed that one ten years ago. I no longer care if it’s done as its own property or as new keywords on height and width. I just want it. Someone will make it happen, with or without the WG or implementors—mark my words.

Same-height elements — yes, a way to tie element heights (whether they’re siblings or not) together would be welcome, although I can see how specifying it in an implementable would be tricky; no, display: table-cell is not the answer. Soon I will rant about this. Soon.

]]>http://meyerweb.com/eric/thoughts/2009/02/16/css3-feedback-layout/feed/141043CSS3 Feedback: Selector Blockshttp://meyerweb.com/eric/thoughts/2009/02/12/selector-blocks/
http://meyerweb.com/eric/thoughts/2009/02/12/selector-blocks/#commentsThu, 12 Feb 2009 15:37:05 +0000http://meyerweb.com/?p=1034selector feedback, selector blocks was the part that really caught my attention.]]>(This is part of the Feedback on ‘WaSP Community CSS3 Feedback 2008’ series.)

Out of all the selector feedback, selector blocks was the part that really caught my attention. I also see the usefulness of a parent selector, but that one has come up many times before, and it’s always died at the doorstep of implementors, who point out that it’s far too difficult to implement without serious performance penalties and even risk of browser lockup. See, for example, the comment left by David Hyatt on Shaun Inman’s post on the idea. Similarly, I think constants (or macros or whatever they’re called) are a great idea and would be very helpful, especially if you’re coding up a Jason Special. Both are loaded with use cases, so I don’t feel like I can add a lot; besides, constants are already in the WG charter, so there’s once more hope in the land.

So anyway, selector blocks. To pick one recent example, while working on a project that should very soon see the light of day, I had a situation involving the following chunk of rules.

Nothing unusual about them, of course, unless you count my use of counters. These rules had been written early on in development, and the design had evolved around that part of the document. As more page components were added, I realized that I needed to scope all these rules to one section of the document: specifically, a div with a class of main. So here’s what I had to do.

Interestingly, the latter is theoretically possible, thanks to the more advanced profiles in the CSS module “Syntax of CSS rules in HTML’s ‘style’ attribute“. I’m not aware of the former having been seriously considered (despite my best efforts, once upon a time), though it’s always possible I missed something.

But either one of those approaches would be a last resort, in my opinion. I’d much rather just wrap the whole chunk in .main { }, like I showed previously, and be done with it. That capability would also simplify certain annoyingly repetitive patterns, like the very first of those rules. I think it’s pretty obvious which of the following is easier to write and maintain:

I mean, just look at the former, and imagine what one goes through to write it in the first place. Copy, paste, paste, paste, paste, paste… maddening. And that’s just for a small block of CSS like this one. Imagine the tedium of doing this for a block of 50 rules, or 150. (Also, this is the the same thing that was requested in the feedback as “Grouped Alternates“, albeit with a different syntax.)

One objection to this sort of pattern is that it increases dependence on descendant selectors, which are computationally inefficient. But it doesn’t: I had to create a whole bunch of descendant selectors as it was, and did so far more clumsily. And had I missed a command-V somewhere, I’d have had styles that applied outside their intended subtree. Introducing a way to nest blocks like this doesn’t change anything except make it easier and more maintainable to do what we already do. Honestly, it’s pretty much impossible to increase dependence on descendant selectors. The best we can do now is make them less difficult to write.

I realize that the syntax I depict would cause backwards-compatibility problems, as in older browsers would not behave as intended when exposed to this sort of thing, but I’ve also stopped being concerned about that. We can’t keep holding ourselves hostage to decisions made a decade or more back. Provide the capability and authors will use it when they can. Over time, its use will become more prevalent—kind of the same way authors adopted CSS in the first place.

I also realize that this case has been made time and again by many, many other people. This isn’t even the first time I’ve made this case, though I think the other times were within the WG and therefore off the public record. The fact that it keeps being made is a strong indicator that the need exists, and dismissing the idea because the same end effect can be achieved with existing selector syntax (as shown above) isn’t acceptable. That’s like saying that complex selection effects can be achieved with JavaScript or XPath, so there’s no need for advanced CSS selectors.

So that’s my use case. I actually have a bunch more, but they all follow the same basic pattern: the desire to group rules together into subsections of a document, or to otherwise simplify the writing of CSS.

]]>http://meyerweb.com/eric/thoughts/2009/02/12/selector-blocks/feed/381034Feedback on ‘WaSP Community CSS3 Feedback 2008’http://meyerweb.com/eric/thoughts/2009/02/11/feedback-on-wasp-community-css3-feedback-2008/
http://meyerweb.com/eric/thoughts/2009/02/11/feedback-on-wasp-community-css3-feedback-2008/#commentsWed, 11 Feb 2009 17:50:58 +0000http://meyerweb.com/?p=1024Fantasai---published WaSP Community CSS3 Feedback 2008. I gave it a read and came away with a number of things I wanted to say.]]>
Back before holiday season hit, Elika Etemad—better known as Fantasai—published WaSP Community CSS3 Feedback 2008. I gave it a read and came away with a number of things I wanted to say. So many things, in fact, that I’ll need to split them up into a series of posts. This here post will serve as introduction and hub, with links to the follow-on entries added as they’re published. All very Bray-ny, no? (Go ahead, groan. It only encourages me.)

I want to make clear up front that I’m not going to address every single point in the feedback document: it’s just too incredibly huge. I did think about making my own copy and then just filling in my reactions to each point, but that didn’t scale very well. Not only did it seem really overbearing and maybe just a touch egotistical, but some of my reactions were based on related topics in separate areas of the original. Besides, I know what it’s like trying to read a really, really long article, so breaking it up and just focusing on the parts that got me fired up made way more sense.

There is one thing I want to address before I start serving up the follow-on installments. At the end of Fantasai’s post, there’s a link to my 2006 post about the benefit of having a community liaison, someone who bridges the gap between the WG and the public. She then asks if anyone is interested in volunteering, but personally, I don’t see the need. The WG already has a community liaison: it’s you, Fantasai. It has been for some time now, thanks to your regular and informative CSS WG blog posts and other outreach work such as “WaSP Community CSS3 Feedback 2008”. The job is being done, and being done very well, I don’t think there’s any doubt that the Working Group is much, much better for it.

]]>http://meyerweb.com/eric/thoughts/2009/02/11/feedback-on-wasp-community-css3-feedback-2008/feed/51024W3C Change: Your Turn!http://meyerweb.com/eric/thoughts/2006/10/02/w3c-change-your-turn/
http://meyerweb.com/eric/thoughts/2006/10/02/w3c-change-your-turn/#commentsMon, 02 Oct 2006 13:05:59 +0000http://meyerweb.com/?p=767your thoughts for improving the W3C's effectiveness and standing in the field?]]>
So recently, I shared a number of ideas for improving the W3C, the last of which (posted a week ago) was to transition from a member-funded organization to a fully independent foundation of sorts, one that was funded by the interest earned by an endowment fund. Surprisingly, there seemed to be little objection to the idea. That was the one thing that I figured would get some pushback, mainly due to the magnitude of the change involved. I’m still interested in hearing any counter-arguments to that one, if somebody’s got ’em (thought they’d be best registered on that particular post, and not here).

The other thing I was expecting to see, but didn’t, was other people’s ideas for improvements to the W3C. That was probably my fault, given the way I wrote the posts, which now that I look at them were set up more as soliloquies than the beginnings of a discussion. While I think my ideas are good ones (of course!), I’m only one person, and I very much doubt I’ve thought of everything.

So what are your thoughts for improving the W3C’s effectiveness and standing in the field?

]]>http://meyerweb.com/eric/thoughts/2006/10/02/w3c-change-your-turn/feed/4767W3C Change: Full Independencehttp://meyerweb.com/eric/thoughts/2006/09/25/w3c-change-full-independence/
http://meyerweb.com/eric/thoughts/2006/09/25/w3c-change-full-independence/#commentsMon, 25 Sep 2006 12:36:55 +0000http://meyerweb.com/?p=766
Apologies for the break in posting just as I was getting to the best part of the W3C Change series, but back-to-back trips to Seattle and Dallas came up before I could finish writing up my thoughts. This one was, for all the simplicity of the content, the hardest one to write, because I kept revising it to try to be more clear about what I’m proposing and how it would be an improvement. I could keep revising ’til the end of forever, so I’m just going to take what I have now and go with it.

My third recommendation is simply this: Transform the W3C from a member-funded organization to a financially independent entity.

In order to accomplish this, the W3C would need to embark on a major capital campaign, similar to the efforts mounted by major non-profit organizations and American private universities. The campaign parameters that come to mind are a ten-year campaign whose goal is to build an endowment of $200 million. From the interest on this endowment—which at a relatively modest 5% return would be $10 million annually—the W3C could fund its activities.

(Note: I do not have access to the budget of the W3C, but with approximately 70 staff members at an average total cost of $125,000 per year in salary, benefits, and travel expenses, the staffing cost would be $8.75 million. If I am lowballing the budget, then obviously the capital campaign’s goal would have to be raised. The general approach remains the same.)

As the campaign progressed, the membership dues would be reduced across the board in proportion to the progress of the campaign. Once the campaign reached its end and the full endowment had been acquired, the dues would fall to zero and the membership model would be dismantled.

You might wonder where the blinking font the W3C could get that kind of money, even over the course of a decade. Well, 20 Internet billionaires could each donate $10 million in thanks for the W3C making their fortunes possible, and there you go. Even if that doesn’t happen, there are many foundations whose goal is to foster better technology and communications, and who might be persuaded to contribute. Government grants could help. And, of course, a supporter campaign like that run by the EFF would allow individual developers to add their support.

Frankly, I don’t think the problem would be finding the money, especially over a ten-year period. By hiring an experienced fund-raiser, I think the funds could be raised a good deal more quickly. I think this would be especially true if Sir Tim publicly put his weight behind the effort, and made personal appeals to potential major donors.

But why would I even suggest such a thing?

The current membership model creates an apparent wall between the W3C and the rest of us. Because it costs a minimum of $15,000 over three years to become a W3C Member, individuals will rarely, if ever, be able to justify membership. The same is true of web design and development shops.

For primarily this reason, there is the belief that non-paying members of the community cannot join Working Groups, and that the WGs are forever closed to the rest of the world. This is not really true, since any Working Group can ask people in the community to become Invited Experts. These are Working Group members who don’t have to pay to get in, and aren’t necessarily held to the same contribution standards as Member representatives. (Not that contribution standards are always upheld for them either, as I observed in an earlier post.)

So now imagine a W3C where there are no Members. That means that every Working Group is comprised entirely of Invited Experts (except for any W3C staff members who might join). This bridges the perceived gap, and puts community members on a more equal footing with those who would currently be Member representatives. I’m not saying there wouldn’t be company representatives at all. The CSS WG is going to have representatives from Microsoft, Mozilla, Apple, and so on. The alternative is for them to not participate, and thus be at the mercy of what happens in their absence.

Since someone’s going to bring it up, I’ll address the Microsoft question. You might think that Microsoft could decide to both abandon, say, the CSS WG and ignore what it produces. (Anyone could do this, but Microsoft is going to be the company accused of hypothetically plotting such a thing.) That could well be. But wouldn’t Microsoft departing the CSS WG be a large red flag that something’s seriously wrong, and that it needs to be addressed before worrying about exactly how the layout module is written?

Of course, some other player could do this as easily as Microsoft. The point is really that, if a major player in the space with which the WG is concerned departs that WG, then it identifies a situation that needs to be addressed. The Member model actually goes some small way toward concealing that, because the dues paid create a certain impetus to put someone on a WG, even if there’s no serious interest.

The flip side of this is the question, which I’ve heard more than once from people when I talk about this idea, “How would a WG force the players to the table?” For example, how could a new browser-technology WG force the browser makers to join the group?

The question itself betrays a fallacious assumption: that players should be forced to work together. If you propose to form a WG that doesn’t interest one or more of the major players in the field, then the WG may well be flawed from the start. The point of a WG is to produce an interoperable standard. If a WG just goes off and does something without buy-in from players, and there’s never an implementation, then the whole effort was wasted. On the other hand, a specification that was produced with the involvement of all the major players stands a much better chance of being implemented, and thus a much better chance of being used and appreciated by the community.

The flip side of that flip side is the question, “What if a WG refuses to admit a player in the field?” In other words, what if the CSS WG barred Microsoft from having a representative on the WG? Again, that would be an enormous red flag that something had gone awry. Any WG that refused to involve an important player in their field would need to be scrutinized, and probably reformatted.

All this does raise the spectre of replacing a centralized model with a consensus model. Which is just fine with me, for all the reasons I just mentioned.

There is the perception—largely untrue, but no less persistent—that the W3C is controlled by those who fund it.

It’s actually been my experience that there’s an inverse correlation between the amount of money a company puts into the W3C and the frequency with which their representatives get their way. During my time in the CSS WG, the Microsoft people faced more resistance and more grief from the rest of the WG than the Netscape reps ever dreamed of getting. CSS-like things which IE/Win had done faced a serious uphill battle to be incorporated in the specification, even when they were good ideas. I don’t know how to explain this odd variance from the usual effect of money, but it was there. Maybe in other WGs, the situation is different, although I kind of doubt it.

But as I say, the perception is persistent. A financially independent W3C would remove that perception. I wouldn’t propose this kind of funding-model change solely to clear up some erroneous perceptions, but it’s an undeniably positive side effect.

Full financial independence allows the W3C to do things that its dues-paying Members likely wouldn’t permit.

Now what could I be talking about, since I just claimed that dues money doesn’t drive what the W3C does, except in inverse ways? What I’m talking about is things like launching a program to pay Invited Experts a small stipend. Currently, Invited Experts receive no financial support, whereas Member representatives are supported by their employers while devoting some of their time to the W3C. I tried to imagine a world where the dues-paying Members of the W3C approved the idea of paying Experts, and although I managed to do so, it turned out to be entirely populated by talking kawaii unicorns who get joyfully teary about their perpetually rainbow-filled skies and giggle a lot.

Here’s another W3C effort which probably could never get funded under the current model: a university scholarship for students who plan to study the web, or uses of the web. They might fund independent research on the effects of the web in developing countries, or what users want, or any number of other things. Or hey, how about putting enough money into the WWW conference series that people who present papers are given a complimentary registration? (I know—radical!)

These things couldn’t happen if the W3C’s endowment generated only enough interest to cover staffing and overhead, but the endowment doesn’t have to be limited to just that much. A second capital campaign, or a simple continuation of the first one, could increase the endowment, thus giving the W3C (potentially) quite a bit of discretionary funding. It would give them the opportunity to spend money on efforts that advance their core mission (“To lead the World Wide Web to its full potential by developing protocols and guidelines that ensure long-term growth for the Web”).

There are various knock-on effects that arise from those points, of course, but I’ve gone on long enough.

As many of you have noticed, I’m effectively proposing that the W3C become a foundation instead of a consortium, albeit a foundation whose primary mission is to act as a consortium would. I’ve avoided using terms like “non-profit” and “not-for-profit” because they might imply specific things which I don’t fully intend in terms of tax law, or whatever, but I do think of it as a generically non-profit institution; that is, one that does not strive to create a profit, except as can be invested into the endowment.

I’ve tried to explain why I believe this is a good idea, but in the end, I think the most fundamental reason is that one I can’t explain: it just feels like the right thing to do. It’s like I can perceive a shape without grasping all its details, but the overall shape looks right, looks better.

I fully expect that some will recoil from this idea, convinced that a foundation is a poor substitute for a consortium. Obviously, I disagree. I think the W3C’s future could be made much more stable with this approach, especially in financial terms. I also believe, as I said before, that it would be no less of a force for the advancement of the web. In fact, I think it would be a much stronger force, and have a greater positive effect, over the long term.

It is not a small undertaking, but it is an important and worthwhile effort, and I hope it is one the W3C considers seriously.

]]>http://meyerweb.com/eric/thoughts/2006/09/25/w3c-change-full-independence/feed/23766W3C Change: Working Groupshttp://meyerweb.com/eric/thoughts/2006/09/17/w3c-change-working-groups/
http://meyerweb.com/eric/thoughts/2006/09/17/w3c-change-working-groups/#commentsSun, 17 Sep 2006 23:34:35 +0000http://meyerweb.com/?p=765
The second area where I think the W3C could be improved is in how Working Groups are populated and managed. To a large extent, what I propose is just a re-commitment to existing rules, and isn’t particularly radical. That doesn’t make them any less important, of course. Furthermore, this area of discussion doesn’t boil down to one talking point; rather, it boils down to three.

First is this: participants in a Working Group should be productive, or else leave the group, whether voluntarily or otherwise.

This is really already part of the rules, but it’s not very well enforced, in my experience. I mean that personally, too: between mid-2003 and mid-2004, I contributed almost nothing to the CSS WG. I didn’t even phone in for teleconferences, let alone contribute to specifications. Now, as an Invited Expert, the participation rules aren’t quite the same for me as they are for Member representatives, but by any measure, I was deadweight. I was only on the WG membership list out of inertia.

When the WG’s charter came up for renewal in 2004, the chair asked me if I wanted to stay in the group and start contributing again. After some reflection, I said no, because I wasn’t going to magically have more time and energy to give to the WG. To stay would have been dishonest at best, so I left.

Honestly, though, he should have asked me the same question (and been a little more pointed about it) six months previously. WG chairs should do the same for any member who falls silent. The actual reasons for the silence don’t matter, because having a WG member step down isn’t a permanent excommunication. It’s simply an acknowledgment that the person is too busy to be a contributing member, and so leaves the group, whether temporarily or for good.

Ideally, people would voluntarily do this upon recognizing their lack of participation, but not everyone would. I didn’t, until I was prompted. WG chairs should prompt when necessary, and even be empowered to place someone on inactive status if they don’t contribute but refuse to step down. Again, this isn’t a permanent decision, and it isn’t punishment. It’s just keeping the WG membership list aligned with those who are actually contributing.

This brings me to the second point, related very closely to the first: Working Groups should have a minimum membership requirement.

If a WG doesn’t have enough members to operate, then it needs to be mothballed. Simple as that. If you had ten WG members and eight of them went silent, leaving you with only two active members, then it’s time to close up shop for a while. No WG would ever be permanently shuttered this way: it would simply be placed on “inactive” status. Once enough people committed to being contributing WG members, it could be re-activated. Granted, this would require a re-chartering and all the other things necessary during that process.

I also have to figure that if a WG was in danger of going inactive, some of the group’s members would get involved again. If not, word would spread and community members would step up to offer their help. And if none of that happened, then it would be a pretty strong indication that the WG did need to be shut down, for general lack of interest.

Of course, all this requires a WG chair who is willing to hold people’s feet to the fire, to cut inactive members, and to shut down his own WG if there aren’t enough active participants. But then WG chairs are already required to do a lot of things, and not all of them get done. Some are trivial; some are not.

The biggest obstacle a WG can face is its own chair, if said chair is abrasive or obstructionist or just plain out of touch. As things stand, the only way to lodge a complaint against a chair is by working your way up the chain of command at the W3C. That’s a pretty flat set of rather short chains, though. In many cases, it doesn’t take a whole lot of steps to reach Sir Tim himself. And there are even cases where WG chairs are their own bosses, hierarchically speaking, which makes it hard to effectively lodge complaints.

Thus we come to my third suggestion: there needs to be a “vote of no confidence” mechanism for WG chairs.

This is nothing more than a vote by the members of a Working Group: do we keep our chair, or should he step down? In this way, the WG itself can decide when it’s time for a leader to go. I get a little wobbly over the actual vote threshold: should a chair be removed if half the WG votes against him, or two-thirds? Tough call. Probably a majority, on the theory that any WG with that many people opposed to the chair is already in deep trouble.

I’m also unable to decide whether I’d have these votes happen automatically, on a set schedule—say, every year right before the March Technical Plenary—or only when a member of the WG calls for one. Both approaches have pros and cons. I think my slight preference is for the set schedule, but on the other hand, requiring a member of the WG to call for a “no confidence” vote would be useful, in that the mere call for a vote would serve as its own indication of trouble in a WG, regardless of the vote’s outcome.

So that’s how I’d reform WG membership and leadership: participants need to be active; WGs need a minimum membership to continue; and WGs should be able to remove their own chairs when necessary.

]]>http://meyerweb.com/eric/thoughts/2006/09/17/w3c-change-working-groups/feed/5765W3C Change: Outreachhttp://meyerweb.com/eric/thoughts/2006/09/15/w3c-change-outreach/
http://meyerweb.com/eric/thoughts/2006/09/15/w3c-change-outreach/#commentsFri, 15 Sep 2006 12:23:17 +0000http://meyerweb.com/?p=764
My first suggestion for improving the W3C is this: every Working Group should have one member whose primary (and possibly sole) responsibility is outreach.

To make life a little easier, I’m going to refer to this position as a WGO (for Working Group Outreach). As an aside, I’m not sure that “outreach” is exactly the right term for what I have in mind, but it’s a decent term that captures most of what I have in mind, so I’ll use it here. If someone comes up with a better term, I’ll be grateful.

So here’s what I envision for a WGO.

The WGO keeps the public informed about the top issues on the Working Group’s agenda and immediate-future activities. The easiest, most obvious way to do this is to post a summary of every WG FTF (face-to-face) meeting. A summary would describe the topics the WG discussed, resolutions that were reached, which problems were not solved, and so forth. This could be a bullet-point list, but a better summary would be something like a short article.

Note that I do not say that the WGO should post the FTF minutes, which are often private. The results of those discussions, though, should be public, even when no results occurred. A summary can say that the WG discussed a topic at length and reached no resolution without saying why. It can also say that a topic was discussed and a solution found, and then describe the solution.

A really good WGO would produce an activity summary more often than every FTF. I don’t know that I’d insist on a summary for every weekly teleconference, but sending out a summary once a month would be more than reasonable. These summaries would be posted on the W3C site and to the relevant public mailing lists. For the CSS WGO, this would always mean posting to www-style. In cases where WG activity touched on features of XHTML or SVG, summary posts would be made to those public lists as well.

The purpose here is to draw back some of the curtain surrounding Working Groups. Too often, interested members of the public don’t know what the WG is up to, and that can be frustrating. If there are several people agitating for a new feature and the WG stays silent on it, it’s impossible to tell if the WG is blowing the idea off or if it’s something they’ve considered at length but haven’t yet reached a decision.

Public summaries also have the benefit of allowing some public discussion of work before the public-comment period on a proposed specification. This would help distribute the WG’s feedback load.

The WGO brings the needs and concerns of the public to the Working Group, and communicates back the WG’s reactions. This means part of the WGO’s job is to be involved in the wider community surrounding a given activity. The CSS WGO, for example, would spend time reading web design mailing lists, forums, blogs, and so forth to find out what people in the field want and need (in CSS terms, anyway). The WGO would present these to the WG as items to consider. The topics so raised, and the WG’s responses to them, would go into the next summary.

The goal here, of course, is to have someone on the Working Group who represents the “in the trenches” folks. If there are other members of the WG who also represent those who work in the field, that’s awesome. With the WGO position, though, there’s the assurance of at least one person who speaks for those who actually use the products of the Working Group, and who will use any future products.

The presence of a WGO in a Working Group should be a charter condition. No group should be (re-)chartered without an identified WGO, and the extended lack of a WGO should be cause to question the continued charter of a group.

Basically, I’m of the opinion that if a WG can’t find someone passionate enough about what they’re doing to be the WGO, then it’s time to ask whether or not they should continue at all. Similarly, if there’s no real community for the WGO to represent, then it’s time to ask why the WG even exists.

The WGO should have no other major responsibilites within the Working Group. This means the WGO cannot be the WG’s chair, and should not be a specification editor. Their primary job should be the two-way representation I’ve described here.

It’s too easy to get overloaded in a WG, especially if you’re the kind of enthusiast a good WGO should be. There needs to be a defined limit to the position, so that outreach is always topmost on that person’s agenda within the WG, and it doesn’t get buried under other duties.

In summary, a good WGO would act as a liason between the Working Group and the community surrounding it. A great WGO would do all that and also produce information that helps expand that community. They could publish quick how-to’s, for example, concentrating on either current or near-future specifications.

If you could, please allow me to illustrate my points with a few things that a CSS WGO might do in the course of their duties. I’ll call this CSS WGO “Bob” to make the example less clumsy.

Recently, Bob’s been seeing a lot of calls on blogs for an “ancestor” selector. This would be something that lets you say, “style this element based on its descendants”, such as styling all links that contain an image without having to class them. (This idea has come up many times in the past, by the way, but has yet to be added to CSS.) So Bob brings the “ancestor selector” subject to the WG. The WG says, “Yes, that’s a very good idea, but it runs aground on the following problems.” Bob would then put all that into his next summary: “The WG is in favor of adding the ancestor selector, but the following problems prevent its inclusion…” Bob could certainly also communicate the response directly, through mailing lists or blogs, instead of just putting the response in the summary. The latter is necessary, of course, but doing both is better.

How is this better? Because the community knows the WG has considered the idea, where the WG stands on the idea, and the reasons why it hasn’t been accepted. Everyone knows where the sticking points lie, and can make suggestions to overcome them, instead of just guessing as to why the requested feature hasn’t been adopted. As for the reasons, they could be anything from “that’s demonstrably impossible in an entropic universe” to “not enough implementors have committed to doing it”. As long as we know what the roadblock is, we can act accordingly.

Furthermore, Bob might accompany a new version of the Advanced Layout module with a quick how-to article that describes how to do a certain common layout, one that’s very hard to do in current CSS, with the stuff in the new module. This provides a quick, “wow cool!” introduction to the WG’s efforts, which can energize the community and also draw in new people.

I will readily grant that many WGs have what are effectively unofficial WGOs; in a lot of ways, you could argue that I’ve been a WGO for years, as have several other people, through books and articles and forum participation and blogging and so on. That’s not enough. There needs to be someone inside the Working Group who is focused on explaining to the world what the WG is doing and who is explaining to the WG what the world is doing, or at least trying to do.

So that’s the first of my three major suggestions for reforming the W3C: an outreach person for every Working Group.

While I applaud the efforts of the WHAT WG and the microformats community, I’m not advocating a complete dismissal of the W3C. The basic role filled by the W3C, that of being a central meeting place and coordinating body, is an important one. It’s also potentially damaging. Think of it like a central file server at work. As long as the server is fine, your work can continue. If it goes offline or, worse, its contents get corrupted, you’re in a very bad position.

When I point to the WHAT WG and microformats, I’m not holding them up as saviors or replacements. I’m simply drawing attention to effects of the basic problem. Both communities arose because of the nature and (lack of) speed of the W3C and its work. We could argue about whether or not they should replace the W3C, but the simple fact is that had the W3C been more responsive and in touch with developer needs, they would never have existed in the first place. They wouldn’t have had to exist.

If the W3C can get back on track, I wouldn’t want to see it replaced. If it can’t, then it will be replaced, no matter what I or anyone else has to say. That doesn’t mean it would cease to exist, of course. It would simply become less and less relevant. I have some ideas about how the W3C might avoid such a fate, but they aren’t things that I can cover in a single post. Instead, I’ll do it in three parts, and the three topic areas I’m going to address are:

No small potatoes, those. It will be interesting to find out what people think of my proposals for each.

]]>http://meyerweb.com/eric/thoughts/2006/09/14/w3c-change-introduction/feed/8763Angry Indeedhttp://meyerweb.com/eric/thoughts/2006/08/14/angry-indeed/
http://meyerweb.com/eric/thoughts/2006/08/14/angry-indeed/#commentsMon, 14 Aug 2006 12:37:44 +0000http://meyerweb.com/eric/thoughts/2006/08/14/angry-indeed/
In my head, at any rate, it was Jeffrey‘s angry post that kicked off the latest round of posts about consortium contretemps, even though Jeffrey’s post was triggered (at least in part) by a message posted to the fairly obscure public-qa-dev mailing list by Björn Höhrmann, detailing his reasons for leaving the W3C.

That’s great to hear, but what’s perversely fascinating to me is that in that very same post, Molly herself lists the reasons why Jeffrey’s anger is in no way misplaced:

Am I defending the W3C’s slow-to-move process or its over-bureaucratized administration? Its lack of attention and sensitivity to gender (count the women, go ahead, dare you) and racial diversity, its frightening disregard for the real needs of the workaday Web world? Oh no, nor would I want to.

It’s that last point that lends the greatest support to Jeffrey’s argument: “…frightening disregard for the real needs of the workaday Web world”.

What more really needs to be said? It’s the most concise indictment possible that the first part of the W3C’s mission statement, the fragment they put right on their home page, “Leading the Web to Its Full Potential…”, has been betrayed.

Believe me, I’d prefer things to be otherwise. I’m still a strong believer in standards, and for seven years (1997 – 2004) put my time and energy into supporting and advancing them as a member of the CSS Working Group. When I left, it was because I didn’t have the time and energy to contribute any more, and rather than continue to be a deadwood listing on the group’s roster, I left. But most of the reason I couldn’t come up with the time and energy was precisely what Molly articulated. I no longer believed in the W3C’s ability to do what it promised, and what I wanted.

But the worst part? None of this is new. Look back two years, when David Baron and Brendan Eich walked away from a W3C Workshop in disgust. To a large degree, both men walked away from the W3C itself at that point—and if you’ve spurred David Baron to turn his back on the web’s central standards body, then boyo, you’ve got some deeply serious problems.

Let’s be frank: a whole lot of people who believe passionately in the web’s potential and want to see it advance fought for years to make that happen through the W3C, and finally decided they’d had enough. One by one, I saw some of the best minds of my generation soured by the W3C; one by one, the embittered generalsmarched forward, determined to make some sort of progress.

Perhaps my eyes have become a touch too jaundiced over the last decade, but I’m not sure I could disagree more with what Molly claims near the end of her post:

Jeffrey is wrong in his current assessment of the W3C.

If only that were so.

If the folks at the WaSP believe the Good Ship Consortium is beginning to change course, then I’m happy for them, really; I’ll be even more happy if they’re right. But when the ship is moving so slowly and has drifted so far out to sea, how much relevance can a change of heading really have?