Who’s Afraid of HTML Email?

Anyone who tells you creating HTML email is easy has either never done it, or is lying. Inexperienced designers tend to think, “Oh, no problem, it’s all tables and font tags!” Grizzled veterans, however, know all too well the difficulties of getting anything but the most simple design to render well in a variety of clients.

Email design today is like web design in the early 90′s, complete with nested tables, spacer gifs, and FONT tags galore. Standards support is virtually non-existent, and even simple things like background images and table spacing are handled poorly by some clients.

Continue reading

Selling Web Standards is Hard

I recently had a fascinating conversation with our VP of Client Services. Long story short, I learned that selling web standards is difficult, because many of the benefits it offers are “soft.” For instance, if we tell a client that the extra money we charged them to upgrade their site to web standards will make future updates easier, the Client Services team is afraid the client will come back and say that we should charge them less for updates.

For a standards zealot like myself, this was hard to hear. Like most deciples of Zeldman, when someone asks me why we should use web standards for a site, I go back to the CSS talking points in this article from A List Apart. First, web standards mean dramatically improved accessibility, even degrading gracefully in older browsers that don’t support CSS. Secondly, standards-compliant sites tend to be cheaper to produce and maintain when compared to older table-based layouts, and finally, standards mean that a site is “future-proof” because they will be much easier to maintain and update as time passes and coding standards continue to change.

Continue reading

Tables Don't Have a HEIGHT Attribute

I am absolutely stunned. For a few months now, I’ve been discovering that some of my websites don’t render correctly on Netscape. Now, like any web designer, I’m aware that none of the major browsers render HTML exactly according to the standards, let alone CSS. So I chalked it up to IE being slightly ahead in the browser wars and blamed Netscape for not being standard-compliant. However, I recently found out that Mozilla also has some problems with some of my sites. This is cause for alarm, since Mozilla’s major feature is an HTML rendering engine that is supposedly 100% compliant. I did a little detective work and found out that all of the bugs could be blamed on Netscape except for one thing. There’s an odd bug that shows up in the way some table cells are rendered on Mozilla (as well as Netscape) that I couldn’t explain away. My code appeared to be correct. Tonight, I stumbled across the answer while working on a new site for work.

There is no HEIGHT attribute for tables or table cells in HTML

Everyone uses height tags in their tables. It’s common practice. But while checking my manuals, I found out that it’s a non-standard tag. There’s a width attribute, but no height attribute. WHY? THIS MAKES NO SENSE.

I stumbled onto this because Netscape would render table cells set to HEIGHT=100% way too large, as if it was setting it to 100% of the screen size, rather than 100% of the space available. And in some circumstances, Netscape would ignore the HEIGHT attribute altogether. IE would render it with 100% of the space available. Mozilla would ignore the height tag altogether in all circumstances. So Netscape and IE had different ways of dealing with this non-standard tag, and Mozilla was the only one doing things the way it was supposed to. The only problem is that suddenly I’m left without a tag that I’ve been using frequently.

And there’s no substitute! Let’s say you want to position an element in the middle of the screen, no matter what size window the viewer has. CSS allows for exacting control over elements, but it will not accept general terms like align right or left or center. You have to enter exact distances from the top left corner. To get around this you need tables. Well, you can set the table cell to 100% width and height, and then align to the center both vertically and horizontally. Well, according to the HTML specs (and therefore, according to Mozilla), you can do that horizontally, but not vertically.

I love web design. It is my passion. But I swear, if anything ever drives me insane someday, it’s going to be things like this.