[This fragment is available in an audio version.]
Younger readers will find it hard to conceive of a time in which every application screen didn’t have a way to “Go Back”. This universal affordance was there, a new thing, in the first Web browser that anyone saw, and pretty soon after that, more or less everything had it. It’s a crucial part of the user experience and, unfortunately, a lot of popular software is doing it imperfectly. Let’s demand perfection.
Why it matters · Nobody anywhere is smart enough to build an application that won’t, in some situations, confuse its users. The Back option removes fear and makes people more willing to explore features, because they know they can always back out. It was one of the reasons why the nascent browsers were so much better than the Visual Basic, X11, and character-based interface dinosaurs that then stomped the earth.
Thus I was delighted, at the advent of Android, that the early phones had physical “back” buttons.
I got so excited I wrote a whole blog piece about it.
Nowadays Android phones don’t have the button, but do offer a universal “Back” gesture and, as an Android developer, you don’t have to do anything special to get sane, user-friendly behavior. I notice that when I use iOS apps, they always provide a back arrow somewhere up in the top left corner; don’t know if that costs developers extra work.
Imperfections · The most important reason I’m listing these problems is to offer a general message: When you’re designing your UX, think hard about the Back affordance! I have seen intelligent people driven to tears when they get stuck somewhere and can’t back out.
People using your software generally have a well-developed expectation of what Back should do at any point in time, and any time you don’t meet that expectation you’ve committed a grievous sin, one should remedy right now.
Problem: The Android Back Stack · Since we started with mobile, let’s talk Android. The “Activities” that make up Android apps naturally form a Back Stack as you follow links from one to the other. It turns out that Android makes it possible to compose and manipulate your stack. One example would be Twitter, which occasionally mails me about people I follow having tweeted something that it thinks might interest me, when I haven’t been on for a while. It’s successful enough that I haven’t stopped it.
When I click on the link, it leaps straight to the tweet in question. But when I hit Back, I don’t return to my email because Twitter has interposed multiple layers of itself on the stack. So it takes several hops to get back to where I followed the link from.
This is whiny, attention-starved, behavior. I’m not saying that Back should always 100% revert to the state immediately before the forward step; I’ve seen stack manipulation be useful. But this isn’t, it’s just pathetic.
Problem: SPA foolery · When, in my browser, I click on something and end up looking at something, and then I’m tired of looking at it and go Back, I should go back to where I started. Yes, I know there’s a convention, when an image pops up, that it’ll go away if you hit ESC. And there’s nothing wrong with that. But Back should work too. The Twitter Web interface does the right thing here when I open up a picture. ESC works, but so does Back.
Feedly doesn’t get this right; if you’re in a feed and click a post, it pops to the front and hitting ESC is the only to make it go away; Back takes you to a previous feed! (Grrrr.) Also zap2it, where I go for TV listings, has the same behavior; Back takes you right out of the listing.
(Zap2it demonstrates another problem. I have my local listings in a mobile browser bookmark on one of my Android screens, which opens up Chrome with the listings. Except for the tab is somehow magically different, if I flip away from Chrome then return to it, the tab is gone. Hmm.)
Problem: Chrome new-tab links · When I’m in Chrome and follow a link that opens a new tab, Back just doesn’t work. If I close the tab, for example with Command-W on Mac, it hops back to the source link. In what universe is this considered a good UX? To make things worse, there are many things that make Chrome forget the connection between the tab in question and its source link, for example taking a look at a third tab. Blecch.
Fortunately, Safari is saner. Well, mostly…
Problem: Safari new-tab links · I’m in Safari and I follow a link from my Gmail tab to wherever and it ends up in a new tab. Then, when I hit Back, there I am back in Gmail, as a side-effect closing the freshly-opened tab. Which is sane, rational, unsurprising behavior. (It’s exactly the same effect you get by closing the tab on Chrome, which is why Chrome should use Back to achieve that effect.)
Except, did I mention that the browser forgets? Safari’s back-linkage memory is encoded in letters of dust inscribed on last month’s cobwebs. More or less any interaction with the browser and it’s No More “Back” For You, Kid.
Especially irritating are pages that intercept scroll-down requests with a bunch of deranged JavaScript fuckery (that I darkly suspect is aimed at optimizing ad exposures) and that my browser interprets as substantive enough to mean “No More Back For You”. I swear I worry about farting too loudly because that might give Safari an excuse to forget, out of sheer prissiness.
Please let ’em back out · Screwing with the path backward through your product is inhumane, stupid, and unnecessary. Don’t be the one that gets in people’s way when they just want to step back.
Comment feed for ongoing:
From: Andrew Reilly (Apr 11 2021, at 15:13)
User interface software in general, and web user interfaces in particular are awful at a general level. Yes, some sort of universal "back" functionality would be nice, (especially around the ones that require re-sending a POST to get to them). Much, much more annoying are the pages that won't let you move forward. I hit two of those over the weekend: spend ten or fifteen minutes filling in a complicated web form and then find that bugs in the page or the server prevent you from "submit"ting it. One had a broken captcha (type the two characters into the field below -- there were no characters), the other complained that I hadn't entered my first name: despite there being no field for that purpose on the form.
Computers are awful, because software doesn't work.
[link]
From: Jason Sadler (Apr 11 2021, at 16:53)
Yes, on iOS the back button does come for free, as long as you’re using a standard navigation controller, which most apps do. On iOS it’s a much simpler albeit perhaps less useful behaviour than on Android. The back button always takes you the next screen on the nav stack, within this app, within this tab. This rule is never broken. You can argue it’s less useful than Android’s behaviour because if you arrive “here” from some other app, the back button doesn’t take you to where you just came from. Although several iOS versions ago a second, smaller affordance was added for that behaviour.
[link]
From: Nathan (Apr 12 2021, at 08:00)
I hate to find myself in the position of defending Twitter, but I do understand why they do their behavior. It's too frequent that I find myself in a scenario (the same as your second gripe, which you entitled "SPA foolery") where the Back button takes me _too far back_...I didn't want to leave the whole website (Twitter, in this case), I just wanted to leave the specific state I was in. This is made worse on Android because when I click a link from an app it seems to open an ephemeral browser instance which ceases to exist the moment I stop observing it. I go back, realize I've gone back too far, and now that browser instance has vanished from this plane of existence and the data contained therein have been converted into universal entropy.
While I understand the annoyance of having to back out several times in order to really, truly exit something you're done with, the opposite annoyance is in my mind a much greater sin.
[link]
From: Pata (Apr 12 2021, at 17:46)
Don’t forget webOS did it best. There was a back gesture AND a forward gesture as well. Tapping that Twitter link in an email would launch a new separate Twitter card with a easily understood animation clearly grouping it with the source email app. Furthermore there was a distinct gesture to switch back to the source app without losing the new content. It elegantly handled the multiple scenarios that might confuse with the back button user.
I was so excited when Duarte was put in charge on Android but alas either the technical debt was too constraining or he’s been restricted by ecosystem partners (who continue to skin his work anyway) but there hasn’t been that bold direction he showed with webOS.
[link]