A Standards Based Future

I wrote a few weeks ago about Microsoft’s plan to require a meta tag to use standards mode rendering in IE8. There was a ton of backlash. I can’t remember the last time so many browser and web developers publicly spoke out so quickly on an issue. It was pretty obvious to everyone that it wasn’t a good thing for the web.

Microsoft has had a change of heart, and will now use the new standards mode by default, and an IE7 compatibility mode via a meta tag. This is a much better move as it will mean more rapid adoption of standards. The point in which we will be able to develop on a more level playing field moved much closer thanks to this move.

As everyone around the web is noticing, this little nugget in the press release is pretty interesting:

“While we do not believe there are currently any legal requirements that would dictate which rendering mode must be chosen as the default for a given browser, this step clearly removes this question as a potential legal and regulatory issue,? said Brad Smith, Microsoft senior vice president and general counsel.

Most seem to think that’s a reference to Opera’s antitrust complaint with the EU. I would agree.

Go Standards Campaign?

I wonder if it’s worth some sort of cross-vendor campaign (Mozilla, Microsoft, Opera, WebKit/Apple) to get users to adopt modern browsers in a much more rapid pace. IE6 is hanging around for much longer than one would like. I suspect IE 8’s adoption won’t be very quick either. Perhaps it’s necessary for it to be combined with a GoPHP5 style campaign where older browsers are unsupported as of an arbitrary date. While Microsoft may have some obligation to provide security patches until the apocalypse, there’s no reason why websites must support it.

This is of course hard to implement as nobody wants to jump on this train unless all their competitors join in. It would take coordination on the level of Google, Yahoo, Facebook, AOL, Amazon, Adobe sized sites. Odds of something like that working are <5%, but I could be wrong. As a web developer dropping IE6 is a dream I can’t wait to see happen. It would however be interesting to see what innovation would take place if browser support suddenly became much more level.

Give Us Milestone Builds

It would be nice if Microsoft would start shipping milestone builds in a somewhat regular interval (weekly, monthly) so that developers can constantly test and evaluate how their websites behave in IE 8. It would be nice to know up front what we are looking at. Of course this is best when your bug database is open, but even when it’s closed, it’s still helpful to know where you stand at all times. I regularly test websites I work on in WebKit, Opera, Firefox nightlies. Why do I do this? So I know exactly what’s coming. So I can track issues I may have to fix, or the vendor may need to fix. I also can make a time estimate on how long it will take until I’m ready for browser x. Generally with those browsers the time estimate hovers around 0. Every so often an issue worth looking into arises.

I think this would really help the web ease into a fully standards world.

The new generation of browsers including Firefox 3 and IE 8 are really shaping up.

Tab Impact On Total Time Spent

As everyone in the industry knows, Nielsen/NetRatings no longer relies on page views instead preferring total time spent. This makes sense since ajax applications can have 1 page view, but keep a user for an hour. Not to mention other things like video or Flash. The use of time spent is likely much more accurate. In my mind “time spent” is time actually spent on the site (I’m a literal guy).

This of course raises an interesting question. How do tabs influence this metric? Take the following situation as an example. A user visits a home page, and opens a link in a new tab. Then finds another link and opens it in a new [background] tab. That’s 3 tabs in 1 visit (assume visit to be 30 minutes).

Before tabs, most browser sessions would look like this:
Linear Pathing

There’s now an increasing number that will look like this (gray is a tab not in view):
Tabbed Pathing

If we assume total time on the site is time between the first and last page, we potentially undercount the total time on sites that list information (for example Digg). The total time to make those clicks could be < 10 seconds, but the time spent reading those two page alone might be > 10 minutes. Many tab power-users from what I’ve read around the web over the years essentially use them as a way to bookmark their “to read” list (including myself). It also undercounts sites like Gmail which are ajax based (1 page) but can be used for several minutes.

If we use javascript to “ping” (call back by placing a tracker gif) the analytics service every x seconds to see if the page is still open, we potentially double count since a user can’t be in 3 tabs at once. The clock would be counting 3 seconds for every 1 second the user is actually looking at the page.

This raises the question: are sites that are heavily used by Firefox, Safari, Opera and IE7 site underestimated or overestimated because of the way users browse the site? How do you accurately tell how long a view is when a user can have multiple tabs?

