12th October 2007
On my web design journey, I have learned the wisdom that CSS styles for hyperlinks should be defined like the following:
a:link {...}
a:visited {...}
a:hover {...}
a:active {...}
List out the names of the pseudoselectors, and you'll soon work out where they got LVHA: Link, Visited, Hover and Active. However, I have recently spotted the following being used:
a {...}
a:hover {...}
The trick here is to define your style globally and only define specifics for the relevant pseudoselector, hover in this example. It works well in the likes of Mozilla and Opera, but Internet Explorer is another story. Even IE7 needs the LVHA treatment. I spotted this when I observed unexpected changes in the appearance of link text after visiting the link: visited links starts to change colour. While I know that the likes of Jakob Nielsen frown upon non-changing link colour, I choose to ignore this and keep it constant, so following the LVHA approach is needed to keep things as I would like them.
8th October 2007
It's quite difficult to describe this observation in a title so here goes with a longer description in a post. One thing that I spotted with the Prosumer theme used on this blog is that the links on the horizontal navigation bar underneath the mast head were not appearing as they should. The links have been formatted using CSS to appear in boxes with borders that are more apparent when you hover over them. In IE, the top and bottom borders were missing. After a spot of digging, I came up with the line-height property being the cause, and I was right: the extremities of the boxes surrounding the text were being cut off because they exceeded the allotted space. As if to emphasise that IE7 isn't as major a leap forward from IE6 as we would have liked, the problem affected that browser as well.
Aside: Link text colours weren't being honoured by IE7 like they are by IE6, Firefox and Opera, so another tweak to the CSS was needed.
22nd June 2007
Having been exposed to an application at work that uses a lot of JavaScript, I fully appreciate what some mean when they discuss IE6's inefficient handling of JavaScript. After seeing a web page taking an age to reload and your CPU taking a hammering because of JavaScript processing, the penny does tend to drop...
Needless to say, this very much impacts the world of AJAX-driven web applications with their heavy dependence on client-side JavaScript. While IE7 does come to the rescue, there remain plenty of IE6 users still out there, and this is reflected in website statistics. This demonstrates a certain level of inertia in the browser market that not only afflicts the uptake of IE7 but also the likes of Mozilla, Opera and Safari. It also means that anyone developing AJAX applications very much needs to continue testing in IE6, especially if the product of their labours is for wider public use.
An example of such an application is Zimbra, an open-source web application for messaging and collaboration, and the people behind it have generously shared the results of their browser performance benchmarking. They did comparisons of IE6 vs. IE7 and Firefox 2 vs. IE7. IE6 easily came out as the worst of these, while Firefox 2 was the best.
The next question to be asked could centre around the type of code that is processed inefficiently by IE6. While I wouldn't be at all surprised if a list emerged, here's one: using Microsoft's proprietary innerHTML
object to update the DOM for a web page format. Having a quick trawl on Google, this came up for mention as a cause of memory leaks. It is also a Microsoft innovation that never got taken up by those overseeing web standards, hardly a surprise since a spot of DOM scripting achieves the same end. It may be faster to code than any alternatives, and it does have some support from other browsers, but it does seem to have got a bad name, so it should be avoided if possible. That said, it would be interesting to see a performance comparison between innerHTML
and DOM methods in IE6.
26th February 2007
My installation of Firefox seems to have stopped listening to the target attribute of hyperlinks. Thankfully, the middle mouse button comes to the rescue. Clicking on a link with the middle button opens it the destination page up in a new window or tab, depending on how you set your defaults. The behaviour goes even further than this: the trusty middle mouse button does the same for bookmarks and the Google search bar; all very useful. And it is not just a Firefox thing, either. IE7 does the same thing for web page hyperlinks and bookmarks while in Opera, it is limited to links on web pages.
6th February 2007
Windows Vista is only out a week and the incompatibilities are already rolling in. Yesterday, it was iTunes that hit the headlines, with Apple making an announcement on its website. More importantly for the likes of me, dues to its effects on my work, SAS has announced that Vista compatibility will not be assured until it launches SAS 9.2. This is not exactly a surprise because they have been advising against using Internet Explorer 7 with their products as they have not carried out their validation. Given that this company is cautious about operating system support anyway, it may be that SAS 9.1.3 runs on Vista without their having validated it to the standards that a large enterprise user would expect. Now, the BBC’s Robert Peston writes an open letter to Bill Gates in his blog following a lost weekend with a laptop running Vista. His problems were hardware related.
There is one surprising thing about all of this: test versions of Vista have been out since last summer, with OEM ones available since November or thereabouts. Why have other software and hardware vendors not being looking ahead for this sort of thing? SAS’s advice regarding IE7 is in the same vein and even more surprising. Though I realise that there is only so much that can be done with a non-final version or, for that matter, in two months, some forward-thinking surely could have been employed. While I know that full legacy compatibility is a big job, it does look as if someone sat on their laurels. Or else, they are not allowing the release of Vista to upset their development and launch schedules and, given that Microsoft’s offering is evolutionary rather than revolutionary, they might well have a point. I think I’ll sit on the fence for a while longer…