Stuff & Nonsense Home

Where you’ll find designer, author and speaker Andy Clarke. The bastard.

Blogging And All That Malarkey

What does browser testing mean today?

Before we send over our design files to the chaps at CannyBill, first a run through of the browsers that we have tested in the new design and some musings about what browser testing actually means today, in the face of an ever more diversified browser and device landscape.

As I've mentioned across several posts, my redesign for CannyBill makes heavy use of HTML5 and what I call extended CSS. Extended CSS is CSS2.1, parts of the CSS3 specification that have already been implemented in progressive rendering engines, plus proposed CSS3 that browser makers have implemented and submitted to the W3C. Working this way means that my design is flexible and adaptable to the natural differences between browsers. More on that later.

Although we looked at every page in our set of browsers, to keep this post brief I'll concentrate on the two most complex — the home and plans pages.

Choosing a benchmark browser

I strongly believe that to achieve the best design that I can, I should design to the best browser I can, not to the lowest common denominator or the most widely installed. Your benchmark browser may be different, but mine is Safari 4, not simply because I use a Mac but because its Webkit rendering engine is the heart of so many desktop and mobile browsers. Using Safari 4 (or any up-to-date Webkit based browser, the design looks exactly as I intended, complete with elements that I styled with border-radius, CSS generated gradients and shadows and RGBa.

Safari 4 Webkit


Home page in Safari 4 Flickr

Like many of the pages on the new CannyBill, the home page relies on:

The plans and pricing page adds extended CSS transforms (scale) and transitions.


Plans page in Safari 4 Flickr

While, aside from Webkit, only Firefox 3.6 has implemented much of this CSS, I can mostly live with that because, as we know, web sites don't need to be experienced exactly the same in every browser.

Firefox 3.5

Next in my testing order, Firefox 3.5 has implemented RGBa and border-radius.


Home page in Firefox 3.5 Flickr


Plans page in Firefox 3.5 Flickr

While that browser lacks the ability to display some of the CSS that is Webkit is capable of, people using it will not have their experience adversely affected and there is absolutely no reason not to include those features solely based on the lack of ability of a less capable browser.

Camino 2

Camino 2 (beta) also produces an acceptable result with its Gecko rendering engine.


Plans page in Camino 2 (beta) Flickr

Opera 10

Opera 10 is a huge improvement on previous versions, but its developers seem so far to be a conservative bunch in respect of implementing CSS that is not specified or almost specified by the W3C. That is why, although Opera 10 has a fantastic new UI and some interesting functionality, I would not consider it to be progressive like Firefox or Webkit-based browsers.


Home page in Opera 10 Flickr


Plans page in Opera 10 Flickr

Missing CSS design elements include solid specifications such as border-radius, box-shadow and CSS columns. I am assured that these will be in Opera's next release and I would like to see designers and developers get behind the Opera team to encourage them to push their own CSS boundaries.

Firefox 3.6

The browser landscape is now more varied, and I would dare say more interesting, than it has been in years. As a Safari user, I love Webkit innovations, but Mozilla are innovating too. The next Firefox release will bring that browser close to the capabilities of Webkit.


Plans page in Firefox 3.6 Flickr

IE8

By now, some of you might be wondering, but what about Internet Explorer? As we outline in our contracts, we test in the latest version of any browser, so for Internet Explorer that means IE8. While IE8 has cured many of the ills of its previous incarnations and is a fine browser for the non-discerning, it lacks implementations of RGBa, border-radius, shadows and of course the CSS generated gradients found only in Webkit and Firefox 3.6.


Home page in Internet Explorer 8 on XP (VMWare) Flickr


Plans page in Internet Explorer 8 on XP (VMWare) Flickr

In most cases a browser that is missing these features does not hamper the core design or a person's experience of using it. In the case of IE8, I used Modernizr to help me apply alternative styles based not on browser sniffing but on a browser's capabilities.

.rgba 

.no-rgba 

The area of the design where I did decide that a lack of CSS gradients in Firefox 3.5, Camino 2, Opera 10 and IE8 would hamper the design was the testimonial quotation. Webkit and Firefox 3.6 apply CSS gradients.

.cssgradients .testimonial { 
background-color : rgb(247,249,251);
background-repeat :  no-repeat;
background-image : -webkit-gradient(
linear, left top, left bottom, 
from(rgb(255,255,255)), 
to(rgb(247,249,251))); 

background-image : -moz-linear-gradient(
left top, left bottom, 
from(rgb(255,255,255)), 
to(rgb(247,249,251))); } 

For other browsers I simplified the design by adding a solid white background-color and a border. I also used Modernizr to alter the position of certain child elements in the testimonial.

.no-cssgradients .testimonial { 
background-color : rgb(255,255,255);
border : 1px solid rgb(223,231,239); }
 
.no-cssgradients .testimonial p.more {
bottom : 20px; } 

People who are using Internet Explorer 6 will see the page rendered using the Universal IE6 stylesheet. This is a pragmatic choice and one that frees up valuable time and resources to spend on design, rather than on expensive hacks for a broken browser that will have diminishing returns.

What does browser testing mean today?

Only a few years ago browser testing meant that I would spend hours of my time (and a lot of my clients' money) on attempting cross-browser, pixel perfection. Now, not only is this not practical or affordable, it's not possible. That is, unless I reduce my designs to the lowest common denominator or use expensive workarounds.

Why not just do this? After-all, many people still think that that is an essential part of a web designer/developer's job.

I disagree.

The landscape and the industry is changing, rapidly. If you think that the job is the same as five years ago, look at what I was still contending with then.


Home page in Internet Explorer 5 Mac Flickr

It is not a web designer/developer's job to fix or improve a browser. That is a browser developer's job, plain and simple. Not only is it impractical and uneconomical to attempt to make a site look visually identical across browsers, it also discourages browser makers from improving or to implement new CSS.

All of this brings me to what exactly browser testing mean in 2009/10. For me it simply means ensuring that my content and functionality are accessible (by using meaningful markup, foundation CSS and unobtrusive scripting) and that a design does not look broken when viewed through older or less capable browsers. This approach is liberating. It stimulates me to design to the edges of what browsers are capable of rendering.

Much as you might think that I must be lucky to have clients who allow me to work this way, I'm not. It's not a matter of luck. Instead it's a matter of clearly explaining the issues to people and giving them options. If my experience is anything to go by, people are more than willing to accept these natural differences between browsers and for you to design around them to make the best use of your time and their investment.

Leave your comment

Matthew Pennell

October 28 2009 @ 12:47am #

Using Safari 4 (or any up-to-date Webkit based browser), the design looks exactly as I intended…

Worth pointing to this, where PPK demonstrated that Webkit is not the same on all platforms. I know you weren’t specifically referring to mobile, but still worth reminding people that just because the same engine is under the hood, performance might not necessarily be equal.

Martijn van der Ven

October 28 2009 @ 01:34am #

[IE8] lacks implementations of RGBa, border-radius, shadows and of course the CSS generated gradients found only in Webkit and Firefox 3.6.

Actually, Internet Explorer has been supporting (I use this term loosely here) generated gradients since IE5.5. This using their form of browser-specific effects, the filter property.

I’m not saying you should start using the gradient filter but it can’t hurt to know it exists.

Nigel Ainscoe

October 28 2009 @ 01:35am #

Thanks for doing all this

It is truly fascinating to see the difference between the various browsers. I don’t have a Mac so I can’t try it on Safari but the difference between Chrome and FF3.5 surprised me. I’m not totally convinced that HTML transforms aren’t going to be the latest version of those annoying Java-Script cursor effects but interesting all the same.

Again, thanks for the whole series, particularly some of the stuff about user psychology and choices. I’m about to embark on a site makeover for client of mine and I’m sure that as an experienced developer but one new to web development I gleaned some good ideas by following this along.

Rob Brackett

October 28 2009 @ 02:36am #

You can actually use RGBA for backgrounds in IE (since way back) through ActiveX filters, as well. This would do the background for the language bar:

.tools {
    filter: progid:DXImageTransform.Microsoft.gradient(
        startColorstr=#4D000000, endColorstr=#4D000000);
}

The trick lies in the fact that colors used for the gradient filter have an alpha value (#AARRGGBB instead of the standard #RRGGBB), so you just make a gradient with the same start and end color.

Andy Clarke

October 28 2009 @ 02:50am #

Martijn van der Ven and Rob Brackett You can actually use RGBA for backgrounds in IE — Internet Explorer has been supporting (I use this term loosely here) generated gradients since IE5.5. This using their form of browser-specific effects, the filter property.

— You’re absolutely right. Add to that the fact that a few people have asked me what the difference is between IE CSS extensions/filters and vendor prefixes such as -moz and -webkit (even -ms). In the right circumstances I think that it is absolutely valid (sic) to use Microsoft extensions.

But, the big issue goes beyond using every tool you have to make a site look the same. Vendor prefixes generally indicate that the proposed extended CSS is either a specification candidate or has been proposed to the W3C and is being discussed and implemented in other browsers (to achieve a standard). IE filters are proprietary and vendor specific.

Andy

October 28 2009 @ 02:56am #

Very nice work as always, and another enjoyable walk-through.

I agree that these projects are a really good proving ground for the new techniques, and the idea of providing these ‘targetted’ solutions via Modernizr brings many benefits, but I’m curious to know one thing. Although you have cut out the time ‘hacking’ browser solutions - has the time writing multiple versions of the same effect in CSS for different browsers simply replaced that time, or have you genuinely gained (time/effort) over the old methods? Can you quantify it, or do you think it’s irrelevant because the sites are more progressive?

I have to admit, I’m not entirely sold on having to write two or three sets of browser-specific stuff yet (though I have found myself doing it a little recently).

Robert

October 28 2009 @ 03:03am #

But, the big issue goes beyond using every tool you have to make a site look the same. Vendor prefixes generally indicate that the proposed extended CSS is either a specification candidate or has been proposed to the W3C and is being discussed and implemented in other browsers (to achieve a standard). IE filters are proprietary and vendor specific.

I don’t keep up with what/how browser vendors are proposing to the W3C and what the path is when two vendors use different syntax that will need to be reconciled in the final spec, but it seems to me that -moz-linear-gradient vs -webkit-gradient (and the non-shorthand border radius syntax, as well) aren’t any less problematic than using -ms-filter (in IE8) to achieve a gradient.  It seems nit picky to not use the gradients IE provides because it is “proprietary” and “vendor specific” when the Gecko and WebKit gradients aren’t interoperable (that is, they aren’t the same syntax with -moz- and -webkit- prepended) and are vendor specific.

Michał Czernow

October 28 2009 @ 07:41am #

I agree with Robert. I use only those CSS properties that are available through official (not -vendor-specific-) syntax.

But I also want to comment the star before every title in RSS. It’s simple, elegant, and genius! It makes your posts stand out in Google Reader, and impossible to miss.

Colin

October 28 2009 @ 10:41am #

“I agree with Robert. I use only those CSS properties that are available through official (not -vendor-specific-) syntax.”

But the -vendor-specific syntax IS official. CSS3 is still a draft. Implementing anything without the vendor prefix is what would be bad.

Andy Clarke

October 28 2009 @ 11:33am #

Andy: Although you have cut out the time ‘hacking’ browser solutions - has the time writing multiple versions of the same effect in CSS for different browsers simply replaced that time, or have you genuinely gained (time/effort) over the old methods? Can you quantify it, or do you think it’s irrelevant because the sites are more progressive?

— Working this way gives me huge time savings. I estimate that using Modernizr and designing around browser differences (instead of hacking to achieve exactly the same visual result in different browsers) saved around 80% of my time in that phase of the project. Add that to the savings that designing in a browser (rather than Photoshop) gives and the whole project was completed in around 30% of the time when compared to the way I worked two years ago.

Robert: it seems to me that -moz-linear-gradient vs -webkit-gradient (and the non-shorthand border radius syntax, as well) aren’t any less problematic than using -ms-filter (in IE8) to achieve a gradient.  It seems nit picky to not use the gradients IE provides because it is “proprietary” and “vendor specific” when the Gecko and WebKit gradients aren’t interoperable.

—  It’s true that the precise gradient syntax is still being decided on, but the main difference in what is happening here, vs the Microsoft filters and extensions is that discussion is taking place inside the W3C with the aim of making it part of the specification. It isn’t a proprietary extension to CSS as we saw in the bad old days of the browser wars.

David Roessli

October 28 2009 @ 05:45pm #

Thanks for sharing this with us in a very readable form, as always.

I was wondering if when using Modernizr to design around browser differences, you provide a set of “.no-js” CSS properties for those border cases where javascript isn’t enabled?

Or do those specific properties default to the set of “.no-xxxx” properties.

Martin Bean

October 28 2009 @ 10:27pm #

I don’t get the phrase of, “It’s the browser vendor’s job to fix the browser.” To me, it’s akin to building a car that falls apart on everything but the smoothest of road surfaces, and then saying, “Well the car’s fine, it’s build to industry standards, it just needs road layers to make perfect roads.”

Although I agree with you, I don’t agree with you entirely. I feel a little leeway should be given when developing websites for cross-browser compatibility. But hacking around different browsers should definitely not be substantial as then it does cross into the realm of maintaining multiple versions of the same site for specific browsers.

Andy Clarke

October 29 2009 @ 12:23am #

David Roessli: I was wondering if when using Modernizr to design around browser differences, you provide a set of “.no-js” CSS properties for those border cases where javascript isn’t enabled?

— You’re right of course. In most cases adding styles that do not depend on Javascript created classes would be ideal, although unless the integrity of the design would be compromised by them being missing, it shouldn’t be an issue.

The lines between styling and behaviour are being blurred all the time, particularly when Javascript is being used to create elements in the DOM that can then be styled. In the case of HTML5, Javascript is required to enable styling of the new elements in Internet Explorer.

Martin Bean:I don’t get the phrase of, It’s the browser vendor’s job to fix the browser. To me, it’s akin to building a car that falls apart on everything but the smoothest of road surfaces, and then saying, Well the car’s fine, it’s build to industry standards, it just needs road layers to make perfect roads.

— I disagree. What I am saying is that if the road is bad, driving some cars will not give you as smooth or comfortable a ride, but the road will still be navigable. And the car won’t fall apart.

Dave

October 29 2009 @ 09:16am #

As a student web designer, it’s great to hear that industry is moving away from that pixel-perfection across browsers concept. Thanks for helping to push people away from that.

tinabeans

October 30 2009 @ 01:39am #

While I agree in theory with what you’re trying accomplish by spearheading use of the latest CSS tools, I think there’s a difference between not having pixel-perfection across browsers, and the design just plain looking different. I am fine with cross-platform variation (after all, IE7- won’t render fonts with anti-aliasing, which is a huuuuge visual difference), but there’s a point where the aesthetics begin to suffer. I don’t agree that all the different views of your design are equal aesthetically, and I think that’s unfair for some of your users. Esp. the ones who can’t choose their browser for one reason or another.

I guess I don’t understand why it would be semantically wrong to use, say, a gradient image background for the buttons instead of building that gradient programmatically. That way everyone can see the nice enhanced buttons? Why intentionally leave those without border-radius, etc. out of the party when there are accessible, semantically valid ways of including them?

Lewis Dexter Litanzios

December 2 2009 @ 09:29am #

You given http://sass-lang.com/ a whirl dude?

Andy Hume

December 2 2009 @ 10:43am #

Hello Andy,

Could you clarify what you do deliver to IE 5 Mac? Just HTML?

Mohammed Alaa

December 2 2009 @ 04:36pm #

Hi All,

I think testing the browser is something amusing using the new Microsoft SuperPreview.

in terms of using css hacks it’s not recommended to target a specific browser.

people who focus about pixel perfect design i would say it’s insane to focus on that and it won’t make you a bad designer because it won’t change the user experience.

we are picky by nature because it’s our job and this is what we love to do but customers and website visitors don’t think the same they don’t care if you use Ajax or jquery or even flash they care about what they expect to see in your website and if they can find it easily…

Thanks a lot for the nice Article.

- Mohammed

Lewis Dexter Litanzios

December 2 2009 @ 04:53pm #

Everyone should dig this: https://browserlab.adobe.com/index.html I’ve been finding it useful recently.

Andy Clarke

December 2 2009 @ 07:15pm #

Andy Hume: Could you clarify what you do deliver to IE 5 Mac? Just HTML?

— IE5Mac has fallen off my radar. As I said in Contract Killer and include in the contracts to all my clients, We will not test these templates in old or abandoned browsers, for example Microsoft Internet Explorer 5 or 5.5 for Windows or Mac, previous versions of Apple’s Safari, Mozilla Firefox or Opera unless otherwise specified. If you need to show the same or similar visual design to visitors using these older browsers, we will charge you at the daily rate set out in our original estimate for any necessary additional code and its testing. I’m please that in over twelve months, we have never been asked for older browser testing or fixing.

Lewis Dexter Litanzios You given http://sass-lang.com/ a whirl dude? Everyone should dig this: https://browserlab.adobe.com/index.html I’ve been finding it useful recently.

— I tend not to use automated tools like these. (And it’s geezer, not dude.)

Simon Hamp

December 2 2009 @ 09:25pm #

Great post Andy. I like your “liberating” feeling and hope for the same myself.

Doesn’t working with the best browser (and testing backwards) force you into a graceful degradation process as opposed to a progressive enhancement - which would come more naturally from working from the lowest common denominator?

From this angle I appreciate that choosing the lowest common denominator is a matter of great debate (IE6/IE7?), but once you do decide, wouldn’t this foster progressive enhancement more easily?

Tom

December 2 2009 @ 09:35pm #

Much as you might think that I must be lucky to have clients who allow me to work this way, I’m not. It’s not a matter of luck. Instead it’s a matter of clearly explaining the issues to people and giving them options.

I develop/design for a project management company where we usually have to churn out a site in a month or two - most of our sites are visited by users from all across Europe - unfortunately, our stats say that we’re consistently getting about 30% of our visitors using IE6, 20% using IE7 and another 20% using outdated versions of Firefox.

This leaves us somewhat stuck in a rut - how do we build modern-looking websites (as is required), on a short timescale, while catering to an audience where the majority are using outdated browsers? You say it’s not a matter of luck - so how do we go about explaining the problems to our large user bases, and perhaps convincing them to update (if that’s at all possible)?

Andy Hume

December 2 2009 @ 10:35pm #

Andy Clarke: IE5Mac has fallen off my radar.

Understood. But what in reality gets delivered to that browser? Just HTML, some basic styles, or no styles?

I guess it’s a wider question than just IE5 Mac. For example, do you still deliver no styles to Netscape 4 as in the old days, or is it so far off the radar that they just get the broken layout.

Carlos

December 2 2009 @ 11:14pm #

In my last work more than 40% of the visitors of the site ( a jewel e-shop) came from IE7/IE6. How can i neglect intensive testing when such a huge percentage of potencial buyers came form this sources?

To me crossbrowser sites means a great css work, and a compromise between design and usability. If i said to my clients that i would only test in the latest versions of the browser… i would loose about 80% of my clients.

A good CSS/javascript “developer”, spending a little bit more time, is capable of making a perfect crossbrowser site. And more important, a website is not for the developer, its all about the client and his potencial clients/visitors.

Lewis Dexter Litanzios

December 2 2009 @ 11:25pm #

‘And more important, a website is not for the developer, its all about the client and his potencial clients/visitors.’

@Carlos I hear what you’re saying, but that’s totally not why I originally got into designing websites. I feel sorry for you, as well as the people still using outdated browsers.

I actually get a warm glow by enlightening my clients to the joys of newer user agents. It’s my suggestion that you take the time you’re spending with IE6 and invest it into better client relations. As Andy implies; you’ll live longer.

c.

December 3 2009 @ 02:18am #

“While I agree in theory with what you’re trying accomplish by spearheading use of the latest CSS tools, I think there’s a difference between not having pixel-perfection across browsers, and the design just plain looking different. I am fine with cross-platform variation (after all, IE7- won’t render fonts with anti-aliasing, which is a huuuuge visual difference), but there’s a point where the aesthetics begin to suffer. I don’t agree that all the different views of your design are equal aesthetically, and I think that’s unfair for some of your users. Esp. the ones who can’t choose their browser for one reason or another.”

Unfair?  Not all browsers are created equal, that is unfair.  I used to ride the “identical across all browsers” train, but not anymore.  Not in this day and age with all the things you can do that you couldn’t realistically do back when your choices were IE 4 or NS 4.7x.

How does rounded corners add to the user’s experience?  I’ll give you a hint:  it doesn’t.  It’s just decoration.  What’s worse:  adding a ton of extra divs for the sole purpose of having rounded corners work in IE or having IE users do without?  If the browser doesn’t support newfangled-thingamajig-whatsit, provided it is usable and doesn’t look like something is obviously wrong, I see no reason to bend over backwards to get the user some insignificant ornaments for AbandonedBrowser 2.0.

Maybe you think I should complain to Google because I can’t run Chrome on my win2k box?  It’s their fault I can’t run their browser on my aging computer.  Their programmers should know better!  OS discrimination is unfair!

cancel bubble

December 4 2009 @ 03:34pm #

“We will not test these templates in old or abandoned browsers, for example Microsoft Internet Explorer 5 or 5.5 for Windows or Mac, previous versions of Apple’s Safari, Mozilla Firefox or Opera unless otherwise specified. “

You only test in the *latest* versions of Safari/Firefox and Opera?

Nathan

December 5 2009 @ 02:33am #

This is exactly what we are doing for the design of our web app. Who cares if IE gets square corners? (well, when it doesn’t matter ;)

Todd Wallace

December 5 2009 @ 03:06pm #

I wouldn’t test in more than one version back of any browser.  If the user don’t like that, upgrade or choose a more modern browser.  Backwards compatibility is just enabling weak links in the chain.

Andy Clarke

December 6 2009 @ 07:25am #

Simon Hamp: Doesn’t working with the best browser (and testing backwards) force you into a graceful degradation process as opposed to a progressive enhancement?

— Yes. That’s exactly the point. Design using all the CSS tools you have (even the latest, most experimental) and then test from the best browsers downwards to ensure that your design degrades gracefully. Never start your design from a baseline of a less capable browser is my advice.

Andy Hume: Do you still deliver no styles to Netscape 4 as in the old days, or is it so far off the radar that they just get the broken layout?

— At this stage in the game, I don’t even hide styles from IE5Mac.

Carlos: To me crossbrowser sites means a great css work, and a compromise between design and usability. If I said to my clients that i would only test in the latest versions of the browser… i would loose about 80% of my clients.

— I’m very sorry for you, for a good many reasons.

cancel bubble: You only test in the *latest* versions of Safari/Firefox and Opera?

— Yes.

Todd Wallace: Backwards compatibility is just enabling weak links in the chain.

— That’s not true. Some people either don’t know to, or can’t upgrade for some reason or another. As professionals, we should make sure that what people see always looks fantastic in the context of the software they are using. Different can also mean equally fantastic.

Lewis Dexter Litanzios

December 6 2009 @ 05:39pm #

It’s like this whole methodology is *new* to people? It’s common sense!

‘Graceful degradation’ - lovely term that (Simon) :]

Commenting is not available in this channel entry.
Hardboiled Web Design

Hardboiled Web Design by Andy Clarke

How the latest technologies and techniques will make your websites more creative, flexible and adaptable. Get hardboiled in all formats from Five Simple Steps. Digital formats also available at Amazon.com, Amazon.co.uk and the iBooks store.

We’ve deconstructed this site to focus on content while we restyle. Expect wonkiness during the transition.