-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Allow <dialog> to move back to previously focused element even if the…
…y are in different BC Differential Revision: https://phabricator.services.mozilla.com/D190957 bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1856109 gecko-commit: 630864299a197bf416ac18d405063b7ec40c3644 gecko-reviewers: emilio
- Loading branch information
1 parent
9c9b042
commit e83deaa
Showing
1 changed file
with
52 additions
and
0 deletions.
There are no files selected for viewing
52 changes: 52 additions & 0 deletions
52
html/semantics/interactive-elements/the-dialog-element/focus-previous-iframe.tentative.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
<!DOCTYPE html> | ||
<meta charset="utf-8"> | ||
<meta name="viewport" content="width=device-width,initial-scale=1"> | ||
<title>Test focus is moved to the previously focused element when dialog is closed</title> | ||
<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> | ||
|
||
<body> | ||
<dialog>Dialog in parent</dialog> | ||
|
||
<iframe srcdoc="<input><dialog> Dialog in child </dialog>"></iframe> | ||
|
||
<input> | ||
<script> | ||
test(() => { | ||
window.onload = function() { | ||
const iframe = document.querySelector("iframe"); | ||
const input = iframe.contentDocument.querySelector("input"); | ||
// <input> in the child document is focused | ||
input.focus(); | ||
|
||
const dialog = document.querySelector("dialog"); | ||
// <dialog> in the parent document is opened | ||
dialog.showModal(); | ||
dialog.close(); | ||
|
||
assert_equals(document.activeElement, iframe); | ||
assert_equals(iframe.contentDocument.activeElement, input); | ||
} | ||
}, "Focus should move back from parent document to child document"); | ||
|
||
test(() => { | ||
window.onload = function() { | ||
const iframe = document.querySelector("iframe"); | ||
const input = document.querySelector("input"); | ||
// <input> in the parent document is focused | ||
input.focus(); | ||
|
||
const dialog = iframe.contentDocument.querySelector("dialog"); | ||
|
||
// <dialog> in the child document is focused | ||
dialog.showModal(); | ||
dialog.close(); | ||
|
||
assert_equals(document.activeElement, input); | ||
} | ||
}, "Focus should move back from child document to parent document"); | ||
</script> | ||
</body> |