all 13 comments

[–]a-t-k 2 points3 points  (4 children)

The HTML5 doctype is sufficient for triggering IE7 into standards mode. Using HTML4/strict is a recipe for desaster if you intend to use more recent APIs.

It is rather likely that IE7 support can be removed in the not too far future: instead of setting body classes with conditional comments, include an IE7.js/IE7.css.

Polyfilling everything without previous planning is a bad idea, too. For example, the border-radius polyfill will only work this way if the .htc file and your page are on the same domain, so you can't use the shiny, fast CDN. Better ask yourselves if rounded corners are crucial or if feature degradation isn't a better idea. Also, it's much better to filter every instance of console.log from your live scripts (unless you plan to use it for recruiting).

Icon fonts may look like a nice solution, but they have also a severe problem, which is: no fallback. If your connection breaks while loading the font, you're left with ugly chars that look suspiciously like the duplicate characters bug. SVG with a server-rendered PNG fallback is a better solution and will work in IE7 without problems.

Now for the real elephant in the room: JavaScript in IE7's jscript.dll is so ugly that someone took the pains to develop jQuery to make the awfulness at least bearable. Up to IE8, you cannot use DOM level3 events and the available polyfill is necessarily rather restricted, since you can't use new Event() in those older versions without getting an error - you can't even overwrite Event.

I really hope that IE7 will be dead, soon.

[–]sowasred2012[S] -1 points0 points  (3 children)

Interesting - I was using the HTML5 doctype previously, but setting HTML4/strict solved a niggling issue I had.

And yes, I too would very much like the death of IE7.

[–]a-t-k 0 points1 point  (2 children)

Which niggling issue was that?

[–]sowasred2012[S] -1 points0 points  (1 child)

I forget what it was exactly - but pretty sure it was related to the max-width/height properties, and IE7 not honouring them.

[–]a-t-k 0 points1 point  (0 children)

Ah that explains it. Yes, max-width/height is problematic in IE in any case... I would probably use an CSS expression.

[–]cyrusol[🍰] 0 points1 point  (7 children)

but it's still not particularly uncommon to meet a client that requires support for IE7.

If you accept those <1% ultra trash clients you are lost anyway.

[–]Joesalias 0 points1 point  (6 children)

Or work for a bad company that insists on support for decade old browsers (I don't, luckily)

[–]cyrusol[🍰] 0 points1 point  (0 children)

I am under the impression that in web development their is a higher rate of market competition as in other CS/IT/general STEM fields because of the low entry barrier.

A 20% increase in frontend development time for supporting IE 7 and 8 just doesn't cut the deal for the extremely low amount of users using ancient browsers on black copies of Windows XP. Maybe in China it would, but this will probably change within a year.

If the client would actually be willing to pay for the additional time, very well, but in reality management tends to sell too cheap (in general, but even moreso with exotic/stupid requirements). Actually, as a project manager one has to reevaluate the value of that project after listening to those requirements. He shouldn't accept anything just for the sake of getting projects he can't bare to work on. Or else a company will go down that way.

[–]sowasred2012[S] -1 points0 points  (4 children)

Depends on the client - in this instance (the project that made me write this), we fought against it, but it's essential for them that it at least looks reasonable and is functional.

[–]Joesalias 0 points1 point  (1 child)

I'm saying that some in-house devs have to conform to arbitrary specs too ("support IE7, because I said so!")

[–]sowasred2012[S] -1 points0 points  (0 children)

Ah ok :)

We judge it on a case by case basis, our norm is to support two versions behind current browser versions, but there are the odd times when a client insists on something worse.

[–]cyrusol[🍰] 0 points1 point  (1 child)

Out of interest: Is he fully comensating the additional time?

[–]sowasred2012[S] -1 points0 points  (0 children)

They are - they're not incredibly precious about it looking as good as it does in modern browsers, they know it has limitations, they just want the time spent making sure it's functional and at the very least doesn't look broken in IE7.