I will substantiate my answer based on this image, taken from your good example that the problem is more common than it may seem (I thought better to reproduce the image here to make it easier for readers):
There are some issues involved there that really make this interaction confusing.
1. Order of Action Buttons
First, the order of the buttons. Some say that one should always seek to maintain the convention used by the operating system (OK -> CANCEL vs CANCEL -> OK) and this makes a lot of sense. Simply because, however bad the usability of one of the chosen patterns, the user eventually gets used to and naturally expects this consistency. However, it also makes a lot of sense to constantly worry about this, mainly because (1) it is difficult to maintain these conventions in applications cross-Platform, as is the case for Web systems, and (2) studies with eye fixation demonstrate that the ideal flow (being more natural and more efficient in terms of cognitive effort) is from left to right, so it is more interesting to put the button of the main action more to the right (more or less as the "end" of the dialogue).
Therefore, in the given example, some of the confusion may be due to the location of the Cancel button, perhaps because it escapes from the user’s usual pattern and, more likely, because it seems to be the most natural primary action.
2. Context of Action and Nuances of Textual Communication
Secondly, there is also the question of textual communication with the user. It should not be forgotten that a dialog like this is a direct communication between the application and the user. There is a demand being requested, in a specific context, and a user response is expected. In the example, much of the problem is that the context is not clear. See the question: "Are you sure?". Are you sure of what? Note how the AP in Meta drew a red arrow linking the possible primary action to the "context" (taking vote) of the action.
That was missed by him because it’s real. When a dialog window appears, the user’s focus changes and it is important to keep context information. It’s no wonder that in Windows, for example, dialog boxes usually have a title indicating the context:
Since the window does not have a title bar, the "Are you sure?" part of the text would be more appropriate if it were "Are you sure you wish to withdraw your vote?". In fact, this way it would show much more clearly to the user (and potentially even to the interface designer himself) what else is wrong with this dialogue: the use of the word "cancel" in the text of the message itself, in a decontextualized way. Considering the context of the action, this word should be "withdraw" and not "cancel". Thus, I think the best message in this situation would be:
Are you sure you want to withdraw your vote? You cannot vote
again in that matter after removing it.
3. Disengagement from the OK/CANCEL Convention
Third, it should also be considered that many users do not read the text very carefully, and this tends to occur as they become more experienced with the use of the system. So although the convention to use "OK" and "CANCEL" is useful and failure in its use may cause difficulties, it is already known that it makes a lot of sense to use buttons that are sufficiently clear and descriptive of the action they perform so that they are quite independent of the text message. Thus, if the user does not read or read only superficially the message, it is still more difficult for him to make mistakes (an important usability principle).
This does not mean to simply abandon the OK/CANCEL standard, but to avoid using it when an action is critical or if you realize that there is potential for confusion.
In the case of the example, the withdrawal of the vote has as a result the impossibility of giving it again, so the action is critical. In addition, much of the confusion would be reduced if the buttons were "Give Up" and "Take Back the Vote", for example. Incidentally, this approach is quite consistent with the use made in the question quoted in the @Sergio reply. :)
Usually I see this problem when one uses OK / Cancel pattern. When I do this type of dialog I use the context of the action. Examples (depends on the rest of the UI): "Vote", "Do not vote", "Cancel vote", "Do not cancel vote". For certain things, I even make the person type the verb for the action to occur: "Type REMOVE to remove the selected form from the system". Anything other than that just doesn’t do the deed. This usually avoids a lot of nonsense in production systems where a bullshit is more expensive than the 5 seconds you make the user think.
– Bacco
A somewhat obvious solution is for the dialogue to ask whether "Yes" or "No".
– bfavaretto
A suggestion would be to replace the word "cancel" in the cancellation with "ignore" (or something similar, as you would like to ignore/abort the cancellation) and instead of buttons
ok
andcancelar
, usesim
andnão
.– Guilherme Nascimento
I do not know if it is so solution, after all is: "yes, cancel the cancellation" or is it "yes, cancel what is to cancel"? Everyone knows that people don’t read the question from the dialogue box. Besides, this almost gives another question, "yes" and "no" does not give much context, creates another problem.
– Maniero
It depends on the dialog box if it is abort the cancellation instead of Cancel the cancellation, "yes" and "no" seem to me a good.
– Guilherme Nascimento
Then it would be something like "Undo the cancellation". Even so I prefer more explicit "Undo cancel", "Keep canceled" - Remembering that the question mentioned is an example, I believe the OP is speaking in a general context where this occurs, and the sayings and severity of the deception may vary. I think the indication of what is what to keep a pattern should be the position and eventual color of the buttons, and the OK, Cancel (or Yes and No) are only used in everyday cases.
– Bacco
Probably a good solution would be to avoid cancellation of a cancellation. If any process can be canceled, it should be definitive, a simple process. With this in mind the name to be modified would be the process that can be canceled. Instead of Cancel the payment you could Estornar and then cancel the chargeback.
– iuristona
One thing I’m seeing in the comments is that they’re not considering that changing the nomenclature of what the user is used to negatively affects UX. I am not saying that this should not be done but I wanted relevant information on this. Not that they should not have been commented, of course they are for other people to think about it, but I have already thought about all this. So I wanted another solution or at least more consistent information on this. Then I would have an answer.
– Maniero
write clearly to the user who has no error bro: type "click here and cancel the cancellation canceling the cancel leaving canceled"
– SneepS NinjA