Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test runs only with pattern: os == 'mac'
- Manifest: accessible/tests/browser/mac/browser.toml
/* 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";
/**
* Test aria-describedby
*/
addAccessibleTask(
`<div id="hint">This is a hint</div><button id="btn" aria-describedby="hint">Hello</button>`,
async (browser, accDoc) => {
let btn = getNativeInterface(accDoc, "btn");
let customContent = btn.getAttributeValue("AXCustomContent");
is(customContent[0].description, "This is a hint");
ok(!btn.getAttributeValue("AXHelp"), "No AXHelp expected");
},
{ chrome: true, topLevel: true }
);
/**
* Test aria-description
*/
addAccessibleTask(
`<button id="btn" aria-description="This is a hint too">Hello</button>`,
async (browser, accDoc) => {
let btn = getNativeInterface(accDoc, "btn");
let customContent = btn.getAttributeValue("AXCustomContent");
is(customContent[0].description, "This is a hint too");
ok(!btn.getAttributeValue("AXHelp"), "No AXHelp expected");
},
{ chrome: true, topLevel: true }
);
/**
* Test link title
*/
addAccessibleTask(
`<a href="#" id="lnk" title="This is a link title">Hello</button>`,
async (browser, accDoc) => {
let lnk = getNativeInterface(accDoc, "lnk");
is(lnk.getAttributeValue("AXHelp"), "This is a link title");
ok(!lnk.getAttributeValue("AXCustomContent"), "No custom content expected");
},
{ chrome: true, topLevel: true }
);
/**
* Verify fieldset and radio group with aria-describedby
* expose description via AXCustomContent, not AXHelp.
*/
addAccessibleTask(
`
<fieldset id="fieldset" aria-describedby="testHint">
<button>Button</button>
</fieldset>
<div id="radiogroup" role="radiogroup" aria-describedby="testHint">
<input type="radio" id="radio1" name="group" value="1">
<label for="radio1">Radio 1</label>
<input type="radio" id="radio2" name="group" value="2">
<label for="radio2">Radio 2</label>
</div>
<div id="testHint">
This is a hinto
</div>
`,
async (browser, accDoc) => {
let getHelp = id =>
getNativeInterface(accDoc, id).getAttributeValue("AXHelp");
let getCustomDescription = id =>
getNativeInterface(accDoc, id).getAttributeValue("AXCustomContent")[0]
.description;
is(
getHelp("fieldset"),
null,
"No AXHelp for fieldset with aria-describedby"
);
is(
getCustomDescription("fieldset"),
"This is a hinto",
"Custom description for fieldset"
);
is(
getHelp("radiogroup"),
null,
"No AXHelp for radiogroup with aria-describedby"
);
is(
getCustomDescription("radiogroup"),
"This is a hinto",
"Custom description for radiogroup"
);
}
);