fune/accessible/tests/browser/atk/browser_role.js
James Teh a8d36840cb Bug 1862534: Groundwork for ATK accessibility API tests. r=eeejay,jmaher
This adds setup code and utility functions for ATK to the Python environment.
I also needed to prevent front-end accessibility checks (AccessibilityUtils) from force disabling accessibility for a11y engine tests.
Although the tests re-enabled it anyway, this seems to break AT-SPI's interaction with our ApplicationAccessible.
Disabling it really doesn't make sense in this case anyway.
This patch includes a simple role test to show all of this working.

Differential Revision: https://phabricator.services.mozilla.com/D192911
2023-11-21 02:11:49 +00:00

33 lines
889 B
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";
const ATSPI_ROLE_DOCUMENT_WEB = 95;
const ATSPI_ROLE_PARAGRAPH = 73;
addAccessibleTask(
`
<p id="p">p</p>
`,
async function (browser, docAcc) {
let role = await runPython(`
global doc
doc = getDoc()
return doc.getRole()
`);
is(role, ATSPI_ROLE_DOCUMENT_WEB, "doc has correct ATSPI role");
ok(
await runPython(`
global p
p = findByDomId(doc, "p")
return p == doc[0]
`),
"doc's first child is p"
);
role = await runPython(`p.getRole()`);
is(role, ATSPI_ROLE_PARAGRAPH, "p has correct ATSPI role");
},
{ chrome: true, topLevel: true, iframe: true, remoteIframe: true }
);