Safari is an excellent web browser and my current favourite. However there’s always room for improvement, and I thought I’d mention some areas where I think Safari needs a bit of attention. Some are missing features, others are bugs.
Having complained a bit about IE7 I think it’s only fair to also talk about the shortcomings of a really good browser. Maybe it will help Apple keep Safari at the very top of the browser pack?
Clickable form labels. I really like being able to click labels to interact with form controls, especially checkboxes and radio buttons. I find myself doing it all the time in Safari, only to realise that nothing happens. Trying to hit those tiny buggers can be really annoying.
Float + negative margins. Tommy Olsson sent me a mail a week or so after Mac OS X Tiger had been released, wondering if I knew of a problem with certain links not being clickable in Safari 1.3 and 2.0. I had a look at the site in question and found that the problem was caused by a combination of floats and negative margins. I’ve whipped up a quick test case for you to check it out. After a little bit of fiddling with the CSS I found that adding
position:relativeto the rules for any floated elements that also have negative margins fixes the problem. It shouldn’t be necessary though, right?
HTTP Accept header. I use content negotiation to serve my XHTML documents as
application/xhtml+xmlto browsers that support it, and as
text/htmlto other browsers.
The content negotiation script I’m using checks the HTTP Accept header sent by the requesting browser. Safari doesn’t send the specific MIME types it accepts in the HTTP Accept header, which means that it gets
text/htmleven though it does handle
While this may seem like technical nitpicking, serving XHTML as
application/xhtml+xmldoes have the benefit of letting you check if a document is well-formed by just viewing it in the browser. Conformant browsers will refuse to display documents that aren’t well-formed. I currently have to use a Gecko browser or Opera to do that, but if Safari would announce which MIME types it accepts I wouldn’t have to.
View source syntax colouring. It would be awesome if Safari had syntax highlighting when you view source, just like Firefox.
Warning when closing a window with multiple tabs. I can’t be the only one to have accidentally closed a window with tens of tabs. Argh. Safari really should warn you when you attempt to close a window that has more than one tab.
Kiosk/projection mode. When doing presentations (preferrably using the excellent S5) you normally want to get rid of all the browser chrome and have the viewport fill the entire screen. Currently you have to use something like Saft to get that feature in Safari. Sure, that works even though it will cost you a few bucks, but it would be very useful if it was implemented in Safari.
Web developer toolbar. The Web Developer Extension is such an amazingly useful tool that I keep Firefox running all day even though Safari is my main browser. It would be fantastic to have something like it in Safari.
Flash of unstyled content. This is something that has started to show up recently. Plenty of sites, including this one, are now sometimes displaying a flash of unstyled content as the page loads. It looks a lot like what IE/Win does under some circumstances.
It doesn’t happen every time, so at first I thought it was a problem with my copy of Safari. I’ve since seen it happen on several Macs, some running Panther, others upgraded to Tiger. I haven’t been able to pinpoint the problem, but it’s very annoying. Anyone know more about this?
Favicons stuck in cache. I changed the favicon for this site maybe a year ago. The old favicon is still being displayed in Safari. And I thought IE/Win had caching problems.
Sizing monospaced fonts. Safari has problems determining the size of monospaced fonts. I even wrote a whole post about it last year: Sizing monospaced fonts. It renders monospaced fonts smaller if you add a generic font-family to the list of fonts, which you are supposed to do. Very odd, and the latest versions of Safari behave the same way. Is this the way it’s supposed to work?
These are my current top Safari annoyances. Can you think of other areas where Safari needs improvement? Add a comment. If it’s a bug, feel free to post a test case so everyone can see the problem for themselves.