This test verifies that clicking an empty container in an anchor element with a tabindex correctly focuses the anchor without hanging the web content process. To run the test manually, tap or click the red box; the active element should be set to the anchor element, and the web process should remain responsive.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS Clicked target.
PASS document.activeElement is anchor
PASS successfullyParsed is true

TEST COMPLETE


