Cancel = Confirm — A Frustrating Web Experience
A standalone web page styled as a video feed app, where the Delete Account confirmation dialog has its Cancel and Delete buttons functionally swapped. Click Cancel and the account is deleted. Click Delete and nothing happens. The labels are correct. The behaviour is reversed.
Experience It →What Is Cancel = Confirm?
Cancel = Confirm is an original web experience built by frustrated.io that recreates one of the rarer but most viscerally horrifying dark patterns of the modern web — the confirmation dialog whose buttons do the opposite of what they say. The page is styled as a recognisable video feed app, with a vertical "video" placeholder, interaction icons, captions, and a bottom navigation bar. Anchored in the centre of the screen is a Delete Account confirmation dialog asking the visitor whether they really want to permanently remove their account.
The buttons are labelled Cancel and Delete, in that order, exactly as a real app's dialog would present them. The visitor reads the warning, weighs the consequence, and almost universally clicks Cancel — the safe, dismissive, get-me-out-of-this-dialog option. The script then triggers the destructive action: a brief result toast announces "Account deleted." The visitor has, by their own click, deleted what they were trying to protect. Clicking Delete instead would have done the safe thing — dismissed the dialog and shown "Cancelled."
Built with vanilla HTML, CSS, and JavaScript, the experience requires no installation, no login, and no patience. It works on desktop and mobile. It has its own permanent URL — frustrated.io/feed — for sharing. Your browser back button works. Either click ends the prank and redirects to a new random frustration after about two seconds.
How It Works
Land on the Feed
The page loads with what looks like a generic video feed app — vertical video placeholder, a "For You" toggle at the top, interaction icons on the right, a creator caption at the bottom, and a familiar bottom navigation bar. It looks like a real app. The dialog is already open.
Read the Dialog
A standard delete-account confirmation: "This will permanently delete your account, all your videos, comments, and followers. This cannot be undone." The buttons are labelled Cancel and Delete, in that order. The visitor reads the warning, decides to dismiss, and clicks Cancel.
The Buttons Are Swapped
The Cancel button triggers the delete action. A red toast appears: "Account deleted." The visitor's expectation has been violated. Clicking Delete instead would have triggered the safe outcome ("Cancelled."). After about two seconds the page redirects to a new random frustration.
Who Shares Cancel = Confirm
The page is shared with messages along the lines of "look what just happened to my account" hundreds of times. Below are the four most common share patterns we've observed.
"Sent it to my brother saying I'd accidentally deleted my TikTok. He spent twenty minutes trying to help me recover an account that did not exist."
— Maya O.
"Posted in our team channel as 'help, I think I just deleted my account.' Two engineers spent forty minutes investigating the wrong app."
— Tara P.
"Sent it to my mum saying I needed her to click Cancel on something for me. She did. She is now apologising for deleting an account she'd never heard of."
— Hana W.
"Sent it to a friend who works in security. He read the dialog three times before clicking Cancel. Then sent me a 600-word message about dark patterns."
— Pavel K.
Best Captions for Sharing This
Send the link with one of these. Or write your own. The recipient will not laugh until later.
Watch this TikTok, you'll lose your mind.
This TikTok is sending me, see for yourself.
Bro check the comments on this TikTok.
You have to see this TikTok, it's actually crazy.
Just saw this on my fyp, can't stop watching.
This is the wildest TikTok I've seen this week.
Check this out, especially the second part in the comments.
Watch this until the end, you won't believe what happens.
Cancel = Confirm vs Alternatives
Confirmation dialogs with reversed buttons are mostly hypothetical — the genuine equivalent is a dialog with deceptive button labels or one that defaults to the destructive action. Below is how the frustrated.io version compares.
| Feature | Frustrated.io | A Screenshot Meme | A Real Bad Dialog |
|---|---|---|---|
| Buttons swapped on purpose | Yes | Static (it's an image) | Sometimes accidentally |
| Has a permanent shareable URL | Yes | Yes (if hosted) | Usually not |
| Working back button | Yes | N/A | Usually |
| Either click resolves the dialog | Yes | It can't | Yes |
| Will harm your computer | No | No | Just your data |
Specifications
| Built with | HTML, CSS, vanilla JavaScript |
| Page weight | Under 7kb |
| Time to load | Under 1 second |
| Buttons inverted | Yes — Cancel deletes, Delete cancels |
| Mobile compatible | Yes |
| Sound | None |
| Working back button | Yes, always |
| Real account affected | No (no real backend) |
| Tracks any data | No |
| Outcome after click | Redirects to a new random frustration |
Reviews
"Read the dialog. Clicked Cancel. Watched my fake account die. Five stars. Calling my therapist."
"Sent it to my flatmate as 'is this real?' He said yes immediately. He lives with this energy."
"Got the safe outcome on the first try. Felt smug. Tried again to test. Ate my words on the second go. Lost one star because of personal disappointment."
Frequently Asked Questions
Real questions from search. Real answers from us.
Why Does Cancel Delete the Account?+
Because the page swaps the click handlers on the two modal buttons. The script attaches the destructive "delete account" action to the button labelled Cancel, and the safe "dismiss this dialog" action to the button labelled Delete. The labels are correct. The behaviour is reversed. There is no other condition under which the swap can be triggered or undone.
Will the Experience Reset If I Get the Wrong Outcome?+
No. Either click ends the experience and redirects to a new random frustration. The result toast shows what the system says happened — "Account deleted." or "Cancelled." — and after about two seconds the page navigates onward. There is no way to retry from inside the experience, but the back button works at every step.
Is This a Real Account That Can Be Deleted?+
No. There is no real account, no backend, no data of any kind. The video feed is a styled HTML mock with no real videos, no real handles, and no real engagement counts. The "Account deleted." toast is text on a page. Nothing about you, your data, or any actual account is affected.
Why Does the Video Feed Look Like a Real App?+
To set up the prank's stakes. A delete-account dialog appearing on a generic web page reads as a curiosity. The same dialog appearing inside what looks like a recognisable video feed app reads as a real account-deletion flow with real consequences. The visual context primes the visitor to click Cancel reflexively, which is when the swap lands. The feed is a styled HTML mock — there is no real video, no creator, no data.
How Do I Share Cancel = Confirm With Someone?+
The page has a permanent URL — frustrated.io/feed — that works on every messaging app, every social platform, and every email client. The share buttons at the bottom of the experience handle native device sharing, X, and Facebook directly. We recommend sending it as if the recipient genuinely needs to see what just happened to your account.
Why Was Cancel = Confirm Built?+
Because button-swap dark patterns — destructive actions hiding behind reassuring labels — are one of the most quietly horrible UX failures of the modern web. The escaping Reject button has its own dedicated experience already; the Cancel-that-confirms is its more direct, more terrifying cousin and deserves a dedicated, shareable, satirical version of its own.
Is Cancel = Confirm Safe to Use?+
Yes. The page contains no real backend logic, no tracking, no third-party requests, no popups, and no redirects (other than the explicit redirect after the user clicks either button). Your browser back button works at every step. The frustration is comedic, never harmful.