| <!-- webkit-test-runner [ dumpJSConsoleLogInStdErr=true ] --> | |
| <!DOCTYPE HTML> | |
| <html> | |
| <body> | |
| <script src="../resources/js-test.js"></script> | |
| <div> | |
| <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> | |
| <div contentEditable> | |
| <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> | |
| <div id="console"></div> | |
| <script> | |
| description("This tests whether AXValue is writable for various form controls."); | |
| if (window.testRunner && window.accessibilityController) { | |
| jsTestIsAsync = true; | |
| window.testRunner.dumpAsText(); | |
| function check(ids, expect, index) { | |
| if (index >= ids.length) | |
| finishJSTest(); | |
| id = ids[index]; | |
| window.element = document.getElementById(id); | |
| element.focus(); | |
| setTimeout(function() { | |
| debug(id); | |
| shouldBe("document.activeElement == element", "true"); | |
| window.axElement = accessibilityController.focusedElement; | |
| shouldBe("axElement.isAttributeSettable('AXValue')", String(expect[index])); | |
| check(ids, expect, ++index); | |
| }, 0); | |
| } | |
| var ids = ["text1", "text2", "number1", "number2", "textarea1", "textarea2", "slider1", "slider2", "checkbox1", "checkbox2", "radio1", "radio2", "submit1", "submit2", "combobox1", "combobox2", "listbox1", "listbox2"]; | |
| // All text-like form controls and slider should have a writable AXValue. | |
| // Other controls whose contents or state can be user modified should have a read-only | |
| // AXValue for non-ATSPI-based platforms, unless those controls are inside contentEditable, | |
| // then everything should have a writable AXValue. | |
| var expect; | |
| if (accessibilityController.platformName != "atspi") | |
| expect = [true, true, true, true, true, true, true, true, false, true, false, true, false, true, false, true, false, true]; | |
| else | |
| expect = [true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true]; | |
| check(ids, expect, 0); | |
| } | |
| </script> | |
| </body> | |
| </html> |