diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/wai-aria | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/wai-aria')
240 files changed, 32536 insertions, 0 deletions
diff --git a/testing/web-platform/tests/wai-aria/META.yml b/testing/web-platform/tests/wai-aria/META.yml new file mode 100644 index 0000000000..864132a5a3 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/META.yml @@ -0,0 +1,5 @@ +spec: https://w3c.github.io/aria/ +suggested_reviewers: + - halindrome + - joanmarie + - michael-n-cooper diff --git a/testing/web-platform/tests/wai-aria/README.md b/testing/web-platform/tests/wai-aria/README.md new file mode 100644 index 0000000000..4e1a7706e3 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/README.md @@ -0,0 +1,65 @@ +Wai-aria: Tests for the WAI-ARIA Recommendations +================================================ + +The [WAI ARIA Recommendations](https://www.w3.org/TR/wai-aria) +define extensions to HTML4/5 for support of extended semantics. These +semantics make it easier for Assistive Technologies to interpret and +present content to users with varying physical and cognitive abilities. + +The purpose of these tests is to help ensure that user agents support the +requirements of the Recommendations. + +The general approach for this testing is to enable both manual and automated +testing, with a preference for automation. + + +Running Tests +------------- + +In order to run these tests in an automated fashion, you will need to have a +special Assistive Technology Test Adapter (ATTA) for the platform under test. We will +provide a list of these for popular platforms here as they are made available. + +The ATTA will monitor the window under test via the platforms Accessibility +Layer, forwarding information about the Accessibility Tree to the running test +so that it can evaluate support for the various features under test. + +The workflow for running these tests is something like: + +1. Start up the ATTA for the platform under test, informing it of the location + of the test server and the user agent to be tested. +2. Start up the test driver window and select the wai-aria tests to be run + (e.g., the ARIA 1.1 tests) - click "Start" +3. A window pops up that shows a test - the description of which tells the + tester what is being tested. In an automated test, the test with proceed + without user intervention. In a manual test, some user input may be required + in order to stimulate the test. +4. The test runs. Success or failure is determined and reported to the test + driver window, which then cycles to the next test in the sequence. +5. Repeat steps 2-4 until done. +6. Download the JSON format report of test results, which can then be visually + inspected, reported on using various tools, or passed on to W3C for + evaluation and collection in the Implementation Report via github. + +**Remember that while these tests are written to help exercise implementations, +their other (important) purpose is to increase confidence that there are +interoperable implementations.** So, implementers are the audience, but these +tests are not meant to be a comprehensive collection of tests for a client that +might implement the Recommendation. + + +Capturing and Reporting Results +------------------------------- + +As tests are run against implementations, if the results of testing are +submitted to [test-results](https://github.com/w3c/test-results/) then they will +be automatically included in documents generated by +[wptreport](https://www.github.com/w3c/wptreport). The same tool can be used +locally to view reports about recorded results. + + +Writing Tests +------------- + +If you are interested in writing tests for this environment, see the +associated [CONTRIBUTING](CONTRIBUTING.md) document. diff --git a/testing/web-platform/tests/wai-aria/alertdialog_modal_false-manual.html b/testing/web-platform/tests/wai-aria/alertdialog_modal_false-manual.html new file mode 100644 index 0000000000..ee64c9dbf0 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/alertdialog_modal_false-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>alertdialog modal false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_DIALOG" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_MODAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXApplicationAlertDialog" + ], + [ + "property", + "AXRoleDescription", + "is", + "web alert dialog" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DIALOG" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_MODAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DIALOG" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Pane" + ], + [ + "result", + "Window.isModal", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "Test2", + "test" : { + "AXAPI" : [ + [ + "property", + "accessible", + "is", + "true" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "alertdialog modal false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for alertdialog modal false.</p> + <h1 id="Test2">Modal Dialog Box Test</h1> + <div role="alertdialog" aria-modal="false" id="test"> + You have an error. + <input type="button" value="ok"/> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/alertdialog_modal_true-manual.html b/testing/web-platform/tests/wai-aria/alertdialog_modal_true-manual.html new file mode 100644 index 0000000000..4affe2fd5e --- /dev/null +++ b/testing/web-platform/tests/wai-aria/alertdialog_modal_true-manual.html @@ -0,0 +1,107 @@ +<!doctype html> +<html> + <head> + <title>alertdialog modal true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_DIALOG" + ], + [ + "property", + "states", + "contains", + "STATE_MODAL" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DIALOG" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_MODAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DIALOG" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Pane" + ], + [ + "result", + "Window.isModal", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "Test2", + "test" : { + "AXAPI" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "alertdialog modal true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for alertdialog modal true.</p> + <h1 id="Test2">Modal Dialog Box Test</h1> + <div role="alertdialog" aria-modal="true" id="test"> + You have an error. + <input type="button" value="ok"/> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/application_activedescendant-manual.html b/testing/web-platform/tests/wai-aria/application_activedescendant-manual.html new file mode 100644 index 0000000000..a6ef85ac3d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/application_activedescendant-manual.html @@ -0,0 +1,202 @@ +<!doctype html> +<html> + <head> + <title>application activedescendant</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "event" : "focus", + "title" : "step 1", + "type" : "event" + }, + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_EMBEDDED" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_FOCUSABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXWebApplication" + ], + [ + "property", + "AXRoleDescription", + "is", + "web application" + ], + [ + "property", + "AXFocused", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_APPLICATION" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Pane" + ], + [ + "property", + "LocalizedControlType", + "is", + "application" + ], + [ + "property", + "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId", + "is", + "true" + ], + [ + "property", + "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId", + "is", + "false" + ] + ] + }, + "title" : "step 2", + "type" : "test" + }, + { + "element" : "bob", + "test" : { + "ATK" : [ + [ + "property", + "states", + "contains", + "STATE_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_FOCUSABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXFocused", + "is", + "true" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXFocused)", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSABLE" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId", + "is", + "true" + ], + [ + "property", + "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId", + "is", + "true" + ] + ] + }, + "title" : "step 3", + "type" : "test" + } + ], + "title" : "application activedescendant" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for application activedescendant.</p> + <div id='test' tabindex="0" aria-activedescendant="bob" role='application'> + <div id='bob' role='group'>Hello world</div> + </div> + then role:application, aria-activedescendant: bob + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/application_activedescendant_value_changes-manual.html b/testing/web-platform/tests/wai-aria/application_activedescendant_value_changes-manual.html new file mode 100644 index 0000000000..d923c84dea --- /dev/null +++ b/testing/web-platform/tests/wai-aria/application_activedescendant_value_changes-manual.html @@ -0,0 +1,253 @@ +<!doctype html> +<html> + <head> + <title>application activedescendant value changes</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "event" : "focus", + "title" : "step 1", + "type" : "event" + }, + { + "attribute" : "aria-activedescendant", + "element" : "test", + "title" : "step 2", + "type" : "attribute", + "value" : "\"bob\"" + }, + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_EMBEDDED" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_FOCUSABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXWebApplication" + ], + [ + "property", + "AXRoleDescription", + "is", + "web application" + ], + [ + "property", + "AXFocused", + "is", + "false" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXFocused)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "event", + "type", + "is", + "EVENT_OBJECT_FOCUS" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_APPLICATION" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Pane" + ], + [ + "property", + "LocalizedControlType", + "is", + "application" + ], + [ + "property", + "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId", + "is", + "true" + ], + [ + "property", + "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId", + "is", + "false" + ] + ] + }, + "title" : "step 3", + "type" : "test" + }, + { + "element" : "bob", + "test" : { + "ATK" : [ + [ + "property", + "states", + "contains", + "STATE_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_FOCUSABLE" + ], + [ + "event", + "type", + "is", + "object:state-changed:focused" + ], + [ + "event", + "detail1", + "is", + "1" + ] + ], + "AXAPI" : [ + [ + "property", + "AXFocused", + "is", + "true" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXFocused)", + "is", + "true" + ], + [ + "event", + "type", + "is", + "AXFocusedUIElementChanged" + ] + ], + "MSAA" : [ + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSABLE" + ], + [ + "event", + "type", + "is", + "EVENT_OBJECT_FOCUS" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId", + "is", + "true" + ], + [ + "property", + "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId", + "is", + "true" + ], + [ + "event", + "type", + "is", + "UIA_AutomationFocusChangedEventId" + ] + ] + }, + "title" : "step 4", + "type" : "test" + } + ], + "title" : "application activedescendant value changes" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for application activedescendant value changes.</p> + <div id='test' tabindex="0" role='application'> + <div id='bob' role='group'>Hello world</div> + </div> + then role:application, aria-activedescendant: bob generates a state change event + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/aria-current_not_declared-manual.html b/testing/web-platform/tests/wai-aria/aria-current_not_declared-manual.html new file mode 100644 index 0000000000..ecf95bb64f --- /dev/null +++ b/testing/web-platform/tests/wai-aria/aria-current_not_declared-manual.html @@ -0,0 +1,116 @@ +<!doctype html> +<html> + <head> + <title>aria-current not declared</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_ACTIVE" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "current:false" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXARIACurrent", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTITEM" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "current:false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTITEM" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ListItem" + ], + [ + "property", + "current", + "is", + "" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-current not declared" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-current not declared.</p> + <ul role="list"> + <li id="test" role="listitem">2</li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_changes-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_changes-manual.html new file mode 100644 index 0000000000..d3f1eae005 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_changes-manual.html @@ -0,0 +1,110 @@ +<!doctype html> +<html> + <head> + <title>aria-current with value changes</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "attribute" : "aria-current", + "element" : "test", + "title" : "step 1", + "type" : "attribute", + "value" : "\"false\"" + }, + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "states", + "doesNotContain", + "STATE_ACTIVE" + ], + [ + "property", + "objectAttributes", + "contains", + "current:false" + ], + [ + "event", + "type", + "is", + "object:state-changed:active" + ], + [ + "event", + "detail1", + "is", + "0" + ] + ], + "AXAPI" : [ + [ + "property", + "AXARIACurrent", + "contains", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "current:false" + ], + [ + "event", + "type", + "is", + "IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED" + ] + ], + "UIA" : [ + [ + "property", + "current", + "is", + "false" + ], + [ + "event", + "type", + "is", + "PropertyChangedEvent" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "aria-current with value changes" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-current with value changes.</p> + <ul role="list"> + <li id="test" role="listitem" aria-current="true">1</li> + <li role="listitem" aria-current="false">2</li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_date-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_date-manual.html new file mode 100644 index 0000000000..b15f5ec13a --- /dev/null +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_date-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>aria-current with value date</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "states", + "contains", + "STATE_ACTIVE" + ], + [ + "property", + "objectAttributes", + "contains", + "current:date" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIACurrent", + "is", + "date" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "current:date" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "controlPatterns", + "contains", + "TableItem" + ], + [ + "property", + "current", + "is", + "date" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-current with value date" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-current with value date.</p> + <table> + <tr> + <td id="test" role="cell" aria-current="date">1</td> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_location-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_location-manual.html new file mode 100644 index 0000000000..e8cf762c0e --- /dev/null +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_location-manual.html @@ -0,0 +1,114 @@ +<!doctype html> +<html> + <head> + <title>aria-current with value location</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_IMAGE" + ], + [ + "property", + "states", + "contains", + "STATE_ACTIVE" + ], + [ + "property", + "objectAttributes", + "contains", + "current:location" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXImage" + ], + [ + "property", + "AXARIACurrent", + "is", + "location" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GRAPHIC" + ], + [ + "property", + "objectAttributes", + "contains", + "current:location" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleImage" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GRAPHIC" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Image" + ], + [ + "property", + "current", + "is", + "location" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-current with value location" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-current with value location.</p> + <div id="test" role="img" aria-current="location">1</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_page-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_page-manual.html new file mode 100644 index 0000000000..ba48b738cc --- /dev/null +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_page-manual.html @@ -0,0 +1,120 @@ +<!doctype html> +<html> + <head> + <title>aria-current with value page</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LINK" + ], + [ + "property", + "states", + "contains", + "STATE_ACTIVE" + ], + [ + "property", + "objectAttributes", + "contains", + "current:page" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXLink" + ], + [ + "property", + "AXARIACurrent", + "is", + "page" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LINK" + ], + [ + "property", + "objectAttributes", + "contains", + "current:page" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleHypertext" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LINK" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_LINKED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HyperLink" + ], + [ + "property", + "current", + "is", + "page" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-current with value page" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-current with value page.</p> + <div id="test" role="link" aria-current="page">1</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_step-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_step-manual.html new file mode 100644 index 0000000000..6f4d5986c6 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_step-manual.html @@ -0,0 +1,120 @@ +<!doctype html> +<html> + <head> + <title>aria-current with value step</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LINK" + ], + [ + "property", + "states", + "contains", + "STATE_ACTIVE" + ], + [ + "property", + "objectAttributes", + "contains", + "current:step" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXLink" + ], + [ + "property", + "AXARIACurrent", + "is", + "step" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LINK" + ], + [ + "property", + "objectAttributes", + "contains", + "current:step" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleHypertext" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LINK" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_LINKED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HyperLink" + ], + [ + "property", + "current", + "is", + "step" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-current with value step" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-current with value step.</p> + <div id="test" role="link" aria-current="step">1</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_time-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_time-manual.html new file mode 100644 index 0000000000..046fb81769 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_time-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>aria-current with value time</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "states", + "contains", + "STATE_ACTIVE" + ], + [ + "property", + "objectAttributes", + "contains", + "current:time" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIACurrent", + "is", + "time" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "current:time" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "controlPatterns", + "contains", + "TableItem" + ], + [ + "property", + "current", + "is", + "time" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-current with value time" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-current with value time.</p> + <table> + <tr> + <td id="test" role="cell" aria-current="time">1</td> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_true-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_true-manual.html new file mode 100644 index 0000000000..3ce799f8b2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_true-manual.html @@ -0,0 +1,116 @@ +<!doctype html> +<html> + <head> + <title>aria-current with value true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_ITEM" + ], + [ + "property", + "states", + "contains", + "STATE_ACTIVE" + ], + [ + "property", + "objectAttributes", + "contains", + "current:true" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXARIACurrent", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTITEM" + ], + [ + "property", + "objectAttributes", + "contains", + "current:true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTITEM" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ListItem" + ], + [ + "property", + "current", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-current with value true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-current with value true.</p> + <ul role="list"> + <li id="test" role="listitem" aria-current="true">1</li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_unspecified-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_unspecified-manual.html new file mode 100644 index 0000000000..c017a000a1 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_unspecified-manual.html @@ -0,0 +1,110 @@ +<!doctype html> +<html> + <head> + <title>aria-current with value unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_ACTIVE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXARIACurrent", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTITEM" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "current:false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTITEM" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ListItem" + ], + [ + "property", + "current", + "is", + "" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-current with value unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-current with value unspecified.</p> + <ul role="list"> + <li id="test" role="listitem" aria-current="">1</li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/aria-details_pointing_to_details_element-manual.html b/testing/web-platform/tests/wai-aria/aria-details_pointing_to_details_element-manual.html new file mode 100644 index 0000000000..6a0d9d776a --- /dev/null +++ b/testing/web-platform/tests/wai-aria/aria-details_pointing_to_details_element-manual.html @@ -0,0 +1,90 @@ +<!doctype html> +<html> + <head> + <title>aria-details pointing to details element</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "relation", + "RELATION_DETAILS", + "is", + "[details]" + ] + ], + "IAccessible2" : [ + [ + "property", + "relations", + "contains", + "IA2_RELATION_DETAILS" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.DescribedBy", + "is", + "[details]" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "details", + "test" : { + "ATK" : [ + [ + "relation", + "RELATION_DETAILS_FOR", + "is", + "[test]" + ] + ], + "IAccessible2" : [ + [ + "property", + "relations", + "contains", + "IA2_RELATION_DETAILS_FOR" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "aria-details pointing to details element" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-details pointing to details element.</p> + <img id="test" src="foo.jpg" aria-details="details"> + <details id="details"> + <summary>More information at W3.org</summary> + <iframe src="data:text/html,<body>foo</body>"/> + </details> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/aria-details_pointing_to_div_element-manual.html b/testing/web-platform/tests/wai-aria/aria-details_pointing_to_div_element-manual.html new file mode 100644 index 0000000000..8a46e78d97 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/aria-details_pointing_to_div_element-manual.html @@ -0,0 +1,89 @@ +<!doctype html> +<html> + <head> + <title>aria-details pointing to div element</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "relation", + "RELATION_DETAILS", + "is", + "[details]" + ] + ], + "IAccessible2" : [ + [ + "property", + "relations", + "contains", + "IA2_RELATION_DETAILS" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.DescribedBy", + "is", + "[details]" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "details", + "test" : { + "ATK" : [ + [ + "relation", + "RELATION_DETAILS_FOR", + "is", + "[test]" + ] + ], + "IAccessible2" : [ + [ + "property", + "relations", + "contains", + "IA2_RELATION_DETAILS_FOR" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "aria-details pointing to div element" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-details pointing to div element.</p> + <img id="test" src="foo.jpg" aria-details="details"> + <div id="details"> + <iframe src="data:text/html,<body>foo</body>"/> + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/article_in_feed_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/article_in_feed_posinset_and_setsize-manual.html new file mode 100644 index 0000000000..9c89dc3fa9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/article_in_feed_posinset_and_setsize-manual.html @@ -0,0 +1,170 @@ +<!doctype html> +<html> + <head> + <title>article in feed posinset and setsize</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ARTICLE" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:article" + ], + [ + "property", + "objectAttributes", + "contains", + "posinset:4" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:8" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXDocumentArticle" + ], + [ + "property", + "AXRoleDescription", + "is", + "article" + ], + [ + "property", + "AXARIAPosInSet", + "is", + "4" + ], + [ + "property", + "AXARIASetSize", + "is", + "8" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "xml-roles:article" + ], + [ + "property", + "objectAttributes", + "contains", + "posinset:4" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:8" + ], + [ + "property", + "groupPosition", + "contains", + "similarItemsInGroup:8" + ], + [ + "property", + "groupPosition", + "contains", + "positionInGroup:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DOCUMENT" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Group" + ], + [ + "property", + "LocalizedControlType", + "is", + "article" + ], + [ + "property", + "AriaProperties.posinset", + "is", + "4" + ], + [ + "property", + "AriaProperties.setsize", + "is", + "8" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "article in feed posinset and setsize" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for article in feed posinset and setsize.</p> + <div role="feed"> + <div id="test" role="article" aria-posinset="4" aria-setsize="8">test cell</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/article_in_feed_setsize_-1-manual.html b/testing/web-platform/tests/wai-aria/article_in_feed_setsize_-1-manual.html new file mode 100644 index 0000000000..0552f926e9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/article_in_feed_setsize_-1-manual.html @@ -0,0 +1,140 @@ +<!doctype html> +<html> + <head> + <title>article in feed setsize -1</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ARTICLE" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:article" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:-1" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXDocumentArticle" + ], + [ + "property", + "AXRoleDescription", + "is", + "article" + ], + [ + "property", + "AXARIASetSize", + "is", + "-1" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "xml-roles:article" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:-1" + ], + [ + "property", + "groupPosition", + "contains", + "similarItemsInGroup:-1" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DOCUMENT" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Group" + ], + [ + "property", + "LocalizedControlType", + "is", + "article" + ], + [ + "property", + "AriaProperties.setsize", + "is", + "-1" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "article in feed setsize -1" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for article in feed setsize -1.</p> + <div role="feed"> + <div id="test" role="article" aria-setsize="-1">test cell</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/article_not_in_feed_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/article_not_in_feed_posinset_and_setsize-manual.html new file mode 100644 index 0000000000..91cb0e0eb4 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/article_not_in_feed_posinset_and_setsize-manual.html @@ -0,0 +1,174 @@ +<!doctype html> +<html> + <head> + <title>article not in feed posinset and setsize</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ARTICLE" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:article" + ], + [ + "property", + "objectAttributes", + "contains", + "posinset:4" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:8" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXDocumentArticle" + ], + [ + "property", + "AXRoleDescription", + "is", + "article" + ], + [ + "property", + "AXARIAPosInSet", + "is", + "4" + ], + [ + "property", + "AXARIASetSize", + "is", + "8" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DOCUMENT" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:article" + ], + [ + "property", + "objectAttributes", + "contains", + "posinset:4" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:8" + ], + [ + "property", + "groupPosition", + "contains", + "similarItemsInGroup:8" + ], + [ + "property", + "groupPosition", + "contains", + "positionInGroup:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DOCUMENT" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Group" + ], + [ + "property", + "LocalizedControlType", + "is", + "article" + ], + [ + "property", + "AriaProperties.posinset", + "is", + "4" + ], + [ + "property", + "AriaProperties.setsize", + "is", + "8" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "article not in feed posinset and setsize" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for article not in feed posinset and setsize.</p> + <div id="test" role="article" aria-posinset="4" aria-setsize="8">test cell</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_dialog-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_dialog-manual.html new file mode 100644 index 0000000000..8ba0a22a8d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_haspopup_dialog-manual.html @@ -0,0 +1,132 @@ +<!doctype html> +<html> + <head> + <title>button haspopup dialog</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:dialog" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXPopUpButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "pop up button" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:dialog" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControlType", + "is", + "Button" + ], + [ + "property", + "controlPatterns", + "contains", + "ExpandCollapse" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button haspopup dialog" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button haspopup dialog.</p> + <div id="test" role="button" aria-haspopup="dialog"> + OK + </div> + <div role="dialog"> + This is the dialog box + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_emptystring-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_emptystring-manual.html new file mode 100644 index 0000000000..e909148906 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_haspopup_emptystring-manual.html @@ -0,0 +1,129 @@ +<!doctype html> +<html> + <head> + <title>button haspopup emptystring</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:false" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HAS_POPUP" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "button" + ], + [ + "property", + "actions", + "doesNotContain", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_HASPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControlType", + "is", + "Button" + ], + [ + "property", + "controlPatterns", + "doesNotContain", + "ExpandCollapse" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button haspopup emptystring" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button haspopup emptystring.</p> + <div id="test" role="button" aria-haspopup=""> + OK + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_false-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_false-manual.html new file mode 100644 index 0000000000..97188995e5 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_haspopup_false-manual.html @@ -0,0 +1,123 @@ +<!doctype html> +<html> + <head> + <title>button haspopup false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HAS_POPUP" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "button" + ], + [ + "property", + "actions", + "doesNotContain", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_HASPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControlType", + "is", + "Button" + ], + [ + "property", + "controlPatterns", + "doesNotContain", + "ExpandCollapse" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button haspopup false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button haspopup false.</p> + <div id="test" role="button" aria-haspopup="false"> + OK + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_foo-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_foo-manual.html new file mode 100644 index 0000000000..a09d21c074 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_haspopup_foo-manual.html @@ -0,0 +1,129 @@ +<!doctype html> +<html> + <head> + <title>button haspopup foo</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:false" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HAS_POPUP" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "button" + ], + [ + "property", + "actions", + "doesNotContain", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_HASPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControlType", + "is", + "Button" + ], + [ + "property", + "controlPatterns", + "doesNotContain", + "ExpandCollapse" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button haspopup foo" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button haspopup foo.</p> + <div id="test" role="button" aria-haspopup="foo"> + OK + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_grid-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_grid-manual.html new file mode 100644 index 0000000000..57c8efbde2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_haspopup_grid-manual.html @@ -0,0 +1,136 @@ +<!doctype html> +<html> + <head> + <title>button haspopup grid</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:grid" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXPopUpButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "pop up button" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:grid" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControlType", + "is", + "Button" + ], + [ + "property", + "controlPatterns", + "contains", + "ExpandCollapse" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button haspopup grid" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button haspopup grid.</p> + <div id="test" role="button" aria-haspopup="grid"> + OK + </div> + <table role="grid"> + <tr> + <th>c1</th><th>c2</th> + </tr> + <tr> + <td>A</td><td>B</td> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_listbox-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_listbox-manual.html new file mode 100644 index 0000000000..4191fc40a3 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_haspopup_listbox-manual.html @@ -0,0 +1,134 @@ +<!doctype html> +<html> + <head> + <title>button haspopup listbox</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:listbox" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXPopUpButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "pop up button" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:listbox" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControlType", + "is", + "Button" + ], + [ + "property", + "controlPatterns", + "contains", + "ExpandCollapse" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button haspopup listbox" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button haspopup listbox.</p> + <div id="test" role="button" aria-haspopup="listbox"> + OK + </div> + <ul role="listbox"> + <li tabindex="0" role="option">sprouts</li> + <li tabindex="-1" role="option">cucumbers</li> + </ul> + + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_menu-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_menu-manual.html new file mode 100644 index 0000000000..9378993f55 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_haspopup_menu-manual.html @@ -0,0 +1,134 @@ +<!doctype html> +<html> + <head> + <title>button haspopup menu</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:menu" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXPopUpButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "pop up button" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:menu" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControlType", + "is", + "Button" + ], + [ + "property", + "controlPatterns", + "contains", + "ExpandCollapse" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button haspopup menu" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button haspopup menu.</p> + <div id="test" role="button" aria-haspopup="menu"> + OK + </div> + <ul tabindex="0" aria-activedescendant="foo" role="menu"> + <li id="foo" tabindex="-1" role="menuitem">sprouts</li> + <li tabindex="-1" role="menuitem">cucumbers</li> + </ul> + + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_tree-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_tree-manual.html new file mode 100644 index 0000000000..e62b87f59d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_haspopup_tree-manual.html @@ -0,0 +1,140 @@ +<!doctype html> +<html> + <head> + <title>button haspopup tree</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:tree" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXPopUpButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "pop up button" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:tree" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControlType", + "is", + "Button" + ], + [ + "property", + "controlPatterns", + "contains", + "ExpandCollapse" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button haspopup tree" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button haspopup tree.</p> + <div id="test" role="button" aria-haspopup="tree"> + OK + </div> + <ul tabindex="0" aria-activedescendant="foo" role="tree"> + <li id="foo" tabindex="-1" role="treeitem"> + squash + <ul role="group"> + <li tabindex="-1"id="t1" role="treeitem">yellow</li> + <li tabindex="-1"id="t2" role="treeitem">summmer</li> + </ul> + </li> + <li tabindex="-1" role="treeitem">cucumbers</li> + </ul> + + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_true-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_true-manual.html new file mode 100644 index 0000000000..a6d94658d2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_haspopup_true-manual.html @@ -0,0 +1,129 @@ +<!doctype html> +<html> + <head> + <title>button haspopup true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:menu" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXPopUpButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "pop up button" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:menu" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControlType", + "is", + "Button" + ], + [ + "property", + "controlPatterns", + "contains", + "ExpandCollapse" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button haspopup true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button haspopup true.</p> + <div role="button" aria-haspopup="true" id="test"> + OK + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_unspecified-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_unspecified-manual.html new file mode 100644 index 0000000000..96d7095d4d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_haspopup_unspecified-manual.html @@ -0,0 +1,129 @@ +<!doctype html> +<html> + <head> + <title>button haspopup unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "haspopup" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HAS_POPUP" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "button" + ], + [ + "property", + "actions", + "doesNotContain", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_HASPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControlType", + "is", + "Button" + ], + [ + "property", + "controlPatterns", + "doesNotContain", + "ExpandCollapse" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button haspopup unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button haspopup unspecified.</p> + <div id="test" role="button"> + OK + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_roledescription_empty-manual.html b/testing/web-platform/tests/wai-aria/button_roledescription_empty-manual.html new file mode 100644 index 0000000000..d9eb0fe7cc --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_roledescription_empty-manual.html @@ -0,0 +1,104 @@ +<!doctype html> +<html> + <head> + <title>button roledescription empty</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "roledescription" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "button" + ] + ], + "IAccessible2" : [ + [ + "property", + "localizedExtendedRole", + "is", + "null" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "LocalizedControlType", + "is", + "Button" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button roledescription empty" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button roledescription empty.</p> + <div role="button" aria-roledescription="" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_roledescription_valid-manual.html b/testing/web-platform/tests/wai-aria/button_roledescription_valid-manual.html new file mode 100644 index 0000000000..cdcf6071e6 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_roledescription_valid-manual.html @@ -0,0 +1,102 @@ +<!doctype html> +<html> + <head> + <title>button roledescription valid</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "roledescription:SassyButton" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "SassyButton" + ] + ], + "IAccessible2" : [ + [ + "property", + "localizedExtendedRole", + "is", + "SassyButton" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "LocalizedControlType", + "is", + "SassyButton" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button roledescription valid" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button roledescription valid.</p> + <input type="button" value="Go Fish" aria-roledescription="SassyButton" id="test"/> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/button_roledescription_whitespace_only-manual.html b/testing/web-platform/tests/wai-aria/button_roledescription_whitespace_only-manual.html new file mode 100644 index 0000000000..59e463778a --- /dev/null +++ b/testing/web-platform/tests/wai-aria/button_roledescription_whitespace_only-manual.html @@ -0,0 +1,104 @@ +<!doctype html> +<html> + <head> + <title>button roledescription whitespace only</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "roledescription" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "button" + ] + ], + "IAccessible2" : [ + [ + "property", + "localizedExtendedRole", + "is", + "null" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "LocalizedControlType", + "is", + "Button" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "button roledescription whitespace only" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for button roledescription whitespace only.</p> + <div role="button" aria-roledescription=" " id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell-manual.html b/testing/web-platform/tests/wai-aria/cell-manual.html new file mode 100644 index 0000000000..d9f0eafbe0 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell-manual.html @@ -0,0 +1,216 @@ +<!doctype html> +<html> + <head> + <title>cell</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "foo", + "test" : { + "ATK" : [ + [ + "result", + "atk_table_get_n_columns()", + "is", + "8" + ], + [ + "property", + "objectAttributes", + "contains", + "colcount:8" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "table" + ], + [ + "property", + "AXARIAColumnCount", + "is", + "8" + ] + ], + "UIA" : [ + [ + "property", + "Grid.ColumnCount", + "is", + "8" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "result", + "atk_table_cell_get_position()", + "contains", + "column=3" + ], + [ + "property", + "interfaces", + "contains", + "TableCell" + ], + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "cell" + ], + [ + "property", + "AXARIAColumnIndex", + "is", + "4" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ], + [ + "property", + "objectAttributes", + "contains", + "colcount:8" + ], + [ + "property", + "groupPosition", + "contains", + "similarItemsInGroup:8" + ], + [ + "property", + "groupPosition", + "contains", + "positionInGroup:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "interfaces", + "contains", + "GridItem pattern" + ], + [ + "property", + "GridItem.Column", + "is", + "3" + ], + [ + "property", + "interfaces", + "contains", + "selection pattern" + ], + [ + "property", + "interfaces", + "MUST NOT contain", + "invoke pattern" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "cell" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell.</p> + <div id="foo" role="table" aria-colcount="8"> + <div role="row"> + <span id="test" role="cell" aria-colindex="4" >test cell</span> + </div> + </div> + then role: cell, aria-colindex: 4, aria-colcount:8 + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_div-manual.html new file mode 100644 index 0000000000..fa120dc5e4 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_div-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>cell aria-colspan 2 on div</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "column_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXColumnIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "TableItem.ColumnSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "cell aria-colspan 2 on div" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell aria-colspan 2 on div.</p> + <div role="table"> + <div role="row"> + <div id="test" role="cell" aria-colspan="2">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3-manual.html new file mode 100644 index 0000000000..a7c65fed3d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3-manual.html @@ -0,0 +1,112 @@ +<!doctype html> +<html> + <head> + <title>cell aria-colspan 2 on td html colspan 3</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "colspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "doesNotContain", + "column_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXColumnIndexRange.length", + "isNot", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "colspan:2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "TableItem.ColumnSpan", + "isNot", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "cell aria-colspan 2 on td html colspan 3" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell aria-colspan 2 on td html colspan 3.</p> + <table> + <tr> + <td id="test" colspan="3" aria-colspan="2">test cell</td> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html new file mode 100644 index 0000000000..057918c6b0 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html @@ -0,0 +1,115 @@ +<!doctype html> +<html> + <head> + <title>cell aria-colspan 2 on td html colspan 3 with headers and border</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "colspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "column_span=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXColumnIndexRange.length", + "is", + "3" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "colspan:2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "TableItem.ColumnSpan", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "cell aria-colspan 2 on td html colspan 3 with headers and border" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell aria-colspan 2 on td html colspan 3 with headers and border.</p> + <table border="1"> + <tr> + <th>test header 1</th><th>test header 2</th><th>test header 3</th> + </tr> + <tr> + <td id="test" colspan="3" aria-colspan="2">test cell</td> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html new file mode 100644 index 0000000000..2c05e6ea71 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html @@ -0,0 +1,109 @@ +<!doctype html> +<html> + <head> + <title>cell aria-colspan 2 on td html colspan 3 with three actual columns</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "column_span=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXColumnIndexRange.length", + "is", + "3" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "colspan:2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "TableItem.ColumnSpan", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "cell aria-colspan 2 on td html colspan 3 with three actual columns" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell aria-colspan 2 on td html colspan 3 with three actual columns.</p> + <table> + <tr> + <td>1</td><td>2</td><td>3</td> + </tr> + <tr> + <td id="test" colspan="3" aria-colspan="2">test cell</td> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html new file mode 100644 index 0000000000..06212078b7 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>cell aria-colspan 2 on td with html colspan not specified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "column_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXColumnIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "TableItem.ColumnSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "cell aria-colspan 2 on td with html colspan not specified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell aria-colspan 2 on td with html colspan not specified.</p> + <table> + <tr> + <td id="test" aria-colspan="2">test cell</td> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_div-manual.html new file mode 100644 index 0000000000..e94303848d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_div-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>cell aria-rowspan 2 on div</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "row_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRowIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "TableItem.RowSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "cell aria-rowspan 2 on div" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell aria-rowspan 2 on div.</p> + <div role="table"> + <div role="row"> + <div id="test" role="cell" aria-rowspan="2">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html new file mode 100644 index 0000000000..86ea1a4aec --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html @@ -0,0 +1,112 @@ +<!doctype html> +<html> + <head> + <title>cell aria-rowspan 2 on td html rowspan 3</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "rowspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "doesNotContain", + "row_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRowIndexRange.length", + "isNot", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "rowspan:2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "TableItem.RowSpan", + "isNot", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "cell aria-rowspan 2 on td html rowspan 3" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell aria-rowspan 2 on td html rowspan 3.</p> + <table> + <tr> + <td id="test" role="cell" rowspan="3" aria-rowspan="2">test cell</td> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html new file mode 100644 index 0000000000..f1572046f2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html @@ -0,0 +1,113 @@ +<!doctype html> +<html> + <head> + <title>cell aria-rowspan 2 on td html rowspan 3 with three actual rows</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "row_span=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRowIndexRange.length", + "is", + "3" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "rowspan:2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "TableItem.RowSpan", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "cell aria-rowspan 2 on td html rowspan 3 with three actual rows" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell aria-rowspan 2 on td html rowspan 3 with three actual rows.</p> + <table> + <tr> + <td>1</td> + <td id="test" role="cell" rowspan="3" aria-rowspan="2">test cell</td> + </tr> + <tr> + <td>2</td> + </tr> + <tr> + <td>3</td> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html new file mode 100644 index 0000000000..0978186feb --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>cell aria-rowspan 2 on td with html rowspan not specified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "row_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRowIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "TableItem.RowSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "cell aria-rowspan 2 on td with html rowspan not specified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell aria-rowspan 2 on td with html rowspan not specified.</p> + <table> + <tr> + <td id="test" role="cell" aria-rowspan="2">test cell</td> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/cell_colindex_4-manual.html new file mode 100644 index 0000000000..02003065e0 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_colindex_4-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>cell colindex 4</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ], + [ + "result", + "atk_table_cell_get_position()", + "contains", + "column=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIAColumnIndex", + "is", + "4" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ], + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "TableItem.Column", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "cell colindex 4" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell colindex 4.</p> + <div role="table"> + <div role="row"> + <div id="test" role="cell" aria-colindex="4" aria-colcount="8">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/cell_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/cell_rowindex_4-manual.html new file mode 100644 index 0000000000..ea2937efcb --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_rowindex_4-manual.html @@ -0,0 +1,112 @@ +<!doctype html> +<html> + <head> + <title>cell rowindex 4</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "rowindex:4" + ], + [ + "result", + "atk_table_cell_get_position()", + "contains", + "row=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIARowIndex", + "is", + "4" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "rowindex:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "Row", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "cell rowindex 4" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for cell rowindex 4.</p> + <div role="table"> + <div role="row"> + <div id="test" role="cell" aria-rowindex="4">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/checkbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/checkbox_readonly_false-manual.html new file mode 100644 index 0000000000..558dc8e391 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/checkbox_readonly_false-manual.html @@ -0,0 +1,120 @@ +<!doctype html> +<html> + <head> + <title>checkbox readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_CHECK_BOX" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCheckBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "checkbox" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CHECKBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "checkable:true" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CHECKBUTTON" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Checkbox" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "checkbox readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for checkbox readonly false.</p> + <div id="test" aria-readonly="false" role="checkbox">test cell</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/checkbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/checkbox_readonly_true-manual.html new file mode 100644 index 0000000000..f3c879038f --- /dev/null +++ b/testing/web-platform/tests/wai-aria/checkbox_readonly_true-manual.html @@ -0,0 +1,126 @@ +<!doctype html> +<html> + <head> + <title>checkbox readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_CHECK_BOX" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_CHECKABLE" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCheckBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "checkbox" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "checkable:true" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CHECKBUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Checkbox" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "checkbox readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for checkbox readonly true.</p> + <div id="test" aria-readonly="true" role="checkbox">test cell</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/checkbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/checkbox_readonly_unspecified-manual.html new file mode 100644 index 0000000000..583985f000 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/checkbox_readonly_unspecified-manual.html @@ -0,0 +1,120 @@ +<!doctype html> +<html> + <head> + <title>checkbox readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_CHECK_BOX" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCheckBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "checkbox" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CHECKBUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "checkable:true" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CHECKBUTTON" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Checkbox" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "checkbox readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for checkbox readonly unspecified.</p> + <div id="test" role="checkbox">test cell</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_div-manual.html new file mode 100644 index 0000000000..4789ced84d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_div-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>columnheader aria-colspan 2 on div</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "column_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXColumnIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "HeaderItem.ColumnSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader aria-colspan 2 on div" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader aria-colspan 2 on div.</p> + <div role="table"> + <div role="row"> + <div id="test" role="columnheader" aria-colspan="2">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html new file mode 100644 index 0000000000..2ad8cb4bed --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html @@ -0,0 +1,112 @@ +<!doctype html> +<html> + <head> + <title>columnheader aria-colspan 2 on th html colspan 3</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "colspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "doesNotContain", + "column_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXColumnIndexRange.length", + "isNot", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "colspan:2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "HeaderItem.ColumnSpan", + "isNot", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader aria-colspan 2 on th html colspan 3" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader aria-colspan 2 on th html colspan 3.</p> + <table> + <tr> + <th id="test" role="columnheader" colspan="3" aria-colspan="2">test cell</th> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html new file mode 100644 index 0000000000..3ac8701f5d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html @@ -0,0 +1,109 @@ +<!doctype html> +<html> + <head> + <title>columnheader aria-colspan 2 on th html colspan 3 with three actual columns</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "column_span=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXColumnIndexRange.length", + "is", + "3" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "colspan:2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "TableItem.ColumnSpan", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader aria-colspan 2 on th html colspan 3 with three actual columns" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader aria-colspan 2 on th html colspan 3 with three actual columns.</p> + <table> + <tr> + <th>1</th><th>2</th><th>3</th> + </tr> + <tr> + <th id="test" role="columnheader" colspan="3" aria-colspan="2">test cell</th> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html new file mode 100644 index 0000000000..82c7599188 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>columnheader aria-colspan 2 on th with html colspan not specified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "column_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXColumnIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "HeaderItem.ColumnSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader aria-colspan 2 on th with html colspan not specified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader aria-colspan 2 on th with html colspan not specified.</p> + <table> + <tr> + <th id="test" role="columnheader" aria-colspan="2">test cell</th> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_div-manual.html new file mode 100644 index 0000000000..00c0068392 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_div-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>columnheader aria-rowspan 2 on div</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "row_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRowIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "HeaderItem.RowSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader aria-rowspan 2 on div" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader aria-rowspan 2 on div.</p> + <div role="table"> + <div role="row"> + <div id="test" role="columnheader" aria-rowspan="2">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html new file mode 100644 index 0000000000..256a3d73bd --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html @@ -0,0 +1,112 @@ +<!doctype html> +<html> + <head> + <title>columnheader aria-rowspan 2 on th html rowspan 3</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "rowspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "doesNotContain", + "row_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRowIndexRange.length", + "isNot", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "rowspan:2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "HeaderItem.RowSpan", + "isNot", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader aria-rowspan 2 on th html rowspan 3" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader aria-rowspan 2 on th html rowspan 3.</p> + <table> + <tr> + <th id="test" role="columnheader" rowspan="3" aria-rowspan="2">test cell</th> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html new file mode 100644 index 0000000000..6327e5fb4e --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html @@ -0,0 +1,113 @@ +<!doctype html> +<html> + <head> + <title>columnheader aria-rowspan 2 on th html rowspan 3 with three actual rows</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "row_span=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRowIndexRange.length", + "is", + "3" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "rowspan:2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "HeaderItem.RowSpan", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader aria-rowspan 2 on th html rowspan 3 with three actual rows" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader aria-rowspan 2 on th html rowspan 3 with three actual rows.</p> + <table> + <tr> + <th>1</th> + <th id="test" role="columnheader" rowspan="3" aria-rowspan="2">test cell</th> + </tr> + <tr> + <th>2</th> + </tr> + <tr> + <th>3</th> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html new file mode 100644 index 0000000000..425eb5b15e --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>columnheader aria-rowspan 2 on th with html rowspan not specified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "row_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRowIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "HeaderItem.RowSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader aria-rowspan 2 on th with html rowspan not specified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader aria-rowspan 2 on th with html rowspan not specified.</p> + <table> + <tr> + <th id="test" role="columnheader" aria-rowspan="2">test cell</th> + </tr> + </table> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/columnheader_colindex_4-manual.html new file mode 100644 index 0000000000..f44e8343fb --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_colindex_4-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>columnheader colindex 4</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ], + [ + "result", + "atk_table_cell_get_position()", + "contains", + "column=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIAColumnIndex", + "is", + "4" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ], + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Column", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader colindex 4" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader colindex 4.</p> + <div role="table"> + <div role="row"> + <div id="test" role="columnheader" aria-colindex="4" aria-colcount="8">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/columnheader_rowindex_4-manual.html new file mode 100644 index 0000000000..7ab7e9c8d0 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_rowindex_4-manual.html @@ -0,0 +1,112 @@ +<!doctype html> +<html> + <head> + <title>columnheader rowindex 4</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "rowindex:4" + ], + [ + "result", + "atk_table_cell_get_position()", + "contains", + "row=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIARowIndex", + "is", + "4" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "rowindex:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "HeaderItem.Row", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader rowindex 4" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader rowindex 4.</p> + <div role="table"> + <div role="row"> + <div id="test" role="columnheader" aria-rowindex="4">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_selected_false_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/columnheader_selected_false_not_automatically_propagated-manual.html new file mode 100644 index 0000000000..7624f2a3b8 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_selected_false_not_automatically_propagated-manual.html @@ -0,0 +1,133 @@ +<!doctype html> +<html> + <head> + <title>columnheader selected false not automatically propagated</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "cell" + ], + [ + "property", + "AXSelected", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "SelectionItem.IsSelected", + "is", + "true" + ], + [ + "property", + "SelectionItem.selectionContainer", + "is", + "test1" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader selected false not automatically propagated" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader selected false not automatically propagated.</p> + <div id="test1" role="grid"> + <div role="row"> + <div role="columnheader" aria-selected="false">C1</div> + <div role="columnheader">C2</div> + </div> + <div role="row"> + <div id="test" aria-selected="true" role="gridcell">A1</div> + <div role="gridcell">A2</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/columnheader_selected_true_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/columnheader_selected_true_not_automatically_propagated-manual.html new file mode 100644 index 0000000000..1bc364cb88 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_selected_true_not_automatically_propagated-manual.html @@ -0,0 +1,133 @@ +<!doctype html> +<html> + <head> + <title>columnheader selected true not automatically propagated</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "cell" + ], + [ + "property", + "AXSelected", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "SelectionItem.IsSelected", + "is", + "false" + ], + [ + "property", + "SelectionItem.selectionContainer", + "is", + "test1" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "columnheader selected true not automatically propagated" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for columnheader selected true not automatically propagated.</p> + <div id="test1" role="grid"> + <div role="row"> + <div role="columnheader" aria-selected="true">C1</div> + <div role="columnheader">C2</div> + </div> + <div role="row"> + <div id="test" role="gridcell">A1</div> + <div role="gridcell">A2</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_controls_an_invalid_id-manual.html b/testing/web-platform/tests/wai-aria/combobox_controls_an_invalid_id-manual.html new file mode 100644 index 0000000000..91188d8e3c --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_controls_an_invalid_id-manual.html @@ -0,0 +1,98 @@ +<!doctype html> +<html> + <head> + <title>combobox controls an invalid ID</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "relations", + "doesNotContain", + "RELATION_CONTROLLER_FOR" + ] + ], + "AXAPI" : [ + [ + "property", + "AXLinkedUIElements", + "doesNotContain", + "myID" + ] + ], + "IAccessible2" : [ + [ + "property", + "relations", + "doesNotContain", + "IA2_RELATION_CONTROLLER_FOR" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomation.ControllerFor", + "doesNotContain", + "myID" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "myID", + "test" : { + "ATK" : [ + [ + "property", + "relations", + "doesNotContain", + "RELATION_CONTROLLED_BY" + ] + ], + "IAccessible2" : [ + [ + "property", + "relations", + "doesNotContain", + "IA2_RELATION_CONTROLLED_BY" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "combobox controls an invalid ID" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox controls an invalid ID.</p> + <div id="test" role="combobox" aria-controls="fakeID" aria-owns="myID" aria-expanded="true" aria-haspopup="listbox"><span role="textbox">option 3</span></div> + <div role="listbox" id="myID"> + <div role="option">option 1</div> + <div role="option">option 2</div> + <div role="option">option 3</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_dialog-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_dialog-manual.html new file mode 100644 index 0000000000..d9cf618d9b --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_dialog-manual.html @@ -0,0 +1,162 @@ +<!doctype html> +<html> + <head> + <title>combobox haspopup dialog</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDED" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:dialog" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "property", + "AXExpanded", + "is", + "true" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:dialog" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "interfaces", + "contains", + "ExpandCollapse pattern" + ], + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Expanded" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox haspopup dialog" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox haspopup dialog.</p> + <div aria-label="Tag" aria-haspopup="dialog" id="test" role="combobox" aria-expanded="true" aria-owns="owned_dialog"> + <input type="text" aria-autocomplete="list" aria-controls="owned_dialog" aria-activedescendant="selected_cell"> + <div role="radiogroup"> + <div role="radio" id="selected_radio" tabindex="-1">R1</div><div role="radio" tabindex="-1">R2</div> + </div> + <div role="button" tabindex="0">ok</div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_false-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_false-manual.html new file mode 100644 index 0000000000..2b0ca94745 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_false-manual.html @@ -0,0 +1,156 @@ +<!doctype html> +<html> + <head> + <title>combobox haspopup false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDED" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HAS_POPUP" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "property", + "AXExpanded", + "is", + "true" + ], + [ + "property", + "actions", + "doesNotContain", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_HASPOPUP" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "interfaces", + "contains", + "ExpandCollapse pattern" + ], + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Expanded" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox haspopup false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox haspopup false.</p> + <div aria-label="Tag" id="test" aria-haspopup="false" role="combobox" aria-expanded="true" aria-owns="owned_dialog"> + <input type="text" aria-autocomplete="list" aria-controls="owned_dialog" aria-activedescendant="selected_cell"> + <div role="radiogroup"> + <div role="radio" id="selected_radio" tabindex="-1">R1</div><div role="radio" tabindex="-1">R2</div> + </div> + <div role="button" tabindex="0">ok</div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_grid-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_grid-manual.html new file mode 100644 index 0000000000..a3929cf79e --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_grid-manual.html @@ -0,0 +1,164 @@ +<!doctype html> +<html> + <head> + <title>combobox haspopup grid</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDED" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:grid" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "property", + "AXExpanded", + "is", + "true" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "haspopup:grid" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "interfaces", + "contains", + "ExpandCollapse pattern" + ], + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Expanded" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox haspopup grid" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox haspopup grid.</p> + <div aria-label="Tag" aria-haspopup="grid" id="test" role="combobox" aria-expanded="true" aria-owns="owned_grid"> + <input type="text" aria-autocomplete="list" aria-controls="owned_grid" aria-activedescendant="selected_cell"> + </div> + <table id="owned_grid" role="grid"> + <tr> + <th tabindex="-1" id="selected_cell" role="colomnheader">c1</th><th role="colomnheader">c2</th> + </tr> + <tr> + <td role="gridcell">A1</td><td role="gridcell">A2</td> + </tr> + <tr> + <td role="gridcell">A3</td><td role="gridcell">A4</td> + </tr> + </table> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_listbox-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_listbox-manual.html new file mode 100644 index 0000000000..e1c9084fd5 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_listbox-manual.html @@ -0,0 +1,154 @@ +<!doctype html> +<html> + <head> + <title>combobox haspopup listbox</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDED" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:listbox" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "property", + "AXExpanded", + "is", + "true" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "haspopup:listbox" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "interfaces", + "contains", + "ExpandCollapse pattern" + ], + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Expanded" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox haspopup listbox" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox haspopup listbox.</p> + <div aria-label="Tag" aria-haspopup="listbox" id="test" role="combobox" aria-expanded="true" aria-owns="owned_listbox"> + <input type="text" aria-autocomplete="list" aria-controls="owned_listbox" aria-activedescendant="selected_cell"> + <div role="option">foo</div> + <div role="option">baz</div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_menu-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_menu-manual.html new file mode 100644 index 0000000000..a9439ed496 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_menu-manual.html @@ -0,0 +1,154 @@ +<!doctype html> +<html> + <head> + <title>combobox haspopup menu</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDED" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:menu" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "property", + "AXExpanded", + "is", + "true" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "haspopup:menu" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "interfaces", + "contains", + "ExpandCollapse pattern" + ], + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Expanded" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox haspopup menu" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox haspopup menu.</p> + <div aria-label="Tag" aria-haspopup="menu" id="test" role="combobox" aria-expanded="true" aria-owns="owned_menu"> + <input type="text" aria-autocomplete="list" aria-controls="owned_menu" aria-activedescendant="selected_cell"> + <div role="menuitem">foo</div> + <div role="menuitem">baz</div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_tree-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_tree-manual.html new file mode 100644 index 0000000000..a0602b520f --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_tree-manual.html @@ -0,0 +1,171 @@ +<!doctype html> +<html> + <head> + <title>combobox haspopup tree</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDED" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:tree" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "property", + "AXExpanded", + "is", + "true" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "haspopup:tree" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "interfaces", + "contains", + "ExpandCollapse pattern" + ], + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Expanded" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox haspopup tree" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox haspopup tree.</p> + <div aria-label="Tag" id="test" role="combobox" aria-expanded="true" aria-owns="owned_tree" aria-haspopup="tree"> + <input type="text" aria-autocomplete="list" aria-controls="owned_tree" aria-activedescendant="oranges"> + <li id="fruits" role="treeitem" tabindex="0" aria-expanded="true"><span>Fruits</span> + <ul id="fruit-grp" role="group"> + <li id="oranges" role="treeitem" tabindex="-1">Oranges</li> + <li id="apples" role="treeitem" tabindex="-1" aria-expanded="false"><span>Apples</span> + <ul id="apple-grp" role="group"> + <li id="macintosh" role="treeitem" tabindex="-1">Macintosh</li> + <li id="granny_smith" role="treeitem" tabindex="-1" aria-expanded="false"><span>Granny Smith</span> + <ul id="granny-grp" role="group"> + <li id="Washington" role="treeitem" tabindex="-1">Washington State</li> + <li id="Michigan" role="treeitem" tabindex="-1">Michigan</li> + </ul> + </li> + <li id="fuji" role="treeitem" tabindex="-1">Fuji</li> + </ul> + </li> + <li id="bananas" role="treeitem" tabindex="-1">Bananas</li> + <li id="pears" role="treeitem" tabindex="-1">Pears</li> + </ul> + </li> + <li id="vegetables" role="treeitem" tabindex="-1" aria-expanded="true">Vegetables</li> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_true-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_true-manual.html new file mode 100644 index 0000000000..c7548ce5cd --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_true-manual.html @@ -0,0 +1,162 @@ +<!doctype html> +<html> + <head> + <title>combobox haspopup true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDED" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:true" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "property", + "AXExpanded", + "is", + "true" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "interfaces", + "contains", + "ExpandCollapse pattern" + ], + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Expanded" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox haspopup true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox haspopup true.</p> + <div aria-label="Tag" id="test" aria-haspopup="true" role="combobox" aria-expanded="true" aria-owns="owned_dialog"> + <input type="text" aria-autocomplete="list" aria-controls="owned_dialog" aria-activedescendant="selected_cell"> + <div role="radiogroup"> + <div role="radio" id="selected_radio" tabindex="-1">R1</div><div role="radio" tabindex="-1">R2</div> + </div> + <div role="button" tabindex="0">ok</div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_unspecified-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_unspecified-manual.html new file mode 100644 index 0000000000..cd61076fb4 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_unspecified-manual.html @@ -0,0 +1,159 @@ +<!doctype html> +<html> + <head> + <title>combobox haspopup unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDED" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:listbox" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "property", + "AXExpanded", + "is", + "true" + ], + [ + "property", + "actions", + "contains", + "AXShowMenu" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:listbox" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "interfaces", + "contains", + "ExpandCollapse pattern" + ], + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Expanded" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox haspopup unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox haspopup unspecified.</p> + <div aria-label="Tag" id="test" role="combobox" aria-expanded="true" aria-owns="owned_listbox"> + <input type="text" aria-autocomplete="list" aria-controls="owned_listbox" aria-activedescendant="selected_option"> + <li role="option">Zebra</li> + <li role="option" id="selected_option">Zoom</li> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/combobox_orientation_horizontal-manual.html new file mode 100644 index 0000000000..a5bcc700ec --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_orientation_horizontal-manual.html @@ -0,0 +1,123 @@ +<!doctype html> +<html> + <head> + <title>combobox orientation horizontal</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox orientation horizontal" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox orientation horizontal.</p> + <div aria-label="Tag" id="test" role="combobox" aria-orientation="horizontal" aria-expanded="true" aria-owns="owned_listbox"> + <input type="text" aria-autocomplete="list" aria-controls="owned_listbox" aria-activedescendant="selected_option"> + <li role="option">Zebra</li> + <li role="option" id="selected_option">Zoom</li> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/combobox_orientation_unspecified-manual.html new file mode 100644 index 0000000000..20bd53d8d1 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_orientation_unspecified-manual.html @@ -0,0 +1,129 @@ +<!doctype html> +<html> + <head> + <title>combobox orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "property", + "AXOrientation", + "is", + "AXUnknownOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "isNot", + "vertical" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "isNot", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox orientation unspecified.</p> + <div aria-label="Tag" id="test" role="combobox" aria-expanded="true" aria-owns="owned_listbox"> + <input type="text" aria-autocomplete="list" aria-controls="owned_listbox" aria-activedescendant="selected_option"> + <li role="option">Zebra</li> + <li role="option" id="selected_option">Zoom</li> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/combobox_orientation_vertical-manual.html new file mode 100644 index 0000000000..189345c415 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_orientation_vertical-manual.html @@ -0,0 +1,123 @@ +<!doctype html> +<html> + <head> + <title>combobox orientation vertical</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox orientation vertical" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox orientation vertical.</p> + <div aria-label="Tag" id="test" role="combobox" aria-orientation="vertical" aria-expanded="true" aria-owns="owned_listbox"> + <input type="text" aria-autocomplete="list" aria-controls="owned_listbox" aria-activedescendant="selected_option"> + <li role="option">Zebra</li> + <li role="option" id="selected_option">Zoom</li> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/combobox_readonly_false-manual.html new file mode 100644 index 0000000000..978ab11948 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_readonly_false-manual.html @@ -0,0 +1,149 @@ +<!doctype html> +<html> + <head> + <title>combobox readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:listbox" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox readonly false.</p> + <div id="test" role="combobox" aria-readonly="false" aria-owns="myID" aria-expanded="true" aria-haspopup="listbox"><span role="textbox">option 3</span></div> + <div role="listbox" id="myID"> + <div role="option">option 1</div> + <div role="option">option 2</div> + <div role="option">option 3</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/combobox_readonly_true-manual.html new file mode 100644 index 0000000000..26a4302c24 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_readonly_true-manual.html @@ -0,0 +1,155 @@ +<!doctype html> +<html> + <head> + <title>combobox readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:listbox" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox readonly true.</p> + <div id="test" role="combobox" aria-readonly="true" aria-owns="myID" aria-expanded="true" aria-haspopup="listbox"><span role="textbox">option 3</span></div> + <div role="listbox" id="myID"> + <div role="option">option 1</div> + <div role="option">option 2</div> + <div role="option">option 3</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/combobox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/combobox_readonly_unspecified-manual.html new file mode 100644 index 0000000000..4ad87b2c0a --- /dev/null +++ b/testing/web-platform/tests/wai-aria/combobox_readonly_unspecified-manual.html @@ -0,0 +1,149 @@ +<!doctype html> +<html> + <head> + <title>combobox readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COMBO_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_HAS_POPUP" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXComboBox" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "combo box" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "objectAttributes", + "contains", + "haspopup:listbox" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COMBOBOX" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_HASPOPUP" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Combobox" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "combobox readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for combobox readonly unspecified.</p> + <div id="test" role="combobox" aria-owns="myID" aria-expanded="true" aria-haspopup="listbox"><span role="textbox">option 3</span></div> + <div role="listbox" id="myID"> + <div role="option">option 1</div> + <div role="option">option 2</div> + <div role="option">option 3</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/dialog_modal_false-manual.html b/testing/web-platform/tests/wai-aria/dialog_modal_false-manual.html new file mode 100644 index 0000000000..6c906d320f --- /dev/null +++ b/testing/web-platform/tests/wai-aria/dialog_modal_false-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>dialog modal false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_DIALOG" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_MODAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXApplicationDialog" + ], + [ + "property", + "AXRoleDescription", + "is", + "web dialog" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DIALOG" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_MODAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DIALOG" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Pane" + ], + [ + "result", + "Window.isModal", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "Test2", + "test" : { + "AXAPI" : [ + [ + "property", + "accessible", + "is", + "true" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "dialog modal false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for dialog modal false.</p> + <h1 id="Test2">Modal Dialog Box Test</h1> + <div role="dialog" aria-modal="false" id="test"> + You have an error. + <input type="button" value="ok"/> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/dialog_modal_true-manual.html b/testing/web-platform/tests/wai-aria/dialog_modal_true-manual.html new file mode 100644 index 0000000000..02cbfb5fe8 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/dialog_modal_true-manual.html @@ -0,0 +1,108 @@ +<!doctype html> +<html> + <head> + <title>dialog modal true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_DIALOG" + ], + [ + "property", + "states", + "contains", + "STATE_MODAL" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DIALOG" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_MODAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DIALOG" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Pane" + ], + [ + "result", + "Window.isModal", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "Test2", + "test" : { + "AXAPI" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "dialog modal true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for dialog modal true.</p> + <body> + <h1 id="Test2">Modal Dialog Box Test</h1> + <div role="dialog" aria-modal="true" id="test"> + <input type="button" value="ok"/> + </div> + </body> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/dialog_modal_unspecified-manual.html b/testing/web-platform/tests/wai-aria/dialog_modal_unspecified-manual.html new file mode 100644 index 0000000000..edd4605dad --- /dev/null +++ b/testing/web-platform/tests/wai-aria/dialog_modal_unspecified-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>dialog modal unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_DIALOG" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_MODAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXApplicationDialog" + ], + [ + "property", + "AXRoleDescription", + "is", + "web dialog" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DIALOG" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_MODAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_DIALOG" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Pane" + ], + [ + "result", + "Window.isModal", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "Test2", + "test" : { + "AXAPI" : [ + [ + "property", + "accessible", + "is", + "true" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "dialog modal unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for dialog modal unspecified.</p> + <h1 id="Test2">Modal Dialog Box Test</h1> + <div role="dialog" id="test"> + You have an error. + <input type="button" value="ok"/> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/div_element_without_role_roledescription_valid-manual.html b/testing/web-platform/tests/wai-aria/div_element_without_role_roledescription_valid-manual.html new file mode 100644 index 0000000000..68b6cc51c7 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/div_element_without_role_roledescription_valid-manual.html @@ -0,0 +1,128 @@ +<!doctype html> +<html> + <head> + <title>div element without role roledescription valid</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SECTION" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "roledescription" + ], + [ + "property", + "interfaces", + "contains", + "Text" + ], + [ + "property", + "interfaces", + "contains", + "Hypertext" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "group" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_SECTION" + ], + [ + "property", + "localizedExtendedRole", + "is", + "null" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleText2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleHypertext2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Group" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "div element without role roledescription valid" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for div element without role roledescription valid.</p> + <div aria-roledescription="foo" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/errormessage_object_in_invalid_state-manual.html b/testing/web-platform/tests/wai-aria/errormessage_object_in_invalid_state-manual.html new file mode 100644 index 0000000000..9996568262 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/errormessage_object_in_invalid_state-manual.html @@ -0,0 +1,100 @@ +<!doctype html> +<html> + <head> + <title>errormessage object in invalid state</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "relation", + "RELATION_ERROR_MESSAGE", + "is", + "[error]" + ] + ], + "AXAPI" : [ + [ + "property", + "AXValidationError", + "is", + "You did not enter a valid date!" + ] + ], + "IAccessible2" : [ + [ + "properties", + "relations", + "contains", + "IA2_RELATION_ERROR_MESSAGE" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControllerFor", + "is", + "error" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "error", + "test" : { + "ATK" : [ + [ + "relation", + "RELATION_ERROR_FOR", + "is", + "[test]" + ] + ], + "IAccessible2" : [ + [ + "property", + "relations", + "contains", + "IA2_RELATION_ERROR_FOR" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "errormessage object in invalid state" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for errormessage object in invalid state.</p> + <div role="form"> + <label for="test">date</label><input type="text" id="test" value="foo" aria-invalid="true" aria-errormessage="error"> + <label for="test1">surname</label><input type="text" id="test1"> + </div> + <div id="error"> + You did not enter a valid date! + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/errormessage_object_in_valid_state-manual.html b/testing/web-platform/tests/wai-aria/errormessage_object_in_valid_state-manual.html new file mode 100644 index 0000000000..7c194c6d0a --- /dev/null +++ b/testing/web-platform/tests/wai-aria/errormessage_object_in_valid_state-manual.html @@ -0,0 +1,100 @@ +<!doctype html> +<html> + <head> + <title>errormessage object in valid state</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "relations", + "doesNotContain", + "RELATION_ERROR_MESSAGE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXValidationError", + "is", + "<nil>" + ] + ], + "IAccessible2" : [ + [ + "property", + "relations", + "doesNotContain", + "IA2_RELATION_ERROR" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.ControllerFor", + "is", + "" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "error", + "test" : { + "ATK" : [ + [ + "property", + "relations", + "doesNotContain", + "RELATION_ERROR_FOR" + ] + ], + "IAccessible2" : [ + [ + "property", + "relations", + "doesNotContain", + "IA2_RELATION_ERROR_FOR" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "errormessage object in valid state" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for errormessage object in valid state.</p> + <div role="form"> + <label for="test">date</label><input type="text" id="test" value="April 12" aria-invalid="false" aria-errormessage="error"> + <label for="test1">surname</label><input type="text" id="test1"> + </div> + <div id="error"> + You did not enter a valid date! + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/feed-manual.html b/testing/web-platform/tests/wai-aria/feed-manual.html new file mode 100644 index 0000000000..91fc6778db --- /dev/null +++ b/testing/web-platform/tests/wai-aria/feed-manual.html @@ -0,0 +1,105 @@ +<!doctype html> +<html> + <head> + <title>feed</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PANEL" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:feed" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXApplicationGroup" + ], + [ + "property", + "AXRoleDescription", + "is", + "feed" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "xml-roles:feed" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Group" + ], + [ + "property", + "LocalizedControlType", + "is", + "feed" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "feed" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for feed.</p> + <section role="feed" id="test"> + <article>This is article 1</article> + <div role="article">This is article 2</div> + </section> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/figure-manual.html b/testing/web-platform/tests/wai-aria/figure-manual.html new file mode 100644 index 0000000000..d60973527a --- /dev/null +++ b/testing/web-platform/tests/wai-aria/figure-manual.html @@ -0,0 +1,106 @@ +<!doctype html> +<html> + <head> + <title>figure</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PANEL" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:figure" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "figure" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "xml-roles:figure" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Group" + ], + [ + "property", + "LocalizedControlType", + "is", + "figure" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "figure" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for figure.</p> + <div role="figure" id="test"> + <img src="foo.jpg" aria-label="fake image"/> + <img src="baz.jpg" aria-label="really fake image"> + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_aria-readonly_false_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/grid_aria-readonly_false_automatically_propagated-manual.html new file mode 100644 index 0000000000..d373a3023e --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_aria-readonly_false_automatically_propagated-manual.html @@ -0,0 +1,249 @@ +<!doctype html> +<html> + <head> + <title>grid aria-readonly false automatically propagated</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ], + [ + "property", + "interfaces", + "contains", + "TableCell" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "controlPatterns", + "contains", + "selectionitem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "test1", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 2", + "type" : "test" + }, + { + "element" : "test2", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 3", + "type" : "test" + } + ], + "title" : "grid aria-readonly false automatically propagated" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid aria-readonly false automatically propagated.</p> + <div role="grid" aria-readonly="false"> + <div role="row"> + <div id="test1" role="columnheader">c1</div> + <div role="columnheader">c2</div> + </div> + <div role="row"> + <div id="test2" role="rowheader">rh1</div> + <div id="test" role="gridcell">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_aria-readonly_true_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/grid_aria-readonly_true_automatically_propagated-manual.html new file mode 100644 index 0000000000..7b6a22e292 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_aria-readonly_true_automatically_propagated-manual.html @@ -0,0 +1,249 @@ +<!doctype html> +<html> + <head> + <title>grid aria-readonly true automatically propagated</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ], + [ + "property", + "interfaces", + "contains", + "TableCell" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "controlPatterns", + "contains", + "SelectionItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "test1", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 2", + "type" : "test" + }, + { + "element" : "test2", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 3", + "type" : "test" + } + ], + "title" : "grid aria-readonly true automatically propagated" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid aria-readonly true automatically propagated.</p> + <div role="grid" aria-readonly="true"> + <div role="row"> + <div id="test1" role="columnheader">c1</div> + <div role="columnheader">c2</div> + </div> + <div role="row"> + <div id="test2" role="rowheader">rh1</div> + <div id="test" role="gridcell">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_busy_false-manual.html b/testing/web-platform/tests/wai-aria/grid_busy_false-manual.html new file mode 100644 index 0000000000..48edba5bf7 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_busy_false-manual.html @@ -0,0 +1,163 @@ +<!doctype html> +<html> + <head> + <title>grid busy false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:grid" + ], + [ + "property", + "interfaces", + "contains", + "Table" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "result", + "atk_selection_clear_selection()", + "is", + "false" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_BUSY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "table" + ], + [ + "property", + "AXElementBusy", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "xml-roles:grid" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_BUSY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataGrid" + ], + [ + "property", + "interfaces", + "contains", + "selection pattern" + ], + [ + "result", + "AriaProperties.busy", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid busy false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid busy false.</p> + <div role="grid" aria-busy="false" id="test"> + <div role="row"> + <div role="columnheader">shoes</div> + <div role="columnheader">shirts</div> + </div> + <div role="row"> + <div role="gridcell">loafers</div> + <div role="gridcell">polo</div> + </div> + <div role="row"> + <div role="gridcell">laced</div> + <div role="gridcell">rugby</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_busy_true-manual.html b/testing/web-platform/tests/wai-aria/grid_busy_true-manual.html new file mode 100644 index 0000000000..ddcdf0198f --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_busy_true-manual.html @@ -0,0 +1,157 @@ +<!doctype html> +<html> + <head> + <title>grid busy true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:grid" + ], + [ + "property", + "interfaces", + "contains", + "Table" + ], + [ + "result", + "atk_selection_clear_selection()", + "is", + "false" + ], + [ + "property", + "states", + "contains", + "STATE_BUSY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "table" + ], + [ + "property", + "AXElementBusy", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "xml-roles:grid" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_BUSY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataGrid" + ], + [ + "property", + "interfaces", + "contains", + "selection pattern" + ], + [ + "result", + "AriaProperties.busy", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid busy true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid busy true.</p> + <div role="grid" aria-busy="true" id="test"> + <div role="row"> + <div role="columnheader">shoes</div> + <div role="columnheader">shirts</div> + </div> + <div role="row"> + <div role="gridcell">loafers</div> + <div role="gridcell">polo</div> + </div> + <div role="row"> + <div role="gridcell">laced</div> + <div role="gridcell">rugby</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_busy_value_changes-manual.html b/testing/web-platform/tests/wai-aria/grid_busy_value_changes-manual.html new file mode 100644 index 0000000000..4891198882 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_busy_value_changes-manual.html @@ -0,0 +1,200 @@ +<!doctype html> +<html> + <head> + <title>grid busy value changes</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "attribute" : "aria-busy", + "element" : "test", + "title" : "step 1", + "type" : "attribute", + "value" : "\"true\"" + }, + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "event", + "type", + "is", + "object:state-changed:busy" + ], + [ + "event", + "detail1", + "is", + "1" + ], + [ + "property", + "role", + "is", + "ROLE_TABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:grid" + ], + [ + "property", + "interfaces", + "contains", + "Table" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "result", + "atk_selection_clear_selection()", + "is", + "false" + ], + [ + "property", + "states", + "contains", + "STATE_BUSY" + ] + ], + "AXAPI" : [ + [ + "event", + "type", + "is", + "AXElementBusyChanged" + ], + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "table" + ], + [ + "property", + "AXElementBusy", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "xml-roles:grid" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ] + ], + "MSAA" : [ + [ + "event", + "type", + "is", + "EVENT_OBJECT_STATECHANGE" + ], + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_BUSY" + ] + ], + "UIA" : [ + [ + "event", + "type", + "is", + "PropertyChangedEvent" + ], + [ + "property", + "ControlType", + "is", + "DataGrid" + ], + [ + "property", + "interfaces", + "contains", + "selection pattern" + ], + [ + "result", + "AriaProperties.busy", + "is", + "true" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "grid busy value changes" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid busy value changes.</p> + <div role="grid" aria-busy="false" id="test"> + <div role="row"> + <div role="columnheader">shoes</div> + <div role="columnheader">shirts</div> + </div> + <div role="row"> + <div role="gridcell">loafers</div> + <div role="gridcell">polo</div> + </div> + <div role="row"> + <div role="gridcell">laced</div> + <div role="gridcell">rugby</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_colcount_8-manual.html b/testing/web-platform/tests/wai-aria/grid_colcount_8-manual.html new file mode 100644 index 0000000000..0f03b12605 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_colcount_8-manual.html @@ -0,0 +1,130 @@ +<!doctype html> +<html> + <head> + <title>grid colcount 8</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:grid" + ], + [ + "property", + "objectAttributes", + "contains", + "colcount:8" + ], + [ + "result", + "atk_table_get_n_columns()", + "is", + "8" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXARIAColumnCount", + "is", + "8" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:grid" + ], + [ + "property", + "objectAttributes", + "contains", + "colcount:8" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataGrid" + ], + [ + "property", + "DataGrid.ColumnCount", + "is", + "8" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid colcount 8" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid colcount 8.</p> + <div role="grid" id="test" aria-colcount="8"> + <div role="row"> + <div role="gridcell" aria-colindex="4">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_false-manual.html new file mode 100644 index 0000000000..bb8dd34a92 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_false-manual.html @@ -0,0 +1,112 @@ +<!doctype html> +<html> + <head> + <title>grid columnheader readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid columnheader readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid columnheader readonly false.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="columnheader" aria-readonly="false">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_true-manual.html new file mode 100644 index 0000000000..a81e4cbdce --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_true-manual.html @@ -0,0 +1,106 @@ +<!doctype html> +<html> + <head> + <title>grid columnheader readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid columnheader readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid columnheader readonly true.</p> + <div role="grid" > + <div role="row"> + <div id="test" role="columnheader" aria-readonly="true">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_unspecified-manual.html new file mode 100644 index 0000000000..d45d3b9ca7 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_unspecified-manual.html @@ -0,0 +1,98 @@ +<!doctype html> +<html> + <head> + <title>grid columnheader readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid columnheader readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid columnheader readonly unspecified.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="columnheader">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_required_false-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_required_false-manual.html new file mode 100644 index 0000000000..b8f7ae332c --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_required_false-manual.html @@ -0,0 +1,106 @@ +<!doctype html> +<html> + <head> + <title>grid columnheader required false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_REQUIRED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRequired", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_REQUIRED" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "IsrequiredForForm", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid columnheader required false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid columnheader required false.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="columnheader" aria-required="false">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_required_true-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_required_true-manual.html new file mode 100644 index 0000000000..76155ab905 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_required_true-manual.html @@ -0,0 +1,106 @@ +<!doctype html> +<html> + <head> + <title>grid columnheader required true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "states", + "contains", + "STATE_REQUIRED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRequired", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_REQUIRED" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "IsrequiredForForm", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid columnheader required true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid columnheader required true.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="columnheader" aria-required="true">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_required_unspecified-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_required_unspecified-manual.html new file mode 100644 index 0000000000..491cbed6f2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_required_unspecified-manual.html @@ -0,0 +1,106 @@ +<!doctype html> +<html> + <head> + <title>grid columnheader required unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_COLUMN_HEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_REQUIRED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRequired", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_REQUIRED" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_COLUMNHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "IsrequiredForForm", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid columnheader required unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid columnheader required unspecified.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="columnheader">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_rowcount_3-manual.html b/testing/web-platform/tests/wai-aria/grid_rowcount_3-manual.html new file mode 100644 index 0000000000..3079b59b4d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_rowcount_3-manual.html @@ -0,0 +1,132 @@ +<!doctype html> +<html> + <head> + <title>grid rowcount 3</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:grid" + ], + [ + "property", + "objectAttributes", + "contains", + "rowcount:3" + ], + [ + "result", + "atk_table_get_n_rows()", + "is", + "3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXARIARowCount", + "is", + "3" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:grid" + ], + [ + "property", + "objectAttributes", + "contains", + "rowcount:3" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataGrid" + ], + [ + "property", + "DataGrid.RowCount", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid rowcount 3" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid rowcount 3.</p> + <div role='grid' id='test' aria-rowcount='3' aria-colcount='2'> + <div role='row'> + <span role='gridcell'> + <button>hello</button> + </span> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_false-manual.html new file mode 100644 index 0000000000..883918fd04 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_false-manual.html @@ -0,0 +1,98 @@ +<!doctype html> +<html> + <head> + <title>grid rowheader readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid rowheader readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid rowheader readonly false.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="rowheader" aria-readonly="false">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_true-manual.html new file mode 100644 index 0000000000..5d53c3624c --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_true-manual.html @@ -0,0 +1,98 @@ +<!doctype html> +<html> + <head> + <title>grid rowheader readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid rowheader readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid rowheader readonly true.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="rowheader" aria-readonly="true">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_unspecified-manual.html new file mode 100644 index 0000000000..f9321cac10 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_unspecified-manual.html @@ -0,0 +1,98 @@ +<!doctype html> +<html> + <head> + <title>grid rowheader readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid rowheader readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid rowheader readonly unspecified.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="rowheader">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_required_false-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_required_false-manual.html new file mode 100644 index 0000000000..4fafba50a9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_required_false-manual.html @@ -0,0 +1,106 @@ +<!doctype html> +<html> + <head> + <title>grid rowheader required false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_REQUIRED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRequired", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_REQUIRED" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "IsrequiredForForm", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid rowheader required false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid rowheader required false.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="rowheader" aria-required="false">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_required_true-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_required_true-manual.html new file mode 100644 index 0000000000..0f14d2dea8 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_required_true-manual.html @@ -0,0 +1,106 @@ +<!doctype html> +<html> + <head> + <title>grid rowheader required true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "states", + "contains", + "STATE_REQUIRED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRequired", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_REQUIRED" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "IsrequiredForForm", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid rowheader required true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid rowheader required true.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="rowheader" aria-required="true">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_required_unspecified-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_required_unspecified-manual.html new file mode 100644 index 0000000000..208f0c5e56 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_required_unspecified-manual.html @@ -0,0 +1,106 @@ +<!doctype html> +<html> + <head> + <title>grid rowheader required unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_REQUIRED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRequired", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_REQUIRED" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "IsrequiredForForm", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "grid rowheader required unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for grid rowheader required unspecified.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="rowheader">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/gridcell_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/gridcell_aria-colspan_2_on_div-manual.html new file mode 100644 index 0000000000..c151087767 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/gridcell_aria-colspan_2_on_div-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>gridcell aria-colspan 2 on div</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "column_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXColumnIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "DataItem.ColumnSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "gridcell aria-colspan 2 on div" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for gridcell aria-colspan 2 on div.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="gridcell" aria-colspan="2">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/gridcell_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/gridcell_aria-rowspan_2_on_div-manual.html new file mode 100644 index 0000000000..318709b360 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/gridcell_aria-rowspan_2_on_div-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>gridcell aria-rowspan 2 on div</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "row_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRowIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "DataItem.RowSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "gridcell aria-rowspan 2 on div" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for gridcell aria-rowspan 2 on div.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="gridcell" aria-rowspan="2">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/gridcell_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/gridcell_colindex_4-manual.html new file mode 100644 index 0000000000..6ef4fb3a16 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/gridcell_colindex_4-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>gridcell colindex 4</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ], + [ + "result", + "atk_table_cell_get_position()", + "contains", + "column=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIAColumnIndex", + "is", + "4" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ], + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "DataItem.Column", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "gridcell colindex 4" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for gridcell colindex 4.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="gridcell" aria-colindex="4" aria-colcount="8">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/gridcell_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/gridcell_rowindex_4-manual.html new file mode 100644 index 0000000000..8b9daaa703 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/gridcell_rowindex_4-manual.html @@ -0,0 +1,112 @@ +<!doctype html> +<html> + <head> + <title>gridcell rowindex 4</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "rowindex:4" + ], + [ + "result", + "atk_table_cell_get_position()", + "contains", + "row=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIARowIndex", + "is", + "4" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "objectAttributes", + "contains", + "rowindex:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "DataItem.Row", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "gridcell rowindex 4" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for gridcell rowindex 4.</p> + <div role="grid"> + <div role="row"> + <div id="test" role="gridcell" aria-rowindex="4">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_not_rendered-manual.html b/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_not_rendered-manual.html new file mode 100644 index 0000000000..ef947859db --- /dev/null +++ b/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_not_rendered-manual.html @@ -0,0 +1,80 @@ +<!doctype html> +<html> + <head> + <title>group hidden undefined element not rendered</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ], + "AXAPI" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ], + "UIA" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "group hidden undefined element not rendered" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for group hidden undefined element not rendered.</p> + <div role="group" id="test" style="display:none"> + Some invisible group content + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_rendered-manual.html b/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_rendered-manual.html new file mode 100644 index 0000000000..92c067c216 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_rendered-manual.html @@ -0,0 +1,116 @@ +<!doctype html> +<html> + <head> + <title>group hidden undefined element rendered</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PANEL" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "hidden" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXApplicationGroup" + ], + [ + "property", + "AXRoleDescription", + "is", + "group" + ], + [ + "property", + "hidden", + "is", + "<nil>" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "hidden:false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Group" + ], + [ + "property", + "AriaProperties.hidden", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "group hidden undefined element rendered" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for group hidden undefined element rendered.</p> + <div role="group" id="test"> + Some group content + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/heading_level_unspecified-manual.html b/testing/web-platform/tests/wai-aria/heading_level_unspecified-manual.html new file mode 100644 index 0000000000..819bc7b60c --- /dev/null +++ b/testing/web-platform/tests/wai-aria/heading_level_unspecified-manual.html @@ -0,0 +1,120 @@ +<!doctype html> +<html> + <head> + <title>heading level unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_HEADING" + ], + [ + "property", + "objectAttributes", + "contains", + "level:2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXHeading" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "heading" + ], + [ + "property", + "AXValue", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_HEADING" + ], + [ + "property", + "objectAttributes", + "contains", + "level:2" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:heading" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Text" + ], + [ + "property", + "StyleId_Heading", + "is", + "2" + ], + [ + "property", + "AriaProperties.level", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "heading level unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for heading level unspecified.</p> + <div role="heading" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/idlharness.window.js b/testing/web-platform/tests/wai-aria/idlharness.window.js new file mode 100644 index 0000000000..590bf9e2e9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/idlharness.window.js @@ -0,0 +1,15 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +'use strict'; + +idl_test( + ['wai-aria'], + ['dom'], + idl_array => { + idl_array.add_objects({ + Element: ['element'], + }); + self.element = document.createElementNS(null, "test"); + } +); diff --git a/testing/web-platform/tests/wai-aria/keyshortcuts_multiple_shortcuts-manual.html b/testing/web-platform/tests/wai-aria/keyshortcuts_multiple_shortcuts-manual.html new file mode 100644 index 0000000000..ce4074a4f2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/keyshortcuts_multiple_shortcuts-manual.html @@ -0,0 +1,82 @@ +<!doctype html> +<html> + <head> + <title>keyshortcuts multiple shortcuts</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "keyshortcuts:Shift+Space Alt+Space" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "accKeyboardShortcut", + "is", + "Shift+Space Alt+Space" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "AcceleratorKey", + "is", + "Shift+Space Alt+Space" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "keyshortcuts multiple shortcuts" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for keyshortcuts multiple shortcuts.</p> + <body> + <div id="test" tabindex="0" role="button" aria-keyshortcuts="Shift+Space Alt+Space">Submit</h1> + </body> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/keyshortcuts_one_shortcut-manual.html b/testing/web-platform/tests/wai-aria/keyshortcuts_one_shortcut-manual.html new file mode 100644 index 0000000000..d0238dbf20 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/keyshortcuts_one_shortcut-manual.html @@ -0,0 +1,82 @@ +<!doctype html> +<html> + <head> + <title>keyshortcuts one shortcut</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PUSH_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "keyshortcuts:Shift+Space" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PUSHBUTTON" + ], + [ + "property", + "accKeyboardShortcut", + "is", + "Shift+Space" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "AcceleratorKey", + "is", + "Shift+Space" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "keyshortcuts one shortcut" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for keyshortcuts one shortcut.</p> + <body> + <div id="test" tabindex="0" role="button" aria-keyshortcuts="Shift+Space">Submit</h1> + </body> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/listbox_busy_false-manual.html b/testing/web-platform/tests/wai-aria/listbox_busy_false-manual.html new file mode 100644 index 0000000000..9f6b8b36a8 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/listbox_busy_false-manual.html @@ -0,0 +1,121 @@ +<!doctype html> +<html> + <head> + <title>listbox busy false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_BOX" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "result", + "atk_selection_clear_selection()", + "is", + "false" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_BUSY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXList" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "list" + ], + [ + "property", + "AXElementBusy", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTBOX" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_BUSY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "result", + "AriaProperties.busy", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "listbox busy false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for listbox busy false.</p> + <ul role="listbox" aria-busy="false" id="test"> + <li role="option">option 1</li> + <li role="option">option 2</li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/listbox_busy_true-manual.html b/testing/web-platform/tests/wai-aria/listbox_busy_true-manual.html new file mode 100644 index 0000000000..c8388f7add --- /dev/null +++ b/testing/web-platform/tests/wai-aria/listbox_busy_true-manual.html @@ -0,0 +1,109 @@ +<!doctype html> +<html> + <head> + <title>listbox busy true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_BOX" + ], + [ + "property", + "states", + "contains", + "STATE_BUSY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXList" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "list" + ], + [ + "property", + "AXElementBusy", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTBOX" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_BUSY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "result", + "AriaProperties.busy", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "listbox busy true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for listbox busy true.</p> + <ul role="listbox" aria-busy="true" id="test"> + <li role="option">option 1</li> + <li role="option">option 2</li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/listbox_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/listbox_orientation_horizontal-manual.html new file mode 100644 index 0000000000..c718a54eaf --- /dev/null +++ b/testing/web-platform/tests/wai-aria/listbox_orientation_horizontal-manual.html @@ -0,0 +1,128 @@ +<!doctype html> +<html> + <head> + <title>listbox orientation horizontal</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_BOX" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXList" + ], + [ + "property", + "AXsubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "list" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LIST" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "listbox orientation horizontal" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for listbox orientation horizontal.</p> + <div id="test" aria-orientation="horizontal" tabindex="0" role="listbox" > + <div role="option">option 1</div> + <div role="option">option 2</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/listbox_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/listbox_orientation_unspecified-manual.html new file mode 100644 index 0000000000..7dd2762d6d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/listbox_orientation_unspecified-manual.html @@ -0,0 +1,128 @@ +<!doctype html> +<html> + <head> + <title>listbox orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_BOX" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXList" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "list" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LIST" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "listbox orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for listbox orientation unspecified.</p> + <div id="test" tabindex="0" role="listbox" > + <div role="option">option 1</div> + <div role="option">option 2</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/listbox_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/listbox_orientation_vertical-manual.html new file mode 100644 index 0000000000..8bcca037d3 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/listbox_orientation_vertical-manual.html @@ -0,0 +1,128 @@ +<!doctype html> +<html> + <head> + <title>listbox orientation vertical</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_BOX" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXList" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "list" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LIST" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "listbox orientation vertical" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for listbox orientation vertical.</p> + <div id="test" aria-orientation="vertical" tabindex="0" role="listbox" > + <div role="option">option 1</div> + <div role="option">option 2</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/listbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/listbox_readonly_false-manual.html new file mode 100644 index 0000000000..b3bde923a4 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/listbox_readonly_false-manual.html @@ -0,0 +1,124 @@ +<!doctype html> +<html> + <head> + <title>listbox readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_BOX" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXList" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "list" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LIST" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LIST" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "listbox readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for listbox readonly false.</p> + <div id="test" aria-readonly="false" role="listbox"> + <div role="option">option 1</div> + <div role="option">option 2</div> + <div role="option">option 3</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/listbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/listbox_readonly_true-manual.html new file mode 100644 index 0000000000..30213919e4 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/listbox_readonly_true-manual.html @@ -0,0 +1,130 @@ +<!doctype html> +<html> + <head> + <title>listbox readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_BOX" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXList" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "list" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LIST" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LIST" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "listbox readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for listbox readonly true.</p> + <div id="test" aria-readonly="true" role="listbox"> + <div role="option">option 1</div> + <div role="option">option 2</div> + <div role="option">option 3</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/listbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/listbox_readonly_unspecified-manual.html new file mode 100644 index 0000000000..9283ad2404 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/listbox_readonly_unspecified-manual.html @@ -0,0 +1,124 @@ +<!doctype html> +<html> + <head> + <title>listbox readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_BOX" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXList" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "list" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LIST" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LIST" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "listbox readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for listbox readonly unspecified.</p> + <div id="test" role="listbox"> + <div role="option">option 1</div> + <div role="option">option 2</div> + <div role="option">option 3</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/listitem_setsize_-1-manual.html b/testing/web-platform/tests/wai-aria/listitem_setsize_-1-manual.html new file mode 100644 index 0000000000..7537a4bcd7 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/listitem_setsize_-1-manual.html @@ -0,0 +1,134 @@ +<!doctype html> +<html> + <head> + <title>listitem setsize -1</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_EDITABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:-1" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "group" + ], + [ + "property", + "AXARIASetSize", + "is", + "-1" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "setsize:-1" + ], + [ + "property", + "groupPosition", + "contains", + "similarItemsInGroup:-1" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTITEM" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ListItem" + ], + [ + "property", + "AriaProperties.setsize", + "is", + "-1" + ], + [ + "property", + "controlPatterns", + "contains", + "SelectionItem" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "listitem setsize -1" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for listitem setsize -1.</p> + <div role="list"> + <div id="test" role="listitem" aria-setsize="-1">test cell</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menu_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/menu_orientation_horizontal-manual.html new file mode 100644 index 0000000000..184c42052e --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menu_orientation_horizontal-manual.html @@ -0,0 +1,123 @@ +<!doctype html> +<html> + <head> + <title>menu orientation horizontal</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_MENU" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenu" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUPOPUP" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Menu" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menu orientation horizontal" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menu orientation horizontal.</p> + <ul id="test" role="menu" aria-orientation="horizontal"> + <li role="menuitem">File</file> + <li role="menuitem">Edit</file> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menu_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/menu_orientation_unspecified-manual.html new file mode 100644 index 0000000000..07e8e691b9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menu_orientation_unspecified-manual.html @@ -0,0 +1,122 @@ +<!doctype html> +<html> + <head> + <title>menu orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_MENU" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenu" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Menu" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menu orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menu orientation unspecified.</p> + <div id="test" tabindex="0" role="menu" > + <div role="menuitem">option 1</div> + <div role="menuitem">option 2</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menu_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/menu_orientation_vertical-manual.html new file mode 100644 index 0000000000..10a65e997d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menu_orientation_vertical-manual.html @@ -0,0 +1,123 @@ +<!doctype html> +<html> + <head> + <title>menu orientation vertical</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_MENU" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenu" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUPOPUP" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUPOPUP" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Menu" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menu orientation vertical" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menu orientation vertical.</p> + <ul id="test" role="menu" aria-orientation="vertical"> + <li role="menuitem">File</file> + <li role="menuitem">Edit</file> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menubar_busy_false-manual.html b/testing/web-platform/tests/wai-aria/menubar_busy_false-manual.html new file mode 100644 index 0000000000..8224d79b87 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menubar_busy_false-manual.html @@ -0,0 +1,130 @@ +<!doctype html> +<html> + <head> + <title>menubar busy false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_MENU_BAR" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:menubar" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_BUSY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuBar" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu bar" + ], + [ + "property", + "AXElementBusy", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "xml-roles:menubar" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUBAR" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_BUSY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuBar" + ], + [ + "property", + "interfaces", + "contains", + "selection pattern" + ], + [ + "property", + "AriaProperties.busy", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menubar busy false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menubar busy false.</p> + <div role="menubar" aria-busy="false" id="test"> + <div role="menuitem">File</div> + <div role="menuitem">Edit</div> + <div role="menuitem">View</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menubar_busy_true-manual.html b/testing/web-platform/tests/wai-aria/menubar_busy_true-manual.html new file mode 100644 index 0000000000..b1695dcef4 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menubar_busy_true-manual.html @@ -0,0 +1,130 @@ +<!doctype html> +<html> + <head> + <title>menubar busy true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_MENU_BAR" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:menubar" + ], + [ + "property", + "states", + "contains", + "STATE_BUSY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuBar" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu bar" + ], + [ + "property", + "AXElementBusy", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "xml-roles:menubar" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUBAR" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_BUSY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuBar" + ], + [ + "property", + "interfaces", + "contains", + "selection pattern" + ], + [ + "result", + "AriaProperties.busy", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menubar busy true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menubar busy true.</p> + <div role="menubar" aria-busy="true" id="test"> + <div role="menuitem">File</div> + <div role="menuitem">Edit</div> + <div role="menuitem">View</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menubar_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/menubar_orientation_horizontal-manual.html new file mode 100644 index 0000000000..e47a68e81a --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menubar_orientation_horizontal-manual.html @@ -0,0 +1,123 @@ +<!doctype html> +<html> + <head> + <title>menubar orientation horizontal</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_MENU_BAR" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuBar" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu bar" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUBAR" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUBAR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuBar" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menubar orientation horizontal" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menubar orientation horizontal.</p> + <ul id="test" role="menubar" aria-orientation="horizontal"> + <li role="menuitem">File</file> + <li role="menuitem">Edit</file> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menubar_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/menubar_orientation_unspecified-manual.html new file mode 100644 index 0000000000..0e945ae26f --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menubar_orientation_unspecified-manual.html @@ -0,0 +1,123 @@ +<!doctype html> +<html> + <head> + <title>menubar orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_MENU_BAR" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuBar" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu bar" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUBAR" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUBAR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuBar" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menubar orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menubar orientation unspecified.</p> + <ul id="test" role="menubar"> + <li role="menuitem">File</file> + <li role="menuitem">Edit</file> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menubar_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/menubar_orientation_vertical-manual.html new file mode 100644 index 0000000000..c0830abc7f --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menubar_orientation_vertical-manual.html @@ -0,0 +1,111 @@ +<!doctype html> +<html> + <head> + <title>menubar orientation vertical</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_MENU_BAR" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuBar" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu bar" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUBAR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuBar" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menubar orientation vertical" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menubar orientation vertical.</p> + <ul id="test" role="menubar" aria-orientation="vertical"> + <li role="menuitem">File</file> + <li role="menuitem">Edit</file> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitem_expanded_false-manual.html b/testing/web-platform/tests/wai-aria/menuitem_expanded_false-manual.html new file mode 100644 index 0000000000..7e5ca5485b --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitem_expanded_false-manual.html @@ -0,0 +1,78 @@ +<!doctype html> +<html> + <head> + <title>aria-expanded=false on a menuitem</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_EXPANDED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXExpanded", + "is", + "NO" + ] + ], + "MSAA" : [ + [ + "property", + "states", + "contains", + "STATE_SYSTEM_COLLAPSED" + ] + ], + "UIA" : [ + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Collapsed" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-expanded=false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-expanded=false on a menuitem.</p> + <div role='menu'> + <div role='menuitem' id='test' aria-expanded='false'>item 1</div> + <div role='menuitem'>item 2</div> + </div> + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitem_expanded_true-manual.html b/testing/web-platform/tests/wai-aria/menuitem_expanded_true-manual.html new file mode 100644 index 0000000000..a9d9b5df35 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitem_expanded_true-manual.html @@ -0,0 +1,82 @@ +<!doctype html> +<html> + <head> + <title>aria-expanded=true on a menuitem</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXExpanded", + "is", + "YES" + ] + ], + "MSAA" : [ + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Expanded" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-expanded=true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-expanded=true on a menuitem.</p> + <div role='menu'> + <div role='menuitem' id='test' aria-expanded='true'>item 1</div> + <div role='menu'> + <div role='menuitem'>subitem 1</div> + <div role='menuitem'>subitem 2</div> + </div> + <div role='menuitem'>item 2</div> + </div> + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitem_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/menuitem_posinset_and_setsize-manual.html new file mode 100644 index 0000000000..ac0ec8871d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitem_posinset_and_setsize-manual.html @@ -0,0 +1,148 @@ +<!doctype html> +<html> + <head> + <title>menuitem posinset and setsize</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_MENU_ITEM" + ], + [ + "property", + "objectAttributes", + "contains", + "posinset:4" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:8" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuItem" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu item" + ], + [ + "property", + "AXARIAPosInSet", + "is", + "4" + ], + [ + "property", + "AXARIASetSize", + "is", + "8" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "posinset:4" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:8" + ], + [ + "property", + "groupPosition", + "contains", + "similarItemsInGroup:8" + ], + [ + "property", + "groupPosition", + "contains", + "positionInGroup:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_MENUITEM" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuItem" + ], + [ + "property", + "AriaProperties.posinset", + "is", + "4" + ], + [ + "property", + "AriaProperties.setsize", + "is", + "8" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menuitem posinset and setsize" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menuitem posinset and setsize.</p> + <ul role='menu'>Menu + <li role='menuitem'> option 1</li> + <li role='menuitem' id='test' aria-posinset='4' aria-setsize='8'> option 2</li> + <li role='menuitem'> option 3</li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemcheckbox_expanded_false-manual.html b/testing/web-platform/tests/wai-aria/menuitemcheckbox_expanded_false-manual.html new file mode 100644 index 0000000000..e05ea1af71 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemcheckbox_expanded_false-manual.html @@ -0,0 +1,78 @@ +<!doctype html> +<html> + <head> + <title>aria-expanded=false on a menuitemcheckbox</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_EXPANDED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXExpanded", + "is", + "NO" + ] + ], + "MSAA" : [ + [ + "property", + "states", + "contains", + "STATE_SYSTEM_COLLAPSED" + ] + ], + "UIA" : [ + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Collapsed" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-expanded=false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-expanded=false on a menuitemcheckbox.</p> + <div role='menu'> + <div role='menuitemcheckbox' id='test' aria-expanded='false'>item 1</div> + <div role='menuitem'>item 2</div> + </div> + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemcheckbox_expanded_true-manual.html b/testing/web-platform/tests/wai-aria/menuitemcheckbox_expanded_true-manual.html new file mode 100644 index 0000000000..b2ac5db68f --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemcheckbox_expanded_true-manual.html @@ -0,0 +1,82 @@ +<!doctype html> +<html> + <head> + <title>aria-expanded=true on a menuitemcheckbox</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXExpanded", + "is", + "YES" + ] + ], + "MSAA" : [ + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Expanded" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-expanded=true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-expanded=true on a menuitemcheckbox.</p> + <div role='menu'> + <div role='menuitemcheckbox' id='test' aria-expanded='true'>item 1</div> + <div role='menu'> + <div role='menuitem'>subitem 1</div> + <div role='menuitem'>subitem 2</div> + </div> + <div role='menuitem'>item 2</div> + </div> + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemcheckbox_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/menuitemcheckbox_posinset_and_setsize-manual.html new file mode 100644 index 0000000000..cf867c1cf9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemcheckbox_posinset_and_setsize-manual.html @@ -0,0 +1,185 @@ +<!doctype html> +<html> + <head> + <title>menuitemcheckbox posinset and setsize</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_CHECK_MENU_ITEM" + ], + [ + "property", + "states", + "contains", + "STATE_CHECKABLE" + ], + [ + "property", + "states", + "contains", + "STATE_CHECKED" + ], + [ + "property", + "objectAttributes", + "contains", + "posinset:4" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:8" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuItem" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu item" + ], + [ + "property", + "AXValue", + "is", + "1" + ], + [ + "property", + "AXARIAPosInSet", + "is", + "4" + ], + [ + "property", + "AXARIASetSize", + "is", + "8" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_CHECK_MENU_ITEM" + ], + [ + "property", + "objectAttributes", + "contains", + "checkable:true" + ], + [ + "property", + "objectAttributes", + "contains", + "posinset:4" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:8" + ], + [ + "property", + "groupPosition", + "contains", + "similarItemsInGroup:8" + ], + [ + "property", + "groupPosition", + "contains", + "positionInGroup:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "isAny", + "[ROLE_SYSTEM_MENUITEM, ROLE_SYSTEM_CHECKBUTTON]" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuItem" + ], + [ + "property", + "Toggle.ToggleState", + "is", + "On" + ], + [ + "property", + "AriaProperties.posinset", + "is", + "4" + ], + [ + "property", + "AriaProperties.setsize", + "is", + "8" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menuitemcheckbox posinset and setsize" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menuitemcheckbox posinset and setsize.</p> + <ul role='menu'>Menu + <li role='menuitem'> option 1</li> + <li role='menuitemcheckbox' id='test' aria-posinset='4' aria-setsize='8' + class='ckbox' aria-checked='true'>panda doodles</li> + <li role='menuitem'> option 3</li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_false-manual.html new file mode 100644 index 0000000000..59f12ed0fc --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_false-manual.html @@ -0,0 +1,128 @@ +<!doctype html> +<html> + <head> + <title>menuitemcheckbox readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_CHECK_MENU_ITEM" + ], + [ + "property", + "states", + "contains", + "STATE_CHECKABLE" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuItem" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu item" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_CHECK_MENU_ITEM" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "isAny", + "[ROLE_SYSTEM_CHECKBUTTON, ROLE_SYSTEM_MENUITEM]" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuItem" + ], + [ + "property", + "controlPatterns", + "contains", + "Toggle" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menuitemcheckbox readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menuitemcheckbox readonly false.</p> + <div role="menu"> + <div role="menuitemcheckbox" aria-readonly="false" id="test">option 1</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_true-manual.html new file mode 100644 index 0000000000..faa9703fda --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_true-manual.html @@ -0,0 +1,128 @@ +<!doctype html> +<html> + <head> + <title>menuitemcheckbox readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_CHECK_MENU_ITEM" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuItem" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu item" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_CHECK_MENU_ITEM" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "isAny", + "[ROLE_SYSTEM_CHECKBUTTON, ROLE_SYSTEM_MENUITEM]" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuItem" + ], + [ + "property", + "controlPatterns", + "contains", + "Toggle" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menuitemcheckbox readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menuitemcheckbox readonly true.</p> + <div role="menu"> + <div role="menuitemcheckbox" aria-readonly="true" id="test">option 1</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_unspecified-manual.html new file mode 100644 index 0000000000..d9b5dc2980 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_unspecified-manual.html @@ -0,0 +1,122 @@ +<!doctype html> +<html> + <head> + <title>menuitemcheckbox readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_CHECK_MENU_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuItem" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu item" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_CHECK_MENU_ITEM" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "isAny", + "[ROLE_SYSTEM_CHECKBUTTON, ROLE_SYSTEM_MENUITEM]" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuItem" + ], + [ + "property", + "controlPatterns", + "contains", + "Toggle" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menuitemcheckbox readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menuitemcheckbox readonly unspecified.</p> + <div role="menu"> + <div role="menuitemcheckbox" id="test">option 1</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemradio_expanded_false-manual.html b/testing/web-platform/tests/wai-aria/menuitemradio_expanded_false-manual.html new file mode 100644 index 0000000000..52c599d90e --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemradio_expanded_false-manual.html @@ -0,0 +1,78 @@ +<!doctype html> +<html> + <head> + <title>aria-expanded=false on a menuitemradio</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_EXPANDED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXExpanded", + "is", + "NO" + ] + ], + "MSAA" : [ + [ + "property", + "states", + "contains", + "STATE_SYSTEM_COLLAPSED" + ] + ], + "UIA" : [ + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Collapsed" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-expanded=false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-expanded=false on a menuitemradio.</p> + <div role='menu'> + <div role='menuitemradio' id='test' aria-expanded='false'>item 1</div> + <div role='menuitem'>item 2</div> + </div> + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemradio_expanded_true-manual.html b/testing/web-platform/tests/wai-aria/menuitemradio_expanded_true-manual.html new file mode 100644 index 0000000000..601879885f --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemradio_expanded_true-manual.html @@ -0,0 +1,82 @@ +<!doctype html> +<html> + <head> + <title>aria-expanded=true on a menuitemradio</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "states", + "contains", + "STATE_EXPANDABLE" + ], + [ + "property", + "states", + "contains", + "STATE_EXPANDED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXExpanded", + "is", + "YES" + ] + ], + "MSAA" : [ + [ + "property", + "states", + "contains", + "STATE_SYSTEM_EXPANDED" + ] + ], + "UIA" : [ + [ + "property", + "ExpandCollapse.ExpandCollapseState", + "is", + "Expanded" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "aria-expanded=true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for aria-expanded=true on a menuitemradio.</p> + <div role='menu'> + <div role='menuitemradio' id='test' aria-expanded='true'>item 1</div> + <div role='menu'> + <div role='menuitem'>subitem 1</div> + <div role='menuitem'>subitem 2</div> + </div> + <div role='menuitem'>item 2</div> + </div> + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemradio_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/menuitemradio_posinset_and_setsize-manual.html new file mode 100644 index 0000000000..d512e95ddd --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemradio_posinset_and_setsize-manual.html @@ -0,0 +1,196 @@ +<!doctype html> +<html> + <head> + <title>menuitemradio posinset and setsize</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_RADIO_MENU_ITEM" + ], + [ + "property", + "states", + "contains", + "STATE_CHECKABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "posinset:4" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:8" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuItem" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu item" + ], + [ + "property", + "AXValue", + "is", + "0" + ], + [ + "property", + "AXARIAPosInSet", + "is", + "4" + ], + [ + "property", + "AXARIASetSize", + "is", + "8" + ], + [ + "property", + "AXMenuItemMarkChar", + "is", + "<nil>" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_RADIO_MENU_ITEM" + ], + [ + "property", + "objectAttributes", + "contains", + "checkable:true" + ], + [ + "property", + "objectAttributes", + "contains", + "posinset:4" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:8" + ], + [ + "property", + "groupPosition", + "contains", + "similarItemsInGroup:8" + ], + [ + "property", + "groupPosition", + "contains", + "positionInGroup:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "isAny", + "[ROLE_SYSTEM_RADIOBUTTON, ROLE_SYSTEM_MENUITEM]" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuItem" + ], + [ + "property", + "controlPatterns", + "contains", + "Toggle" + ], + [ + "property", + "controlPatterns", + "contains", + "SelectionItem" + ], + [ + "property", + "Toggle.ToggleState", + "is", + "Off" + ], + [ + "property", + "AriaProperties.posinset", + "is", + "4" + ], + [ + "property", + "AriaProperties.setsize", + "is", + "8" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menuitemradio posinset and setsize" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menuitemradio posinset and setsize.</p> + <ul role='menu'>Menu + <li role='menuitemradio'> option 1</li> + <li role='menuitemradio' id='test' aria-posinset='4' aria-setsize='8'>panda doodles</li> + <li role='menuitemradio'> option 3</li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemradio_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_false-manual.html new file mode 100644 index 0000000000..164bde7ae1 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_false-manual.html @@ -0,0 +1,128 @@ +<!doctype html> +<html> + <head> + <title>menuitemradio readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_RADIO_MENU_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuItem" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu item" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_RADIO_MENU_ITEM" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "isAny", + "[ROLE_SYSTEM_RADIOBUTTON, ROLE_SYSTEM_MENUITEM]" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuItem" + ], + [ + "property", + "controlPatterns", + "contains", + "Toggle" + ], + [ + "property", + "controlPatterns", + "contains", + "SelectionItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menuitemradio readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menuitemradio readonly false.</p> + <div role="menu"> + <div role="menuitemradio" aria-readonly="false" id="test">option 1</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemradio_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_true-manual.html new file mode 100644 index 0000000000..70690f372c --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_true-manual.html @@ -0,0 +1,140 @@ +<!doctype html> +<html> + <head> + <title>menuitemradio readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_RADIO_MENU_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_CHECKABLE" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuItem" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu item" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_RADIO_MENU_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "isAny", + "[ROLE_SYSTEM_RADIOBUTTON, ROLE_SYSTEM_MENUITEM]" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuItem" + ], + [ + "property", + "controlPatterns", + "contains", + "Toggle" + ], + [ + "property", + "controlPatterns", + "contains", + "SelectionItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menuitemradio readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menuitemradio readonly true.</p> + <div role="menu"> + <div role="menuitemradio" aria-readonly="true" id="test">option 1</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/menuitemradio_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_unspecified-manual.html new file mode 100644 index 0000000000..a4257c439f --- /dev/null +++ b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_unspecified-manual.html @@ -0,0 +1,128 @@ +<!doctype html> +<html> + <head> + <title>menuitemradio readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_RADIO_MENU_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXMenuItem" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "menu item" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_RADIO_MENU_ITEM" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "isAny", + "[ROLE_SYSTEM_RADIOBUTTON, ROLE_SYSTEM_MENUITEM]" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "MenuItem" + ], + [ + "property", + "controlPatterns", + "contains", + "Toggle" + ], + [ + "property", + "controlPatterns", + "contains", + "SelectionItem" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "menuitemradio readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for menuitemradio readonly unspecified.</p> + <div role="menu"> + <div role="menuitemradio" id="test">option 1</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/none-manual.html b/testing/web-platform/tests/wai-aria/none-manual.html new file mode 100644 index 0000000000..ded346faa6 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/none-manual.html @@ -0,0 +1,78 @@ +<!doctype html> +<html> + <head> + <title>none</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ], + "AXAPI" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ], + "UIA" : [ + [ + "property", + "accessible", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "none" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for none.</p> + <img id='test' role='none' src="foo.jpg" alt="footest"/> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/option_selected_false-manual.html b/testing/web-platform/tests/wai-aria/option_selected_false-manual.html new file mode 100644 index 0000000000..02b1ec8293 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/option_selected_false-manual.html @@ -0,0 +1,131 @@ +<!doctype html> +<html> + <head> + <title>option selected false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXStaticText" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "text" + ], + [ + "property", + "AXSelected", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ListItem" + ], + [ + "property", + "interfaces", + "contains", + "Invoke" + ], + [ + "property", + "ControlPatterns", + "doesNotContain", + "SelectionItem" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "option selected false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for option selected false.</p> + <div role="listbox"> + <div role="option" aria-selected="false" id="test"> + Fish + </div> + <div role="option"> + beef + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/option_selected_true-manual.html b/testing/web-platform/tests/wai-aria/option_selected_true-manual.html new file mode 100644 index 0000000000..8bb7dd7ef5 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/option_selected_true-manual.html @@ -0,0 +1,131 @@ +<!doctype html> +<html> + <head> + <title>option selected true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_ITEM" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXStaticText" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "text" + ], + [ + "property", + "AXSelected", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTITEM" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ListItem" + ], + [ + "property", + "interfaces", + "contains", + "Invoke" + ], + [ + "property", + "SelectionItem.IsSelected", + "Is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "option selected true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for option selected true.</p> + <div role="listbox"> + <div role="option" aria-selected="true" id="test"> + Fish + </div> + <div role="option"> + beef + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/option_selected_undefined-manual.html b/testing/web-platform/tests/wai-aria/option_selected_undefined-manual.html new file mode 100644 index 0000000000..5930de9a48 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/option_selected_undefined-manual.html @@ -0,0 +1,131 @@ +<!doctype html> +<html> + <head> + <title>option selected undefined</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LIST_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXStaticText" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "text" + ], + [ + "property", + "AXSelected", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_LISTITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ListItem" + ], + [ + "property", + "interfaces", + "contains", + "Invoke" + ], + [ + "property", + "ControlPatterns", + "doesNotContain", + "SelectionItem" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "option selected undefined" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for option selected undefined.</p> + <div role="listbox"> + <div role="option" id="test"> + Fish + </div> + <div role="option"> + beef + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/option_selected_value_changes-manual.html b/testing/web-platform/tests/wai-aria/option_selected_value_changes-manual.html new file mode 100644 index 0000000000..2c02a8707d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/option_selected_value_changes-manual.html @@ -0,0 +1,146 @@ +<!doctype html> +<html> + <head> + <title>option selected value changes</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "attribute" : "aria-activedescendant", + "element" : "test1", + "title" : "step 1", + "type" : "attribute", + "value" : "\"test\" " + }, + { + "attribute" : "aria-selected", + "element" : "test", + "title" : "step 2", + "type" : "attribute", + "value" : "\"true\"" + }, + { + "attribute" : "aria-selected", + "element" : "test2", + "title" : "step 3", + "type" : "attribute", + "value" : "\"false\"" + }, + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "event", + "type", + "is", + "object:state-changed:selected" + ], + [ + "event", + "detail1", + "is", + "1" + ] + ], + "MSAA" : [ + [ + "event", + "type", + "is", + "EVENT_OBJECT_SELECTION" + ], + [ + "event", + "type", + "is", + "EVENT_OBJECT_STATECHANGE" + ] + ], + "UIA" : [ + [ + "event", + "type", + "is", + "UIA_SelectionItem_ElementSelectedEventId" + ] + ] + }, + "title" : "step 4", + "type" : "test" + }, + { + "element" : "test1", + "test" : { + "ATK" : [ + [ + "event", + "type", + "is", + "object:selection-changed" + ] + ], + "AXAPI" : [ + [ + "event", + "type", + "is", + "AXSelectedChildrenChanged" + ] + ] + }, + "title" : "step 5", + "type" : "test" + }, + { + "element" : "test2", + "test" : { + "ATK" : [ + [ + "event", + "type", + "is", + "object:state-changed:selected" + ], + [ + "event", + "detail1", + "is", + "0" + ] + ] + }, + "title" : "step 6", + "type" : "test" + } + ], + "title" : "option selected value changes" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for option selected value changes.</p> + <div id="test1" aria-activedescendant="test2" role="listbox"> + <div role="option" aria-selected="false" id="test"> + Fish + </div> + <div id="test2" aria-selected="true" role="option"> + beef + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/radiogroup_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_orientation_horizontal-manual.html new file mode 100644 index 0000000000..4943335cf2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/radiogroup_orientation_horizontal-manual.html @@ -0,0 +1,123 @@ +<!doctype html> +<html> + <head> + <title>radiogroup orientation horizontal</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PANEL" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRadioGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "radio group" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "radiogroup orientation horizontal" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for radiogroup orientation horizontal.</p> + <ul id="test" role="radiogroup" aria-orientation="horizontal"> + <li role="radio">File</file> + <li role="radio">Edit</file> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/radiogroup_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_orientation_unspecified-manual.html new file mode 100644 index 0000000000..40ceab71ca --- /dev/null +++ b/testing/web-platform/tests/wai-aria/radiogroup_orientation_unspecified-manual.html @@ -0,0 +1,135 @@ +<!doctype html> +<html> + <head> + <title>radiogroup orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PANEL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRadioGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "radio group" + ], + [ + "property", + "AXOrientation", + "is", + "AXUnknownOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "isNot", + "vertical" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "isNot", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "radiogroup orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for radiogroup orientation unspecified.</p> + <ul id="test" role="radiogroup"> + <li role="radio">File</file> + <li role="radio">Edit</file> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/radiogroup_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_orientation_vertical-manual.html new file mode 100644 index 0000000000..def4543652 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/radiogroup_orientation_vertical-manual.html @@ -0,0 +1,111 @@ +<!doctype html> +<html> + <head> + <title>radiogroup orientation vertical</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PANEL" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRadioGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "radio group" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "IUIAutomationElement.Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "radiogroup orientation vertical" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for radiogroup orientation vertical.</p> + <ul id="test" role="radiogroup" aria-orientation="vertical"> + <li role="radio">File</file> + <li role="radio">Edit</file> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/radiogroup_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_readonly_false-manual.html new file mode 100644 index 0000000000..102f51757b --- /dev/null +++ b/testing/web-platform/tests/wai-aria/radiogroup_readonly_false-manual.html @@ -0,0 +1,115 @@ +<!doctype html> +<html> + <head> + <title>radiogroup readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PANEL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRadioGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "radio group" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "radiogroup readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for radiogroup readonly false.</p> + <div id="test" role="radiogroup" aria-readonly="false"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/radiogroup_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_readonly_true-manual.html new file mode 100644 index 0000000000..0c97e24a8b --- /dev/null +++ b/testing/web-platform/tests/wai-aria/radiogroup_readonly_true-manual.html @@ -0,0 +1,115 @@ +<!doctype html> +<html> + <head> + <title>radiogroup readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PANEL" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRadioGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "radio group" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "radiogroup readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for radiogroup readonly true.</p> + <div id="test" role="radiogroup" aria-readonly="true"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/radiogroup_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_readonly_unspecified-manual.html new file mode 100644 index 0000000000..6e8c641ac7 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/radiogroup_readonly_unspecified-manual.html @@ -0,0 +1,115 @@ +<!doctype html> +<html> + <head> + <title>radiogroup readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PANEL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRadioGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "radio group" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "List" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "radiogroup readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for radiogroup readonly unspecified.</p> + <div id="test" role="radiogroup"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/region_with_name-manual.html b/testing/web-platform/tests/wai-aria/region_with_name-manual.html new file mode 100644 index 0000000000..ba868a77b2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/region_with_name-manual.html @@ -0,0 +1,114 @@ +<!doctype html> +<html> + <head> + <title>region with name</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_LANDMARK" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:region" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXLandmarkRegion" + ], + [ + "property", + "AXRoleDescription", + "is", + "region" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "xml-roles:region" + ], + [ + "property", + "role", + "is", + "IA2_ROLE_LANDMARK" + ] + ], + "UIA" : [ + [ + "property", + "Control Group", + "is", + "Group" + ], + [ + "property", + "localizedControlType", + "is", + "region" + ], + [ + "property", + "landmarkType", + "is", + "Custom" + ], + [ + "property", + "localizedLandmarkType", + "is", + "region" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "region with name" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for region with name.</p> + <section role="region" aria-label="foobar" id="test"> + <article>This is article 1</article> + </section> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/region_without_name-manual.html b/testing/web-platform/tests/wai-aria/region_without_name-manual.html new file mode 100644 index 0000000000..84ea6658e7 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/region_without_name-manual.html @@ -0,0 +1,128 @@ +<!doctype html> +<html> + <head> + <title>region without name</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SECTION" + ], + [ + "property", + "interfaces", + "contains", + "Text" + ], + [ + "property", + "interfaces", + "contains", + "Hypertext" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "group" + ] + ], + "IAccessible2" : [ + [ + "property", + "interfaces", + "contains", + "IAccessibleText2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleHypertext2" + ], + [ + "property", + "role", + "is", + "IA2_ROLE_SECTION" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_GROUPING" + ] + ], + "UIA" : [ + [ + "property", + "Control Group", + "is", + "Group" + ], + [ + "property", + "landmarkType", + "isNot", + "Custom" + ], + [ + "property", + "localizedLandmarkType", + "isNot", + "region" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "region without name" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for region without name.</p> + <div role="region" id="test" tabindex="-1"> + <article>This is article 1</article> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/row_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/row_colindex_4-manual.html new file mode 100644 index 0000000000..82ee257d9e --- /dev/null +++ b/testing/web-platform/tests/wai-aria/row_colindex_4-manual.html @@ -0,0 +1,149 @@ +<!doctype html> +<html> + <head> + <title>row colindex 4</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_ROW" + ], + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRow" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROW" + ], + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROW" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "Column", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "cell", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "result", + "atk_table_cell_get_position()", + "contains", + "column=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIAColumnIndex", + "is", + "4" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "Column", + "is", + "3" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "row colindex 4" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for row colindex 4.</p> + <div role="table"> + <div id="test" role="row" aria-colindex="4"> + <div id="cell" role="cell">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/row_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/row_rowindex_4-manual.html new file mode 100644 index 0000000000..1333219e04 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/row_rowindex_4-manual.html @@ -0,0 +1,149 @@ +<!doctype html> +<html> + <head> + <title>row rowindex 4</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_ROW" + ], + [ + "property", + "objectAttributes", + "contains", + "rowindex:4" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRow" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROW" + ], + [ + "property", + "objectAttributes", + "contains", + "rowindex:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROW" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "DataItem.Row", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + }, + { + "element" : "cell", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "result", + "atk_table_cell_get_position()", + "contains", + "row=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIARowIndex", + "is", + "4" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "Row", + "is", + "3" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "row rowindex 4" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for row rowindex 4.</p> + <div role="table"> + <div id="test" role="row" aria-rowindex="4"> + <div id="cell" role="cell">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/rowheader_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/rowheader_aria-colspan_2_on_div-manual.html new file mode 100644 index 0000000000..3d82888959 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/rowheader_aria-colspan_2_on_div-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>rowheader aria-colspan 2 on div</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "column_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXColumnIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "colspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "HeaderItem.ColumnSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "rowheader aria-colspan 2 on div" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for rowheader aria-colspan 2 on div.</p> + <div role="table"> + <div role="row"> + <div id="test" role="rowheader" aria-colspan="2">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/rowheader_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/rowheader_aria-rowspan_2_on_div-manual.html new file mode 100644 index 0000000000..4ddf4f5c9a --- /dev/null +++ b/testing/web-platform/tests/wai-aria/rowheader_aria-rowspan_2_on_div-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>rowheader aria-rowspan 2 on div</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "result", + "atk_table_cell_get_row_column_span()", + "contains", + "row_span=2" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXRowIndexRange.length", + "is", + "2" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "rowspan:2" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "HeaderItem.RowSpan", + "is", + "2" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "rowheader aria-rowspan 2 on div" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for rowheader aria-rowspan 2 on div.</p> + <div role="table"> + <div role="row"> + <div id="test" role="rowheader" aria-rowspan="2">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/rowheader_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/rowheader_colindex_4-manual.html new file mode 100644 index 0000000000..8b1eb477e4 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/rowheader_colindex_4-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>rowheader colindex 4</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ], + [ + "result", + "atk_table_cell_get_position()", + "contains", + "column=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIAColumnIndex", + "is", + "4" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTableCell" + ], + [ + "property", + "objectAttributes", + "contains", + "colindex:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "Column", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "rowheader colindex 4" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for rowheader colindex 4.</p> + <div role="table"> + <div role="row"> + <div id="test" role="rowheader" aria-colindex="4" aria-colcount="8">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/rowheader_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/rowheader_rowindex_4-manual.html new file mode 100644 index 0000000000..716403cfeb --- /dev/null +++ b/testing/web-platform/tests/wai-aria/rowheader_rowindex_4-manual.html @@ -0,0 +1,112 @@ +<!doctype html> +<html> + <head> + <title>rowheader rowindex 4</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ROW_HEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "rowindex:4" + ], + [ + "result", + "atk_table_cell_get_position()", + "contains", + "row=3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXARIARowIndex", + "is", + "4" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ], + [ + "property", + "objectAttributes", + "contains", + "rowindex:4" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_ROWHEADER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "HeaderItem" + ], + [ + "property", + "HeaderItem.Row", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "rowheader rowindex 4" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for rowheader rowindex 4.</p> + <div role="table"> + <div role="row"> + <div id="test" role="rowheader" aria-rowindex="4">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/rowheader_selected_false_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/rowheader_selected_false_not_automatically_propagated-manual.html new file mode 100644 index 0000000000..7cd9a55990 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/rowheader_selected_false_not_automatically_propagated-manual.html @@ -0,0 +1,133 @@ +<!doctype html> +<html> + <head> + <title>rowheader selected false not automatically propagated</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "cell" + ], + [ + "property", + "AXSelected", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "SelectionItem.IsSelected", + "is", + "true" + ], + [ + "property", + "SelectionItem.selectionContainer", + "is", + "test1" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "rowheader selected false not automatically propagated" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for rowheader selected false not automatically propagated.</p> + <div id="test1" role="grid"> + <div role="row"> + <div role="columnheader">C1</div> + <div role="columnheader">C2</div> + </div> + <div role="row"> + <div aria-selected="false" role="rowheader">A1</div> + <div id="test" aria-selected="true" role="gridcell">A2</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/rowheader_selected_true_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/rowheader_selected_true_not_automatically_propagated-manual.html new file mode 100644 index 0000000000..51b2b68fee --- /dev/null +++ b/testing/web-platform/tests/wai-aria/rowheader_selected_true_not_automatically_propagated-manual.html @@ -0,0 +1,133 @@ +<!doctype html> +<html> + <head> + <title>rowheader selected true not automatically propagated</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE_CELL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCell" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "cell" + ], + [ + "property", + "AXSelected", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_CELL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataItem" + ], + [ + "property", + "SelectionItem.IsSelected", + "is", + "false" + ], + [ + "property", + "SelectionItem.selectionContainer", + "is", + "test1" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "rowheader selected true not automatically propagated" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for rowheader selected true not automatically propagated.</p> + <div id="test1" role="grid"> + <div role="row"> + <div role="columnheader">C1</div> + <div role="columnheader">C2</div> + </div> + <div role="row"> + <div role="rowheader" aria-selected="true">A1</div> + <div id="test" role="gridcell">A2</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/scripts/ATTAcomm.js b/testing/web-platform/tests/wai-aria/scripts/ATTAcomm.js new file mode 100644 index 0000000000..b748233fc2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/scripts/ATTAcomm.js @@ -0,0 +1,947 @@ +/* globals Promise, window, done, assert_true, on_event, promise_test */ + +/** + * Creates an ATTAcomm object. If the parameters are supplied + * it sets up event listeners to send the test data to an ATTA if one + * is available. If the ATTA does not respond, it will assume the test + * is being done manually and the results are being entered in the + * parent test window. + * + * @constructor + * @param {object} params + * @param {string} [params.test] - object containing JSON test definition + * @param {string} [params.testFile] - URI of a file with JSON test definition + * @param {string} params.ATTAuri - URI to use to exercise the window + * @event DOMContentLoaded Calls go once DOM is fully loaded + * @returns {object} Reference to the new object + * + */ + +function ATTAcomm(params) { + 'use strict'; + + this.Params = null; // parameters passed in + this.Promise = null; // master Promise that resolves when intialization is complete + this.Properties = null; // testharness_properties from the opening window + this.Tests = null; // test object being processed + this.testName = ""; // name of test being run + this.log = ""; // a buffer to capture log information for debugging + this.startReponse = {}; // startTest response will go in here for debugging + + this.loading = true; + + this.timeout = 5000; + + var pending = [] ; + + // set up in case DOM finishes loading early + pending.push(new Promise(function(resolve) { + on_event(document, "DOMContentLoaded", function() { + resolve(true); + }.bind(this)); + }.bind(this))); + + // if we are under runner, then there are props in the parent window + // + // if "output" is set in that, then pause at the end of running so the output + // can be analyzed. @@@TODO@@@ + if (window && window.opener && window.opener.testharness_properties) { + this.Properties = window.opener.testharness_properties; + } + + this.Params = params; + + if (this.Params.hasOwnProperty("ATTAuri")) { + this.ATTAuri = this.Params.ATTAuri; + } else { + this.ATTAuri = "http://localhost:4119"; + } + + if (this.Params.hasOwnProperty("title")) { + this.testName = this.Params.title; + } + + // start by loading the test (it might be inline, but + // loadTest deals with that + pending.push(this.loadTest(params) + .then(function(tests) { + // if the test is NOT an object, turn it into one + if (typeof tests === 'string') { + tests = JSON.parse(tests) ; + } + + this.Tests = tests; + + }.bind(this))); + + this.Promise = new Promise(function(resolve, reject) { + // once the DOM and the test is loaded... set us up + Promise.all(pending) + .then(function() { + // Everything is loaded + this.loading = false ; + // run the automated tests (or setup for manual testing) + this.go(); + resolve(this); + }.bind(this)) + .catch(function(err) { + // loading the components failed somehow - report the errors and mark the test failed + test( function() { + assert_true(false, "Loading of test components failed: " +JSON.stringify(err)) ; + }, "Loading test components"); + this.dumpLog(); + done() ; + reject("Loading of test components failed: "+JSON.stringify(err)); + return ; + }.bind(this)); + }.bind(this)); + + return this; +} + +ATTAcomm.prototype = { + + /** + * go sets up the connection to the ATTA + * + * If that succeeds and the tests in this test file have methods for + * the API supported by the ATTA, then it automatically runs those tests. + * + * Otherwise it sets up for manualt testing. + */ + go: function() { + 'use strict'; + // everything is ready. Let's talk to the ATTA + this.startTest().then(function(res) { + + // start was successful - iterate over steps + var API = res.body.API; + + var subtestsForAPI = false; + + // check main and potentially nested lists of tests for + // tests with this API. If any step is missing this API + // mapping, then we need to be manual + this.Tests.forEach(function(subtest) { + if (subtest.hasOwnProperty("test") && + subtest.test.hasOwnProperty(API)) { + // there is at least one subtest for this API so + // this is a test that needs to be looked at by an atta + subtestsForAPI = true; + } else if (Array.isArray(subtest)) { + subtest.forEach(function(st) { + if (st.hasOwnProperty("test") && + st.test.hasOwnProperty(API)) { + subtestsForAPI = true; + } + }); + } + }); + + if (subtestsForAPI) { + this.runTests(API, this.Tests) + .then(function() { + // the tests all ran; close it out + this.endTest().then(function() { + this.dumpLog(); + done(); + }.bind(this)); + }.bind(this)) + .catch(function(err) { + this.endTest().then(function() { + this.dumpLog(); + done(); + }.bind(this)); + }.bind(this)); + } else { + // we don't know this API for this test + // but we ARE talking to an ATTA; skip this test + this.dumpLog(); + if (window.opener && window.opener.completion_callback) { + window.opener.completion_callback([], { status: 3, message: "No steps for AT API " + API } ); + } else { + done(); + } + // this.setupManualTest("Unknown AT API: " + API); + } + }.bind(this)) + .catch(function(res) { + // startTest failed so just sit and wait for a manual test to occur + if (res.timeout || res.status === 102) { + this.setupManualTest("No response from ATTA at " + this.ATTAuri); + } else if (res.status === 200 ) { + this.setupManualTest(res.message); + } else if (res.statusText === "No response from ATTA") { + this.setupManualTest(""); + } else { + this.setupManualTest("Error from ATTA: " + res.status + ": " + res.statusText); + } + }.bind(this)); + }, + + runTests: function(API, collection) { + // this method returns a promise + + return new Promise(function(resolve, reject) { + // accumulate promises; complete when done + var pending = []; + var testCount = 0; + + this.sendEvents(API, collection) + .then(function(eventStatus) { + + /* Loop strategy... + * + * If the the step is a 'test' then push it into the pending queue as a promise + * + * If the step is anything else, then if there is anything in pending, wait on it + * Once it resolves, clear the queue and then execute the other step. + * + */ + collection.forEach(function(subtest) { + // what "type" of step in the sequence is this? + var theType = "test" ; + if (Array.isArray(subtest)) { + // it is a group + Promise.all(pending).then(function() { + pending = []; + // recursively run the tests + pending.push(this.runTests(API, subtest)); + }.bind(this)); + } else if (subtest.hasOwnProperty("type")) { + theType = subtest.type; + } + testCount++; + if (theType === "test") { + // this is a set of assertions that should be evaluated + pending.push(this.runTest(testCount, API, subtest)); + } else if (theType === "script") { + Promise.all(pending).then(function() { + pending = []; + // execute the script + this.runScript(testCount, subtest); + }.bind(this)); + } else if (theType === "attribute") { + Promise.all(pending).then(function() { + pending = []; + // raise the event + this.handleAttribute(testCount, subtest); + }.bind(this)); + // } else { + } else if (theType === "event") { + Promise.all(pending).then(function() { + pending = []; + // raise the event + this.raiseEvent(testCount, subtest); + }.bind(this)); + // } else { + } + }.bind(this)); + + Promise.all(pending) + .then(function() { + // this collection all ran + if (eventStatus !== "NOEVENTS") { + // there were some events at the beginning + this.sendStopListen().then(function() { + resolve(true); + }); + } else { + resolve(true); + } + }.bind(this)); + }.bind(this)); + }.bind(this)); + }, + + setupManualTest: function(message) { + // if we determine the test should run manually, then expose all of the conditions that are + // in the TEST data structure so that a human can to the inspection and calculate the result + // + 'use strict'; + + var ref = document.getElementById("manualMode"); + if (ref) { + // we have a manualMode block. Populate it + var content = "<h2>Manual Mode Enabled</h2><p>"+message+"</p>"; + if (this.Tests.hasOwnProperty("description")) { + content += "<p>" + this.Tests.description + "</p>"; + } + var theTable = "<table id='steps'><tr><th>Step</th><th>Type</th><th>Element ID</th><th>Assertions</th></tr>"; + this.Tests.forEach(function(subtest) { + var type = "test"; + if (subtest.hasOwnProperty("type")) { + type = subtest.type; + } + var id = "" ; + if (subtest.hasOwnProperty("element")) { + id = subtest.element; + } + theTable += "<tr><td class='step'>" + subtest.title +"</td>"; + theTable += "<td class='type'>" + type + "</td>"; + theTable += "<td class='element'>" + id +"</td>"; + + // now what do we put over here? depends on the type + if (type === "test") { + // it is a test; dump the assertions + theTable += "<td>" + this.buildAssertionTable(subtest.test) + "</td>"; + } else if (type === "attribute" ) { + if (subtest.hasOwnProperty("attribute") && subtest.hasOwnProperty("value") && subtest.hasOwnProperty("element")) { + if (subtest.value === "none") { + theTable += "<td>Remove attribute <code>" + subtest.attribute + "</code> from the element with ID <code>" + subtest.element + "</code></td>"; + } else { + theTable += "<td>Set attribute <code>" + subtest.attribute + "</code> on the element with ID <code>" + subtest.element + "</code> to the value <code>" + subtest.value + "</code></td>"; + } + } + } else if (type === "event" ) { + // it is some events + if (subtest.hasOwnProperty("event") && subtest.hasOwnProperty("element")) { + theTable += "<td>Send event <code>" + subtest.event + "</code> to the element with ID <code>" + subtest.element + "</code></td>"; + } + } else if (type === "script" ) { + // it is a script fragment + theTable += "<td>Script: " + subtest.script + "</td>"; + } else { + theTable += "<td>Unknown type: " + type + "</td>"; + } + theTable += "</tr>"; + + + }.bind(this)); + + theTable += "</table>"; + ref.innerHTML = content + theTable ; + } + }, + + buildAssertionTable: function(asserts) { + "use strict"; + var output = "<table class='api'><tr><th>API Name</th><th colspan='4'>Assertions</th></tr>"; + var APIs = [] ; + for (var k in asserts) { + if (asserts.hasOwnProperty(k)) { + APIs.push(k); + } + } + + APIs.sort().forEach(function(theAPI) { + var rows = asserts[theAPI] ; + var height = rows.length; + output += "<tr><td rowspan='" + height + "' class='apiName'>"+theAPI+"</td>"; + var lastRow = rows.length - 1; + rows.forEach(function(theRow, index) { + var span = 4 - theRow.length; + var colspan = span ? " colspan='"+span+"'" : ""; + theRow.forEach(function(item) { + output += "<td" + colspan + ">" + item + "</td>"; + }); + output += "</tr>"; + if (index < lastRow) { + output += "<tr>"; + } + }); + }); + + output += "</table>"; + return output; + }, + + // eventList - find the events for an API + // + // @param {string} API + // @param {array} collection - a collection of tests + // @returns {array} list of event names + + eventList: function(API, collection) { + var eventHash = {}; + + if (!API || API === "") { + return []; + } + + collection.forEach(function(subtest) { + if (subtest.hasOwnProperty("test") && + subtest.test.hasOwnProperty(API)) { + // this is a subtest for this API; look at the events + subtest.test[API].forEach(function(assert) { + // look for event names + if (assert[0] === "event" && assert[1] === "type" && assert[2] === "is") { + eventHash[assert[3]] = 1; + } + }); + } + }); + + return Object.keys(eventHash); + }, + + // handleAttribute - set or clear an attribute + /** + * @param {integer} testNum - The subtest number + * @param {object} subtest - attribute information to set + */ + handleAttribute: function(testNum, subtest) { + "use strict"; + if (subtest) { + if (subtest.hasOwnProperty("attribute") && subtest.hasOwnProperty("element") && subtest.hasOwnProperty("value")) { + // update an attribute + try { + var node = document.getElementById(subtest.element); + if (node) { + if (subtest.value === "none") { + // remove this attribute + node.removeAttribute(subtest.attribute); + } else if (subtest.value === '""') { + node.setAttribute(subtest.attribute, ""); + } else if (subtest.value.match(/^"/) ) { + var v = subtest.value; + v = v.replace(/^"/, ''); + v = v.replace(/"$/, ''); + node.setAttribute(subtest.attribute, v); + } else { + node.setAttribute(subtest.attribute, subtest.value); + } + } + } + catch (e) { + test(function() { + assert_true(false, "Subtest attribute failed to update: " +e); + }, "Attribute subtest " + testNum); + } + } else { + test(function() { + var err = ""; + if (!subtest.hasOwnProperty("attribute")) { + err += "Attribute subtest has no attribute property; "; + } else if (!subtest.hasOwnProperty("value")) { + err += "Attribute subtest has no value property; "; + } else if (!subtest.hasOwnProperty("element")) { + err += "Attribute subtest has no element property; "; + } + assert_true(false, err); + }, "Attribute subtest " + testNum ); + } + } + return; + }, + + + + // raiseEvent - throw an event at an item + /** + * @param {integer} testNum - The subtest number + * @param {object} subtest - event information to throw + */ + raiseEvent: function(testNum, subtest) { + "use strict"; + var evt; + if (subtest) { + var kp = function(target, key) { + evt = document.createEvent("KeyboardEvent"); + evt.initKeyEvent ("keypress", true, true, window, + 0, 0, 0, 0, 0, "e".charCodeAt(0)); + target.dispatchEvent(evt); + }; + if (subtest.hasOwnProperty("event") && subtest.hasOwnProperty("element")) { + // throw an event + try { + var node = document.getElementById(subtest.element); + if (node) { + if (subtest.event === "focus") { + node.focus(); + } else if (subtest.event === "select") { + node.click(); + } else if (subtest.event.startsWith('key:')) { + var key = subtest.event.replace('key:', ''); + evt = new KeyboardEvent("keypress", { "key": key}); + node.dispatchEvent(evt); + } else { + evt = new Event(subtest.element); + node.dispatchEvent(evt); + } + } + } + catch (e) { + test(function() { + assert_true(false, "Subtest event failed to dispatch: " +e); + }, "Event subtest " + testNum); + } + } else { + test(function() { + var err = ""; + if (!subtest.hasOwnProperty("event")) { + err += "Event subtest has no event property; "; + } else if (!subtest.hasOwnProperty("element")) { + err += "Event subtest has no element property; "; + } + assert_true(false, err); + }, "Event subtest " + testNum ); + } + } + return; + }, + + // runScript - run a script in the context of the window + /** + * @param {integer} testNum - The subtest number + * @param {object} subtest - script and related information + */ + runScript: function(testNum, subtest) { + "use strict"; + if (subtest) { + if (subtest.hasOwnProperty("script") && typeof subtest.script === "string") { + try { + /* jshint evil:true */ + eval(subtest.script); + } + catch (e) { + test(function() { + assert_true(false, "Subtest script " + subtest.script + " failed to evaluate: " +e); + }, "Event subtest " + testNum); + } + } else { + test(function() { + assert_true(false, "Event subtest has no script property"); + }, "Event subtest " + testNum ); + } + } + return; + }, + + // runTest - process subtest + /** + * @param {integer} testNum - The subtest number + * @param {string} API - name of the API being tested + * @param {object} subtest - a subtest to run; contains 'title', 'element', and + * 'test array' + * @returns {Promise} - a Promise that resolves when the test completes + */ + runTest: function(testNum, API, subtest) { + 'use strict'; + + var data = { + "title" : subtest.title, + "id" : subtest.element, + "data": this.normalize(subtest.test[API]) + }; + + return new Promise(function(resolve) { + var ANNO = this; + if (subtest.test[API]) { + // we actually have a test to run + promise_test(function() { + // force a resolve of the promise regardless + this.add_cleanup(function() { resolve(true); }); + return ANNO.sendTest(data) + .then(function(res) { + if (typeof res.body === "object" && res.body.hasOwnProperty("status")) { + // we got some sort of response + if (res.body.status === "OK") { + // the test ran - yay! + var messages = ""; + var thisResult = null; + var theLog = ""; + var assertionCount = 0; + res.body.results.forEach( function (a) { + if (typeof a === "object") { + // we have a result for this assertion + // first, what is the assertion? + var aRef = data.data[assertionCount]; + var assertionText = '"' + aRef.join(" ") +'"'; + + if (a.hasOwnProperty("log") && a.log !== null && a.log !== '' ) { + // there is log data - save it + theLog += "\n--- Assertion " + assertionCount + " ---"; + theLog += "\nAssertion: " + assertionText + "\nLog data: "+a.log ; + } + + // is there a message? + var theMessage = ""; + if (a.hasOwnProperty("message")) { + theMessage = a.message; + } + if (!a.hasOwnProperty("result")) { + messages += "ATTA did not report a result " + theMessage + "; "; + } else if (a.result === "ERROR") { + messages += "ATTA reported ERROR with message: " + theMessage + "; "; + } else if (a.result === "FAIL") { + thisResult = false; + messages += assertionText + " failed " + theMessage + "; "; + } else if (a.result === "PASS" && thisResult === null) { + // if we got a pass and there was no other result thus far + // then we are passing + thisResult = true; + } + } + assertionCount++; + }); + if (theLog !== "") { + ANNO.saveLog("runTest", theLog, subtest); + } + if (thisResult !== null) { + assert_true(thisResult, messages); + } else { + assert_true(false, "ERROR: No results reported from ATTA; " + messages); + } + } else if (res.body.status === "ERROR") { + assert_true(false, "ATTA returned ERROR with message: " + res.body.statusText); + } else { + assert_true(false, "ATTA returned unknown status " + res.body.status + " with message: " + res.body.statusText); + } + } else { + // the return wasn't an object! + assert_true(false, "ATTA failed to return a result object: returned: "+JSON.stringify(res)); + } + }); + }, subtest.name ); + } else { + // there are no test steps for this API. fake a subtest result + promise_test(function() { + // force a resolve of the promise regardless + this.add_cleanup(function() { resolve(true); }); + return new Promise(function(innerResolve) { + innerResolve(true); + }) + .then(function(res) { + var theLog = "\nSUBTEST NOTRUN: No assertions for API " + API + "\n"; + if (theLog !== "") { + ANNO.saveLog("runTest", theLog, subtest); + } + assert_false(true, "NOTRUN: No assertion for API " + API); + }); + }, subtest.name ); + } + }.bind(this)); + }, + + // loadTest - load a test from an external JSON file + // + // returns a promise that resolves with the contents of the + // test + + loadTest: function(params) { + 'use strict'; + + if (params.hasOwnProperty('stepFile')) { + // the test is referred to by a file name + return this._fetch("GET", params.stepFile); + } // else + return new Promise(function(resolve, reject) { + if (params.hasOwnProperty('steps')) { + resolve(params.steps); + } else { + reject("Must supply a 'steps' or 'stepFile' parameter"); + } + }); + }, + + /* dumpLog - put log information into the log div on the page if it exists + */ + + dumpLog: function() { + 'use strict'; + if (this.log !== "") { + var ref = document.getElementById("ATTAmessages"); + if (ref) { + // we have a manualMode block. Populate it + var content = "<h2>Logging information recorded</h2>"; + if (this.startResponse && this.startResponse.hasOwnProperty("API")) { + content += "<h3>ATTA Information</h3>"; + content += "<pre>"+JSON.stringify(this.startResponse, null, " ")+"</pre>"; + } + content += "<textarea rows='50' style='width:100%'>"+this.log+"</textarea>"; + ref.innerHTML = content ; + } + } + }, + + /* saveLog - capture logging information so that it can be displayed on the page after testing is complete + * + * @param {string} caller name + * @param {string} log message + * @param {object} subtest + */ + + saveLog: function(caller, message, subtest) { + 'use strict'; + + if (typeof message === "string" && message !== "") { + this.log += "============================================================\n"; + this.log += "Message from " + caller + "\n"; + if (subtest && typeof subtest === "object") { + var API = this.startResponse.API; + this.log += "\n SUBTEST TITLE: " + subtest.title; + this.log += "\n SUBTEST ELEMENT: " + subtest.element; + this.log += "\n SUBTEST DATA: " + JSON.stringify(subtest.test[API]); + this.log += "\n\n"; + } + this.log += message; + } + return; + }, + + // startTest - send the test start message + // + // @returns {Promise} resolves if the start is successful, or rejects with + + startTest: function() { + 'use strict'; + + return new Promise(function(resolve, reject) { + var params = { + test: this.testName || window.title, + url: document.location.href + }; + + this._fetch("POST", this.ATTAuri + "/start", null, params) + .then(function(res) { + if (res.body.hasOwnProperty("status")) { + if (res.body.status === "READY") { + this.startResponse = res.body; + if (res.body.hasOwnProperty("log")) { + // there is some logging data - capture it + this.saveLog("startTest", res.body.log); + } + // the system is ready for us - is it really? + if (res.body.hasOwnProperty("API")) { + resolve(res); + } else { + res.message = "No API in response from ATTA"; + reject(res); + } + } else { + // the system reported something else - fail out with the statusText as a result + res.message = "ATTA reported an error: " + res.body.statusText; + reject(res); + } + } else { + res.message = "ATTA did not report a status"; + reject(res); + } + }.bind(this)) + .catch(function(res) { + reject(res); + }); + }.bind(this)); + }, + + // sendEvents - send the list of events the ATTA needs to listen for + // + // @param {string} API + // @param {array} collection - a list of tests + // @returns {Promise} resolves if the message is successful, or rejects with + + sendEvents: function(API, collection) { + 'use strict'; + + return new Promise(function(resolve, reject) { + var eList = this.eventList(API, collection) ; + if (eList && eList.length) { + var params = { + events: eList + }; + + this._fetch("POST", this.ATTAuri + "/startlisten", null, params) + .then(function(res) { + if (res.body.hasOwnProperty("status")) { + if (res.body.status === "READY") { + if (res.body.hasOwnProperty("log")) { + // there is some logging data - capture it + this.saveLog("sendEvents", res.body.log); + } + resolve(res.body.status); + } else { + // the system reported something else - fail out with the statusText as a result + res.message = "ATTA reported an error: " + res.body.statusText; + reject(res); + } + } else { + res.message = "ATTA did not report a status"; + reject(res); + } + }.bind(this)) + .catch(function(res) { + reject(res); + }); + } else { + // there are no events + resolve("NOEVENTS"); + } + }.bind(this)); + }, + + sendStopListen: function() { + 'use strict'; + + return this._fetch("POST", this.ATTAuri + "/stoplisten", null, null); + }, + + // sendTest - send test data to an ATTA and wait for a response + // + // returns a promise that resolves with the results of the test + + sendTest: function(testData) { + 'use strict'; + + if (typeof testData !== "string") { + testData = JSON.stringify(testData); + } + var ret = this._fetch("POST", this.ATTAuri + "/test", null, testData, true); + ret.then(function(res) { + if (res.body.hasOwnProperty("log")) { + // there is some logging data - capture it + this.saveLog("sendTest", res.body.log); + } + }.bind(this)); + return ret; + }, + + endTest: function() { + 'use strict'; + + return this._fetch("GET", this.ATTAuri + "/end"); + }, + + /* normalize - ensure subtest data conforms to ATTA spec + */ + + normalize: function( data ) { + 'use strict'; + + var ret = [] ; + + if (data) { + data.forEach(function(assert) { + var normal = [] ; + // ensure if there is a value list it is compressed + if (Array.isArray(assert)) { + // we have an array + normal[0] = assert[0]; + normal[1] = assert[1]; + normal[2] = assert[2]; + if ("string" === typeof assert[3] && assert[3].match(/^\[.*\]$/)) { + // it is a string and matches the valuelist pattern + normal[3] = assert[3].replace(/, +/, ','); + } else { + normal[3] = assert[3]; + } + ret.push(normal); + } else { + ret.push(assert); + } + }); + } + return ret; + }, + + // _fetch - return a promise after sending data + // + // Resolves with the returned information in a structure + // including: + // + // xhr - a raw xhr object + // headers - an array of headers sent in the request + // status - the status code + // statusText - the text of the return status + // text - raw returned data + // body - an object parsed from the returned content + // + + _fetch: function (method, url, headers, content, parse) { + 'use strict'; + if (method === null || method === undefined) { + method = "GET"; + } + if (parse === null || parse === undefined) { + parse = true; + } + if (headers === null || headers === undefined) { + headers = []; + } + + + // note that this Promise always resolves - there is no reject + // condition + + return new Promise(function (resolve, reject) { + var xhr = new XMLHttpRequest(); + + // this gets returned when the request completes + var resp = { + xhr: xhr, + headers: null, + status: 0, + statusText: "", + body: null, + text: "" + }; + + xhr.open(method, url); + + // headers? + headers.forEach(function(ref) { + xhr.setRequestHeader(ref[0], ref[1]); + }); + + //if (this.timeout) { + // xhr.timeout = this.timeout; + //} + + xhr.ontimeout = function() { + resp.timeout = this.timeout; + resolve(resp); + }; + + xhr.onerror = function() { + if (this.status) { + resp.status = this.status; + resp.statusText = xhr.statusText; + } else if (this.status === 0) { + resp.status = 0; + resp.statusText = "No response from ATTA"; + } + reject(resp); + }; + + xhr.onload = function () { + resp.status = this.status; + if (this.status >= 200 && this.status < 300) { + var d = xhr.response; + // return the raw text of the response + resp.text = d; + // we have it; what is it? + if (parse) { + try { + d = JSON.parse(d); + resp.body = d; + } + catch(err) { + resp.body = null; + } + } + resolve(resp); + } else { + reject({ + status: this.status, + statusText: xhr.statusText + }); + } + }; + + if (content !== null && content !== undefined) { + if ("object" === typeof(content)) { + xhr.send(JSON.stringify(content)); + } else if ("function" === typeof(content)) { + xhr.send(content()); + } else if ("string" === typeof(content)) { + xhr.send(content); + } + } else { + xhr.send(); + } + }); + }, + +}; + +// vim: set ts=2 sw=2: diff --git a/testing/web-platform/tests/wai-aria/scripts/manual.css b/testing/web-platform/tests/wai-aria/scripts/manual.css new file mode 100644 index 0000000000..0e4f4a03e4 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/scripts/manual.css @@ -0,0 +1,70 @@ +html { + font-family:DejaVu Sans, Bitstream Vera Sans, Arial, Sans; +} + +table#steps { + border-collapse:collapse; + table-layout:fixed; + width:100%; +} + +table#steps th:last-child, +table#steps td:last-child { + width:70%; +} + +// table#steps.assertions th:last-child, +// table#steps.assertions td:last-child { +// width:35%; +// } + +table#steps th { + padding:0; + padding-bottom:0.25; + border-bottom:medium solid black; +} + +table#steps td { + padding-top:0.25em; + padding-bottom:0.25em; + padding-left:0.5em; + padding-right:0.5em; + border-right:thin solid black; + border-top:thin solid black; + border-bottom:thin solid black; +} + +table#steps td.step, table#steps td.type, table#steps td.element { + vertical-align:top; +} +table#api { + border-collapse:collapse; + table-layout:fixed; + width:100%; +} + +// table#steps.assertions th:last-child, +// table#steps.assertions td:last-child { +// width:35%; +// } + +table#api th { + padding:0; + padding-bottom:0.25; + border-bottom:medium solid black; +} + +table#api td { + padding-top:0.25em; + padding-bottom:0.25em; + padding-left:0.5em; + padding-right:0.5em; + border-right:thin solid black; + border-top:thin solid black; + border-bottom:thin solid black; +} + +table#api td.step, table#api td.type, table#api td.element { + vertical-align:top; +} +} diff --git a/testing/web-platform/tests/wai-aria/scrollbar_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/scrollbar_all_values_unspecified-manual.html new file mode 100644 index 0000000000..910fe2b118 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/scrollbar_all_values_unspecified-manual.html @@ -0,0 +1,182 @@ +<!doctype html> +<html> + <head> + <title>scrollbar all values unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SCROLL_BAR" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "result", + "atk_value_get_minimum_value()", + "is", + "0" + ], + [ + "result", + "atk_value_get_current_value()", + "is", + "50" + ], + [ + "result", + "atk_value_get_maximum_value()", + "is", + "100" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXScrollBar" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "scroll bar" + ], + [ + "property", + "AXMinValue", + "is", + "0" + ], + [ + "property", + "AXValue", + "is", + "50" + ], + [ + "property", + "AXMaxValue", + "is", + "100" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SCROLLBAR" + ], + [ + "property", + "interfaces", + "contains", + "AccessibleValue" + ], + [ + "property", + "minimumValue", + "is", + "0" + ], + [ + "property", + "currentValue", + "is", + "50" + ], + [ + "property", + "maximumValue", + "is", + "100" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SCROLLBAR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "scrollbar" + ], + [ + "property", + "interfaces", + "contains", + "RangeValue" + ], + [ + "result", + "RangeValue.Minimum", + "is", + "0" + ], + [ + "result", + "RangeValue.Value", + "is", + "50" + ], + [ + "result", + "RangeValue.Maximum", + "is", + "100" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "scrollbar all values unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for scrollbar all values unspecified.</p> + <div role="scrollbar" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/scrollbar_only_valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/scrollbar_only_valuenow_unspecified-manual.html new file mode 100644 index 0000000000..73e3158176 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/scrollbar_only_valuenow_unspecified-manual.html @@ -0,0 +1,182 @@ +<!doctype html> +<html> + <head> + <title>scrollbar only valuenow unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SCROLL_BAR" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "result", + "atk_value_get_minimum_value()", + "is", + "0" + ], + [ + "result", + "atk_value_get_current_value()", + "is", + "20" + ], + [ + "result", + "atk_value_get_maximum_value()", + "is", + "40" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXScrollBar" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "scroll bar" + ], + [ + "property", + "AXMinValue", + "is", + "0" + ], + [ + "property", + "AXValue", + "is", + "20" + ], + [ + "property", + "AXMaxValue", + "is", + "40" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SCROLLBAR" + ], + [ + "property", + "interfaces", + "contains", + "AccessibleValue" + ], + [ + "property", + "minimumValue", + "is", + "0" + ], + [ + "property", + "currentValue", + "is", + "20" + ], + [ + "property", + "maximumValue", + "is", + "40" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SCROLLBAR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ScrollBar" + ], + [ + "property", + "controlPatterns", + "contains", + "RangeValue" + ], + [ + "result", + "RangeValue.Minimum", + "is", + "0" + ], + [ + "result", + "RangeValue.Value", + "is", + "20" + ], + [ + "result", + "RangeValue.Maximum", + "is", + "40" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "scrollbar only valuenow unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for scrollbar only valuenow unspecified.</p> + <div role="scrollbar" aria-valuemin="0" aria-valuemax="40" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/scrollbar_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/scrollbar_orientation_unspecified-manual.html new file mode 100644 index 0000000000..32791ae1d8 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/scrollbar_orientation_unspecified-manual.html @@ -0,0 +1,132 @@ +<!doctype html> +<html> + <head> + <title>scrollbar orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SCROLL_BAR" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXScrollBar" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "scroll bar" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SCROLLBAR" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SCROLLBAR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ScrollBar" + ], + [ + "property", + "Orientation", + "is", + "vertical" + ], + [ + "property", + "interfaces", + "contains", + "RangeValue" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "scrollbar orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for scrollbar orientation unspecified.</p> + <div role="scrollbar" id="test"></div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox-manual.html b/testing/web-platform/tests/wai-aria/searchbox-manual.html new file mode 100644 index 0000000000..979bd0fad4 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox-manual.html @@ -0,0 +1,120 @@ +<!doctype html> +<html> + <head> + <title>searchbox</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "interfaces", + "contains", + "EditableText" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:searchbox" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:searchbox" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox.</p> + <div id='test' role='searchbox' contenteditable='true'></div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_activedescendant-manual.html b/testing/web-platform/tests/wai-aria/searchbox_activedescendant-manual.html new file mode 100644 index 0000000000..a72cf93263 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_activedescendant-manual.html @@ -0,0 +1,222 @@ +<!doctype html> +<html> + <head> + <title>searchbox activedescendant</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "event" : "focus", + "title" : "step 1", + "type" : "event" + }, + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "interfaces", + "contains", + "EditableText" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_FOCUSABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ], + [ + "property", + "AXFocused", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId", + "is", + "true" + ], + [ + "property", + "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId", + "is", + "false" + ] + ] + }, + "title" : "step 2", + "type" : "test" + }, + { + "element" : "bob", + "test" : { + "ATK" : [ + [ + "property", + "states", + "contains", + "STATE_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_FOCUSABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXFocused", + "is", + "true" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXFocused)", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSABLE" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId", + "is", + "true" + ], + [ + "property", + "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId", + "is", + "true" + ] + ] + }, + "title" : "step 3", + "type" : "test" + } + ], + "title" : "searchbox activedescendant" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox activedescendant.</p> + <div id='test' tabindex="0" aria-activedescendant="bob" role='searchbox'> + <div id='bob' role='group'>Hello world</div> + </div> + then role:searchbox, aria-activedescendant: bob + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_activedescendant_value_changes-manual.html b/testing/web-platform/tests/wai-aria/searchbox_activedescendant_value_changes-manual.html new file mode 100644 index 0000000000..956f931ae8 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_activedescendant_value_changes-manual.html @@ -0,0 +1,271 @@ +<!doctype html> +<html> + <head> + <title>searchbox activedescendant value changes</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "event" : "focus", + "title" : "step 1", + "type" : "event" + }, + { + "attribute" : "aria-activedescendant", + "element" : "test", + "title" : "step 2", + "type" : "attribute", + "value" : "\"bob\"" + }, + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "interfaces", + "contains", + "EditableText" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_FOCUSABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ], + [ + "property", + "AXFocused", + "is", + "false" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXFocused)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "event", + "type", + "is", + "EVENT_OBJECT_FOCUS" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId", + "is", + "true" + ], + [ + "property", + "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId", + "is", + "false" + ] + ] + }, + "title" : "step 3", + "type" : "test" + }, + { + "element" : "bob", + "test" : { + "ATK" : [ + [ + "property", + "states", + "contains", + "STATE_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_FOCUSABLE" + ], + [ + "event", + "type", + "is", + "object:state-changed:focused" + ], + [ + "event", + "detail1", + "is", + "1" + ] + ], + "AXAPI" : [ + [ + "property", + "AXFocused", + "is", + "true" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXFocused)", + "is", + "true" + ], + [ + "event", + "type", + "is", + "AXFocusedUIElementChanged" + ] + ], + "MSAA" : [ + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_FOCUSABLE" + ], + [ + "event", + "type", + "is", + "EVENT_OBJECT_FOCUS" + ] + ], + "UIA" : [ + [ + "property", + "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId", + "is", + "true" + ], + [ + "property", + "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId", + "is", + "true" + ], + [ + "event", + "type", + "is", + "UIA_AutomationFocusChangedEventId" + ] + ] + }, + "title" : "step 4", + "type" : "test" + } + ], + "title" : "searchbox activedescendant value changes" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox activedescendant value changes.</p> + <div id='test' tabindex="0" role='searchbox'> + <div id='bob' role='group'>Hello world</div> + </div> + then role:searchbox, aria-activedescendant: bob + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_both-manual.html b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_both-manual.html new file mode 100644 index 0000000000..ea8b698679 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_both-manual.html @@ -0,0 +1,133 @@ +<!doctype html> +<html> + <head> + <title>searchbox autocomplete both</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "objectAttributes", + "contains", + "autocomplete:both" + ], + [ + "property", + "states", + "contains", + "STATE_SUPPORTS_AUTOCOMPLETION" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ], + [ + "property", + "autocomplete", + "is", + "<nil>" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "objectAttributes", + "contains", + "autocomplete:both" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "autocomplete", + "is", + "both" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox autocomplete both" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox autocomplete both.</p> + <div id="test" role="searchbox" aria-autocomplete="both"></div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_inline-manual.html b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_inline-manual.html new file mode 100644 index 0000000000..77e707666c --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_inline-manual.html @@ -0,0 +1,133 @@ +<!doctype html> +<html> + <head> + <title>searchbox autocomplete inline</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "objectAttributes", + "contains", + "autocomplete:inline" + ], + [ + "property", + "states", + "contains", + "STATE_SUPPORTS_AUTOCOMPLETION" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ], + [ + "property", + "autocomplete", + "is", + "<nil>" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "objectAttributes", + "contains", + "autocomplete:inline" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "autocomplete", + "is", + "inline" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox autocomplete inline" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox autocomplete inline.</p> + <div id="test" role="searchbox" aria-autocomplete="inline"></div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_list-manual.html b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_list-manual.html new file mode 100644 index 0000000000..0ce8068ea9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_list-manual.html @@ -0,0 +1,133 @@ +<!doctype html> +<html> + <head> + <title>searchbox autocomplete list</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "objectAttributes", + "contains", + "autocomplete:list" + ], + [ + "property", + "states", + "contains", + "STATE_SUPPORTS_AUTOCOMPLETION" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ], + [ + "property", + "autocomplete", + "is", + "<nil>" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "objectAttributes", + "contains", + "autocomplete:list" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "autocomplete", + "is", + "list" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox autocomplete list" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox autocomplete list.</p> + <div id="test" role="searchbox" aria-autocomplete="list"></div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_none-manual.html b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_none-manual.html new file mode 100644 index 0000000000..341d75c532 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_none-manual.html @@ -0,0 +1,133 @@ +<!doctype html> +<html> + <head> + <title>searchbox autocomplete none</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "objectAttributes", + "contains", + "autocomplete:none" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SUPPORTS_AUTOCOMPLETION" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ], + [ + "property", + "autocomplete", + "is", + "<nil>" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "objectAttributes", + "contains", + "autocomplete:none" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "autocomplete", + "is", + "none" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox autocomplete none" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox autocomplete none.</p> + <div id="test" role="searchbox" aria-autocomplete="none"></div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_unspecified-manual.html b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_unspecified-manual.html new file mode 100644 index 0000000000..59becae655 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_unspecified-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>searchbox autocomplete unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SUPPORTS_AUTOCOMPLETION" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ], + [ + "property", + "autocomplete", + "is", + "<nil>" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "objectAttributes", + "contains", + "autocomplete:none" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "autocomplete", + "is", + "" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox autocomplete unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox autocomplete unspecified.</p> + <div id="test" role="searchbox"></div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_multiline_false-manual.html b/testing/web-platform/tests/wai-aria/searchbox_multiline_false-manual.html new file mode 100644 index 0000000000..8f49eb61e9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_multiline_false-manual.html @@ -0,0 +1,126 @@ +<!doctype html> +<html> + <head> + <title>searchbox multiline false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "interfaces", + "contains", + "EditableText" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_MULTI_LINE" + ], + [ + "property", + "states", + "contains", + "IA2_SINGLE_LINE" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox multiline false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox multiline false.</p> + <div id='test' role='searchbox' contenteditable='true' aria-multiline='false'></div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_multiline_true-manual.html b/testing/web-platform/tests/wai-aria/searchbox_multiline_true-manual.html new file mode 100644 index 0000000000..47e6c3aaa9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_multiline_true-manual.html @@ -0,0 +1,138 @@ +<!doctype html> +<html> + <head> + <title>searchbox multiline true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SINGLE_LINE" + ], + [ + "property", + "states", + "contains", + "STATE_MULTI_LINE" + ], + [ + "property", + "interfaces", + "contains", + "EditableText" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "states", + "contains", + "IA2_MULTI_LINE" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_SINGLE_LINE" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "AriaProperties.multiline", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox multiline true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox multiline true.</p> + <div id='test' role='searchbox' contenteditable='true' aria-multiline='true'></div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_multiline_unspecified-manual.html b/testing/web-platform/tests/wai-aria/searchbox_multiline_unspecified-manual.html new file mode 100644 index 0000000000..5c1d7f5185 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_multiline_unspecified-manual.html @@ -0,0 +1,108 @@ +<!doctype html> +<html> + <head> + <title>searchbox multiline unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "interfaces", + "contains", + "EditableText" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "contains", + "xml-roles:search" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox multiline unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox multiline unspecified.</p> + <div id='test' role='searchbox' contenteditable='true'></div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_placeholder-manual.html b/testing/web-platform/tests/wai-aria/searchbox_placeholder-manual.html new file mode 100644 index 0000000000..da513456d2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_placeholder-manual.html @@ -0,0 +1,140 @@ +<!doctype html> +<html> + <head> + <title>searchbox placeholder</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "interfaces", + "contains", + "EditableText" + ], + [ + "property", + "objectAttributes", + "contains", + "placeholder-text:DD/MM/YYYY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ], + [ + "property", + "AXPlaceholderValue", + "is", + "DD/MM/YYYY" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_SINGLE_LINE" + ], + [ + "property", + "objectAttributes", + "contains", + "placeholder-text:DD/MM/YYYY" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "result", + "AriaProperties.placeholder", + "is", + "DD/MM/YYYY" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox placeholder" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox placeholder.</p> + <div contenteditable="true" role="searchbox" aria-placeholder="DD/MM/YYYY" id="test"> + "DD/MM/YYYY" + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/searchbox_readonly_false-manual.html new file mode 100644 index 0000000000..574666a017 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_readonly_false-manual.html @@ -0,0 +1,139 @@ +<!doctype html> +<html> + <head> + <title>searchbox readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "interfaces", + "contains", + "EditableText" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox readonly false.</p> + <div id="test" role="searchbox" aria-readonly="false"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/searchbox_readonly_true-manual.html new file mode 100644 index 0000000000..833f1bc428 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_readonly_true-manual.html @@ -0,0 +1,139 @@ +<!doctype html> +<html> + <head> + <title>searchbox readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "interfaces", + "doesNotContain", + "EditableText" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox readonly true.</p> + <div id="test" role="searchbox" aria-readonly="true"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/searchbox_readonly_unspecified-manual.html new file mode 100644 index 0000000000..51b9893595 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_readonly_unspecified-manual.html @@ -0,0 +1,139 @@ +<!doctype html> +<html> + <head> + <title>searchbox readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "interfaces", + "contains", + "EditableText" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRoleDescription", + "is", + "search text field" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox readonly unspecified.</p> + <div id="test" role="searchbox"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_required_false-manual.html b/testing/web-platform/tests/wai-aria/searchbox_required_false-manual.html new file mode 100644 index 0000000000..1bfc895356 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_required_false-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>searchbox required false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_REQUIRED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRequired", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_REQUIRED" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "IsrequiredForForm", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox required false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox required false.</p> + <div id="test" role="searchbox" aria-required="false"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_required_true-manual.html b/testing/web-platform/tests/wai-aria/searchbox_required_true-manual.html new file mode 100644 index 0000000000..7e26e5ab03 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_required_true-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>searchbox required true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "states", + "contains", + "STATE_REQUIRED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRequired", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_REQUIRED" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "IsrequiredForForm", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox required true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox required true.</p> + <div id="test" role="searchbox" aria-required="true"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/searchbox_required_unspecified-manual.html b/testing/web-platform/tests/wai-aria/searchbox_required_unspecified-manual.html new file mode 100644 index 0000000000..13489ad13a --- /dev/null +++ b/testing/web-platform/tests/wai-aria/searchbox_required_unspecified-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>searchbox required unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_REQUIRED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "AXSearchField" + ], + [ + "property", + "AXRequired", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "objectAttributes", + "contains", + "text-input-type:search" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_REQUIRED" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "property", + "LocalizedControlType", + "is", + "search box" + ], + [ + "property", + "IsrequiredForForm", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "searchbox required unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for searchbox required unspecified.</p> + <div id="test" role="searchbox"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/separator_focusable_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/separator_focusable_all_values_unspecified-manual.html new file mode 100644 index 0000000000..fb8e852bb1 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/separator_focusable_all_values_unspecified-manual.html @@ -0,0 +1,182 @@ +<!doctype html> +<html> + <head> + <title>separator focusable all values unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SEPARATOR" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "result", + "atk_value_get_minimum_value()", + "is", + "0" + ], + [ + "result", + "atk_value_get_current_value()", + "is", + "50" + ], + [ + "result", + "atk_value_get_maximum_value()", + "is", + "100" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSplitter" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "splitter" + ], + [ + "property", + "AXMinValue", + "is", + "0" + ], + [ + "property", + "AXValue", + "is", + "50" + ], + [ + "property", + "AXMaxValue", + "is", + "100" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SEPARATOR" + ], + [ + "property", + "interfaces", + "contains", + "AccessibleValue" + ], + [ + "property", + "minimumValue", + "is", + "0" + ], + [ + "property", + "currentValue", + "is", + "50" + ], + [ + "property", + "maximumValue", + "is", + "100" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SEPARATOR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Thumb" + ], + [ + "property", + "controlPatterns", + "contains", + "RangeValue" + ], + [ + "result", + "RangeValue.Minimum", + "is", + "0" + ], + [ + "result", + "RangeValue.Value", + "is", + "50" + ], + [ + "result", + "RangeValue.Maximum", + "is", + "100" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "separator focusable all values unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for separator focusable all values unspecified.</p> + <div tabindex="0" role="separator" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/separator_focusable_only_valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/separator_focusable_only_valuenow_unspecified-manual.html new file mode 100644 index 0000000000..680c2a3605 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/separator_focusable_only_valuenow_unspecified-manual.html @@ -0,0 +1,182 @@ +<!doctype html> +<html> + <head> + <title>separator focusable only valuenow unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SEPARATOR" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "result", + "atk_value_get_minimum_value()", + "is", + "0" + ], + [ + "result", + "atk_value_get_current_value()", + "is", + "50" + ], + [ + "result", + "atk_value_get_maximum_value()", + "is", + "100" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSplitter" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "splitter" + ], + [ + "property", + "AXMinValue", + "is", + "0" + ], + [ + "property", + "AXValue", + "is", + "50" + ], + [ + "property", + "AXMaxValue", + "is", + "100" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SEPARATOR" + ], + [ + "property", + "interfaces", + "contains", + "AccessibleValue" + ], + [ + "property", + "minimumValue", + "is", + "0" + ], + [ + "property", + "currentValue", + "is", + "50" + ], + [ + "property", + "maximumValue", + "is", + "100" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SEPARATOR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Thumb" + ], + [ + "property", + "controlPatterns", + "contains", + "RangeValue" + ], + [ + "result", + "RangeValue.Minimum", + "is", + "0" + ], + [ + "result", + "RangeValue.Value", + "is", + "50" + ], + [ + "result", + "RangeValue.Maximum", + "is", + "100" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "separator focusable only valuenow unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for separator focusable only valuenow unspecified.</p> + <div tabindex="0" role="separator" aria-valuemin="0", aria-valuemax="100" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/separator_focusable_valuetext-manual.html b/testing/web-platform/tests/wai-aria/separator_focusable_valuetext-manual.html new file mode 100644 index 0000000000..5992f15aeb --- /dev/null +++ b/testing/web-platform/tests/wai-aria/separator_focusable_valuetext-manual.html @@ -0,0 +1,206 @@ +<!doctype html> +<html> + <head> + <title>separator focusable valuetext</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SEPARATOR" + ], + [ + "property", + "objectAttributes", + "contains", + "valuetext:Bonaire" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "result", + "atk_value_get_minimum_value()", + "is", + "0" + ], + [ + "result", + "atk_value_get_current_value()", + "is", + "50" + ], + [ + "result", + "atk_value_get_maximum_value()", + "is", + "100" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSplitter" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "splitter" + ], + [ + "property", + "AXMinValue", + "is", + "0" + ], + [ + "property", + "AXValue", + "is", + "50" + ], + [ + "property", + "AXMaxValue", + "is", + "100" + ], + [ + "property", + "AXValueDescription", + "is", + "Bonaire" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SEPARATOR" + ], + [ + "property", + "interfaces", + "contains", + "AccessibleValue" + ], + [ + "property", + "objectAttributes", + "contains", + "valuetext:Bonaire" + ], + [ + "property", + "minimumValue", + "is", + "0" + ], + [ + "property", + "currentValue", + "is", + "50" + ], + [ + "property", + "maximumValue", + "is", + "100" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SEPARATOR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Thumb" + ], + [ + "property", + "controlPatterns", + "contains", + "RangeValue" + ], + [ + "result", + "RangeValue.Minimum", + "is", + "0" + ], + [ + "result", + "RangeValue.Value", + "is", + "50" + ], + [ + "result", + "RangeValue.Maximum", + "is", + "100" + ], + [ + "property", + "Value.Value", + "is", + "Bonaire" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "separator focusable valuetext" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for separator focusable valuetext.</p> + <div tabindex="0" role="separator" aria-valuetext="Bonaire" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/separator_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/separator_orientation_unspecified-manual.html new file mode 100644 index 0000000000..3a3901b424 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/separator_orientation_unspecified-manual.html @@ -0,0 +1,120 @@ +<!doctype html> +<html> + <head> + <title>separator orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SEPARATOR" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSplitter" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "splitter" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SEPARATOR" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SEPARATOR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Separator" + ], + [ + "property", + "Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "separator orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for separator orientation unspecified.</p> + <div role="separator" id="test"></div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/separator_unfocusable_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/separator_unfocusable_all_values_unspecified-manual.html new file mode 100644 index 0000000000..171370f422 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/separator_unfocusable_all_values_unspecified-manual.html @@ -0,0 +1,90 @@ +<!doctype html> +<html> + <head> + <title>separator unfocusable all values unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SEPARATOR" + ], + [ + "property", + "interfaces", + "doesNotContain", + "Value" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSplitter" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "splitter" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SEPARATOR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Separator" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "separator unfocusable all values unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for separator unfocusable all values unspecified.</p> + <div role="separator" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/separator_unfocusable_valuetext-manual.html b/testing/web-platform/tests/wai-aria/separator_unfocusable_valuetext-manual.html new file mode 100644 index 0000000000..db8ee6322d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/separator_unfocusable_valuetext-manual.html @@ -0,0 +1,116 @@ +<!doctype html> +<html> + <head> + <title>separator unfocusable valuetext</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SEPARATOR" + ], + [ + "property", + "objectAttributes", + "doesNotContain", + "valuetext:Bonaire" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSplitter" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "splitter" + ], + [ + "property", + "AXValueDescription", + "isNot", + "Bonaire" + ] + ], + "IAccessible2" : [ + [ + "property", + "objectAttributes", + "doesNotContain", + "valuetext:Bonaire" + ], + [ + "property", + "value", + "isNot", + "Bonaire" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SEPARATOR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Separator" + ], + [ + "property", + "controlPatterns", + "doesNotContain", + "RangeValue" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "separator unfocusable valuetext" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for separator unfocusable valuetext.</p> + <div role="separator" aria-valuetext="Bonaire" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/slider_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/slider_all_values_unspecified-manual.html new file mode 100644 index 0000000000..0dea62e620 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/slider_all_values_unspecified-manual.html @@ -0,0 +1,182 @@ +<!doctype html> +<html> + <head> + <title>slider all values unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SLIDER" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "result", + "atk_value_get_minimum_value()", + "is", + "0" + ], + [ + "result", + "atk_value_get_current_value()", + "is", + "50" + ], + [ + "result", + "atk_value_get_maximum_value()", + "is", + "100" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSlider" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "slider" + ], + [ + "property", + "AXMinValue", + "is", + "0" + ], + [ + "property", + "AXValue", + "is", + "50" + ], + [ + "property", + "AXMaxValue", + "is", + "100" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ], + [ + "property", + "interfaces", + "contains", + "AccessibleValue" + ], + [ + "property", + "minimumValue", + "is", + "0" + ], + [ + "property", + "currentValue", + "is", + "50" + ], + [ + "property", + "maximumValue", + "is", + "100" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Slider" + ], + [ + "property", + "controlPatterns", + "contains", + "RangeValue" + ], + [ + "result", + "RangeValue.Minimum", + "is", + "0" + ], + [ + "result", + "RangeValue.Value", + "is", + "50" + ], + [ + "result", + "RangeValue.Maximum", + "is", + "100" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "slider all values unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for slider all values unspecified.</p> + <div role="slider" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/slider_only_valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/slider_only_valuenow_unspecified-manual.html new file mode 100644 index 0000000000..ffcbc78373 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/slider_only_valuenow_unspecified-manual.html @@ -0,0 +1,182 @@ +<!doctype html> +<html> + <head> + <title>slider only valuenow unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SLIDER" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "result", + "atk_value_get_minimum_value()", + "is", + "0" + ], + [ + "result", + "atk_value_get_current_value()", + "is", + "20" + ], + [ + "result", + "atk_value_get_maximum_value()", + "is", + "40" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSlider" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "slider" + ], + [ + "property", + "AXMinValue", + "is", + "0" + ], + [ + "property", + "AXValue", + "is", + "20" + ], + [ + "property", + "AXMaxValue", + "is", + "40" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ], + [ + "property", + "interfaces", + "contains", + "AccessibleValue" + ], + [ + "property", + "minimumValue", + "is", + "0" + ], + [ + "property", + "currentValue", + "is", + "20" + ], + [ + "property", + "maximumValue", + "is", + "40" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Slider" + ], + [ + "property", + "controlPatterns", + "contains", + "RangeValue" + ], + [ + "result", + "RangeValue.Minimum", + "is", + "0" + ], + [ + "result", + "RangeValue.Value", + "is", + "20" + ], + [ + "result", + "RangeValue.Maximum", + "is", + "40" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "slider only valuenow unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for slider only valuenow unspecified.</p> + <div role="slider" aria-valuemin="0" aria-valuemax="40" id="test"> + Go Fish + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/slider_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/slider_orientation_unspecified-manual.html new file mode 100644 index 0000000000..295b0a6196 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/slider_orientation_unspecified-manual.html @@ -0,0 +1,132 @@ +<!doctype html> +<html> + <head> + <title>slider orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SLIDER" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSlider" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "slider" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Slider" + ], + [ + "property", + "Orientation", + "is", + "horizontal" + ], + [ + "property", + "interfaces", + "contains", + "RangeValue" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "slider orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for slider orientation unspecified.</p> + <div role="slider" id="test"></div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/slider_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/slider_readonly_false-manual.html new file mode 100644 index 0000000000..f5a70984d5 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/slider_readonly_false-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>slider readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SLIDER" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSlider" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "slider" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ], + [ + "property", + "interfaces", + "contains", + "IAcesssibleValue" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Slider" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "slider readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for slider readonly false.</p> + <div id="test" role="slider" aria-readonly="false"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/slider_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/slider_readonly_true-manual.html new file mode 100644 index 0000000000..2588079d78 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/slider_readonly_true-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>slider readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SLIDER" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSlider" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "slider" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ], + [ + "property", + "interfaces", + "contains", + "IAcesssibleValue" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Slider" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "slider readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for slider readonly true.</p> + <div id="test" role="slider" aria-readonly="true"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/slider_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/slider_readonly_unspecified-manual.html new file mode 100644 index 0000000000..271325a47d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/slider_readonly_unspecified-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>slider readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SLIDER" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXSlider" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "slider" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ], + [ + "property", + "interfaces", + "contains", + "IAcesssibleValue" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SLIDER" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Slider" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "slider readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for slider readonly unspecified.</p> + <div id="test" role="slider"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/spinbutton_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/spinbutton_all_values_unspecified-manual.html new file mode 100644 index 0000000000..8da69af36d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/spinbutton_all_values_unspecified-manual.html @@ -0,0 +1,183 @@ +<!doctype html> +<html> + <head> + <title>spinbutton all values unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SPIN_BUTTON" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "result", + "atk_value_get_minimum_value()", + "isLTE", + "-9007199254740992" + ], + [ + "result", + "atk_value_get_current_value()", + "is", + "0" + ], + [ + "result", + "atk_value_get_maximum_value()", + "isGTE", + "9007199254740992" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXIncrementor" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "stepper" + ], + [ + "property", + "AXMinValue", + "isLTE", + "-9007199254740992" + ], + [ + "property", + "AXValue", + "is", + "0" + ], + [ + "property", + "AXMaxValue", + "isGTE", + "9007199254740992" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SPINBUTTON" + ], + [ + "property", + "interfaces", + "contains", + "AccessibleValue" + ], + [ + "property", + "minimumValue", + "isLTE", + "-9007199254740992" + ], + [ + "property", + "currentValue", + "is", + "0" + ], + [ + "property", + "maximumValue", + "isGTE", + "9007199254740992" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SPINBUTTON" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Spinner" + ], + [ + "property", + "interfaces", + "contains", + "RangeValue" + ], + [ + "result", + "RangeValue.Minimum", + "isLTE", + "-9007199254740992" + ], + [ + "result", + "RangeValue.Value", + "is", + "0" + ], + [ + "result", + "RangeValue.Maximum", + "isGTE", + "9007199254740992" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "spinbutton all values unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for spinbutton all values unspecified.</p> + <div role="spinbutton" id="test"> + Go Fish + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/spinbutton_only_aria-valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/spinbutton_only_aria-valuenow_unspecified-manual.html new file mode 100644 index 0000000000..bbb94702fe --- /dev/null +++ b/testing/web-platform/tests/wai-aria/spinbutton_only_aria-valuenow_unspecified-manual.html @@ -0,0 +1,183 @@ +<!doctype html> +<html> + <head> + <title>spinbutton only aria-valuenow unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SPIN_BUTTON" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "result", + "atk_value_get_minimum_value()", + "is", + "0" + ], + [ + "result", + "atk_value_get_current_value()", + "is", + "0" + ], + [ + "result", + "atk_value_get_maximum_value()", + "is", + "100" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXIncrementor" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "stepper" + ], + [ + "property", + "AXMinValue", + "is", + "0" + ], + [ + "property", + "AXValue", + "is", + "0" + ], + [ + "property", + "AXMaxValue", + "is", + "100" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SPINBUTTON" + ], + [ + "property", + "interfaces", + "contains", + "AccessibleValue" + ], + [ + "property", + "minimumValue", + "is", + "0" + ], + [ + "property", + "currentValue", + "is", + "0" + ], + [ + "property", + "maximumValue", + "is", + "100" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SPINBUTTON" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Spinner" + ], + [ + "property", + "interfaces", + "contains", + "RangeValue" + ], + [ + "result", + "RangeValue.Minimum", + "is", + "0" + ], + [ + "result", + "RangeValue.Value", + "is", + "0" + ], + [ + "result", + "RangeValue.Maximum", + "is", + "100" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "spinbutton only aria-valuenow unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for spinbutton only aria-valuenow unspecified.</p> + <div role="spinbutton" aria-valuemin="0" aria-valuemax="100" id="test"> + Go Fish + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/spinbutton_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/spinbutton_readonly_false-manual.html new file mode 100644 index 0000000000..5e9429ca28 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/spinbutton_readonly_false-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>spinbutton readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SPIN_BUTTON" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXIncrementor" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "stepper" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SPINBUTTON" + ], + [ + "property", + "interfaces", + "contains", + "IAcesssibleValue" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SPINBUTTON" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Spinner" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "spinbutton readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for spinbutton readonly false.</p> + <div id="test" role="spinbutton" aria-readonly="false"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/spinbutton_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/spinbutton_readonly_true-manual.html new file mode 100644 index 0000000000..a7a3abe632 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/spinbutton_readonly_true-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>spinbutton readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SPIN_BUTTON" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXIncrementor" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "stepper" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SPINBUTTON" + ], + [ + "property", + "interfaces", + "contains", + "IAcesssibleValue" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SPINBUTTON" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Spinner" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "spinbutton readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for spinbutton readonly true.</p> + <div id="test" role="spinbutton" aria-readonly="true"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/spinbutton_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/spinbutton_readonly_unspecified-manual.html new file mode 100644 index 0000000000..0976b0737c --- /dev/null +++ b/testing/web-platform/tests/wai-aria/spinbutton_readonly_unspecified-manual.html @@ -0,0 +1,127 @@ +<!doctype html> +<html> + <head> + <title>spinbutton readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_SPIN_BUTTON" + ], + [ + "property", + "interfaces", + "contains", + "Value" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXIncrementor" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "stepper" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SPINBUTTON" + ], + [ + "property", + "interfaces", + "contains", + "IAcesssibleValue" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_SPINBUTTON" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Spinner" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "spinbutton readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for spinbutton readonly unspecified.</p> + <div id="test" role="spinbutton"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/switch_checked_false-manual.html b/testing/web-platform/tests/wai-aria/switch_checked_false-manual.html new file mode 100644 index 0000000000..ac61802bdf --- /dev/null +++ b/testing/web-platform/tests/wai-aria/switch_checked_false-manual.html @@ -0,0 +1,124 @@ +<!doctype html> +<html> + <head> + <title>switch checked false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_CHECKABLE" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_CHECKED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCheckBox" + ], + [ + "property", + "AXSubrole", + "is", + "AXSwitch" + ], + [ + "property", + "AXRoleDescription", + "is", + "switch" + ], + [ + "property", + "AXValue", + "is", + "0" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:switch" + ], + [ + "property", + "objectAttributes", + "contains", + "checkable:true" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "LocalizedControlType", + "is", + "toggleswitch" + ], + [ + "property", + "Toggle.ToggleState", + "is", + "Off" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "switch checked false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for switch checked false.</p> + <div id='test' role='switch' aria-checked='false' tabindex='0' class='switch'>power</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/switch_checked_mixed-manual.html b/testing/web-platform/tests/wai-aria/switch_checked_mixed-manual.html new file mode 100644 index 0000000000..a674c7d7bc --- /dev/null +++ b/testing/web-platform/tests/wai-aria/switch_checked_mixed-manual.html @@ -0,0 +1,130 @@ +<!doctype html> +<html> + <head> + <title>switch checked mixed</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_CHECKABLE" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_INDETERMINATE" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_CHECKED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCheckBox" + ], + [ + "property", + "AXSubrole", + "is", + "AXSwitch" + ], + [ + "property", + "AXRoleDescription", + "is", + "switch" + ], + [ + "property", + "AXValue", + "is", + "0" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:switch" + ], + [ + "property", + "objectAttributes", + "contains", + "checkable:true" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "LocalizedControlType", + "is", + "toggleswitch" + ], + [ + "property", + "Toggle.ToggleState", + "is", + "Off" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "switch checked mixed" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for switch checked mixed.</p> + <div id='test' role='switch' aria-checked='mixed' tabindex='0' class='switch'>power</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/switch_checked_true-manual.html b/testing/web-platform/tests/wai-aria/switch_checked_true-manual.html new file mode 100644 index 0000000000..e23e723561 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/switch_checked_true-manual.html @@ -0,0 +1,138 @@ +<!doctype html> +<html> + <head> + <title>switch checked true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_CHECKABLE" + ], + [ + "property", + "states", + "contains", + "STATE_CHECKED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCheckBox" + ], + [ + "property", + "AXSubrole", + "is", + "AXSwitch" + ], + [ + "property", + "AXRoleDescription", + "is", + "switch" + ], + [ + "property", + "AXValue", + "is", + "1" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:switch" + ], + [ + "property", + "objectAttributes", + "contains", + "checkable:true" + ] + ], + "MSAA" : [ + [ + "property", + "states", + "contains", + "STATE_SYSTEM_CHECKED" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "controlPatterns", + "contains", + "Toggle" + ], + [ + "property", + "LocalizedControlType", + "is", + "toggleswitch" + ], + [ + "property", + "Toggle.ToggleState", + "is", + "On" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "switch checked true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for switch checked true.</p> + <div id='test' role='switch' aria-checked='true' tabindex='0'>power</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/switch_checked_undefined-manual.html b/testing/web-platform/tests/wai-aria/switch_checked_undefined-manual.html new file mode 100644 index 0000000000..4f5399e88c --- /dev/null +++ b/testing/web-platform/tests/wai-aria/switch_checked_undefined-manual.html @@ -0,0 +1,124 @@ +<!doctype html> +<html> + <head> + <title>switch checked undefined</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_CHECKABLE" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_CHECKED" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCheckBox" + ], + [ + "property", + "AXSubrole", + "is", + "AXSwitch" + ], + [ + "property", + "AXRoleDescription", + "is", + "switch" + ], + [ + "property", + "AXValue", + "is", + "0" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:switch" + ], + [ + "property", + "objectAttributes", + "contains", + "checkable:true" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "LocalizedControlType", + "is", + "toggleswitch" + ], + [ + "property", + "Toggle.ToggleState", + "is", + "Off" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "switch checked undefined" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for switch checked undefined.</p> + <div id='test' role='switch' tabindex='0' class='switch'>power</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/switch_checked_value_changes-manual.html b/testing/web-platform/tests/wai-aria/switch_checked_value_changes-manual.html new file mode 100644 index 0000000000..b58e52fefb --- /dev/null +++ b/testing/web-platform/tests/wai-aria/switch_checked_value_changes-manual.html @@ -0,0 +1,163 @@ +<!doctype html> +<html> + <head> + <title>switch checked value changes</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "attribute" : "aria-checked", + "element" : "test", + "title" : "step 1", + "type" : "attribute", + "value" : "\"true\"" + }, + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_CHECKABLE" + ], + [ + "property", + "states", + "contains", + "STATE_CHECKED" + ], + [ + "event", + "type", + "is", + "object:state-changed:checked" + ], + [ + "event", + "detail1", + "is", + "1" + ] + ], + "AXAPI" : [ + [ + "event", + "type", + "is", + "AXValueChanged" + ], + [ + "property", + "AXRole", + "is", + "AXCheckBox" + ], + [ + "property", + "AXSubrole", + "is", + "AXSwitch" + ], + [ + "property", + "AXRoleDescription", + "is", + "switch" + ], + [ + "property", + "AXValue", + "is", + "1" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:switch" + ], + [ + "property", + "objectAttributes", + "contains", + "checkable:true" + ] + ], + "MSAA" : [ + [ + "event", + "type", + "is", + "EVENT_OBJECT_STATECHANGE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "LocalizedControlType", + "is", + "toggleswitch" + ], + [ + "property", + "Toggle.ToggleState", + "is", + "On" + ], + [ + "event", + "type", + "is", + "TogglePattern.ToggleStateProperty" + ] + ] + }, + "title" : "step 2", + "type" : "test" + } + ], + "title" : "switch checked value changes" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for switch checked value changes.</p> + <div id='test' role='switch' aria-checked='false' tabindex='0' class='switch'>power</div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/switch_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/switch_readonly_false-manual.html new file mode 100644 index 0000000000..e68b6bb0d2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/switch_readonly_false-manual.html @@ -0,0 +1,119 @@ +<!doctype html> +<html> + <head> + <title>switch readonly false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCheckBox" + ], + [ + "property", + "AXSubrole", + "is", + "AXSwitch" + ], + [ + "property", + "AXRoleDescription", + "is", + "switch" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:switch" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "LocalizedControlType", + "is", + "toggleswitch" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "switch readonly false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for switch readonly false.</p> + <div id="test" role="switch" aria-readonly="false"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/switch_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/switch_readonly_true-manual.html new file mode 100644 index 0000000000..605d2d0d9a --- /dev/null +++ b/testing/web-platform/tests/wai-aria/switch_readonly_true-manual.html @@ -0,0 +1,119 @@ +<!doctype html> +<html> + <head> + <title>switch readonly true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "states", + "contains", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCheckBox" + ], + [ + "property", + "AXSubrole", + "is", + "AXSwitch" + ], + [ + "property", + "AXRoleDescription", + "is", + "switch" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "false" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:switch" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_EDITABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "LocalizedControlType", + "is", + "toggleswitch" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "switch readonly true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for switch readonly true.</p> + <div id="test" role="switch" aria-readonly="true"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/switch_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/switch_readonly_unspecified-manual.html new file mode 100644 index 0000000000..0fd582c0e9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/switch_readonly_unspecified-manual.html @@ -0,0 +1,119 @@ +<!doctype html> +<html> + <head> + <title>switch readonly unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_READ_ONLY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXCheckBox" + ], + [ + "property", + "AXSubrole", + "is", + "AXSwitch" + ], + [ + "property", + "AXRoleDescription", + "is", + "switch" + ], + [ + "result", + "AXUIElementIsAttributeSettable(AXValue)", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "IA2_ROLE_TOGGLE_BUTTON" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:switch" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_EDITABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Button" + ], + [ + "property", + "LocalizedControlType", + "is", + "toggleswitch" + ], + [ + "property", + "Value.IsReadOnly", + "is", + "false" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "switch readonly unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for switch readonly unspecified.</p> + <div id="test" role="switch"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/tab_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/tab_posinset_and_setsize-manual.html new file mode 100644 index 0000000000..f27f485ac9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/tab_posinset_and_setsize-manual.html @@ -0,0 +1,189 @@ +<!doctype html> +<html> + <head> + <title>tab posinset and setsize</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PAGE_TAB" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "posinset:3" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:7" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRadioButton" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "tab" + ], + [ + "property", + "AXARIAPosInSet", + "is", + "3" + ], + [ + "property", + "AXARIASetSize", + "is", + "7" + ], + [ + "property", + "AXSelected", + "is", + "true" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PAGETAB" + ], + [ + "property", + "objectAttributes", + "contains", + "posinset:3" + ], + [ + "property", + "objectAttributes", + "contains", + "setsize:7" + ], + [ + "property", + "groupPosition", + "contains", + "similarItemsInGroup:7" + ], + [ + "property", + "groupPosition", + "contains", + "positionInGroup:3" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PAGETAB" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "TabItem" + ], + [ + "property", + "AriaProperties.posinset", + "is", + "3" + ], + [ + "property", + "AriaProperties.setsize", + "is", + "7" + ], + [ + "property", + "SelectionItem", + "isNot", + "IsSelected" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "tab posinset and setsize" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for tab posinset and setsize.</p> + <div role='tabpanel'> + <div role='tab' aria-selected='false'>Hello Mary</div> + <div role='tab' id='test' aria-selected='true' aria-posinset='3' aria-setsize='7'>Hello Bob</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/table_colcount_-1-manual.html b/testing/web-platform/tests/wai-aria/table_colcount_-1-manual.html new file mode 100644 index 0000000000..2135f6ed8d --- /dev/null +++ b/testing/web-platform/tests/wai-aria/table_colcount_-1-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>table colcount -1</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "colcount:-1" + ], + [ + "result", + "atk_table_get_n_columns()", + "is", + "-1" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXARIAColumnCount", + "is", + "-1" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ], + [ + "property", + "objectAttributes", + "contains", + "colcount:-1" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Table" + ], + [ + "property", + "Table.ColumnCount", + "is", + "-1" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "table colcount -1" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for table colcount -1.</p> + <div role="table" id="test" aria-colcount="-1"> + <div role="row"> + <div role="cell" aria-colindex="4" >test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/table_colcount_8-manual.html b/testing/web-platform/tests/wai-aria/table_colcount_8-manual.html new file mode 100644 index 0000000000..1b8e0affdd --- /dev/null +++ b/testing/web-platform/tests/wai-aria/table_colcount_8-manual.html @@ -0,0 +1,112 @@ +<!doctype html> +<html> + <head> + <title>table colcount 8</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "colcount:8" + ], + [ + "result", + "atk_table_get_n_columns()", + "is", + "8" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXARIAColumnCount", + "is", + "8" + ] + ], + "IAccessible2" : [ + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ], + [ + "property", + "objectAttributes", + "contains", + "colcount:8" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Table" + ], + [ + "property", + "Table.ColumnCount", + "is", + "8" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "table colcount 8" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for table colcount 8.</p> + <div role="table" id="test" aria-colcount="8"> + <div role="row"> + <div role="cell" aria-colindex="4">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/table_rowcount_-1-manual.html b/testing/web-platform/tests/wai-aria/table_rowcount_-1-manual.html new file mode 100644 index 0000000000..5e7b5b8bf4 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/table_rowcount_-1-manual.html @@ -0,0 +1,126 @@ +<!doctype html> +<html> + <head> + <title>table rowcount -1</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "rowcount:-1" + ], + [ + "result", + "atk_table_get_n_rows()", + "is", + "-1" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXARIARowCount", + "contains", + "-1" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ], + [ + "property", + "objectAttributes", + "contains", + "xml-roles:table" + ], + [ + "property", + "objectAttributes", + "contains", + "rowcount:-1" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Table" + ], + [ + "property", + "Table.RowCount", + "is", + "-1" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "table rowcount -1" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for table rowcount -1.</p> + <div role='table' id='test' aria-rowcount='-1' aria-colcount='2'> + <div role='row'> + <span role='cell'> + <button>hello</button> + </span> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/table_rowcount_3-manual.html b/testing/web-platform/tests/wai-aria/table_rowcount_3-manual.html new file mode 100644 index 0000000000..5bfad69b24 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/table_rowcount_3-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>table rowcount 3</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "rowcount:3" + ], + [ + "result", + "atk_table_get_n_rows()", + "is", + "3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXARIARowCount", + "is", + "3" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ], + [ + "property", + "objectAttributes", + "contains", + "rowcount:3" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Table" + ], + [ + "property", + "Table.RowCount", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "table rowcount 3" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for table rowcount 3.</p> + <div role='table' id='test' aria-rowcount='3' aria-colcount='2'> + <div role='row'> + <span role='cell'>cheese</span> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/tablist_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/tablist_orientation_horizontal-manual.html new file mode 100644 index 0000000000..104668cbb9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/tablist_orientation_horizontal-manual.html @@ -0,0 +1,142 @@ +<!doctype html> +<html> + <head> + <title>tablist orientation horizontal</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PAGE_TAB_LIST" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_VERTICAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTabGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "tab group" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PAGETABLIST" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PAGETABLIST" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Tab" + ], + [ + "property", + "interfaces", + "contains", + "selection pattern" + ], + [ + "property", + "Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "tablist orientation horizontal" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for tablist orientation horizontal.</p> + <div role="tablist" aria-orientation="horizontal" id="test"> + <div role="tab" tabindex="0">Tab1</div><div role="tab" tabindex="-1">Tab2</div> + </div> + <div role="tabpanel"></div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/tablist_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/tablist_orientation_unspecified-manual.html new file mode 100644 index 0000000000..001c2ee77b --- /dev/null +++ b/testing/web-platform/tests/wai-aria/tablist_orientation_unspecified-manual.html @@ -0,0 +1,136 @@ +<!doctype html> +<html> + <head> + <title>tablist orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PAGE_TAB_LIST" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTabGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "tab group" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PAGETABLIST" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PAGETABLIST" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Tab" + ], + [ + "property", + "interfaces", + "contains", + "selection pattern" + ], + [ + "property", + "Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "tablist orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for tablist orientation unspecified.</p> + <div role="tablist" id="test"> + <div role="tab" tabindex="0">Tab1</div><div role="tab" tabindex="-1">Tab2</div> + </div> + <div role="tabpanel"></div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/tablist_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/tablist_orientation_vertical-manual.html new file mode 100644 index 0000000000..f6fe16e895 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/tablist_orientation_vertical-manual.html @@ -0,0 +1,130 @@ +<!doctype html> +<html> + <head> + <title>tablist orientation vertical</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_PAGE_TAB_LIST" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTabGroup" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "tab group" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_PAGETABLIST" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Tab" + ], + [ + "property", + "interfaces", + "contains", + "selection pattern" + ], + [ + "property", + "Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "tablist orientation vertical" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for tablist orientation vertical.</p> + <div role="tablist" aria-orientation="vertical" id="test"> + <div role="tab" tabindex="0">Tab1</div><div role="tab" tabindex="-1">Tab2</div> + </div> + <div role="tabpanel"></div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/term_role-manual.html b/testing/web-platform/tests/wai-aria/term_role-manual.html new file mode 100644 index 0000000000..ac5030df95 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/term_role-manual.html @@ -0,0 +1,106 @@ +<!doctype html> +<html> + <head> + <title>term role</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_DESCRIPTION_TERM" + ], + [ + "property", + "interfaces", + "contains", + "Text" + ], + [ + "property", + "interfaces", + "contains", + "Hypertext" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXGroup" + ], + [ + "property", + "AXSubrole", + "is", + "AXTerm" + ], + [ + "property", + "AXRoleDescription", + "is", + "term" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TERM" + ], + [ + "property", + "states", + "contains", + "ROLE_SYSTEM_READONLY" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Text" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "term role" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for term role.</p> + <div role="term" id='test' aria-describedby="dfn"> + w3c + </div> + <div role="definition" id="dfn"> + World Wide Web Consortium + </div> + + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/textbox_placeholder-manual.html b/testing/web-platform/tests/wai-aria/textbox_placeholder-manual.html new file mode 100644 index 0000000000..fdf0635be6 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/textbox_placeholder-manual.html @@ -0,0 +1,134 @@ +<!doctype html> +<html> + <head> + <title>textbox placeholder</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_ENTRY" + ], + [ + "property", + "interfaces", + "contains", + "EditableText" + ], + [ + "property", + "states", + "contains", + "STATE_SINGLE_LINE" + ], + [ + "property", + "objectAttributes", + "contains", + "placeholder-text:DD/MM/YYYY" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTextField" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "text field" + ], + [ + "property", + "AXPlaceholderValue", + "is", + "DD/MM/YYYY" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_SINGLE_LINE" + ], + [ + "property", + "objectAttributes", + "contains", + "placeholder-text:DD/MM/YYYY" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TEXT" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Edit" + ], + [ + "result", + "AriaProperties.placeholder", + "is", + "DD/MM/YYYY" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "textbox placeholder" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for textbox placeholder.</p> + <div contenteditable="true" role="textbox" aria-placeholder="DD/MM/YYYY" id="test"> + "DD/MM/YYYY" + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/toolbar_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/toolbar_orientation_horizontal-manual.html new file mode 100644 index 0000000000..1b8fda8dd6 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/toolbar_orientation_horizontal-manual.html @@ -0,0 +1,122 @@ +<!doctype html> +<html> + <head> + <title>toolbar orientation horizontal</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TOOL_BAR" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXToolbar" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "toolbar" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TOOLBAR" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TOOLBAR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ToolBar" + ], + [ + "property", + "Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "toolbar orientation horizontal" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for toolbar orientation horizontal.</p> + <div role="toolbar" aria-orientation="horizontal" id="test"> + <button value="b1"> <button value="b2"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/toolbar_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/toolbar_orientation_unspecified-manual.html new file mode 100644 index 0000000000..4607511874 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/toolbar_orientation_unspecified-manual.html @@ -0,0 +1,122 @@ +<!doctype html> +<html> + <head> + <title>toolbar orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TOOL_BAR" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXToolbar" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "toolbar" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TOOLBAR" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TOOLBAR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ToolBar" + ], + [ + "property", + "Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "toolbar orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for toolbar orientation unspecified.</p> + <div role="toolbar" id="test"> + <button value="b1"> <button value="b2"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/toolbar_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/toolbar_orientation_vertical-manual.html new file mode 100644 index 0000000000..792952d323 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/toolbar_orientation_vertical-manual.html @@ -0,0 +1,122 @@ +<!doctype html> +<html> + <head> + <title>toolbar orientation vertical</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TOOL_BAR" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXToolbar" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "toolbar" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TOOLBAR" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_TOOLBAR" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "ToolBar" + ], + [ + "property", + "Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "toolbar orientation vertical" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for toolbar orientation vertical.</p> + <div role="toolbar" aria-orientation="vertical" id="test"> + <button value="b1"> <button value="b2"> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/tools/convert_wiki.pl b/testing/web-platform/tests/wai-aria/tools/convert_wiki.pl new file mode 100644 index 0000000000..d3415f2653 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/tools/convert_wiki.pl @@ -0,0 +1,648 @@ +#!/usr/bin/perl +# +# convert_wiki.pl - Transform an old-style wiki into the new format +# +# This script assumes that a wiki has testable statement entries +# with varying lemgth lines. Those lines will be converted into +# the format described by the specification at +# https://spec-ops.github.io/atta-api/index.html +# +# usage: convert_wiki.pl -f file | -w wiki_title -o outFile + +use strict; + +use IO::String ; +use JSON ; +use MediaWiki::API ; +use Getopt::Long; + +my @apiNames = qw(UIA MSAA ATK IAccessible2 AXAPI); + +# dir is determined based upon the short name of the spec and is defined +# by the input or on the command line + +my $file = undef ; +my $spec = undef ; +my $wiki_title = undef ; +my $dir = undef; +my $outFile = undef; + +my $result = GetOptions( + "f|file=s" => \$file, + "w|wiki=s" => \$wiki_title, + "s|spec=s" => \$spec, + "o|output=s" => \$outFile); + +my $wiki_config = { + "api_url" => "https://www.w3.org/wiki/api.php" +}; + +my %specs = ( + "aria11" => { + title => "ARIA_1.1_Testable_Statements", + specURL => "https://www.w3.org/TR/wai-aria11" + }, + "svg" => { + title => "SVG_Accessibility/Testing/Test_Assertions_with_Tables_for_ATTA", + specURL => "https://www.w3.org/TR/svg-aam-1.0/" + } +); + +my $io ; +our $theSpecURL = ""; + +if ($spec) { + $wiki_title = $specs{$spec}->{title}; + $theSpecURL = $specs{$spec}->{specURL}; +} + +if ($wiki_title) { + my $MW = MediaWiki::API->new( $wiki_config ); + my $page = $MW->get_page( { title => $wiki_title } ); + my $theContent = $page->{'*'}; + $io = IO::String->new($theContent); +} elsif ($file) { + open($io, "<", $file) || die("Failed to open $file: " . $@); +} else { + usage() ; +} + +my $outH ; +if (defined $outFile) { + open($outH, ">", $outFile) || die("Failed to create file $outFile: $@"); +} else { + $outH = new IO::Handle; + $outH->fdopen(fileno(STDOUT), "w"); +} + + +# Now let's walk through the content and spit it back out +# transformed +# + +# iterate over the content + +# my $io ; +# open($io, "<", "raw") ; + +my $state = 0; # between items +my $theCode = ""; +my $theAttributes = {}; +my $theAsserts = {} ; +my $theAssertCount = 0; +my $theAPI = ""; +my $typeRows = 0; +my $theType = ""; +my $theName = ""; +my $theRef = ""; + +my $before = "" ; +my $after = "" ; + +my @errors = () ; +my $linecount = 0; + +while (<$io>) { + $linecount++; + # look for state + if ($state == 0) { + if (scalar(keys(%$theAsserts))) { + # we were in an item; dump it + print $outH dump_table($theAsserts) ; + $theAsserts = {}; + } + print $outH $_; + } + if (m/^\{\|/) { + # table started + $state = 4; + $theAPI = ""; + } + if ($state == 4) { + if (m/^\|-/) { + if ($theAPI + && exists($theAsserts->{$theAPI}->[$theAssertCount]) + && scalar(@{$theAsserts->{$theAPI}->[$theAssertCount]})) { + $theAssertCount++; + } + # start of a table row + if ($theType ne "" && $typeRows) { + # we are still processing items for a type + $typeRows--; + # populate the first cell + $theAsserts->{$theAPI}->[$theAssertCount] = [ $theType ] ; + } else { + $theType = ""; + } + } elsif (m/^\|\}/) { + # ran out of table + $state = 0; + } elsif (m/^\|rowspan="*([0-9])"*\|(.*)$/) { + # someone put a rowspan in here.. is ht an API? + my $rows = $1; + my $theString = $2; + $theString =~ s/ +$//; + $theString =~ s/^ +//; + $theString = "IAccessible2" if ($theString eq "IA2") ; + if (grep { $_ eq $theString } @apiNames) { + $theAssertCount = 0; + # this is a new API section + $theAPI = $theString ; + $theAsserts->{$theAPI} = [ [] ] ; + $theType = ""; + } else { + # nope, this is a multi-row type + $theType = $theString; + $typeRows = $rows; + $typeRows--; + # populate the first cell + if ($theAPI + && exists($theAsserts->{$theAPI}->[$theAssertCount]) + && scalar(@{$theAsserts->{$theAPI}->[$theAssertCount]})) { + $theAssertCount++; + } + $theAsserts->{$theAPI}->[$theAssertCount] = [ $theType ] ; + } + } elsif (m/^\|note/) { + # there is a note in the table... throw it out + # and the next line too + my $l = <$io>; + } elsif (m/^\|(MSAA|UIA|IA2|IAccessible2|ATK|AXAPI) *$/) { + # they FORGOT a rowspan on an API. That means there is only 1 + # row + my $theString = $1; + $theString =~ s/ +$//; + $theString =~ s/^ +//; + $theString = "IAccessible2" if ($theString eq "IA2") ; + if (grep { $_ eq $theString } @apiNames) { + $theAssertCount = 0; + # this is a new API section + $theAPI = $theString ; + $theAsserts->{$theAPI} = [ [] ] ; + $theType = ""; + } else { + push(@errors, "Bad API Name at $linecount: $theString"); + } + } elsif (m/^\|(.*)$/) { + my $item = $1; + $item =~ s/^ *//; + $item =~ s/ *$//; + $item =~ s/^['"]//; + $item =~ s/['"]$//; + # add into the data structure for the API + if (!exists $theAsserts->{$theAPI}->[$theAssertCount]) { + $theAsserts->{$theAPI}->[$theAssertCount] = [ $item ] ; + } else { + push(@{$theAsserts->{$theAPI}->[$theAssertCount]}, $item); + } + } + next; + } +}; + +if ($state == 0) { + if (scalar(keys(%$theAsserts))) { + # we were in an item; dump it + print $outH dump_table($theAsserts) ; + } +} + +if (@errors) { + print "There were the following errors:\n"; + foreach my $err (@errors) { + print $err . "\n"; + } +} + +exit 0; + + +sub dump_table() { + my $asserts = shift; + + if (!scalar(keys(%$asserts)) ) { + # no actual assertions + return ""; + } + + my $output = "" ; + + my @keywords = qw(property result event); + + foreach my $API (sort(keys(%$asserts))) { + # looking at each API in turn + my $ref = $asserts->{$API}; + my $rowcount = scalar(@$ref) ; + # $output .= "|-\n|rowspan=$count|$API\n" ; + # now we are in the assertions; special case each API + my @conditions = @$ref; + for (my $i = 0; $i < scalar(@conditions); $i++) { + my (@new, @additional) ; + if ($i) { + $output .= "|-\n"; + } + if ($API eq "ATK") { + my $start = 0; + my $assert = "is"; + if ($conditions[$i]->[0] =~ m/^NOT/) { + $start = 1; + $assert = "isNot"; + } + + if ($conditions[$i]->[$start] =~ m/^ROLE_/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start]; + } elsif ($conditions[$i]->[$start] =~ m/^xml-roles/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/^description/) { + my $id = $conditions[$i]->[$start+1]; + $new[0] = "property"; + $new[1] = "description"; + $new[2] = $assert; + $new[3] = $id; + push(@{$additional[0]}, ("relation", "RELATION_DESCRIBED_BY", $assert, $id)); + push(@{$additional[1]}, ("relation", "RELATION_DESCRIPTION_FOR", $assert, "test")); + } elsif ($conditions[$i]->[$start] =~ m/not in accessibility tree/i) { + @new = qw(property accessible exists false); + } elsif ($conditions[$i]->[$start] =~ m/^RELATION/) { + $new[0] = "relation"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/(.*) interface/i) { + $new[0] = "property"; + $new[1] = "interfaces"; + $new[3] = $1; + if ($conditions[$i]->[$start+1] ne '<shown>' + && $conditions[$i]->[$start+1] !~ m/true/i ) { + $assert = "doesNotContain"; + } else { + $assert = "contains"; + } + $new[2] = $assert; + } elsif ($conditions[$i]->[$start] eq "object" || $conditions[$i]->[$start] eq "attribute" ) { + $new[0] = "property"; + $new[1] = "objectAttributes"; + my $val = $conditions[$i]->[2]; + $val =~ s/"//g; + $new[3] = $conditions[$i]->[1] . ":" . $val; + if ($conditions[$i]->[1] eq "not exposed" + || $conditions[$i]->[2] eq "false") { + $new[2] = "doesNotContain"; + } else { + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/^STATE_/) { + $new[0] = "property"; + $new[1] = "states"; + $new[3] = $conditions[$i]->[$start]; + if ($assert eq "true") { + $new[2] = "contains"; + } else { + $new[2] = "doesNotContain"; + } + } elsif ($conditions[$i]->[$start] =~ m/^object attribute (.*)/) { + my $name = $1; + $new[0] = "property"; + $new[0] = "objectAttributes"; + my $val = $conditions[$i]->[1]; + $val =~ s/"//g; + if ($val eq "not exposed" || $val eq "not mapped") { + $new[3] = $name; + $new[2] = "doesNotContain"; + } else { + $new[3] = $name . ":" . $val; + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/^name/) { + my $name = $conditions[$i]->[1]; + my $cond = "is" ; + if ($name eq "<empty>" ) { + $cond = "empty"; + $name = "true" + } elsif ($name eq "<not empty>") { + $cond = "empty"; + $name = "false"; + } + $new[0] = "property"; + $new[1] = "name"; + $new[2] = $cond; + $new[3] = $name; + } else { + @new = @{$conditions[$i]}; + if ($conditions[$i]->[2] eq '<shown>') { + $new[2] = "contains"; + } + } + $conditions[$i] = \@new; + } elsif ($API eq "UIA") { + my $start = 0; + my $assert = "is"; + if ($conditions[$i]->[$start] =~ m/\./) { + my $val = $conditions[$i]->[$start+1]; + $val =~ s/"//g; + $val =~ s/'//g; + $new[0] = "result"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/not in accessibility tree/i) { + @new = qw(property accessible exists false); + } elsif ($conditions[$i]->[$start] =~ m/^(AriaProperties|Toggle|ExpandCollapse)/) { + my $name = $conditions[$i]->[1]; + $new[0] = "property"; + $new[1] = $1; + my $val = $conditions[$i]->[2]; + $val =~ s/"//g; + if ($val eq "not exposed" || $val eq "not mapped") { + $new[3] = $name; + $new[2] = "doesNotContain"; + } else { + $new[3] = $name . ":" . $val; + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/^LabeledBy/i) { + $new[0] = "property"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/^Name/) { + my $name = $conditions[$i]->[1]; + my $cond = "is" ; + if ($name eq "<empty>" ) { + $cond = "empty"; + $name = "true" + } elsif ($name eq "<not empty>") { + $cond = "empty"; + $name = "false"; + } + $new[0] = "property"; + $new[1] = "Name"; + $new[2] = $cond; + $new[3] = $name; + } elsif ($conditions[$i]->[$start] =~ m/^TBD/) { + $new[0] = "TBD"; + $new[1] = $new[2] = $new[3] = ""; + } else { + if ($conditions[$i]->[1] ne '<shown>' + && $conditions[$i]->[1] !~ m/true/i ) { + $assert = "isNot"; + } else { + $assert = "is"; + } + $new[0] = "property"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } + } elsif ($API eq "MSAA") { + my $start = 0; + my $assert = "is"; + if ($conditions[$i]->[0] =~ m/^NOT/) { + $start = 1; + $assert = "isNot"; + } + + if ($conditions[$i]->[$start] =~ m/^role/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/^xml-roles/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/not in accessibility tree/i) { + @new = qw(property accessible exists false); + } elsif ($conditions[$i]->[$start] =~ m/^(accName|accDescription)/) { + my $name = $conditions[$i]->[$start+1]; + my $cond = "is" ; + if ($name eq "<empty>" ) { + $cond = "empty"; + $name = "true" + } elsif ($name eq "<not empty>") { + $cond = "empty"; + $name = "false"; + } + $new[0] = "property"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $cond; + $new[3] = $name; + } elsif ($conditions[$i]->[$start] =~ m/^ROLE_/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start]; + } elsif ($conditions[$i]->[$start] =~ m/^(STATE_.*) *([^ ]*)/) { + $new[0] = "property"; + $new[1] = "states"; + $new[3] = $1; + if ($2 && $2 eq "cleared") { + print "MATCHED $1, $2\n"; + $new[2] = "doesNotContain"; + } else { + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/^TBD/) { + $new[0] = "TBD"; + $new[1] = $new[2] = $new[3] = ""; + } + } elsif ($API eq "IAccessible2") { + my $start = 0; + my $assert = "is"; + if ($conditions[$i]->[0] =~ m/^NOT/) { + $start = 1; + $assert = "isNot"; + } + if ($conditions[$i]->[$start] =~ m/^IA2_ROLE_/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start]; + } elsif ($conditions[$i]->[$start] =~ m/not in accessibility tree/i) { + @new = qw(property accessible exists false); + } elsif ($conditions[$i]->[$start] =~ m/^IA2_RELATION_/) { + $new[0] = "relation"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/^IA2_STATE_/) { + $new[0] = "property"; + $new[1] = "states"; + $new[3] = $conditions[$i]->[$start]; + if ($assert eq "true") { + $new[2] = "contains"; + } else { + $new[2] = "doesNotContain"; + } + } elsif ($conditions[$i]->[$start] =~ m/^IA2_/) { + $new[0] = "property"; + $new[1] = "states"; + $new[3] = $conditions[$i]->[$start]; + if ($assert eq "true") { + $new[2] = "contains"; + } else { + $new[2] = "doesNotContain"; + } + } elsif ($conditions[$i]->[$start] =~ m/(IAccessibleTable2)/i) { + $new[0] = "property"; + $new[1] = "interfaces"; + $new[3] = $1; + if ($conditions[$i]->[$start+1] ne '<shown>' + && $conditions[$i]->[$start+1] !~ m/true/i ) { + $assert = "doesNotContain"; + } else { + $assert = "contains"; + } + $new[2] = $assert; + } elsif ($conditions[$i]->[$start] =~ m/(.*) interface/i) { + $new[0] = "property"; + $new[1] = "interfaces"; + $new[3] = $1; + if ($conditions[$i]->[$start+1] ne '<shown>' + && $conditions[$i]->[$start+1] !~ m/true/i ) { + $assert = "doesNotContain"; + } else { + $assert = "contains"; + } + $new[2] = $assert; + } elsif ($conditions[$i]->[$start] =~ m/(.*)\(\)/) { + $new[0] = "result"; + $new[1] = $conditions[$i]->[$start]; + my $val = $conditions[$i]->[2]; + $val =~ s/"//g; + $new[3] = $conditions[$i]->[1] . ":" . $val; + if ($conditions[$i]->[1] eq "not exposed" + || $conditions[$i]->[2] eq "false") { + $new[2] = "doesNotContain"; + } else { + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/(.*localizedExtendedRole)/) { + $new[0] = "result"; + $new[1] = $conditions[$i]->[$start]; + my $val = $conditions[$i]->[2]; + $val =~ s/"//g; + $new[3] = $conditions[$i]->[1] . ":" . $val; + if ($conditions[$i]->[1] eq "not exposed" + || $conditions[$i]->[2] eq "false") { + $new[2] = "doesNotContain"; + } else { + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] eq "object" || $conditions[$i]->[$start] eq "attribute" ) { + $new[0] = "property"; + $new[1] = "objectAttributes"; + my $val = $conditions[$i]->[2]; + $val =~ s/"//g; + $new[3] = $conditions[$i]->[1] . ":" . $val; + if ($conditions[$i]->[1] eq "not exposed" + || $conditions[$i]->[2] eq "false") { + $new[2] = "doesNotContain"; + } else { + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/^object attribute (.*)/) { + my $name = $1; + $new[0] = "property"; + $new[1] = "objectAttributes"; + my $val = $conditions[$i]->[1]; + $val =~ s/"//g; + if ($val eq "not exposed" || $val eq "not mapped") { + $new[3] = $name; + $new[2] = "doesNotContain"; + } else { + $new[3] = $name . ":" . $val; + $new[2] = "contains"; + } + } else { + @new = @{$conditions[$i]}; + if ($conditions[$i]->[2] eq '<shown>') { + $new[2] = "contains"; + } + } + $conditions[$i] = \@new; + } elsif ($API eq "AXAPI") { + my $start = 0; + my $assert = "is"; + if ($conditions[$i]->[0] =~ m/^NOT/) { + $start = 1; + $assert = "isNot"; + } + if ($conditions[$i]->[$start] =~ m/^AXElementBusy/) { + if ($conditions[$i]->[$start+1] =~ m/yes/i) { + $new[3] = "true"; + } else { + $new[3] = "false"; + } + $new[0] = "property"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + } elsif ($conditions[$i]->[$start] =~ m/not in accessibility tree/i) { + @new = qw(property accessible exists false); + } elsif ($conditions[$i]->[$start] =~ m/^AX/) { + $new[0] = "property"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/^TBD/) { + $new[0] = "TBD"; + $new[1] = $new[2] = $new[3] = ""; + } else { + if ($conditions[$i]->[1] ne '<shown>' + && $conditions[$i]->[1] !~ m/true/i ) { + $assert = "isNot"; + } else { + $assert = "is"; + } + $new[0] = "result"; + $new[1] = $conditions[$i]->[0]; + $new[2] = $assert; + $new[3] = "true"; + } + } + if ($i == 0) { + if (scalar(@additional)) { + $rowcount += scalar(@additional); + } + $output .= "|-\n|rowspan=$rowcount|$API\n"; + } + foreach my $row (@new) { + $output .= "|$row\n"; + } + if (scalar(@additional)) { + foreach my $arow (@additional) { + $output .= "|-\n" ; + foreach my $aItem (@$arow) { + $output .= "|$aItem\n"; + } + } + } + } + } + $output .= "|}\n"; + + return $output; +} + +sub usage() { + print STDERR q(usage: make_tests.pl -f file | -w wiki_title | -s spec [-n -v -d dir ] + + -s specname - the name of a spec known to the system + -w wiki_title - the TITLE of a wiki page with testable statements + -f file - the file from which to read + -o outFile - the file to fill with the converted wiki; defaults to STDOUT + + -n - do nothing + -v - be verbose + ); + exit 1; +} + +# vim: ts=2 sw=2 ai: diff --git a/testing/web-platform/tests/wai-aria/tools/make_tests.pl b/testing/web-platform/tests/wai-aria/tools/make_tests.pl new file mode 100644 index 0000000000..01cb5b0b85 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/tools/make_tests.pl @@ -0,0 +1,544 @@ +#!/usr/bin/perl +# +# make_tests.pl - generate WPT test cases from the testable statements wiki +# +# This script assumes that a wiki has testable statement entries +# in the format described by the specification at +# https://spec-ops.github.io/atta-api/index.html +# +# usage: make_tests.pl -f file | -w wiki_title | -s spec -d dir + +use strict; + +use IO::String ; +use JSON ; +use MediaWiki::API ; +use Getopt::Long; + +my %specs = ( + "aria11" => { + title => "ARIA_1.1_Testable_Statements", + specURL => "https://www.w3.org/TR/wai-aria11/", + dir => "aria11" + }, + "svg" => { + title => "SVG_Accessibility/Testing/Test_Assertions_with_Tables_for_ATTA", + specURL => "https://www.w3.org/TR/svg-aam-1.0/", + dir => "svg", + fragment => '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">%code%</svg>' + } +); + +my @apiNames = qw(UIA MSAA ATK IAccessible2 AXAPI); +my $apiNamesRegex = "(" . join("|", @apiNames) . ")"; + +# the suffix to attach to the automatically generated test case names +my $theSuffix = "-manual.html"; + +# dir is determined based upon the short name of the spec and is defined +# by the input or on the command line + +my $file = undef ; +my $spec = undef ; +my $wiki_title = undef ; +my $dir = undef; +my $theSpecFragment = "%code%"; +my $preserveWiki = ""; +my $fake = 0; + +my $result = GetOptions( + "f|file=s" => \$file, + "p=s" => \$preserveWiki, + "w|wiki=s" => \$wiki_title, + "s|spec=s" => \$spec, + "f|fake" => \$fake, + "d|dir=s" => \$dir) || usage(); + +my $wiki_config = { + "api_url" => "https://www.w3.org/wiki/api.php" +}; + +my $io ; +our $theSpecURL = ""; + +if ($spec) { + print "Processing spec $spec\n"; + $wiki_title = $specs{$spec}->{title}; + $theSpecURL = $specs{$spec}->{specURL}; + if (!$dir) { + $dir = "../" . $specs{$spec}->{dir}; + } + $theSpecFragment = $specs{$spec}->{fragment}; +} + +if (!$dir) { + $dir = "../raw"; +} + +if (!-d $dir) { + print STDERR "No such directory: $dir\n"; + exit 1; +} + +if ($file) { + open($io, "<", $file) || die("Failed to open $file: " . $@); +} elsif ($wiki_title) { + my $MW = MediaWiki::API->new( $wiki_config ); + + $MW->{config}->{on_error} = \&on_error; + + sub on_error { + print "Error code: " . $MW->{error}->{code} . "\n"; + print $MW->{error}->{stacktrace}."\n"; + die; + } + my $page = $MW->get_page( { title => $wiki_title } ); + my $theContent = $page->{'*'}; + print "Loaded " . length($theContent) . " from $wiki_title\n"; + if ($preserveWiki) { + if (open(OUTPUT, ">$preserveWiki")) { + print OUTPUT $theContent; + close OUTPUT; + print "Wiki preserved in $preserveWiki\n"; + exit 0; + } else { + print "Failed to create $preserveWiki. Terminating.\n"; + exit 1; + } + } + $io = IO::String->new($theContent); +} else { + usage() ; +} + + + +# Now let's walk through the content and build a test page for every item +# + +# iterate over the content + +# my $io ; +# open($io, "<", "raw") ; + +# data structure: +# +# steps is a list of steps to be performed. +# Each step is an object that has a type property and other properties based upon that type. +# +# Types include: +# +# 'test' - has a property for each ATAPI for which there are tests +# 'attribute' - has a property for the target id, attribute name, and value +# 'event' - has a property for the target id and event name +my $state = 0; # between items +my $theStep = undef; +my $current = ""; +my $theCode = ""; +my $theAttributes = {}; +my @steps ; +my $theAsserts = {} ; +my $theAssertCount = 0; +my $theAPI = ""; +my $typeRows = 0; +my $theType = ""; +my $theName = ""; +my $theRef = ""; +my $lineCounter = 0; +my $skipping = 0; + +our $testNames = {} ; + +while (<$io>) { + if (m/<!-- END OF TESTS -->/) { + last; + } + $lineCounter++; + # look for state + if (m/^SpecURL: (.*)$/) { + $theSpecURL = $1; + $theSpecURL =~ s/^ *//; + $theSpecURL =~ s/ *$//; + } + if ($state == 5 && m/^; \/\/ (.*)/) { + # we found another test inside a block + # we were in an item; dump it + build_test($current, $theAttributes, $theCode, \@steps, $theSpecFragment) ; + # print "Finished $current and new subblock $1\n"; + $state = 1; + $theAttributes = {} ; + $theAPI = ""; + @steps = (); + $theCode = ""; + $theAsserts = undef; + $theName = ""; + } elsif (m/^=== +(.*[^ ]) +===/) { + if ($state != 0) { + if ($skipping) { + print STDERR "Flag on assertion $current; skipping\n"; + } else { + # we were in an item; dump it + build_test($current, $theAttributes, $theCode, \@steps, $theSpecFragment) ; + # print "Finished $current\n"; + } + } + $state = 1; + $current = $1; + $theAttributes = {} ; + @steps = (); + $theCode = ""; + $theAsserts = undef; + $theAPI = ""; + $theName = ""; + if ($current =~ m/\(/) { + # there is a paren in the name -skip it + $skipping = 1; + } else { + $skipping = 0; + } + } + + if ($state == 1) { + if (m/<pre>/) { + # we are now in the code block + $state = 2; + next; + } elsif (m/==== +(.*) +====/) { + # we are in some other block + $theName = lc($1); + $theAttributes->{$theName} = ""; + next; + } + if (m/^Reference: +(.*)$/) { + $theAttributes->{reference} = $theSpecURL . "#" . $1; + } elsif ($theName ne "") { + # accumulate whatever was in the block under the data for it + chomp(); + $theAttributes->{$theName} .= $_; + } elsif (m/TODO/) { + $state = 0; + } + } + + if ($state == 2) { + if (m/<\/pre>/) { + # we are done with the code block + $state = 3; + } else { + if (m/^\s/ && !m/if given/) { + # trim any trailing whitespace + $theCode =~ s/ +$//; + $theCode =~ s/\t/ /g; + $theCode .= $_; + # In MediaWiki, to display & symbol escapes as literal text, one + # must use "&&" for the "&" character. We need to undo that. + $theCode =~ s/&(\S)/&$1/g; + } + } + } elsif ($state == 3) { + # look for a table + if (m/^\{\|/) { + # table started + $state = 4; + } + } elsif ($state == 4) { + if (m/^\|-/) { + if ($theAPI + && exists($theAsserts->{$theAPI}->[$theAssertCount]) + && scalar(@{$theAsserts->{$theAPI}->[$theAssertCount]})) { + $theAssertCount++; + } + # start of a table row + if ($theType ne "" && $typeRows) { + # print qq($theType typeRows was $typeRows\n); + # we are still processing items for a type + $typeRows--; + # populate the first cell + $theAsserts->{$theAPI}->[$theAssertCount] = [ $theType ] ; + } else { + $theType = ""; + } + } elsif (m/^\|\}/) { + # ran out of table + $state = 5; + # adding processing for additional block types + # a colspan followed by a keyword triggers a start + # so |colspan=5|element triggers a new collection + # |colspan=5|attribute triggers the setting of an attribute + } elsif (m/^\|colspan="*([0-9])"*\|([^ ]+) (.*)$/) { + my $type = $2; + my $params = $3; + + my $obj = {} ; + if ($type eq "attribute") { + if ($params =~ m/([^:]+):([^ ]+) +(.*)$/) { + $obj = { + type => $type, + element => $1, + attribute => $2, + value => $3 + }; + $theStep = undef; + push(@steps, $obj); + } else { + print STDERR "Malformed attribute instruction at line $lineCounter: " . $_ . "\n"; + } + } elsif ($type eq "event") { + if ($params =~ m/([^:]+):([^ ]+).*$/) { + $obj = { + type => $type, + element => $1, + value => $2 + }; + $theStep = undef; + push(@steps, $obj); + } else { + print STDERR "Malformed event instruction at line $lineCounter: " . $_ . "\n"; + } + } elsif ($type eq "element") { + $obj = { + type => "test", + element => $3 + }; + push(@steps, $obj); + $theStep = scalar(@steps) - 1; + $theAsserts = $steps[$theStep]; + } else { + print STDERR "Unknown operation type: $type at line " . $lineCounter . "; skipping.\n"; + } + } elsif (m/($apiNamesRegex)$/) { + my $theString = $1; + $theString =~ s/ +$//; + $theString =~ s/^ +//; + if ($theString eq "IA2") { + $theString = "IAccessible2" ; + } + my $rows = 1; + if (m/^\|rowspan="*([0-9])"*\|(.*)$/) { + $rows = $1 + } + if (grep { $_ eq $theString } @apiNames) { + # we found an API name - were we already processing assertions? + if (!$theAsserts) { + # nope - now what? + $theAsserts = { + type => "test", + element => "test" + }; + push(@steps, $theAsserts); + } + $theAssertCount = 0; + # this is a new API section + $theAPI = $theString ; + $theAsserts->{$theAPI} = [ [] ] ; + $theType = ""; + } else { + # this is a multi-row type + $theType = $theString; + $typeRows = $rows; + # print qq(Found multi-row $theString for $theAPI with $typeRows rows\n); + $typeRows--; + # populate the first cell + if ($theAPI + && exists($theAsserts->{$theAPI}->[$theAssertCount]) + && scalar(@{$theAsserts->{$theAPI}->[$theAssertCount]})) { + $theAssertCount++; + } + $theAsserts->{$theAPI}->[$theAssertCount] = [ $theType ] ; + } + } elsif (m/^\|(.*)$/) { + my $item = $1; + $item =~ s/^ *//; + $item =~ s/ *$//; + $item =~ s/^['"]//; + $item =~ s/['"]$//; + # add into the data structure for the API + if (!exists $theAsserts->{$theAPI}->[$theAssertCount]) { + $theAsserts->{$theAPI}->[$theAssertCount] = [ $item ] ; + } else { + push(@{$theAsserts->{$theAPI}->[$theAssertCount]}, $item); + } + } + } +}; + +if ($state != 0) { + build_test($current, $theAttributes, $theCode, \@steps, $theSpecFragment) ; + print "Finished $current\n"; +} + +exit 0; + +# build_test +# +# create a test file +# +# attempts to create unique test names + +sub build_test() { + my $title = shift ; + my $attrs = shift ; + my $code = shift ; + my $steps = shift; + my $frag = shift ; + + if ($title eq "") { + print STDERR "No name provided!"; + return; + } + + if ($frag ne "") { + $frag =~ s/%code%/$code/; + $code = $frag; + } + + $code =~ s/ +$//m; + $code =~ s/\t/ /g; + + my $title_reference = $title; + + if ($code eq "") { + print STDERR "No code for $title; skipping.\n"; + return; + } + if ( $steps eq {}) { + print STDERR "No assertions for $title; skipping.\n"; + return; + } + + my $testDef = + { "title" => $title, + "steps" => [] + }; + my $stepCount = 0; + foreach my $asserts (@$steps) { + $stepCount++; + my $step = + { + "type" => $asserts->{"type"}, + "title"=> "step " . $stepCount, + }; + + if ($asserts->{type} eq "test") { + # everything in the block is about testing an element + $step->{"element"} = ( $asserts->{"element"} || "test" ); + + my $tests = {}; + if ($fake) { + $tests->{"WAIFAKE"} = [ [ "property", "role", "is", "ROLE_TABLE_CELL" ], [ "property", "interfaces", "contains", "TableCell" ] ]; + } + foreach my $name (@apiNames) { + if (exists $asserts->{$name} && scalar(@{$asserts->{$name}})) { + $tests->{$name} = $asserts->{$name}; + } + }; + + $step->{test} = $tests; + + } elsif ($asserts->{type} eq "attribute") { + $step->{type} = "attribute"; + $step->{element} = $asserts->{"element"}; + $step->{attribute} = $asserts->{"attribute"}; + $step->{value} = $asserts->{value}; + } elsif ($asserts->{type} eq "event") { + $step->{type} = "event"; + $step->{element} = $asserts->{"element"}; + $step->{event} = $asserts->{value}; + } else { + print STDERR "Invalid step type: " . $asserts->{type} . "\n"; + next; + } + push(@{$testDef->{steps}}, $step); + } + + + # populate the rest of the test definition + + if (scalar(keys(%$attrs))) { + while (my $key = each(%$attrs)) { + # print "Copying $key \n"; + $testDef->{$key} = $attrs->{$key}; + } + } + + if (exists $attrs->{reference}) { + $title_reference = "<a href='" . $attrs->{reference} . "'>" . $title_reference . "</a>" ; + } + + my $testDef_json = to_json($testDef, { canonical => 1, pretty => 1, utf8 => 1}); + + my $fileName = $title; + $fileName =~ s/\s*$//; + $fileName =~ s/\///g; + $fileName =~ s/\s+/_/g; + $fileName =~ s/[,=:]/_/g; + $fileName =~ s/['"]//g; + + my $count = 2; + if ($testNames->{$fileName}) { + while (exists $testNames->{$fileName . "_$count"}) { + $count++; + } + $fileName .= "_$count"; + } + + $fileName = lc($fileName); + + $testNames->{$fileName} = 1; + + $fileName .= $theSuffix; + + my $template = qq(<!doctype html> +<html> + <head> + <title>$title</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + $testDef_json + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for $title_reference.</p> + $code + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html>); + + my $file ; + + if (open($file, ">", "$dir/$fileName")) { + print $file $template; + print $file "\n"; + close $file; + } else { + print STDERR qq(Failed to create file "$dir/$fileName" $!\n); + } + + return; +} + +sub usage() { + print STDERR q(usage: make_tests.pl -f file | -w wiki_title | -s spec [-n -v -d dir ] + + -s specname - the name of a spec known to the system + -w wiki_title - the TITLE of a wiki page with testable statements + -f file - the file from which to read + + -n - do nothing + -v - be verbose + -d dir - put generated tests in directory dir + ); + exit 1; +} + +# vim: ts=2 sw=2 ai: diff --git a/testing/web-platform/tests/wai-aria/tree_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/tree_orientation_horizontal-manual.html new file mode 100644 index 0000000000..15813f5f03 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/tree_orientation_horizontal-manual.html @@ -0,0 +1,129 @@ +<!doctype html> +<html> + <head> + <title>tree orientation horizontal</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TREE" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXOutline" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "outline" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Tree" + ], + [ + "property", + "Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "tree orientation horizontal" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for tree orientation horizontal.</p> + <div role="tree" tabindex="0" aria-orientation="horizontal" aria-activedescendant="foo" id="test"> + <div id="foo" role="treeitem">foo</div> + <div role="treeitem">baz</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/tree_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/tree_orientation_unspecified-manual.html new file mode 100644 index 0000000000..dfc1bdcc58 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/tree_orientation_unspecified-manual.html @@ -0,0 +1,129 @@ +<!doctype html> +<html> + <head> + <title>tree orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TREE" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXOutline" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "outline" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Tree" + ], + [ + "property", + "Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "tree orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for tree orientation unspecified.</p> + <div role="tree" tabindex="0" aria-activedescendant="foo" id="test"> + <div id="foo" role="treeitem">foo</div> + <div role="treeitem">baz</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/tree_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/tree_orientation_vertical-manual.html new file mode 100644 index 0000000000..b9afa33ff4 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/tree_orientation_vertical-manual.html @@ -0,0 +1,129 @@ +<!doctype html> +<html> + <head> + <title>tree orientation vertical</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TREE" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXOutline" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "outline" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "Tree" + ], + [ + "property", + "Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "tree orientation vertical" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for tree orientation vertical.</p> + <div role="tree" tabindex="0" aria-orientation="vertical" aria-activedescendant="foo" id="test"> + <div id="foo" role="treeitem">foo</div> + <div role="treeitem">baz</div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/treegrid_colcount_8-manual.html b/testing/web-platform/tests/wai-aria/treegrid_colcount_8-manual.html new file mode 100644 index 0000000000..a3e9ea1496 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/treegrid_colcount_8-manual.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> + <head> + <title>treegrid colcount 8</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TREE_TABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "colcount:8" + ], + [ + "result", + "atk_table_get_n_columns()", + "is", + "8" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXARIAColumnCount", + "is", + "8" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ], + [ + "property", + "objectAttributes", + "contains", + "colcount:8" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataGrid" + ], + [ + "property", + "DataGrid.ColumnCount", + "is", + "8" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "treegrid colcount 8" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for treegrid colcount 8.</p> + <div id="test" role="treegrid" aria-colcount="8"> + <div role="row"> + <div role="cell" aria-colindex="4">test cell</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/treegrid_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/treegrid_orientation_horizontal-manual.html new file mode 100644 index 0000000000..756153abf3 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/treegrid_orientation_horizontal-manual.html @@ -0,0 +1,137 @@ +<!doctype html> +<html> + <head> + <title>treegrid orientation horizontal</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TREE_TABLE" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "contains", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "table" + ], + [ + "property", + "AXOrientation", + "is", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_HORIZONTAL" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataGrid" + ], + [ + "property", + "Orientation", + "is", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "treegrid orientation horizontal" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for treegrid orientation horizontal.</p> + <div role="treegrid" tabindex="0" aria-orientation="horizontal" aria-activedescendant="foo" id="test"> + <div role="row"> + <div role="cell" id="foo">c1</div> + <div role="cell">c2</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/treegrid_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/treegrid_orientation_unspecified-manual.html new file mode 100644 index 0000000000..d536e9afbe --- /dev/null +++ b/testing/web-platform/tests/wai-aria/treegrid_orientation_unspecified-manual.html @@ -0,0 +1,155 @@ +<!doctype html> +<html> + <head> + <title>treegrid orientation unspecified</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TREE_TABLE" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_HORIZONTAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "table" + ], + [ + "property", + "AXOrientation", + "isNot", + "AXVerticalOrientation" + ], + [ + "property", + "AXOrientation", + "isNot", + "AXHorizontalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataGrid" + ], + [ + "property", + "Orientation", + "isNot", + "vertical" + ], + [ + "property", + "Orientation", + "isNot", + "horizontal" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "treegrid orientation unspecified" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for treegrid orientation unspecified.</p> + <div role="treegrid" tabindex="0" aria-activedescendant="foo" id="test"> + <div role="row"> + <div role="cell" id="foo">c1</div> + <div role="cell">c2</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/treegrid_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/treegrid_orientation_vertical-manual.html new file mode 100644 index 0000000000..62a19d0904 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/treegrid_orientation_vertical-manual.html @@ -0,0 +1,137 @@ +<!doctype html> +<html> + <head> + <title>treegrid orientation vertical</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TREE_TABLE" + ], + [ + "property", + "interfaces", + "contains", + "Selection" + ], + [ + "property", + "states", + "contains", + "STATE_VERTICAL" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXSubrole", + "is", + "<nil>" + ], + [ + "property", + "AXRoleDescription", + "is", + "table" + ], + [ + "property", + "AXOrientation", + "is", + "AXVerticalOrientation" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ], + [ + "property", + "states", + "contains", + "IA2_STATE_VERTICAL" + ], + [ + "property", + "states", + "doesNotContain", + "IA2_STATE_HORIZONTAL" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataGrid" + ], + [ + "property", + "Orientation", + "is", + "vertical" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "treegrid orientation vertical" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for treegrid orientation vertical.</p> + <div role="treegrid" tabindex="0" aria-orientation="vertical" aria-activedescendant="foo" id="test"> + <div role="row"> + <div role="cell" id="foo">c1</div> + <div role="cell">c2</div> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/treegrid_rowcount_3-manual.html b/testing/web-platform/tests/wai-aria/treegrid_rowcount_3-manual.html new file mode 100644 index 0000000000..9d9b8acf44 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/treegrid_rowcount_3-manual.html @@ -0,0 +1,120 @@ +<!doctype html> +<html> + <head> + <title>treegrid rowcount 3</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TREE_TABLE" + ], + [ + "property", + "objectAttributes", + "contains", + "rowcount:3" + ], + [ + "result", + "atk_table_get_n_rows()", + "is", + "3" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXTable" + ], + [ + "property", + "AXARIARowCount", + "is", + "3" + ] + ], + "IAccessible2" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ], + [ + "property", + "interfaces", + "contains", + "IAccessibleTable2" + ], + [ + "property", + "objectAttributes", + "contains", + "rowcount:3" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "DataGrid" + ], + [ + "property", + "DataGrid.RowCount", + "is", + "3" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "treegrid rowcount 3" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for treegrid rowcount 3.</p> + <div role='treegrid' id='test' aria-rowcount='3' aria-colcount='2'> + <div role='row'> + <span role='gridcell'> + <button>hello</button> + </span> + </div> + </div> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/treeitem_selected_false-manual.html b/testing/web-platform/tests/wai-aria/treeitem_selected_false-manual.html new file mode 100644 index 0000000000..684fda69b6 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/treeitem_selected_false-manual.html @@ -0,0 +1,125 @@ +<!doctype html> +<html> + <head> + <title>treeitem selected false</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TREE_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRow" + ], + [ + "property", + "AXSubrole", + "is", + "AXOutlineRow" + ], + [ + "property", + "AXRoleDescription", + "is", + "outline row" + ], + [ + "property", + "AXSelected", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINEITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "TreeItem" + ], + [ + "property", + "ControlPatterns", + "doesNotContain", + "SelectionItem" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "treeitem selected false" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for treeitem selected false.</p> + <UL role="tree"> + <li role="treeitem" aria-selected="false" id="test"> + Fish + </li> + <li role="treeitem"> + beef + </li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/treeitem_selected_true-manual.html b/testing/web-platform/tests/wai-aria/treeitem_selected_true-manual.html new file mode 100644 index 0000000000..b951c54dec --- /dev/null +++ b/testing/web-platform/tests/wai-aria/treeitem_selected_true-manual.html @@ -0,0 +1,125 @@ +<!doctype html> +<html> + <head> + <title>treeitem selected true</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TREE_ITEM" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRow" + ], + [ + "property", + "AXSubrole", + "is", + "AXOutlineRow" + ], + [ + "property", + "AXRoleDescription", + "is", + "outline row" + ], + [ + "property", + "AXSelected", + "is", + "true" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINEITEM" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "TreeItem" + ], + [ + "property", + "SelectionItem.IsSelected", + "Is", + "true" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "treeitem selected true" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for treeitem selected true.</p> + <UL role="tree"> + <li role="treeitem" aria-selected="true" id="test"> + Fish + </li> + <li role="treeitem"> + beef + </li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/treeitem_selected_undefined-manual.html b/testing/web-platform/tests/wai-aria/treeitem_selected_undefined-manual.html new file mode 100644 index 0000000000..dddfd3826f --- /dev/null +++ b/testing/web-platform/tests/wai-aria/treeitem_selected_undefined-manual.html @@ -0,0 +1,125 @@ +<!doctype html> +<html> + <head> + <title>treeitem selected undefined</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "property", + "role", + "is", + "ROLE_TREE_ITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SELECTABLE" + ] + ], + "AXAPI" : [ + [ + "property", + "AXRole", + "is", + "AXRow" + ], + [ + "property", + "AXSubrole", + "is", + "AXOutlineRow" + ], + [ + "property", + "AXRoleDescription", + "is", + "outline row" + ], + [ + "property", + "AXSelected", + "is", + "false" + ] + ], + "MSAA" : [ + [ + "property", + "role", + "is", + "ROLE_SYSTEM_OUTLINEITEM" + ], + [ + "property", + "states", + "doesNotContain", + "STATE_SYSTEM_SELECTED" + ], + [ + "property", + "states", + "contains", + "STATE_SYSTEM_SELECTABLE" + ] + ], + "UIA" : [ + [ + "property", + "ControlType", + "is", + "TreeItem" + ], + [ + "property", + "ControlPatterns", + "doesNotContain", + "SelectionItem" + ] + ] + }, + "title" : "step 1", + "type" : "test" + } + ], + "title" : "treeitem selected undefined" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for treeitem selected undefined.</p> + <UL role="tree"> + <li role="treeitem" id="test"> + Fish + </li> + <li role="treeitem"> + beef + </li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> diff --git a/testing/web-platform/tests/wai-aria/treeitem_selected_value_changes-manual.html b/testing/web-platform/tests/wai-aria/treeitem_selected_value_changes-manual.html new file mode 100644 index 0000000000..69734c82dd --- /dev/null +++ b/testing/web-platform/tests/wai-aria/treeitem_selected_value_changes-manual.html @@ -0,0 +1,146 @@ +<!doctype html> +<html> + <head> + <title>treeitem selected value changes</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> + <link rel="stylesheet" href="/wai-aria/scripts/manual.css"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/wai-aria/scripts/ATTAcomm.js"></script> + <script> + setup({explicit_timeout: true, explicit_done: true }); + + var theTest = new ATTAcomm( + { + "steps" : [ + { + "attribute" : "aria-activedescendant", + "element" : "test1", + "title" : "step 1", + "type" : "attribute", + "value" : "\"test\" " + }, + { + "attribute" : "aria-selected", + "element" : "test", + "title" : "step 2", + "type" : "attribute", + "value" : "\"true\"" + }, + { + "attribute" : "aria-selected", + "element" : "test2", + "title" : "step 3", + "type" : "attribute", + "value" : "\"false\"" + }, + { + "element" : "test", + "test" : { + "ATK" : [ + [ + "event", + "type", + "is", + "object:state-changed:selected" + ], + [ + "event", + "detail1", + "is", + "1" + ] + ], + "MSAA" : [ + [ + "event", + "type", + "is", + "EVENT_OBJECT_SELECTION" + ], + [ + "event", + "type", + "is", + "EVENT_OBJECT_STATECHANGE" + ] + ], + "UIA" : [ + [ + "event", + "type", + "is", + "UIA_SelectionItem_ElementSelectedEventId" + ] + ] + }, + "title" : "step 4", + "type" : "test" + }, + { + "element" : "test1", + "test" : { + "ATK" : [ + [ + "event", + "type", + "is", + "object:selection-changed" + ] + ], + "AXAPI" : [ + [ + "event", + "type", + "is", + "AXSelectedChildrenChanged" + ] + ] + }, + "title" : "step 5", + "type" : "test" + }, + { + "element" : "test2", + "test" : { + "ATK" : [ + [ + "event", + "type", + "is", + "object:state-changed:selected" + ], + [ + "event", + "detail1", + "is", + "0" + ] + ] + }, + "title" : "step 6", + "type" : "test" + } + ], + "title" : "treeitem selected value changes" +} + + ) ; + </script> + </head> + <body> + <p>This test examines the ARIA properties for treeitem selected value changes.</p> + <ul id="test1" aria-activedescendant="test2" role="tree"> + <li role="treeitem" aria-selected="false" id="test"> + Fish + </li> + <li id="test2" aria-selected="true" role="treeitem"> + beef + </li> + </ul> + + <div id="manualMode"></div> + <div id="log"></div> + <div id="ATTAmessages"></div> + </body> +</html> |