7 ms·
Never use a warning when you mean undo (2007)
- Jtsummers 4y agoWe have some custom tools at my office that don't provide warnings or undo. It would be nice if they at least provided a warning when you hit delete with multiple items selected. When I asked the senior dev on the system about it he said, "Undo? Why would we have that?" (or words to that effect) "Just save more often and when you delete something you didn't mean to, close it and reopen it" (that part is near verbatim). Undo systems can be annoying to create after the fact, but if you use a variation on the command pattern you can often get them "for free" (along with a lot of other useful capabilities). I wish that were more common.
- kazinator 4y ago> "Just save more often" What a Dilbert! "Okay, provide rotating backups, at least!" I would have said. Saving is also a destructive operation that can lose data, which brings us back to undo. If you open a document, make an unwanted edit and save, and you have no undo, you can only recover the prior state from the editor backup. Without automated multiple backups, the user would have to do "save as" regularly, choosing different filenames, rather than just "save". Multiple backups are easier to
- Jtsummers 4y agoWork harder, not smarter. -- Unofficial motto of many offices.
- generationP 4y agoThe even worse version of this is dialogue windows suddenly popping into focus. You're writing an email and suddenly your whitespace ends up "yes"ing a file overwrite. Windows is rather bad at these; browsers seem to be better by keeping these dialogues local to the tabs at least.
- deleted 4y ago[deleted]
- kazinator 4y agoISTR there is some registry setting that may help with this. Search the web for ForegroundLockTimeout.
- Jerrrry 4y agoFirefox has added a small delay to prevent this exploit. Chrome has responded that it has yet to have been detected and weaponized yet. Imagine a small game where you must press the [Enter] key rapidly. Would you, with a few similar boxes in game to detract, notice the Open_Folder_DialogBox for a few frames? Probably not in time to not hit the [Enter] key, giving the webpage's javascript full permissions to everything in the default, selected Folder...which is the C: drive.
- dspillett 4y ago> Firefox has added a small delay to prevent this exploit. This can be a mild irritation in FF. In other contexts it could be very irritating. The problem with blocking user action for the user's safety is that most users don't appreciate it until they do something wrong (by which point I've found the option to turn the protection off!)
- Jerrrry 4y agoA trivial band-aid, such as only delaying the input if the user has repeatedly pressed the [Enter] button in the last 3 seconds, could thwart naive attempts. A clever bypass would be to have the [Enter] button be pressed when reacting to something on screen, such as an incoming guitar strum or a dinosaur hopping over a cactus, then throw the OpenFileDialog before the goal/expected [Enter] keypress.
- LudwigNagasena 4y agoActually there were scam games like that back in the era of Symbian Java Apps. You click-click-click and then a window asking you to send an expensive sms pops up.
- kazinator 4y agoIf a user has the habit of frequently quitting the program with unsaved changes, with their brain clicking through the "discard changes?" dialog in auto-pilot mode, it is next to impossible to distinguish that case from a situation in which it was done without intent, causing unwanted loss of data. I suspect that a simple UI modification which could reduce occurrences of the situation, without being too obtrustive would be to make it a checkbox: [ ] I agree with unsaved data being discarded [ OK ] The OK button is ignored unless the box is checked. This is exactly like a Terms-of-Service agreement workflow. Another idea would be to make the UI sensitive to the amount of unsaved content. The software should have an idea of whether the unsaved content represents 57 edit operations, or just two. Or maybe in terms of number of objects or bytes involved or some other specific measure. If the amount of unsaved material seems significant, then have the checkbox workflow. Otherwise just the [OK] without the checkbox.
- kortex 4y agoTFA sort of addresses this and while it's better, it's still "warn-think", it's just a more glorified and tedious habit, depending on what happens when OK is clicked without the discard box checked. I presume the default action stashes the data somewhere, in which case it's basically the trash bin pattern or tempfile pattern (stored durably, not /tmp), and we can safely go back to a plain dialog like: You have unsaved changes. Do you wish to save as a new file, or discard? (Unsaved changes can be recovered for 1 month before permanent deletion)
- kazinator 4y agoIf unsaved changes can be recovered for a month, then why mention it every time. Just let the user quit without any prompting.
- dspillett 4y agoA further option is to do what Notepad++ does: save current state even through closing and reopening the application until the user closes the file. When you restart the app files that were never saved and never close are as they were, modified files too. The possible issues with modified files is that if you think you've saved and don't get prompted then run some other tool that relies on the new information it won't be there (as the saved state is elsewhere, not the main file). Keep the “do you want to save first?” prompts for when closing the file. Of course for some file types this could use a lot of storage, so it won't be as applicable everywhere.
- Jerrrry 4y agoIdeally, when calling OpenFileDialog or equivalent user prompts, one should opt for using verbose action labels, instead of the often ambiguous defaults (Okay/Cancel, Yes/No, worst yet: Yes/No/Cancel): Are you sure you want to delete this draft? [(Yes) Delete Draft] [Cancel (Deletion)] Are you sure you would like to Exit? [(Yes) Exit ($appname)] [No, Continue] ()*optional extra specificity for clarity With more sensitive commands with possibly dubious parameters, prompting the user to re-enter the dubious argument can help default mindless clicks or the occasional brain fog or mistype; even translates well onto command line: >>Are you sure you want to delete 12 folders, totalling 23,401 files? Please confirm the number of files to proceed: >>23401
- kristopolous 4y agoI'm a fan of first person sentences. Do you want to quit? > No. I'm still working! > Yes. I'm done for now. Especially in a mobile interface. The user is physically touching "I'm done for now"; it's a visceral interface; real hard to mess up unless some motility accident happens (like the phone slips)
- InCityDreams 4y agoPerfect. And standard practice would be... Do you want to quit? > No. I'm still working! > Yes. I'm done for now. ...until some twunt reverses the order of the answers. And others (about 35%) follow that, as a standard practise.
- fragmede 4y agoI disagree that it's visceral on mobile. First, close your eyes then toss your phone up in the air with a spin, catch it and try and then try and click on 'I'm done for now'. Feels exactly the same as "I'm still working!". "Visceral" should be reserved for things with physical buttons that make a satisfying ca-chunk and you're sure, blindfolded, that you didn't press the wrong one. Not slippery glass bricks.
- kristopolous 4y ago
- haburka 4y agoI wonder if we need a new UX pattern where every single destructive action is delayed by ~30s such that there is ample time to press “cmd+z” or a toast undo button. It’s not very difficult to implement the client side code for this, and I think users would appreciate it. However delaying a “delete” would cause some complications with the local data, where you might want to optimistically render the UI such that the delete went through. That shouldn’t be difficult in any modern state management library though.
- Jerrrry 4y ago>modern state management library with as much time, effort, use, and praise that these get, I would expect every state change / collection to have a corresponding input and action buffer, effectively making all user actions CTRL+Z-able.
- booleandilemma 4y agoHaving an undo button instead of a confirmation button is already standard in several Google apps.
- ChrisMarshallNY 4y agoThe latest version of the MacOS (Ventura) has a delay in sending mail. I haven't timed it, but it seems like about 20 seconds. During that time, there's an "Undo Send" in the bottom of the nav pane. It's a bit weird, but I've gotten used to it.
- colejohnson66 4y agoGmail had that feature over a decade ago. It's helped me maybe once or twice, but it's nice to have.
- cxr 4y agoWe might be better off if conventions in email programs changed so that the "Send" was not the default but rather something like "Schedule this to be sent at the next top of the hour". We wouldn't have to resort to any UI fakery, and there might be interesting societal effects if widespread enough. (Most mail delivery doesn't need to be immediate, but pretty much no one tunes their setup to minimize interruptions.) It obviously won't work very well if it's entirely handled by the client, since your battery might die, you might go out of range, etc.
- loloquwowndueo 4y ago“When you delete an e-mail, it immediately gives you an option to undo that action. How humane! ” - except that option disappears after a while, so if I hit delete, switch windows and then think “oh shit I need that email back” then the undo option is gone and I’m screwed anyway. I’m also unsure about an article that claims “to one of the most basic and important mantras of interface design: Never use a warning when you mean undo.” When in the first examples it ignores one of the most basic and important mantras of interface design: use full sentences in your action buttons, not just “Okay”.
- joking 4y agoYou can get that message back from the trash. The flow is different when you delete definitively
- deleted 4y ago[deleted]
- 11235813213455 4y agoOr a changes history at least
- cmg 4y ago[2007] but also timeless advice, at least while our UIs still follow the same general paradigms. It's important to note that Aza Raskin is the son of Jef Raskin, who wrote a lot about interfaces (including a book called The Humane Interface), and worked on the original Macintosh at Apple, on the interface. Aza Raskin has continued that work at Mozilla and elsewhere and I'm glad he has. Though I miss the original Songza interface https://signalvnoise.com/posts/1117-fresh-ui-ideas-from-songza-and-algorithm-ink https://signalvnoise.com/posts/1117-fresh-ui-ideas-from-song...
- samhickmann 4y agoAgreed that the Undo button is the solution. (But it's every coder nightmare...)
- Jtsummers 4y agoIt's not a nightmare unless you try to tack it on after the fact. Start (or earlier in the process incorporate) some variation of command pattern into the system and it's not too bad. Some actions will remain irreversible, but those are ones that would be irreversible regardless of whether you have an undo-facility or not.
- TillE 4y agoRight, something like a transaction log is extremely useful in many circumstances, it's just a smart way to build stuff. It can give you better data integrity, sane parallel processing, etc.
- kiney 4y agoJust half an hour ago I accidentially wired to much money while paying an invoice. I made the transfer on desktop in my browser and had to confirm with a phone app that showed recipient and amount - i just tapped "ok". A split second later I realized my mistake. There even is a cancel transaction function in the user interface but it just told me it's too late because the transaction is already processed... Delaying transactions for about 1 minute with a cancel option would be a possible solution. (in this case I mailed the recipient and hope they are honest)
- mungoman2 4y agoYes this is how Gmail implements undo send.. Email is actually sent 30 sec after pressing Send, giving you that time to realize your mistake and Undo.
- MerelyMortal 4y agoThey should adopt the 30 second Gmail/Fastmail undo. It's saved me a few times. People don't like to proofread until after they commit. Call up your bank and ask how to get the suggestion to the right people. I made a suggestion to my bank, and they implemented it in their app, so you never know.
- nso 4y agoI don't know about just a delay. A short summary, a delay and cancel button combined with Wise's transfer money animation that gave you time to act would be a nice UX in my mind.
- yCombLinks 4y agoThe problem is there are a number of scans revolving around returning accidental extra money. IE someone sends you $500 too much, they ask for it back. You send it back and then they somehow reverse the original transaction, etc.
- dtgriscom 4y agoMore commonly, the original transaction looked legit, but turns out after a few days not to be. A common medium is a cashier's check; they seem more "real" than checks, but they aren't really, and it can be a week or longer before you find out one is bogus.
- tomschwiha 4y agoI've seen somewhere a 3-sec timer button that you have to keep pushed to confirm. I like this approach, Not sure about accessibility however.
- deleted 4y ago[deleted]
- LudwigNagasena 4y ago3 seconds is too much even for a Terms & Conditions acceptance button.
- tomschwiha 4y agoIf you combine it with a sudo mode 2-3 seconds could be a sweet spot to account for reaction times.
- kortex 4y agoThe "pop up while I was typing and it hit a button when I hit a space" situation is especially painful. I use a custom keyboard layout with lots of layers so it's doubly frustrating for me. I just see a UI flash and I'm like "wtf did I just do?" Any salient state change of important data ought to be reversible in the short term. I'm especially fond of Gmail's Undo Send feature (I think it's a Labs plugin, it's not default iirc). For whatever reason, the brain often finds things it forgot when you actually execute the action. Related, being able to trace what actions were taken is also super valuable. Often this is baked in to the UI (e.g. outbox/sent items, undo menu). Inevitably, this results in a lot of state accumulation, thus disk usage, but this can be handled by manual garbage collection (which is the 2nd step in data destruction, so this can't be undone, so use a warning here) or tunable cache/LRU settings.
- nerdponx 4y agoGitHub is notorious for this. If you happen to accidentally press "e" while viewing a file, it will not only drop you into a clunky web editor, but it will also fork the project to your account in the background!
- iLoveOncall 4y agohttps://xkcd.com/1425/ https://xkcd.com/1425/ but replace "whether they're in a national park" with "show a warning" and "whether the photo is of a bird" with "have a undo button".
- dang 4y agoRelated: Never Use a Warning When you Mean Undo - https://news.ycombinator.com/item?id=2150361 https://news.ycombinator.com/item?id=2150361 - Jan 2011 (83 comments) Never Use a Warning When You Mean Undo - https://news.ycombinator.com/item?id=34746 https://news.ycombinator.com/item?id=34746 - July 2007 (10 comments)
- contravariant 4y agoI still wish I could convince gmail to send emails immediately though. Used to be that they showed up within a second or two, but now you need to wait half a minute or longer before it shows up in someone else's inbox. Setting the timeout lower doesn't seem to help much.
- kibwen 4y agoYou still need a solution for non-destructive actions. To once again use Gmail as an example, there is a setting that allows you to "undo" sending an email. However, obviously, once sent and received it cannot be undone, and on the other hand the software can't just leave it in an undoable state forever or it will never get sent at all. So you have to establish a time period during which undoing is possible. Make that time period too long, and people get annoyed that their mails are unnecessarily delayed. Make it too short, and people will fall over themselves trying to click undo before the timer runs out and might miss their window anyway. And while email isn't too bad about this, since it's expected to be asynchronous, there are other contexts where we expect things to be immediate and not suffer an undo-delay. Here's one: broadcasting your webcam or sharing your screen on a video call. In these cases, I am happy that the software warns me ahead of time that my camera is about to be shared, rather than either 1) sharing immediately with an option to undo (oops, now all my co-workers realize that I'm butt-ass naked), or 2) sharing immediately but delaying the feed by 30 seconds to give me time to undo. It's clear in this case that an up-front warning is preferable.
- deleted 4y ago[deleted]
- akira2501 4y agoI built an interface to manage an audio router. A single misplaced click could take an entire radio or television station offline, an error that occured one to many times. So.. what I went with is a simple "hold-to-activate" button. If you clicked it without activation a few times, a little box would pop up and tell you what to do. Once you held the button down, it would display a counter, and once it reached zero, then it would take the action. We added a short cut where if you held control and alt it would bypass the counter entirely. At the same time it would add the previous system state to an undo list where you could revert that or any number of previous actions to return to a prior state. Once we implemented this errors fell off considerably, and errors impacting broadcast almost entirely disappeared and most of our users were very happy with the way it operated.
- jay_kyburz 4y ago
- yonrg 4y agoPersonally, I dislike the Google undo feature. I don't know how it works. The pull down is small and vanishes after some seconds. And then? I am still to late and feel even more sorry for myself (double fail) On my systems I have undo of the file system under control. snapshots. I'm using it since years. Saved me twice! I recommend this all the time ... (I know it's not for everybody)
- DonHopkins 4y agoAnd while you're at it, never disable a menu item or widget without providing feedback (like a tooltip) about WHY it's disabled and what to do to enable it!
- DonHopkins 4y agoSo the Finder should relaunch the last app you quit when you type Command-Z?
- almostnormal 4y agoFast forward to 2022. I feel the problem has been inverted. It is no longer about losing information by lack of or ignoring a warning, today it is about creating information where none should be created. Example 1: In better times, dialogs would store the information on ok and discard any changes on cancel. Modern implementations store on change (especially modern web guis). People close dialog windows through the window close button, with no distinction whether this is ok or cancel. Example 2: Auto-save. Some office document opens in the browser. One wrong swipe with the pointing device, swoosh, change created and logged in the eternal history. No warning "do you want to modify this document?", and no way to turn back. Bring back an environment where it is possible to lose something, which means one where it is possible to not modify something unintentionally.
- timeon 4y agoA List Apart always brings the memories. But I never realized that Aza Raskin posted there even I've read somethig like this from him elsewhere. Was big fan of Enso.
- gspencley 4y ago> Because software should “know” that we form habits. This is my problem with SaaS as an end-user. Imagine one day you leave home to drive to work. You have a coffee in one hand and a briefcase in the other. You have done this a million times before, getting from the front door to your driver's seat, and you can do it blindfolded. So you grab your brief case with your coffee hand and watch so you don't drop either. You extend your hand to open your car door and ... OUCH! You stubbed your fingers. Surprised, you look down and to your horror you see that your car door handle isn't there. You look around and notice that 6 inches away is something that kind of sort of looks like something resembling a car door handle, but it's different and wasn't there before. You try it, and to your relief it opens the door. You take a seat, turn on the ignition and suddenly your am/fm radio turns on and a strange voice shouts "Welcome to Your Car Version 2.0! Try Our All New Shifter Feature!" And that's when you look down and realize ... your damned shifter has moved to. You never asked for this, you are now late for work and are going to take shit from your boss, your life is objectively worse off for the change and you can't, for the life of you, see how any of this is "better." But that describes pretty much all software in current year.
- drpixie 4y agoYes - that's my problem - an interface should be stable. Disable selections, fine. Remove them, no. Reorder them, absolutely not. The changing layout of buttons in Office - yuck - I just want to do it, I don't want to think about where it is. Fixefox seems to randomly change whether it expands bookmark menus to left or right - yuck - if it's the same bookmark/selection as a moment ago, I expect it to be in the same place!
- LinAGKar 4y agoThere is now a trash can for events in Google Calendar. One of the things I miss now that we've been forced over to Microsoft 365 at work.
- lamontcg 4y agoInverse problem: I accidentally hit the "cancel ride" button when I was in a lyft ride. It opened up a dialog to confirm where I hit "cancel" to cancel the operation of cancelling and of course it cancelled the ride. That was embarrassing.
- woojoo666 4y agoI used to think you could just use a warning that forces the user to follow specific instructions. But the author says this "impossible to ignore" warnings: > It causes us to concentrate on the unhabitual-task at hand and not on whether we want to be throwing away our work And in fact, I learned this the hard way. One time, while in a rush to meet up with some friends, I tried to sign out of a mobile app. I went to settings and scanned for the logout button, saw some red text, and clicked it. There was a warning, which I quickly clicked through. Then there was a dialog asking me to enter my password to confirm. I thought that was strange, but just then I got a notification that my friends were outside, and I quickly tapped the input box, auto-filled from my password manager, and headed out the door. Later on, I learned that I deleted my account. I was very lucky that this happened to be an account for a service that I self host and backup regularly. I restored from backup and got my account back. But I shudder to think what would happen if it were my Google or iCloud account. Honestly I don't know what the app developers could have done differently here. Maybe not put the sign out button next to the delete account button. But it goes to show that impossible-to-ignore warnings are totally possible to ignore
- vcryan 4y agoI have a couple startups and this desperation framework does not resonate with me. I do startups because I enjoy creating software/processes/opportunities that others benefit from and not having my financial outcomes bound directly to time. I don't feel desperation at all.