Posts in the CSS Category

Testing for Flaws

Published 22 years, 2 months past

Chris Hester wrote earlier to point out the CSS2 Test Suite’s main page was completely unreadable in Internet Explorer 6 if you had the “Text Size” set to “Smaller.”  This was news to me; I’d set my text to “Medium” the day I installed IE6 and never looked back.  So I went to the page, changed my text size, and winced.

The problem’s since been worked around, but to see the problem as well as read about the trigger and the solution, try this testcase.  Note that if you’re using IE6 and your browser is set to “Smaller” the testcase will start out completely unreadable.  Set it to “Medium” first and then go to the page and follow the directions.

The flaws in IE6 continue to amaze me, and now we’re stuck with it for another three years, minimum.  Great, just great.

Dave Hyatt recently made some observations about standards-support charts (starting with Standards Charts and continuing into three posts the next day).  I agree with most of what he has to say, actually.  Charts like the “master grid” are by their nature coarse.  They can do no better than provide support information for whichever tests the chart author happened to run.  In presenting an overview and comparison of CSS support, for example, depth-of-implementation testing is sacrificed.  It has to be.  The CSS support charts I published on Web Review for years, and now on DevEdge, are basically the work of one person: me.  I wrote most of what became the W3C’s CSS1 Test Suite in the creation of the original charts, back in late 1996 and early 1997.  Back then, it was easier—bugs were more obvious, and all implementations were shallow.  The charts could afford to be as shallow.

Now, thanks to years of experience, implementations are getting much, much better, and the bugs harder to find.  To fully test modern CSS implementations requires a far more complex set of tests than I could author in a lifetime of evenings (which is when I wrote the tests and the charts).  To be really comprehensive, you’d need to test every property and value combination on every element in HTML (or a markup language of similar complexity), which I think was once calculated to run into a few trillion combinations.  It’s a lot harder to create tests, to run tests, and to chart results than it used to be.  This fact was driven home to me recently as I worked on (finally!) updating the CSS charts.  For the tests I have at hand, most browsers score perfectly, or close to it.  I know that’s not true: every browser has bugs in its CSS support, some worse than others (*cough*WinIE*cough*).

(Aside: I feel either amused or gratified that there’s support for the concept of penalizing browsers for having bugs, a concept I used in compiling the “CSS leader board,” back in the day.  “Full” support earned a point, partial support got half a point, no support got zero, and a bug lost you half a point.  It was a touch crude, perhaps, but it worked.)

But I only have so many hours in every day, the same as anyone else.  It’s not reasonable to expect one or even five people to meet this challenge.  The only way to handle it is to find a moderately large crowd of CSS experts, all of whom trust the others completely, and distribute deep-test creation among them.  In a few months, they may have gotten far enough to run browsers through their tests.  A month or so after that, they could start compiling results, and eventually publish them.  But even assuming all of that data could be collected and presented, how useful would it really be to the Web community?  One of the keys to the original CSS support charts’ success was that they were easy to comprehend: their very shallowness made them useful.  Authors don’t have time for much more.

Implementors have different needs, of course.  If those needs are strong enough, they’re going to need to fund positions (and I do mean more than one) to coordinate the work necessary to fulfill their needs.  The money could come out of the Quality Assurance budget, even.  In any case, if standards support testing is a serious problem, then we’ll need a serious commitment to address it.  Who’s going to step up to the plate?


Reduced to Efficiency

Published 22 years, 2 months past

I’ve been trying to catch up on e-mail.  Astonishingly, after only a couple of days of sustained effort, I’ve managed to get to the point where I’m only two weeks behind on my Inbox!  This is to a large degree because I’ve been sending out terse responses, for the most part, and pointing people to css-discuss in case they need more help.  Out of the 300 – 400 messages that arrive every day, once I strip away the listserv traffic and ditch the spam, I’m generally left with anywhere from three to twenty pieces of mail sitting in my Inbox.  The average is somewhere just below ten.

So if you’re thinking about asking me for help with understanding CSS, my best advice is to go join css-discuss.  As much as I love to help people out, you’re more likely to get much quicker and more complete answers from the community than from me, especially this summer, which is shaping up to be one of the busiest of my life.

