browser_minimumRole.js (2323B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 "use strict"; 6 7 /* import-globals-from ../../mochitest/role.js */ 8 loadScripts({ name: "role.js", dir: MOCHITESTS_DIR }); 9 10 /** 11 * Test that popover gets a minimum role. 12 */ 13 addAccessibleTask( 14 ` 15 <div id="generic" popover>generic</div> 16 <div id="alert" role="alert" popover>alert</div> 17 <blockquote id="blockquote" popover>blockquote</div> 18 `, 19 async function testPopover(browser, docAcc) { 20 let generic = findAccessibleChildByID(docAcc, "generic"); 21 ok(!generic, "generic doesn't have an Accessible"); 22 info("Showing generic"); 23 let shown = waitForEvent(EVENT_SHOW, "generic"); 24 await invokeContentTask(browser, [], () => { 25 content.document.getElementById("generic").showPopover(); 26 }); 27 generic = (await shown).accessible; 28 testRole(generic, ROLE_GROUPING, "generic has minimum role group"); 29 info("Setting popover to null on generic"); 30 // Setting popover to null causes the Accessible to be recreated. 31 shown = waitForEvent(EVENT_SHOW, "generic"); 32 await invokeContentTask(browser, [], () => { 33 content.document.getElementById("generic").popover = null; 34 }); 35 generic = (await shown).accessible; 36 testRole(generic, ROLE_SECTION, "generic has generic role"); 37 38 let alert = findAccessibleChildByID(docAcc, "alert"); 39 ok(!alert, "alert doesn't have an Accessible"); 40 info("Showing alert"); 41 shown = waitForEvent(EVENT_SHOW, "alert"); 42 await invokeContentTask(browser, [], () => { 43 content.document.getElementById("alert").showPopover(); 44 }); 45 alert = (await shown).accessible; 46 testRole(alert, ROLE_ALERT, "alert has role alert"); 47 48 let blockquote = findAccessibleChildByID(docAcc, "blockquote"); 49 ok(!blockquote, "blockquote doesn't have an Accessible"); 50 info("Showing blockquote"); 51 shown = waitForEvent(EVENT_SHOW, "blockquote"); 52 await invokeContentTask(browser, [], () => { 53 content.document.getElementById("blockquote").showPopover(); 54 }); 55 blockquote = (await shown).accessible; 56 testRole(blockquote, ROLE_BLOCKQUOTE, "blockquote has role blockquote"); 57 }, 58 { chrome: true, topLevel: true } 59 );