Tests to ensure that accesskey works in iframes and other iframes don't effect current accesskey maps.

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



Accesskeys should work in an iframe. "iframe1" has both "inputG" and "inputH" (accesskey="c") elements.
PASS iframe1.contentDocument.getElementById("inputG").focus(); pressAccessKey("c"); targetsOfFocusEvents is ["inputG", "inputH"]

"inputC" element has an accessKey of "a" and other iframes also have elements with accesskey of "a". An acccesskey should not be overridden by other iframes, so "inputC" should be selected.
PASS document.getElementById("inputB").focus(); pressAccessKey("a"); targetsOfFocusEvents; is ["inputB", "inputC"]

A child iframe, iframe1, has an element with accesskey of "d", which should be ignored.
PASS document.getElementById("inputB").focus(); pressAccessKey("d"); targetsOfFocusEvents is ["inputB"]

An accesskey defined in an ancestor iframe should be ignored. "inputD" has accesskey of "b", which should not be selected from descendant iframes, iframe1 and iframe2.
PASS iframe1.contentDocument.getElementById("inputG").focus(); pressAccessKey("b"); targetsOfFocusEvents is ["inputG"]
PASS iframe2.contentDocument.getElementById("inputK").focus(); pressAccessKey("b"); targetsOfFocusEvents is ["inputK"]
PASS successfullyParsed is true

TEST COMPLETE

