| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| |
| <a href="#fragment1" id="link1" tabindex="0">link1</a> |
| <a href="#fragment2" id="link2" tabindex="0">link2</a> |
| |
| <br><br> |
| |
| <div id="fragment1" name="fragment1" tabindex="0">fragment1</div> |
| <div id="fragment2" name="fragment2">fragment2</div> |
| <div id="fragment3" name="fragment3" tabindex="0">fragment3</div> |
| |
| <script> |
| |
| description("This tests that if an in-page link is activated, focus control is transferred to the fragment if possible."); |
| |
| var link1 = document.getElementById("link1"); |
| link1.focus(); |
| debug("Verify that the focus is on the link."); |
| shouldBe("document.activeElement", "link1"); |
| |
| link1.click(); |
| debug("Click the link and verify that focus has moved to the fragment."); |
| shouldBe("document.activeElement", "document.getElementById('fragment1')"); |
| |
| debug("Move focus back to the link and verify."); |
| link1.focus(); |
| shouldBe("document.activeElement", "link1"); |
| |
| if (window.testRunner) { |
| debug("Send an enter key event which should also trigger focus to move to the fragment."); |
| eventSender.keyDown("\r"); |
| shouldBe("document.activeElement", "document.getElementById('fragment1')"); |
| |
| debug("Verify Tab behaves correctly after following the link."); |
| eventSender.keyDown("\t"); |
| shouldBe("document.activeElement", "document.getElementById('fragment3')"); |
| eventSender.keyDown("\t", ["shiftKey"]); |
| shouldBe("document.activeElement", "document.getElementById('fragment1')"); |
| } |
| |
| debug("Activate a link that does not have a focusable fragment and verify that the currently focused element is unfocused."); |
| var link2 = document.getElementById("link2"); |
| link2.focus(); |
| shouldBe("document.activeElement", "link2"); |
| link2.click(); |
| shouldBe("document.activeElement", "document.body"); |
| |
| var successfullyParsed = true; |
| |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |