<!DOCTYPE html> <html> <head> <title>Test accessible tree when ARIA role presentation is used</title> <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" /> <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script> <script type="application/javascript" src="../common.js"></script> <script type="application/javascript" src="../role.js"></script> <script type="application/javascript"> function doTest() { // Presentation role don't allow accessible. var tree = { SECTION: [ // container { TEXT_LEAF: [ ] }, // child text of 'presentation' node { TEXT_LEAF: [ ] } // child text of 'none' node ] }; testAccessibleTree("div_cnt", tree); // Focusable element, 'presentation' and 'none' roles are ignored. tree = { SECTION: [ // container { PUSHBUTTON: [ // button having 'presentation' role { TEXT_LEAF: [ ] } ] }, { PUSHBUTTON: [ // button having 'none' role { TEXT_LEAF: [ ] } ] } ] }; testAccessibleTree("btn_cnt", tree); // Presentation table, no table structure is exposed. tree = { SECTION: [ // container { TEXT_CONTAINER: [ // td generic accessible inside 'presentation' table { TEXT_LEAF: [ ] } // cell text ] }, { TEXT_CONTAINER: [ // td generic accessible inside 'none' table { TEXT_LEAF: [ ] } // cell text ] } ] }; testAccessibleTree("tbl_cnt", tree); // Focusable table, 'presentation' and 'none' roles are ignored. tree = { SECTION: [ // container { TABLE: [ // table having 'presentation' role { ROW: [ // tr { CELL: [ // td { TEXT_LEAF: [ ] } ] } ] } ] }, { TABLE: [ // table having 'none' role { ROW: [ // tr { CELL: [ // td { TEXT_LEAF: [ ] } ] } ] } ] } ] }; testAccessibleTree("tblfocusable_cnt", tree); // Presentation list, expose generic accesisble for list items. tree = { SECTION: [ // container { TEXT_CONTAINER: [ // li generic accessible inside 'presentation' role { TEXT_LEAF: [ ] } // li text ] }, { TEXT_CONTAINER: [ // li generic accessible inside 'none' role { TEXT_LEAF: [ ] } // li text ] } ] }; testAccessibleTree("list_cnt", tree); // Has ARIA globals or referred by ARIA relationship, role='presentation' // and role='none' are ignored. tree = { SECTION: [ // container { LABEL: [ // label, has aria-owns { TEXT_LEAF: [ ] }, { LABEL: [ // label, referenced by aria-owns { TEXT_LEAF: [ ] } ] }, ] }, { LABEL: [ // label, has aria-owns { TEXT_LEAF: [ ] }, { LABEL: [ // label, referenced by aria-owns { TEXT_LEAF: [ ] } ] } ] } ] }; testAccessibleTree("airaglobalprop_cnt", tree); SimpleTest.finish(); } SimpleTest.waitForExplicitFinish(); addA11yLoadEvent(doTest); </script> </head> <body> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=548291" title="Accessible tree of ARIA image maps"> Bug 548291 </a> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=666504" title="Ignore role presentation on focusable elements"> Bug 666504 </a> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=971212" title="Implement ARIA role=none"> Bug 971212 </a> <p id="display"></p> <div id="content" style="display: none"></div> <pre id="test"> </pre> <div id="div_cnt"><div role="presentation">t</div><div role="none">t</div></div> <div id="btn_cnt"><button role="presentation">btn</button><button role="none">btn</button></div> <div id="tbl_cnt"> <table role="presentation"> <tr> <td>cell</td> </tr> </table> <table role="none"> <tr> <td>cell</td> </tr> </table> </div> <div id="tblfocusable_cnt"> <table role="presentation" tabindex="0"> <tr> <td>cell</td> </tr> </table> <table role="none" tabindex="0"> <tr> <td>cell</td> </tr> </table> </div> <div id="list_cnt"> <ul role="presentation"> <li>item</li> </ul> <ul role="none"> <li>item</li> </ul> </div> <div id="airaglobalprop_cnt"><label role="presentation" aria-owns="ariaowned">has aria-owns</label><label role="presentation" id="ariaowned">referred by aria-owns</label><label role="none" aria-owns="ariaowned2">has aria-owns</label><label role="none" id="ariaowned2">referred by aria-owns</label></div> </body> </html>