gecko-dev/devtools/server/tests/browser/browser_accessibility_node_audit.js

53 lines
1.8 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
/**
* Checks functionality around audit for the AccessibleActor. This includes
* tests for the return value when calling the audit method, payload of the
* corresponding event as well as the AccesibleFront state being up to date.
*/
async function checkAudit(a11yWalker, node, expected) {
const front = await a11yWalker.getAccessibleFor(node);
const [ textLeafNode ] = await front.children();
const onAudited = textLeafNode.once("audited");
const audit = await textLeafNode.audit();
const auditFromEvent = await onAudited;
Assert.deepEqual(audit, expected, "Audit results are correct.");
Assert.deepEqual(textLeafNode.checks, expected, "Checks are correct.");
Assert.deepEqual(auditFromEvent, expected, "Audit results from event are correct.");
}
add_task(async function() {
const {target, walker, accessibility} =
await initAccessibilityFrontForUrl(MAIN_DOMAIN + "doc_accessibility_infobar.html");
const a11yWalker = await accessibility.getWalker();
await accessibility.enable();
const headerNode = await walker.querySelector(walker.rootNode, "#h1");
await checkAudit(a11yWalker, headerNode, {
"CONTRAST": {
"value": 21,
"color": [0, 0, 0, 1],
"backgroundColor": [255, 255, 255, 1],
"isLargeText": true,
score: "AAA",
},
});
const paragraphNode = await walker.querySelector(walker.rootNode, "#p");
await checkAudit(a11yWalker, paragraphNode, {
"CONTRAST": null,
});
await accessibility.disable();
await waitForA11yShutdown();
await target.destroy();
gBrowser.removeCurrentTab();
});