Skip to content

Commit

Permalink
Bug 1624710 [wpt PR 22424] - Add a test for unexpected activation tri…
Browse files Browse the repository at this point in the history
…ggered during space keydown driven focus management, a=testonly

Automatic update from web-platform-tests
Add a test for unexpected activation triggered during space keydown driven focus management (#22424)

Relevant spec: https://w3c.github.io/uievents/#event-flow-activation

This is targeting a Firefox bug where when forwarding focus on space and enter
keydown events, a unexpected click event is triggered on the forward target.

Here's a demo page for the buggy behavior:https://html-is.glitch.me/firefox-space-focus.html

This test case only cover the Space key case where Firefox is the outlier.

--

wpt-commits: cc87c188abc5c88460d24379e69d540372f0c683
wpt-pr: 22424
  • Loading branch information
muan authored and moz-wptsync-bot committed Apr 30, 2020
1 parent 1a4f810 commit 7ea6542
Showing 1 changed file with 48 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>Focus management event expectations</title>
<link rel="author" title="Mu-An Chiou" href="https://muan.co">
<link rel="help" href="https://w3c.github.io/uievents/#event-flow-activation">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
</head>

<body>
<button type="button" id="fromEl">Focus management from button</button>
<button type="button" id="toEl">To button</button>
<button type="button" id="EndTestEl">End test button</button>
</body>

<script>
const from = document.getElementById("fromEl")
const to = document.getElementById("toEl")
const endTest = document.getElementById("EndTestEl")

from.addEventListener("keydown", function (event) {
if (event.key === " ") to.focus()
})

async_test(function (t) {
let buttonFocused = false
to.addEventListener("click", t.unreached_func("Button should not be clicked"))
to.addEventListener("focus", () => buttonFocused = true)
endTest.addEventListener('click', () => {
assert_true(buttonFocused, "Button should be focused")
t.step_timeout(() => t.done(), 200)
})

// execute test
from.focus()
new test_driver.Actions().keyDown("\ue00d").keyUp("\ue00d").send().then(() =>
new test_driver.click(endTest)
)
}, "Keydown to focus should not trigger activation")
</script>

</html>

0 comments on commit 7ea6542

Please sign in to comment.