Friday, August 24, 2018

On “Shake to Undo”

John Gruber (tweet):

It’s a tricky problem how to implement universal Undo without a menu bar and without keyboard shortcuts. Even Cut/Copy/Paste were tricky enough that it took until iOS 3 for the iPhone to get them. That’s why the menu bar and keyboard shortcuts are such essential elements of the Mac experience.

Shake to Undo is problematic enough that I think Apple should have figured out something better for the iPhone by now. (For accessibility reasons, you can turn Shake to Undo off, but if you do, you don’t have any Undo at all.) My best suggestion would be to take away some space from the auto-suggestion row above the keyboard and put in an Undo button on the left, just like the iPad.

I’d like to see undo available via Siri and Control Center (since that doesn’t need the keyboard). Unfortunately, it just doesn’t seem to be as pervasively implemented on iOS as on macOS.

Update (2018-09-08): John Gruber:

The poll results at the bottom of this @benlovejoy piece on my Shake to Undo piece are eye-opening. Only 35 percent of responders ever use Shake to Undo, and 85 percent agree that Apple should add an Undo button above the iPhone keyboard.

Russell Ivanovic:

“The fact that system-wide Undo exists in iOS is great. (Android doesn’t have it.)”

Narrator: it does

Russell: and it’s a million times more intuitive

Eli Schiff:

As a very early iOS user it was quite obvious day one that undo was missing. It was a common complaint that other OS makers offered it and iOS didn’t. 2018 is a decade late for this discussion.

Mark Alldritt:

And lets not forget that Shake to Undo provides no context for the undo operation. Do you want to undo the last text edit or undo the deletion of an email? With split-pane on iPad, which app should respond?

David Gelphman:

Listening to the recent Talk Show discussion by @gruber and @jsnell about “shake to undo” made me think they might be amused by this Apple patent

10 Comments RSS · Twitter

Siri and Control Center?

So instead of just shaking my phone I would have to open Control Center or talk to my phone (in public)? (Opening Control Center on the iPhone X is rather inconvenient.)

'Shake to Undo' is just an example for a general issue: If you are not following iOS blogs etc. and learn about the latest features, you have no way of getting to know them. You cannot browse through a menu, so most users are not aware of many useful features and settings … I am wondering why Apple has never tried to introduce users to new features with hints or even other tutorials.

@Martin I’m not saying you can’t shake your phone, but I think it’s important to have a discoverable way to undo that’s always in the same place, and hands-free undo would sometimes be useful, too. Control Center is so easy to access on my iPhone SE. If it’s inconvenient on newer phones, I see that as a bug that Apple should address.

I think "undo" should be a Siri command "just anyway", but I'm not a big fan of Siri being the *only* way to invoke a command — it's really annoying Siri is the only way to add an 'activity' to Reminders ("remind me of this"). Shake-to-undo really falls apart on the iPad, despite the presence of "undo" on the keyboard, because shaking a 13" iPad is a bit ridiculous, and because the keyboard isn't involved in many actions where undo is needed, like accidentally deleting email/photos, removing the wrong song from a playlist, moving a task to another list, etc.

Another option, similar to but not as intrusive as Google's "undo bar", might be a time-limited button in the "ear" area similar to the "Done" button when rearranging the home screen on iPhone X (since the iPad status bar was re-designed in 12 to accommodate a notch). Yet another idea is similar to what 53 did with Paper — a counter-clockwise two-finger twist gesture — but I worry about the success of that when already both my iPad and iPhone can't tell the difference between swipe-to-back and swipe-to-act gestures in table rows (e.g. Mail, OmniFocus), and the iPhone gets confused between swipe-to-back and 3D Touch — I regularly get a 3D Touch menu for a song overlaying my list of playlists because the iPhone has decided to do *both* gestures. (iPhone X is wide enough for me that I sometimes add too much pressure in an effort to keep the phone stable in my hand, because I'm not smart enough to have a human-sized iPhone SE.) Undo shouldn't be in the way — like a modal alert popping up just because the phone bounced — or easily mis-triggered by conflicting gestures.

The only real problem I have with "undo" being in Control Center is that it doesn't feel like it "belongs" there. CC is a "device layer", not an "app control layer". The other available spot for undo, the app switcher, doesn't feel like the right spot either, as that layer is clearly about app switching + Handoff, but it could work.

But as it stands now, "undo" has the same problem 3D Touch has: if it's not available everywhere, it's often unimplemented.

@Tom I totally agree on Siri not being the only way and on not liking the modal alert. Maybe there should be an app control layer somewhere?

@Michael I was thinking about that, too: I dislike how many actions are hidden in the Share/Action sheet (that is, app actions like "Add to Reading List" and "Find on Page" are interspersed with *other* apps' actions, like Dropbox or Opener), and at the same time, dislike how some apps, like Mail, don't even have a Share/Action sheet. An app control layer could take those actions and leave the Share sheet to sharing, which would greatly simplify things. (As for "Remind me of this", I have no idea why that can't go through Share > Reminders.) I would probably prefer a separate layer for things that currently require a long press, like setting Safari Reader settings, because those long-presses are flow inhibitors.

But where to put this layer? What's the access method? Two-finger top/bottom edge swipe? I worry that makes these actions *less* discoverable, because there's no visible UI for accessing them, but at least it would be consistent and therefore memorable was learned. It needs to be quickly accessed, and a two-finger gesture from the top would be super annoying. (Although, so is accessing the Today View inside an app, with the extra swipe precisely placed to avoid opening a notification banner.) It could be a right-to-left edge swipe, since almost nothing uses that except as a shortcut for "forward" in Safari, but I at least would still have the problem of it interacting with row actions, in which a right-to-left is often mapped to delete.

It's kind of a tough problem, exacerbated by the Share/Activity sheet junk drawer.

I intentionally delete an email then put the phone down on my desk. A system dialog pops up: Undo delete email?

I delete an email by mistake and then shake the phone in six different ways, hoping for an Undo option: crickets.

This is annoying as hell. I’d rather not have the option than have it misfire or fail 90% of the time (cf. Siri).


Remember when Android had a global menu button that allowed you to put application-specific commands that didn't have a place in the UI into a popup menu, and then everybody complained about it, and then Google removed it?


Martin Wierschin

I have the same problem as Chris: intentionally trying to undo by shaking often fails for me. Shaking is an annoying action so I wouldn't enjoy using it even if it was reliable. But the intermittent trigger ensures I avoid using undo. It's generally faster for me to just manually correct whatever mistake I made. It'd be great if there was a better way to activate undo.

Yes!!!! I never understood the complaint of a quick shortcut contextual menu. It was quite helpful. Now I'm like, "Maybe it's a hamburger menu, or over here in this slide out menu, or…" and don't get me started trying to explain app settings over the phone to my mom on apps I don't actually use! It's hard enough on the apps I am looking at whilst offering my explanation. Man…

Leave a Comment