Another example is someone who keeps their webmail open in a tab all afternoon for easy access. They may only check it 1x measuring no more than 1 minute in actual attention. But it’s open for 5 hrs. What is the real time on the page? You can measure my interaction (opening/closing mail). But what if I’m reading an email for an hour (it’s a really complicated one)? How does that compare to just leaving it open in the background?

This is really no different than using new windows, the difference being that most people seem to have found windows to be annoyance, while tabs are a “feature”. The increase in usage and popularity in a time where visit length matters raises an interesting question. How do you measure it?

One assumption is that it’s just a small percentage of the population, which is likely true. The problem with this assumption is that it’s one subject to change as the browserscape matures and users learn about new features. Another assumption is to just account for all time a page is open, even if it’s not visible. The downside I see here is that it’s pretty inaccurate. As a content producer I’d like to know if my content is used, or just loaded on a users computer. If I were an advertiser I’d care even more.

I’m not sure how analytics firms approach this. In a sense it’s similar to the “hotel problem“. Perhaps just something you need to decide upon and live with.

Browser Wars On Google

If you search for Firefox using Google you’ll see this ad towards the top:

Firefox Adwords Campaign

Look over to the right side and you’ll see this:
Microsoft Adwords Campaign

Here’s a larger complete screenshot for anyone interested.

Interesting eh? They aren’t threatened though. Here’s another tidbit. A search for “Safari” brings up a Microsoft ad as well. A search for “Opera” or “Opera Browser” does not. A search for “Browser” will. A search for “linux” will bring up a few Microsoft ads as well as a Firefox ad.

WGA No Longer An IE7 Requirement

According to Ars Technica, Microsoft may have removed the WGA requirement to install IE7 in hopes of gaining more market share by allowing users of pirated Windows XP systems to upgrade.

I doubt this will really do much. My guess is that those who are avoiding WGA are more technically advanced users. They either:

  • Use Firefox, since that’s what real cool kids do. Besides, they like the extensions.
  • Use Opera
  • Using a workaround to install without WGA.

I think the bigger reason IE6 is still so prominent is that corporations spent the better part of the decade bringing their applications on the web. Upgrading to IE7 means testing and upgrading them. Nobody wants to rush into that. Corporate users who will continue to use IE will mostly stick with IE6 until they move to Vista.

DEMOfall 07 Browser/OS Statistics

Stephen Wildstrom did a little survey of demo machines at DEMOfall 07. 81% Windows, 19% Mac. He says that’s growth, and I’m not shocked to hear that. He also did a survey of browsers and found all Mac’s use Firefox over Safari, and makes a reference to it’s skin (an interesting observation considering the current discussion over reskinning the browser for 3.0). Firefox did decent on the Windows front as well. I’ve noticed this myself. People seem to prefer demoing their web based product in Firefox. Is it out of habit? Or because some ajax based websites feel slower in IE7?

xmlHttpReq.overrideMimeType() in IE7

This is just a little note for anyone doing xmlHttp work. I just encountered this situation this morning. As most web developers know IE7 introduces support for the native scriptable XMLHttpRequest object. The big advantage here is that ActiveX is no longer necessary to use ajax applications on IE. One thing I did note is that there is a slight difference in their support for the XMLHttpRequest object. Take the following code:

