Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 1 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /html/interaction/focus/focus-management/focus-event-targets-simple.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Focus events fire at correct targets in correct order in simple case</title>
<meta name="flags" content="dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<input type="text" id="a">
<script>
// Record all the focus event targets in an array.
// Modulo special cases in the "focus update steps" algorithm,
// this should be the same as the new focus chain, except in reverse order.
var newFocusChainReversedNotQuite = [];
var pushTarget = function (e) {
newFocusChainReversedNotQuite.push(e.target);
};
// Window is the root node for event dispatch per https://html.spec.whatwg.org/multipage/webappapis.html#events-and-the-window-object
window.addEventListener('focus', pushTarget, true);// Use event capturing since focus event doesn't bubble
var input = document.getElementById('a');
input.focus();
window.removeEventListener('focus', pushTarget, true);
test(function() {
assert_array_equals(newFocusChainReversedNotQuite, [input], "Exactly 1 focus event should fire and its target should be the input");
}, "Focus events fire at correct targets in correct order in simple case");
</script>
</body>
</html>