On stage Wednesday at the Yerba Buena Center in San Francisco, Steve Jobs introduced the iPad as “the best browsing experience you’ve ever had. Way better than a laptop, way better than a smart phone.” Quite a claim.
Of course, the iPad browser is Safari. And from what I’ve seen and heard, it’s more like the iPhone than the desktop version. John Gruber reported that “even though the screen offers the same pixel count as what was once the standard size for a laptop display, iPad Safari renders pages like iPhone Safari. The web surfing experience is all about zooming and panning.”
I’ve had an iPhone for a while now, and done my fair share of browsing in Safari. Since I’m interested in web browser user interfaces (c.f. Browser Bits, my blog on web browser UX), I thought it would be interesting to take a closer look at the little details that make for such a great browsing experience on the iPhone. By examining the most widely-used (and arguably best) mobile web browser, we can better understand what it takes to make a great mobile web browsing experience, and how we might do even better. But also, looking at the design choices made under the iPhone’s constraints can help us break free from our assumptions of what a browser interfaces should be.
The first thing I noticed is that despite the restricted screen resolution of the iPhone (320x480) they’ve still managed to fit in most of the browser controls that we’re used to seeing.
Along the top, we’ve got the page title, the URL bar, and the search bar. It’s interesting that they chose to keep the two bars separate, rather than combine them into one as Google Chrome does. They probably made this choice in order to stay consistent with the desktop version of Safari.
In fact, almost everything about iPhone Safari is strongly consistent with the desktop version. Page loading progress is shown in the URL bar, and the refresh and stop buttons appear at the far right of it. The controls along the bottom — the back and forward buttons, the bookmark button, and the “+” button — all work almost exactly the same. One small difference is that the “+” button, instead than just being used to add a bookmark, serves three purposes: “Add Bookmark”, “Add to Home Screen”, and (somewhat oddly) “Mail Link to this Page”. The last function seems a bit out of place on this menu, but without adding a button, I’m not sure where it would make more sense.
One of the clever design choices Apple made is that top control bar is actually positioned inside the scrollable content area, so that when you scroll down, it disappears off the screen. The initial content area is 356px high, and the control bar takes up another 60px, so the result is 17% more vertical pixels for the page contents.
The bottom control bar, on the other hand, is static. I’m curious to know if the choice to put those controls on the bottom was based on any empirical usage data, because it’s not obvious that they would be used more often than the controls on the top .
Another thing to note is how small the URL bar actually is. In most desktop browsers, the URL bar is massive, taking up most of the window width. The iPhone browser proves that’s mostly unnecessary — I’ve rarely needed to see more than the ~20 characters it shows by default. However, the URL bar and the search bar are only that size when they don’t have focus. When you tap on one of them, it expands to fill the full width of the screen.
One weakness of the smaller URL bar is that it makes it much harder for the user to detect a phishing attempt: on many sites, the entire domain isn’t visible. Tapping on the URL bar is useless because it shows the end of the URL, and scrolling it to the beginning is complex and slow.
The extra width afforded when typing into the URL and search bars is nice, but I’ve found that it can lead to mode errors. When I want to go to a new page, sometimes I tap on the wrong box, and quickly hit the “X” to clear its contents. Once the box fills the screen, there is little indication which box you are typing in. The differences are very subtle: the search bar has fully semi-circular ends, whereas the URL bar is a rectangle with rounded corners. But what usually happens to me is that I type the first word of a search query, and then freeze when I realize that there’s no space bar on the keyboard.
If you’ve never used on iPhone, that probably requires a bit of explanation. On the iPhone, the on-screen keyboard changes depending on what kind of text field you are typing in. I’ll explain more in the next section.
Text entry on an iPhone is done using a soft keyboard that takes up the lower half of the screen. In most apps, the keyboard is in the configuration shown below left (notice the space bar). Symbols (like the ones you’d need when typing a URL) can be accessed by tapping the button in the bottom left corner. This is the same configuration used when you’re typing in the search bar. But when you’re typing in the URL bar, the keyboard is different, as shown on the right. The space bar is replaced with keys you’re more likely to need when typing a URL.
An additional hidden feature is that you can hold down the “.com” key to access “.net”, “.edu”, and “.org”. Very handy indeed.
One of the coolest things about this feature is that it doesn’t just work this way in the URL bar and the search bar. The keyboard will also reconfigure on any web page that uses one of the new HTML5 input types (like “url” or “email”). In “email” configuration, for example, the space bar is extra small, and buttons are added for “@” and “.com”. (For more information on this, see Mark Pilgrim’s very informative article on forms in HTML5.)
Ok, so most people probably don’t spend that much time thinking about the keyboard. The actual browsing experience in iPhone Safari consists of three main things: tapping on links, scrolling around the page, and zooming in to content.
Before the iPhone, it was hard to use a mobile browser to view a site that wasn’t specially designed for a smaller screen. iPhone Safari made things much better by providing two ways of easily zooming in to view the page contents.
One way of zooming is to use the multi-touch pinch/anti-pinch gestures. Contrary to popular belief, this was not invented by Apple. In fact, Myron Krueger demonstrated this technique around the time that the original Macintosh was first released. That said, the mere existence of pinch zoom is not enough; the devil is in the details, and that’s exactly where Apple excels.
When you put two fingers on the screen and spread them apart, the view zooms in on a point located between your fingers. This is important, because it helps maintain the real-world “stretching” metaphor. An alternative implementation would have been to just zoom in on the middle of the screen. I’ve used interfaces like that — it’s very frustrating.
Another detail that Apple got right is the speed of the zoom. To be absolutely true to the real-world metaphor, the content underneath each finger should remain static relative to the finger. That is, if you put one finger down on the top right corner of an image, and the other on the bottom left corner, and then spread your fingers apart, they would still be over the corners of the image. In iPhone Safari, the zoom is actually slightly slower than this, meaning that you have to move your fingers a little bit further apart to achieve the same level of zoom — but it feels just right.
The second method of zooming in iPhone Safari is to double-tap on any content to make it fill the width of the screen. This is straightforward with an image, but not so much with text. The most common use case is to double-tap on a column of text, and the browser will zoom so that the column fills the width of the screen. In general, this works exceedingly well, but in some cases, it will zoom to the width of a particular element that is smaller that the column. I’ve seen this problem on sites that have threaded comments, such as Hacker News.
On the subject of zooming: many web sites have an iPhone-specific version that uses the the meta “viewport” tag to ensure that the width of the page matches the width of the device. This tag (introduced by Apple for iPhone Safari) has an option named “user-scalable” which allows the developer to control whether the user can zoom in to the page or not. The default is “yes”, but unfortunately many web sites set it to “no”. This can be frustrating on sites like Flickr and DeviantART, where you often do want to zoom in to get a better look at a picture.
The more you zoom in, the more you’ll have to scroll. On the iPhone, you do this using direct manipulation — just swipe in any direction to pull the page in that direction. Note that this is the opposite of how scrolling works on a trackpad. On a MacBook, swiping down with two fingers will move the viewport down, whereas on the iPhone, swiping down moves the viewport up.
When zoomed in, Safari makes it easy to scroll in one direction only. That is, a swipe that is not quite vertical will result in a perfectly vertical scroll with no horizontal movement. This way, when you’re scrolling down a column of text, you don’t have to re-adjust the horizontal position every time you scroll. In my opinion, it’s still a bit too easy to go “off the rails” when attempting to scroll vertically. However, it’s a delicate tradeoff, because you want horizontal scrolling to remain responsive.
When you are in the midst of scrolling, you see bars along on the side of the screen that look very much like a scroll bar in a desktop application. This goes for the entire iPhone, not just Safari. These “scroll bars”, however, are completely read-only. They are just there to help you get a sense of where you are on the page. When you stop scrolling, they disappear. It’s good that they don’t take up any screen real estate, but frustrating when you are on a really long web page and want to scroll all the way down to the bottom. This would be even more of a problem for scrolling back to the top of the page, except that there is hidden feature on the iPhone for this purpose. Tapping the status bar at the top of the screen scrolls the main viewport back to the top. Very useful, but very hard to discover. Well, unless you read the documentation.
When reading said documentation, I actually discovered another hidden feature. To scroll within a frame or a textarea on a web page, you can swipe with two fingers. However, on my iPhone 3GS running OS 3.1.2, this doesn’t actually seem to work with either textareas or iframes.
Just like other iPhone apps, Safari has “kinetic scrolling” — swiping with your finger gives the page momentum, and it will continue to scroll after you’ve lifted your finger off the screen. And when you hit the bottom or the top, it will scroll a bit past it before snapping back. It’s a nice, natural, and cute way of indicating that you’ve hit the end of the page.
For some reason though, web pages just don’t scroll the same as other controls on the iPhone. They seem to have less momentum, or more friction. John Gruber has written about this before, going as far as to say that it’s one of the main ways that iPhone web apps fall short of native apps.
Besides scrolling, clicking on links is the most common thing people do in a web browser . In iPhone Safari, following a link is as simple as tapping on it. It seems pretty straightforward and uninteresting, but given the size of a human fingertip and the small size of web content on the iPhone’s screen, it’s not as easy as it might seem. Given that most web sites are designed for use with a pixel-perfect input device (the mouse), it’s actually pretty amazing that about 95% of the time, I can manage to follow the correct link in iPhone Safari. I’d guess that the hardware is the major factor here, but it still feels like there is some kind of software heuristic at work. It’s easy to take this for granted, but given my experience with various multi-touch interfaces, it’s actually a remarkable achievement that tapping links on an iPhone is as precise as it is.
Another thing to notice is that scrolling and zooming are very rarely mistaken for a link tap. This comes at a cost of responsiveness — there is a slight delay after you tap a link, as it waits to see if another tap is coming. But the delay is subtle enough that it’s hardly noticeable.
iPhone Safari does not support tabs. This isn’t surprising, due to the screen and resource limitations of the iPhone. Instead, it has the concept of “pages”, which are somewhat like multiple windows. When you click a link that would open in a new tab or window (such as in GMail), or open a URL from another iPhone app, it will launch in a new page. When you click on the “pages” button in the lower right, you can flip through all the pages that you have open. From this view, you can close pages, or create a new page.
When a link is opening in a new page, there is a nice little animation that makes it clear that you are going to a new page that is to the right of the current one. Without it, you might become confused and wonder why the back button doesn’t work anymore. This actually happens to me sometimes when using desktop browsers, and I’ve heard other people report having the same problem.
There is a limit of 8 pages that can be open at any time. I suppose this is to conserve resources, and to prevent the list from getting unwieldy. If you have 8 pages open and a link needs to be opened in a new page, you will lose the first one in the list. However, this has never actually happened to me.
Although they are called pages, they behave very much like tabs. They have a close button on the top left, and just like with tabs, when you close a page, the one to its right takes the focus. This is another example of how strongly Apple cares about keeping consistent with the desktop user experience.
The key feature of tabs that is not supported by iPhone Safari’s “pages” is the ability to open a link in the background. You can open a link in a new page by touching and holding the link then selecting “Open in New Page”, but this will immediately switch focus to the new page, rather than loading it in the background.
Well, when you’re trying to put a fully-functional web browser on a mobile device, you can’t do everything. Here are some of the key things iPhone Safari is missing:
One of most discussed (and hotly debated) things about iPhone Safari is its lack of Flash support. It was never entirely clear whether this was a technical decision or a political one; that is, until Wednesday when we learned that the iPad won’t support Flash either. From a user experience point of view, this has its pros and its cons, but I think it’s a good thing for the web.
A small annoyance that bites me from time to time is the lack of find-in-page support. However, there’s a plethora of bookmarklets out there that can add the functionality. (Actually installing bookmarklets is pretty painful, but I digress.)
and Phishing Protection
I mentioned the fact that small size of the URL bar makes it difficult to visually detect a phishing attempt. There’s also no way to see details about the SSL certificate. The only security-related thing I see is the lock icon that appears before the title when you’re using an SSL connection, but what good is that if you can’t even see what site you’re connected to?
Update: In the comments, PCheese points out that iPhone Safari has phishing protection just like the desktop version.
Any file input widgets in HTML forms are just shown as being disabled. Since there’s no user-visible file system on the iPhone, this isn’t too surprising. Still, it would have been nice to provide a simple way of choosing a photo or video to upload.
Opening links in the background
In the study on tabbed browsing I ran in 2009, I found that many power users habitually open links in new tabs, especially on search result pages and on sites like Digg and Hacker News. I find that the inability to do this on the iPhone seriously changes my browsing habits. And I’m quite surprised that the iPad doesn’t appear to support tabs, though this may of change before it’s released.
The iPhone was a revolutionary computing device, in no small part due to how great iPhone Safari is. In its user experience, Apple did what they do best — put a great amount of energy and effort into perfecting the smallest details of the design. I hope this article has helped you notice more of those details.
The version of Safari on the iPad looks to be highly influenced by iPhone Safari. This is interesting, because its screen resolution is bigger than most web users had in 2005 . If it really is “the best web browsing experience ever”, aspects of its design will no doubt trickle up into desktop browsers.
- Mobile Firefox (aka Fennec) takes an interesting approach: the back, forward, and bookmark buttons are in a control strip that lives to the right hand side of the page content. It is hidden by default, by can be revealed by dragging all the way to the right.
- See Weinreich et al.’s Not quite the average: An empirical study of Web use