As if in answer to all of my past grumblings about XSLT being all icky and bloated and clumsy, Simon brings word of the Parsimonious XML Shorthand Language (or PXSL, pronounced “pixel”).  This language basically turns XML syntax inside out, introduces indentation sensitivity, and ends up with a smaller and much less cluttered language.  Consider this example, which I nicked straight from the PXSL documentation:

<xsl:template match="/">
  <xsl:for-each select="//*/@src|//*/@href">
    <xsl:value-of select="."/>
    <xsl:text>&#10;</xsl:text>
  </xsl:for-each>
</xsl:template>

Here’s the PXSL version:

template /
  for-each //*/@src|//*/@href
    value-of .
    text <<&#10;>>

Okay, maybe not as compact as I would like, but it’s still a lot better than the XSLT version.  True, it still has to use XPath, so the line-noise quotient isn’t as close to zero as it should be, and it won’t do anything about the template-nesting rules XSLT imposes for no apparent reason.  It is also true PXSL is dependent on indentation and that never makes me happy, being a veteran of BASIC (where there was no indentation), PASCAL (where it didn’t matter), and HTML (ditto).  If I were programming Python already, I probably wouldn’t bat an eye, but guess why I’m not programming in Python?

The fascinating part to me is that, if you dig far enough into the document (which isn’t actually all that long), PXSL was originally designed “to reduce the verbosity of XSLT stylesheets.”  Ay-men, brother!  I do have to wonder about its whitespace handling, though.  Fortunately, when I’m ready to learn more I can find out about it via the PXSL Community site, which employs both XHTML and CSS for layout, including a styled unordered list to set up the navigation.  Most excellent.

What a great way to start a week!


Mirror Life

Published 22 years, 2 months past

Ever have the feeling that you’ve seen a site somewhere before?  It happens to me on occasion, and this morning e-mail hit my Inbox pointing me to the Web site for The Clasby Family, which looks darned familiar.  In case something changes, here’s a screenshot of the site, and a shot of a similar one.  Actually, all but one of its themes look really familiar for some odd reason.

How did I find out about this?  Someone e-mailed me to mention that the designer for clasbylife.com had posted a forum question about Opera’s rendering of the themes.  I read the post and was amused to find it was the exact same problem I hit back in February, and explained the situation in some detail in a site post.  So it turns out the source of the problematic styles is also the source of the explanation.  Funny!

For the record, I’m not really upset by this, although it would have been nice if I’d been asked about the use of the images, since some of them are my original works (those in “Natural” in particular).  One really good way to learn CSS-driven design is to snag a local copy of someone else’s design and take it apart.  Then put it back together in your own way.  clasbylife.com seems to have that underway, with a new theme that looks to be a mutation of “Natural.”  If grabbing a copy of something I’ve done help a designer understand CSS a little better, then I’ll be the last to complain.  More power to you.  Feel free to use them yourself, as long as they’re used for non-profit or educational purposes.  No charging other people for my designs, though!  I really have to get around to explicitly branding these things with a Creative Commons license so it’s all clear.

Anyway, as the new stylesheets note in fairly obvious comments, some of the images I use belong to me, whereas some came from other sources.  That won’t stop people from copying them, but at least I’m providing fair warning (and credit).

  • Mirror Life was published on .
  • It was assigned to the CSS category.
  • There have been no replies.

We Live To Serve

Published 22 years, 2 months past

Yesterday, Jeffrey Zeldman was nice enough to point people toward meyerweb’s redesign, and also to say some kind words about yours truly that he’ll probably regret some day.  I know I have already, because when goofy rendering errors were reported in IE6/Win, I kind of felt obligated to do something about them instead of just shrugging and saying, “Eh, not my problem.”  Curse you, El Jefe!  I shall be revenged!

Two days ago, I got an e-mail message that had me falling out of my chair, I was laughing so hard, and I simply can’t resist sharing it with you.  I’ve edited the text a bit for clarity, and the name has been removed to protect—well, the guilty, really.  In a legal sense, I mean.

I’ve spent some time reading and working with several CSS books….  and I have to tell you that Eric Meyer on CSS is the best…. if I want to know how to do something and refer to the pile of books near my left hand, it is the one that most easily produces the answer.

It has one other great advantage over all the others as well:  it is by far the best book to roll a joint on.  Shape, size, thickness, glossiness, flexibility, and color are all excellent and [far] ahead of the competition.

It’s amazing how a well designed book serves all purposes.

Well.  Glad I could help out.

