/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; // Check that the accessibility panel works as expected when using the iframe picker const TEST_URI = `data:text/html, TopLevel

Top level header

This is a paragraph.

`; add_task(async () => { const env = await addTestTab(TEST_URI); const { doc, toolbox, win } = env; await checkTree(env, [ { role: "document", name: `"TopLevel"`, }, ]); info("Select the iframe in the iframe picker"); // Get the iframe picker items const menuList = toolbox.doc.getElementById("toolbox-frame-menu"); const frames = Array.from(menuList.querySelectorAll(".command")); let onInitialized = win.once(win.EVENTS.INITIALIZED); frames[1].click(); await onInitialized; await checkTree(env, [ { role: "document", name: `"iframe"`, }, ]); info( "Run a constrast audit to check only issues from selected iframe tree are displayed" ); const CONTRAST_MENU_ITEM_INDEX = 2; const onUpdated = win.once(win.EVENTS.ACCESSIBILITY_INSPECTOR_UPDATED); await toggleMenuItem( doc, toolbox.doc, TREE_FILTERS_MENU_ID, CONTRAST_MENU_ITEM_INDEX ); await onUpdated; // wait until the tree is filtered (i.e. the audit is done and only nodes with issues // should be displayed) await waitFor(() => doc.querySelector(".treeTable.filtered")); await checkTree(env, [ { role: "text leaf", name: `"Iframe header"contrast`, badges: ["contrast"], level: 1, }, { role: "text leaf", name: `"Nested Iframe header"contrast`, badges: ["contrast"], level: 1, }, ]); info("Select the top level document back"); onInitialized = win.once(win.EVENTS.INITIALIZED); frames[0].click(); await onInitialized; await checkTree(env, [ { role: "document", name: `"TopLevel"`, }, ]); await closeTabToolboxAccessibility(env.tab); }); function checkTree(env, tree) { return runA11yPanelTests( [ { expected: { tree, }, }, ], env ); }