// Mozilla/Safari/IE7+
if (window.XMLHttpRequest) {
    xmlHttpReq = new XMLHttpRequest();
    xmlHttpReq.overrideMimeType(‘text/xml’);
}
// IE6-
else if (window.ActiveXObject) {
    xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttpReq.open(‘POST’, strURL, true);

That seems to break for me on IE7. A little experimentation shows that it doesn’t support the overrideMimeType() method. A simple fix for this is to simply check before invoking it as follows:

// Mozilla/Safari/IE7+
if (window.XMLHttpRequest) {
    xmlHttpReq = new XMLHttpRequest();
    if(xmlHttpReq.overrideMimeType){       
        xmlHttpReq.overrideMimeType(‘text/xml’);
    }
}
// IE6-
else if (window.ActiveXObject) {
    xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttpReq.open(‘POST’, strURL, true);

This is just FYI for anyone who happens to encounter this error. It’s a simple fix. This somewhat goes without saying, but make sure your request returns from the server as text/xml or you’ll likely still encounter issues.

IE7 Testing

I complained a while back about how unlike Firefox or Opera, it’s hard it is to support multiple versions of IE. Microsoft apparently did listen to developer complaints, and came out with a solution.

You can now download a time crippled VirtualPC Image and running IE6 in VirtualPC. It’s available free of charge. The catch is it’s time crippled (though it seems like they will release a new image before that time).

This vastly improves the situation, but I wish they also offered IE7 virtualized, for those who can’t/won’t upgrade at this time (corporate IT policy, etc.). I also think there would be significant benefit to developers to see IE 5.x as available (since we still often have to support it). A VMware version for Linux (and eventually Mac) developers would also be great to see, though I won’t hold my breath on that one.

But regardless, it’s a great move. I just hope they keep coming out with updates to keep the program going. Hooray for solutions!

The Need For Browser Testing

Ok, I’ve done a fair amount of work over the years in browser compatibility. From web development work, to writing the reporter tool. I’m well acquainted with the stress of testing your beautiful site against a dozen different browsers/versions/platforms. I just recently did so with SafePasswd.com which I launched the other day. IE5,5.5,6, Firefox 1.0, 1.5, and soon 3.0 (2.0 is pretty similar to 1.5, so likely not much trouble), Safari, Opera! It’s a drag.

What drives me nuts is I can’t keep parallel versions of IE on 1 system to test against. I want to test against IE 5.5, 6, and 7 (RC1 as of this post). This hack lets you have IE 7 as a standalone, but the broken stuff is rather critical.

So what does a web developer do?

  • Keep several computers lying around with different browser versions? This seems costly?
  • VMWare (or Parallels) with different configurations? This too is rather expensive, as Windows licenses aren’t just given out like Linux.
  • Install/uninstall each and every time? That’s excessively time consuming to test between just IE6 and IE 7.

I know there are some services out there that will give you screenshots of your page, but that doesn’t work for things like JavaScript functionality testing, and debugging. So those are effectively worthless for most purposes.

So what is the recommended approach to testing between IE versions? I haven’t been able to find any recommendation from Microsoft on the topic (if anyone knows of one, please point it out). Perhaps it’s a topic for the guys over at the IE Blog?

The same question goes for Safari? How can I a Mac OS X Tiger guy, test how my apps ran with whatever version of Safari someone with Mac OS X 10.3.6 would have? Or 10.2 (though to be honest, I have a 10.2 machine around)? Perhaps it’s a topic for their blog as well?

For the record, all Firefox releases can be found here, Opera can be found here.

So what’s the “best practice”? So far it seems the jury is out on IE and Safari. Firefox and Opera are a pain, but easily done. So what do you do?

Confusing Cross Browser UI Design

Most have heard by now that Internet Explorer is adopting the Firefox RSS icon to standardize and help users who hate having to remember what equivalent icons are. Of course this is great for users. Though I wish they were a bit more consistent with their practices. UI design cross browsers is important simply for security purposes (as I will demonstrate). IE has apparently made some great strides in combating Phishing. What I disagree with, is how they implemented the UI. I think it’s confusing, and could easily be fixed, should they decide to do so.

Their scheme essentially works by coloring the URL bar based on how suspicious the website is. Known scammers get red, suspected get yellow, and a potential good site would be green. This is obviously modeled after a traffic light.

What I dislike is how that can be confusing to the end user. Right now, the colored URL bar technique is used by Firefox and Opera to distinguish a secure website (since it’s more obvious than the little lock). Take a look at the little demo I have here:

Good Site Opera 9

Opera 7

Good Site Firefox 1.5

Firefox 1.5

Bad Site Internet Explorer 7

Internet Explorer 7

Screenshot from IE Blog.

For an end user, who doesn’t follow browser changes, and perhaps first encounters IE 7 at work, or in a public terminal. Seeing the yellow bar is familiar. We know that as being safe. I think many wouldn’t even notice the “Suspicious Website” text on the right side. The shield even looks a bit like the Lock icon in Firefox. Very confusing.

My suggestion is to use another color, in particular, one that I call “orange”. I release the color “orange” under a Public Domain License. Anyone may use it, however they may wish, no need to credit me 😉 (though I’d appreciate it).

Bad Site Internet Explorer 7 + My Solution

Internet Explorer 7

This would distinguish the site as a possible fraudulent website, but still avoid using Yellow, which many users now view as “secure” aka “safe”. This solution solves the problem of conflicting UI design between browsers.