A day or two before that fascinating bit of e-mail arrived, I was standing in clothing store located in a brand-new shopping mall just recently built a couple of miles from our house, when the following lyrics came over the store speakers:

Don’t it always seem to go That you don’t know what you’ve got till it’s gone? They paved paradise and put up a parking lot.
—Joni Mitchell, “Big Yellow Taxi”

…and I thought to myself, “Is someone trying to be ironic?”


Eos Rising

Published 22 years, 2 months past

Yep, I finally did what I’ve hinted at for some time now and updated the site design.  Behold: Eos.  It’s sort of an in-joke, one that I would expect exactly four other people to get straightaway, along with perhaps a few others who happened to see the pictures.  Checking the styles might help those who are really curious to unravel the mystery, but trust me, it’s not really that interesting if you weren’t there in the first place.

So anyway… the new design is based around positioning, as opposed to the old one, which was based on floats.  The underlying structure of the site has barely change, with one exception.  The navigation/presentation portion of the pages is now found at the end of the document, instead of the beginning.  This seems more accessible to me.  If you want to see what the raw, unstyled page looks like, pick the theme “void(style);” from the menu.

Note that not every theme is guaranteed to work in your browser.  I stuck to the CSS standards as much as possible, and I did do cross-browser testing.  This uncovered some weird whitespace-sensitive bugs in some browsers.  It also showed that not every technique works well in all browsers.  I’m open to hearing about workarounds for broken displays in browsers, should you find them, so long as they’re based on standard CSS and don’t break the display in too many other browsers.

A few other notes:

  • Unlike the old design, the new themes are intended to have notably distinct layout approaches.  Almost all of them put the sidebar on the right, but that’s just because I prefer righthand navigation.  With the old themes, each one was basically a different set of colors and backgrounds for the same layout.  This time, I wanted to be a little more original.  I’d credit the CSS Zen Garden with prompting this, but I’ve been slowly working at this change since last fall.
  • The cookies that store the theme name and base text size (if you change it) changed their names to be a little more verbose.  You can of course deny said cookies; the site will be completely navigable without them.  The theme switcher won’t work, that’s all.
  • Only one of the themes uses pixel-sized text: “Classic MW.”  Since the theme is intended to reproduce the old design as closely as possible, I figured I’d leave its 11px baseline text.  You can always override it with text-zoom features, or else on the advanced setup page, like before.
  • Some themes use ems or percentages to set the body element’s text size to be smaller than the user’s default.  I did this to prevent the sans-serif fonts employed in those themes from looking stupidly big in default browser installs.  If you object to this approach, then pick a theme that doesn’t override text size—the default theme, “Eos,” is one of these—or set your preferred base text size on the advanced setup page.  Or both.
  • When switching from one theme to another, you may run afoul of bugs in various browsers that let styles leak from one theme to another.  If you see a totally horked display, reload the page to see if that fixes it.
  • Although I was tempted, I didn’t end up using any PNGs to create the translucency effects in various themes.  I didn’t use background-attachment: fixed, either.  It was a lot more challenging to figure out ways to let IE/Win users see the translucent effects with scrolling backgrounds and regular old JPEGs.  I may write a tutorial on how I managed this, but anyone who can’t wait is free to tear into my CSS and figure it out for themselves.  And to copy the technique, if they so desire.
  • Despite it not being the default theme, I think my favorite is Aware.  The name is not necessarily the English word meaning “having knowledge or cognizance,” but is instead a Japanese word meaning “the sense of poignant beauty arising from an ephemeral thing.”  Since I think the latter is only possible with the former, I find this to be a wonderful intersection of cross-linguistic meaning.  Thus you can take the title to mean whichever of the definitions appeals to you most.  For me, it changes back and forth over time.

There may be adjustments to the themes in the future as I find techniques I like better, or as I fix up oddities in and add extra visual frosting to the more experimental themes (like “Matrix”).  Meanwhile, please feel free to share and enjoy.


Zen, Now, and the Hereafter

Published 22 years, 2 months past

There’s a great theme at the Zen Garden: What Lies Beneath.  It’s very non-traditional (hint: you don’t scroll like normal) but very well done, nice and earthy.  There have been several other contributions since I last mentioned the site, all of them quite interesting.  The design process behind one of them has been explained in some detail by its author, Doug Bowman, who knows quite a few things about the power of CSS-based design.

