Unsaved changes will be lost. Save your changes first?
and another program will ask Unsaved changes will be lost. Are you sure?
Or within a single program, "Yes" will be the safe option everywhere except one place where it's the dangerous option because nobody thought about that.If the user is exposed to one convention 90% of the time, the other one will always cause some confusion and feel sloppy.
And more generally, before disregarding industry best practices and findings from research literature and implementing something based on ad-hoc personal hunches, make sure you run some experiments on real people.
That's the cop-out answer I get whenever I ask about unnecessary and infuriating UI changes. It has only given rise to increasingly dumbed-down, stupifying interfaces.
I am recommending that instead of just making something up based on the developer’s speculation and personal preference (which in your particular example happens to be terrible, as you would discover if you actually tested it in a real-world setting), it is a better idea as a general rule to go read actual user studies about what works and why, or if you are too lazy to do that go find some interface guidelines written by someone who did large-scale user studies and spent decades honing their interfaces in response to user feedback and copy it.
If you insist on rejecting those findings and past experience with a novel implementation, then I am recommending running your own mini studies (ideally something semi-formal, but at least test the two versions on a couple buddies at a coffee shop), to make sure you don’t shoot your foot off. To do anything less is in my opinion lazy and irresponsible.
Why do you think that will lead to “stupefying interfaces”?
You think that doing at least a tiny bit of user research before blindly rushing ahead based on personal preferences renders people unable to think or feel?
Or maybe you have a non-standard definition of “stupefy”? To be honest I don’t understand what you are trying to say.
My points all come from real-world experience, both as a user and developer. These unwanted UI changes irritate me enough to complain about them, but apparently my opinion doesn't count at all, because these so-called "experts" will only parrot their vague "studies show that X, therefore you are wrong"? These "user studies" naturally bias towards the worst of the worst. In fact, you are displaying exactly the sort of dismissive holier-than-thou attitude that I've been on the receiving end of, multiple times, and I can personally tell you that it really fucking pisses me off.
Think about it: if I'm the user of your software, and you change it so that it breaks my workflow, I am not going to be happy regardless of whatever justification you provide.
Having been on the receiving end of that, I've learned not to do it to my users, because I know how it feels.
You said “In fact, I'd say this is even clearer, putting the question at the end and immediately following it with the two choices:”
Did you ever test this explicitly vs. the recommended alternative of using verbs for labels? (Ideally by doing a user study, but heck, I’ll take anything...)
I claim that this has been empirically tested and found to be inferior (i.e. result in higher error rate) in a variety of studies, both in published research and internal to various large companies which then got baked into their design guidelines. This was a subject of active research in the 1970s–1990s (and perhaps before).
You can find reasonably good advice about the subject in any number of introductory interface design textbooks, etc.
In this particular case, where user data is being irrevocably deleted, errors are especially harmful.
Edit: Maybe the word “terrible” in my previous comment was unfair. Sorry to be inflammatory.
If the action is to move forward with something or not, I think I prefer the "next"-type button to be on the right, and "cancel" or "back" on the left, probably far left.
But, my thinking does violate the "pick one and be consistent" suggestion. So... I dunno :)
And we don’t always react to confirmations instantly. What if you’re distracted away, or you suddenly second guess your decision and perform some auxiliary research? Or what if you have more than one dialogue box on the screen at a time? From a UX standpoint, it is far safer to repeat the verb rather than use a generic.
To be frank, the only reason why I could imagine using generics is laziness.
To a certain extent, I would think this is the point of using this approach (at least for a "delete" action). I'd prefer the user to stop and think, "wait, what is this?" instead of just blindly clicking through.