forked from web-platform-tests/wpt
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
2 changed files
with
61 additions
and
0 deletions.
There are no files selected for viewing
6 changes: 6 additions & 0 deletions
6
...sequential-focus-navigation-and-the-tabindex-attribute/resources/frameset-using-page.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,6 @@ | ||
<!DOCTYPE html> | ||
<meta charset="utf-8"> | ||
<title>We'll grab a frame from this page to test its tabIndex</title> | ||
<frameset> | ||
<frame></frame> | ||
</frameset> |
55 changes: 55 additions & 0 deletions
55
...n/focus/sequential-focus-navigation-and-the-tabindex-attribute/tabindex-getter-frame.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,55 @@ | ||
<!DOCTYPE html> | ||
<meta charset="utf-8"> | ||
<title>HTML Test: tabIndex getter return value for frames</title> | ||
<link rel="help" href="https://html.spec.whatwg.org/multipage/interaction.html#dom-tabindex"> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
|
||
<!-- <frame> elements are harder to test than the rest so they get their own file --> | ||
|
||
<body> | ||
|
||
<script> | ||
"use strict"; | ||
test(() => { | ||
const frame = document.createElement("frame"); | ||
assert_equals(frame.tabIndex, 0); | ||
}, "disconnected frame element .tabIndex should return 0 by default"); | ||
|
||
for (const setValue of [-1, 0, 1]) { | ||
test(() => { | ||
const frame = document.createElement("frame"); | ||
frame.setAttribute("tabindex", setValue); | ||
assert_equals(frame.tabIndex, setValue); | ||
}, `disconnected frame element .tabIndex should return ${setValue} when set to ${setValue}`); | ||
} | ||
|
||
promise_test(async t => { | ||
const frame = await getFrame(t); | ||
assert_equals(frame.tabIndex, 0); | ||
}, "connected frame element inside frameset .tabIndex should return 0 by default"); | ||
|
||
for (const setValue of [-1, 0, 1]) { | ||
promise_test(async t => { | ||
const frame = await getFrame(t); | ||
frame.setAttribute("tabindex", setValue); | ||
assert_equals(frame.tabIndex, setValue); | ||
}, `connected frame element inside frameset .tabIndex should return ${setValue} when set to ${setValue}`); | ||
} | ||
|
||
|
||
function getFrame(t) { | ||
return new Promise((resolve, reject) => { | ||
const iframe = document.createElement("iframe"); | ||
t.add_cleanup(() => iframe.remove()); | ||
|
||
iframe.src = "resources/frameset-using-page.html"; | ||
iframe.onload = () => { | ||
resolve(iframe.contentDocument.querySelector("frame")); | ||
}; | ||
iframe.onerror = () => reject(new Error("Could not load frameset page")); | ||
|
||
document.body.append(iframe); | ||
}); | ||
} | ||
</script> |