# Close watcher user activation tests These tests are all in separate files (or test variants) because we need to be sure we're starting from zero user activation. ## Note on variants vs. `-dialog` and `-CloseWatcher` files We endeavor to have all the tests in these files cover both `` elements and the `CloseWatcher` API. (And sometimes the `popover=""` attribute.) When the test expectations are the same for both `` and `CloseWatcher`, we use WPT's variants feature. However, in some cases different expectations are necessary. This is because ``s queue a task to fire their `close` event, and do not queue a task to fire their `cancel` event. Thus, when you have two ``s grouped together, you get the somewhat-strange behavior of both `cancel`s firing first, then both `close`s. Whereas `CloseWatcher`s do not have this issue; both events fire synchronously. (Note that scheduling the `cancel` event for ``s is not really possible, since it would then fire after the dialog has been closed in the DOM and visually. So the only reasonable fix for this would be to stop scheduling the `close` event for dialogs. That's risky from a compat standpoint, so for now, we test the strange behavior.)