зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1624710 [wpt PR 22424] - Add a test for unexpected activation triggered 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
This commit is contained in:
Родитель
b68d4ed809
Коммит
6deffb0efb
|
@ -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>
|
Загрузка…
Ссылка в новой задаче