Also, yes/no/cancel are only "effortless" to understand if you read the question first (not everyone does that) and if the question is simple.
An example of doing it wrong: my classroom had an unstable piece of software that would occasionally pop up a long error message that asked "do you wish to continue?" at the end; students wouldn't read the whole thing, but would just click "no", which closed the software.
If the same popup had the error message and then buttons marked "continue" or "close program", it would have been far more straightforward.