<!DOCTYPE HTML>
<html>
<head>
<script src="../resources/js-test-pre.js"></script>
</head>
<body>

<div>
  <a id="link1" href="#">Link</a>
  <button id="button1">Button</button>
  <button id="labeled-button1" aria-label="Label">Button</button>
  <button id="button-with-title1" title="Title">Button</button>
  <input id="text1" type="text" value="Value">
  <input id="checkbox1" type="checkbox" checked>
  <input id="number1" type="number" value="123">
  <input id="radio1" type="radio" checked>
  <input id="slider1" type="range" min="1" max="10" value="5">
  <input id="submit1" type="submit">
  <select id="combobox1"><option>1<option selected>2</select>
  <select multiple id="listbox1"><option>1<option selected>2</select>
  <textarea id="textarea1">Textarea</textarea>
  <div id="focusable1" tabindex="0">Focusable</div>
  <h5 id="heading1" tabindex="0">Heading</h5>
  <div id="aria-button1" tabindex="0" role="button">ARIA button</div>
  <div id="aria-disabledbutton1" tabindex="0" role="button" aria-disabled="true">ARIA disabled button</div>
  <div id="aria-enabledbutton1" tabindex="0" role="button" aria-disabled="false">ARIA enabled button</div>
  <div id="aria-requiredbutton1" tabindex="0" role="button" aria-required="true">ARIA required button</div>
  <div id="aria-togglebutton1" tabindex="0" role="button" aria-pressed="false">ARIA toggle button</div>
  <div id="aria-link1" tabindex="0" role="link">ARIA link</div>
</div>

<canvas id="myCanvas" width="300" height="300">
  <a id="link2" href="#">Link</a>
  <button id="button2">Button</button>
  <button id="labeled-button2" aria-label="Label">Button</button>
  <button id="button-with-title2" title="Title">Button</button>
  <input id="text2" type="text" value="Value">
  <input id="checkbox2" type="checkbox" checked>
  <input id="number2" type="number" value="123">
  <input id="radio2" type="radio" checked>
  <input id="slider2" type="range" min="1" max="10" value="5">
  <input id="submit2" type="submit">
  <select id="combobox2"><option>1<option selected>2</select>
  <select multiple id="listbox2"><option>1<option selected>2</select>
  <textarea id="textarea2">Textarea</textarea>
  <div id="focusable2" tabindex="0">Focusable</div>
  <h5 id="heading2" tabindex="0">Heading</h5>
  <div id="aria-button2" tabindex="0" role="button">ARIA button</div>
  <div id="aria-disabledbutton2" tabindex="0" role="button" aria-disabled="true">ARIA disabled button</div>
  <div id="aria-enabledbutton2" tabindex="0" role="button" aria-disabled="false">ARIA enabled button</div>
  <div id="aria-requiredbutton2" tabindex="0" role="button" aria-required="true">ARIA required button</div>
  <div id="aria-togglebutton2" tabindex="0" role="button" aria-pressed="false">ARIA toggle button</div>
  <div id="aria-link2" tabindex="0" role="link">ARIA link</div>
</canvas>

<div id="console"></div>

<script>
    description("This tests a number of different elements in canvas fallback content to make sure their accessible attributes are essentially identical to the corresponding elements outside of canvas fallback content.");

    if (window.testRunner && window.accessibilityController) {
        window.testRunner.dumpAsText();

        function check(id1, id2) {
            window.axElement1 = accessibilityController.accessibleElementById(id1);
            window.axElement2 = accessibilityController.accessibleElementById(id2);

            debug(id1);
            debug(id2);
            shouldBe("axElement2.role", "axElement1.role");
            shouldBe("axElement2.roleDescription", "axElement1.roleDescription");
            shouldBe("axElement2.title", "axElement1.title");
            shouldBe("axElement2.description", "axElement1.description");
            shouldBe("axElement2.helpText", "axElement1.helpText");
            shouldBe("axElement2.stringValue", "axElement1.stringValue");
            shouldBe("axElement2.isEnabled", "axElement1.isEnabled");
            shouldBe("axElement2.isRequired", "axElement1.isRequired");
            shouldBe("axElement2.isChecked", "axElement1.isChecked");
            shouldBe("axElement2.intValue", "axElement1.intValue");
            shouldBe("axElement2.minValue", "axElement1.minValue");
            shouldBe("axElement2.maxValue", "axElement1.maxValue");
            debug("");
        }

        check("link1", "link2");
        check("button1", "button2");
        check("labeled-button1", "labeled-button2");
        check("button-with-title1", "button-with-title2");
        check("text1", "text2");
        check("checkbox1", "checkbox2");
        check("number1", "number2");
        check("radio1", "radio2");
        check("slider1", "slider2");
        check("submit1", "submit2");
        check("combobox1", "combobox2");
        check("listbox1", "listbox2");
        check("textarea1", "textarea2");
        check("focusable1", "focusable2");
        check("heading1", "heading2");
        check("aria-button1", "aria-button2");
        check("aria-disabledbutton1", "aria-disabledbutton2");
        check("aria-enabledbutton1", "aria-enabledbutton2");
        check("aria-requiredbutton1", "aria-requiredbutton2");
        check("aria-togglebutton1", "aria-togglebutton2");
        check("aria-link1", "aria-link2");
    }
</script>
<script src="../resources/js-test-post.js"></script>
</body>
</html>