Meanwhile, the Literary Moose has taken advantage of the CSS3 definition of content to show how text can be replaced with an image in a gracefully flexible manner.  If you just see plain text for the headline, follow the link to the screenshot, which was taken in Opera.  If more browsers supported this behavior, we could stop using <span>-based image replacement hacks such as those employed at the Zen Garden and other sites.  I’m not slamming said sites: such hacks are necessary if certain effects are to be achieved in today’s browsers.  It’s still good to have someone pointing out where we might be able to go tomorrow.

As you might have guessed, I’m back from TODCON MX Vegas, which was a real kick on many levels (but not the literal one).  That is one seriously unhinged and fun group of folks, and I’d like to thank Ray West for finally getting me there.  It seems my presentations were all very well received, which is always preferable to the alternatives, especially the ones involving torches and pitchforks.  I hope to get my files online in the next few days, particularly the ones from the “Redesigning” talk.  Pictures from the conference are already appearing over at DWmommy.com, and I’d bet there will be plenty more to come.

I think that of all gifts one person can give another, trust is the rarest and most precious.  In a way that few other gifts do, trust creates a bond that is at once strong and fragile, and that very paradox is part of what gives it so much beauty.  The next time I’m feeling downcast about myself, I need only think of all the people who have trusted me with their thoughts, their feelings, with pieces of their lives.


Spanning the Globe

Published 22 years, 2 months past

This afternoon I wrapped up an interview with a guy from Radio New Zealand’s Digital Life programme, who was calling me from tomorrow morning.  (They’re eighteen hours ahead of me.)  I noticed almost no lag despite the distance; after watching the one-second-plus pauses in conversations between anchors at CNN Center and field correspondents in the Middle East, I expected a similar effect.  There was a very slight delay, it seemed, maybe a quarter-second or less, but no more.  We were separated by roughly ten thousand kilometers (six thousand miles) of linear distance and probably thirteen thousand kilometers (nine thousand miles) of surface distance as we talked, and yet the conversation was no different than if he’d been sitting across town.  Just wow.  I’ve been promised a transcript of the interview, so I hope I was reasonably coherent.

Yesterday’s entry drew some responses, all of them basically telling me to stop worrying.  I appreciate that.  I think I’ll still fret for a while anyway, just because it forces me to think about what I really want to do.  If I find other things more interesting than CSS, then I need to admit that and move on.  If not, then I need to stop dithering and get back to work.  Probably the latter, but one should take stock every year or so.

On this, the second anniversary of starting at Netscape, Microsoft agreed to settle an antitrust lawsuit by paying AOL a large pile of cash, and furthermore let AOL continue to use IE in the AOL client for the next seven years for free.

Well.  Perhaps the reflections upon my career and its future will come in handy after all.


My Dull Surprise

Published 22 years, 2 months past

I’m continually amazed by what interests people.  The most recent examples: Simon Willison’s CSS tutorials and Stuart Robertson’s “The Search For the Missing Link.”  This is in no way a denigration of the work either man is doing—it’s top-notch stuff, and is not only well presented but is obviously striking a chord with readers.  I’m just saying that it never would have occurred to me that people would be interested in those kinds of things, so even if I’d had the ideas, I probably wouldn’t have bothered to write them up.  (Exception: Simon’s CSS makeovers of the Winer and JWZ sites, which I wish I’d thought of first.  Oh well.)

This bothers me, because it hints at a personal failing.  If I’m not talking about the things that interest people, if I’ve lost touch with what people want to know, then how can I be an effective teacher and author?  Why should anyone bother to listen to what I have to say?  For a communicator like me, this is a real problem.  I thrive on the exchange of information, both incoming and outgoing.  Of course I can always consume knowledge, but that isn’t enough.  If I can’t provide it as well, the meal is unsatisfying.  The important thing is the sharing.

Am I bored with CSS, and having that stunt my abilities?  Is this a lurking fear of being eclipsed by newer (and generally younger) contributors to the field and eventually forgotten?  Have I just been in the game too long to stay in touch with the audience?  I’m sure people out there would be happy to tell me that I could still see what the audience wants if only a massively swollen ego weren’t blocking my sight, and for all I know they’re correct.  Maybe it’s time to move into a different area of study, and see what happens.  I hear they’re taking applications at that truck driving school.

It was two years ago tomorrow that I started work for Netscape, by the way.


Browse the Archive

Earlier Entries

Later Entries