| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../resources/accessibility-helper.js"></script> |
| <script src="../resources/js-test.js"></script> |
| </head> |
| <body> |
| |
| <div id="content"> |
| <div>Implicit defaults</div> |
| <input type="range" id="slider"> |
| <input id="combo" type="text" role="combobox" placeholder="Placeholder" value="text"> |
| <div id="listbox" role="listbox"> |
| <div id="option1" role="option" aria-selected="true">Option</div> |
| </div> |
| <div id="menu" role="menu"> |
| <div role="menuitem" id="item1" tabindex="0">Menu item 1</div> |
| </div> |
| <div id="menubar" role="menubar">menubar</div> |
| <div role="radiogroup" id="radiogroup"> |
| <div role="radio" aria-label="radio 1" aria-checked="false">radio 1</div> |
| </div> |
| <div role="separator" id="separator"></div> |
| <div role="tablist" id="tablist"> |
| <div role="toolbar" id="toolbar" aria-label="test toolbar"><li>item one</div> |
| <ul id="tree" role="tree"> |
| <li id="treeitem1" role="treeitem">tree item</li> |
| </ul> |
| <table id="treegrid" role="treegrid"> |
| <tbody> |
| <tr><td role="gridcell" colspan="3">cell</tr> |
| <tr><td role="gridcell" colspan="3">cell2</tr> |
| </tbody> |
| </table> |
| |
| <br> |
| <div>Authored orientation</div> |
| <div role="radiogroup" id="radiogroup2" aria-orientation="vertical"> |
| <div role="radio" aria-label="radio 1" aria-checked=false>radio 1</div> |
| </div> |
| <table id="treegrid2" role="treegrid" aria-orientation="horizontal"> |
| <tbody> |
| <tr><td role="gridcell" colspan="3">cell</tr> |
| <tr><td role="gridcell" colspan="3">cell2</tr> |
| </tbody> |
| </table> |
| <div role="separator" id="separator2" aria-orientation="undefined"></div> |
| <span role="slider" id="slider2" aria-orientation="undefined" aria-valuenow=5 aria-valuemin=0 aria-valuemax=10>X</span> |
| <div role="listbox" id="listbox2" aria-orientation="horizontal"> |
| <div id="option2" role="option" aria-selected="true">Option</div> |
| </div> |
| <div role="listbox" id="listbox-display-contents" style="display:contents" aria-orientation="vertical"> |
| <div id="option-within-display-contents" role="option" aria-selected="true">Option</div> |
| </div> |
| </div> |
| |
| <script> |
| var testOutput = "This test ensures that aria-orientation works correctly and the implicit defaults are defined on different roles.\n\n"; |
| |
| if (window.accessibilityController) { |
| window.jsTestIsAsync = true; |
| |
| // Test implicit defaults on some roles. |
| var slider = accessibilityController.accessibleElementById("slider"); |
| testOutput += expect("slider.orientation", "'AXOrientation: AXHorizontalOrientation'"); |
| |
| var combobox = accessibilityController.accessibleElementById("combo"); |
| testOutput += expect("combobox.orientation", "'AXOrientation: AXUnknownOrientation'"); |
| |
| var listbox = accessibilityController.accessibleElementById("listbox"); |
| testOutput += expect("listbox.orientation", "'AXOrientation: AXVerticalOrientation'"); |
| |
| var menu = accessibilityController.accessibleElementById("menu"); |
| testOutput += expect("menu.orientation", "'AXOrientation: AXVerticalOrientation'"); |
| |
| var menubar = accessibilityController.accessibleElementById("menubar"); |
| testOutput += expect("menubar.orientation", "'AXOrientation: AXHorizontalOrientation'"); |
| |
| var radiogroup = accessibilityController.accessibleElementById("radiogroup"); |
| testOutput += expect("radiogroup.orientation", "'AXOrientation: AXUnknownOrientation'"); |
| |
| var separator = accessibilityController.accessibleElementById("separator"); |
| testOutput += expect("separator.orientation", "'AXOrientation: AXHorizontalOrientation'"); |
| |
| var tablist = accessibilityController.accessibleElementById("tablist"); |
| testOutput += expect("tablist.orientation", "'AXOrientation: AXHorizontalOrientation'"); |
| |
| var toolbar = accessibilityController.accessibleElementById("toolbar"); |
| testOutput += expect("toolbar.orientation", "'AXOrientation: AXHorizontalOrientation'"); |
| |
| var tree = accessibilityController.accessibleElementById("tree"); |
| testOutput += expect("tree.orientation", "'AXOrientation: AXVerticalOrientation'"); |
| |
| var treegrid = accessibilityController.accessibleElementById("treegrid"); |
| testOutput += expect("treegrid.orientation", "'AXOrientation: AXUnknownOrientation'"); |
| |
| // Test authored aria-orientation are correct. |
| var radiogroup2 = accessibilityController.accessibleElementById("radiogroup2"); |
| testOutput += expect("radiogroup2.orientation", "'AXOrientation: AXVerticalOrientation'"); |
| |
| var treegrid2 = accessibilityController.accessibleElementById("treegrid2"); |
| testOutput += expect("treegrid2.orientation", "'AXOrientation: AXHorizontalOrientation'"); |
| |
| var separator2 = accessibilityController.accessibleElementById("separator2"); |
| testOutput += expect("separator2.orientation", "'AXOrientation: AXUnknownOrientation'"); |
| |
| var slider2 = accessibilityController.accessibleElementById("slider2"); |
| testOutput += expect("slider2.orientation", "'AXOrientation: AXUnknownOrientation'"); |
| |
| var listbox2 = accessibilityController.accessibleElementById("listbox2"); |
| testOutput += expect("listbox2.orientation", "'AXOrientation: AXHorizontalOrientation'"); |
| |
| var listboxDisplayContents = accessibilityController.accessibleElementById("listbox-display-contents"); |
| testOutput += expect("listboxDisplayContents.orientation", "'AXOrientation: AXVerticalOrientation'"); |
| |
| testOutput += "\nUpdating #listbox-display-contents aria-orientation to horizontal.\n" |
| document.getElementById("listbox-display-contents").setAttribute("aria-orientation", "horizontal"); |
| setTimeout(async function() { |
| await waitFor(() => listboxDisplayContents.orientation.includes("AXHorizontalOrientation")); |
| testOutput += expect("listboxDisplayContents.orientation", "'AXOrientation: AXHorizontalOrientation'"); |
| |
| document.getElementById("content").style.visibility = "hidden"; |
| debug(testOutput); |
| finishJSTest(); |
| }, 0); |
| } |
| </script> |
| </body> |
| </html> |
| |