Google Chrome Frame for Internet Explorer

Long story short, Google released a plugin for IE 6, 7 and 8 that will run Google Chrome (which uses webkit) inside a frame in the IE browser. Now IE6 can be standards-compliant, and all versions of IE get blazing fast javascript and HTML 5 support. Sounds great, but there are some problems, as lifehacker points out:

“The (most) obvious question: Why would I install this plug-in rather than switch browsers to Chrome? The folks at Google point to IT lockdown that won’t allow users to install a new browser; Ars wonders whether such restrictive IT departments would be any more likely to approve this plug-in. If nothing else, it’s a pretty bold move on the part of Google.”

If you’re interested, Jim Ray dug into the details of how it works. Personally, I don’t think this will solve anyone’s IE6 problems, but it’s a fascinating development, and worth keeping an eye on.

“The irony here, as I see it, is that an old, insecure feature Microsoft built to try to beat Netscape is now being used by Microsoft’s biggest current rival to patch IE.”

Note: This was originally posted on my work blog, and I’m re-posting it here for archival purposes.

IE8 Compatibility Mode and IE7 are Not the Same Thing

Just so we’re clear, testing your website in an actual copy of IE7, and testing in IE8′s Compatibility Mode are not the same thing. Compatibility Mode does an acceptable job of imitating IE7, and for the average user who’s just trying to fix a site that looks broken under IE8, it’s good enough. However, there are lots of small differences, and if you’re only testing your client sites with Compatibility Mode, it could come back to bite you.

On the IE Blog, Tony Ross published a list of mostly technical differences between the two. Perhaps more useful for web developers is this article by Estelle Weyl outlining some of the presentation differences between the two, such as border handling and box model differences.

Why does this matter? Because I’ve heard some otherwise intelligent web developers (including Microsoft’s Expression Web team, which uses IE8′s Compatibility Mode for IE7 testing) claim that testing will be much easier now, since you can test everything in one place.

To be sure, tools like Expression Web or the old Stand-Alone IE installers are helpful, but don’t fool yourself into thinking that they are an accurate representation of a “clean” IE6 or IE7 installation. To test against those, you’ll still need to resort to more thorough measures like keeping separate machines around, or using the free Virtual PC images for IE6, IE7, and IE8.

Note: This was originally posted on my work blog, and I’m re-posting it here for archival purposes.

Version Targeting and IE8 Followup

Hooray! The feedback from the web development community convinced the IE development team to change their minds about the default setting for version targeting in IE8 (as I discussed in a previous post).

“In light of the Interoperability Principles, as well as feedback from the community, we’re choosing differently. Now, IE8 will show pages requesting ‘Standards’ mode in IE8’s Standards mode. Developers who want their pages shown using IE8’s ‘IE7 Standards mode’ will need to request that explicitly (using the http header/meta tag approach).”
– Dean Hachamovitch, Microsoft’s Interoperability Principles and IE8

To clarify, version targeting will still exist in IE8, which is a good thing. The change is that instead of defaulting to IE7′s rendering engine, it will default to IE8 — which is the behavior you would logically expect.

You know, it’s really nice to make a post where I can say something nice about Microsoft, and that’s been happening a lot more often lately, thanks to the IE development team. Way to go, guys!

Note: This was originally posted on my work blog, and I’m re-posting it here for archival purposes.

Version Targeting and IE8

Previously onWeb Developer Controversies: Aaron Gustafson from the Internet Explorer development team announced that IE8 will use a META tag to kick the engine into standards mode by targeting a specific browser version, something that was previously done by using a valid DOCTYPE. A lot of people, including Jeremy Keith, think this is a bad idea. Here are some of the more interesting points that have been raised in the discussion so far. 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.