Itsy Bitsy Bytes


I've got 99 problems but a browser ain't one

There are plenty of exciting moments in a web developer's job but fixing browser-specific bugs do not count among them.

Much to my annoyance, I found myself trying to fix a weird flipping behavior in the browser version of Safari. Everything worked flawlessly in Chrome and Firefox, even Internet Explorer played nicely. But not Safari, and with Christmas right around the corner and other important features to develop, fixing a Safari-only bug was not the best way to end my work week.

While I do think that the iOS version of Safari is probably the best mobile browser by far, the desktop version is another story. Even though, in theory, it should have a Webkit rendering engine similar to Chrome, sometimes differences appear.

Armed with some pen and paper, I revisited the logic behind it, made some scribblings and managed to come out with a solution. Now here's the most embarrassing part: it was mostly my fault.

First, it turns out that Safari still needs the vendor prefix for the backface visibility setting (-webkit-backface-visibility: hidden;), something that I didn't include (we mostly deal with evergreen browsers so there's little reason to support older versions).

Second, it's not that I necessarily that I did it wrong the first time and got Chrome and Firefox to understand what I actually wanted to accomplish, but the newer version was certainly more explicit and much more clear.

Developing for the many web browsers can be frustrating and often leaves one wishing for one browser to rule them all (most likely Chrome) but it's hard to say this is the best approach. Although it's not pleasant to have to deal with all the quirks that each browser has and memorize the differences, it does lead to a better understanding of the whole web platform.

The broken HTML pages, with nodes not closed correctly or without a <doctype> come to my mind. The browser usually silently deals with it and tries to fix everything automatically. You are not frustrated but at the end of the day you just made something broken. And while doing things is the most important part, we should also strive to do them as perfect as possible.

I would not say the Safari bug was a blessing in disguise, I still loathe it. But at least I did learn something. The glass is half full after all.


Senior Developer at Prestimedia

comments powered by Disqus