/* 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/. */
addAccessibleTask( "mac/doc_tree.xhtml",
async (browser, accDoc) => { const tree = getNativeInterface(accDoc, "tree");
is(
tree.getAttributeValue("AXRole"), "AXOutline", "Found tree with role outline"
); // XUL trees store all rows as direct children of the outline, // so we should see nine here instead of just three: // (Groceries, Fruits, Veggies) const treeChildren = tree.getAttributeValue("AXChildren");
is(treeChildren.length, 9, "Found nine direct children");
const treeCols = tree.getAttributeValue("AXColumns");
is(treeCols.length, 1, "Found one column in tree");
// Here, we should get only outline rows, not the title const treeRows = tree.getAttributeValue("AXRows");
is(treeRows.length, 8, "Found 8 total rows");
is(
treeRows[0].getAttributeValue("AXDescription"), "Fruits", "Located correct first row, row has correct desc"
);
is(
treeRows[0].getAttributeValue("AXDisclosing"), 1, "Fruits is disclosing"
);
is(
treeRows[0].getAttributeValue("AXDisclosedByRow"), null, "Fruits is disclosed by outline"
);
is(
treeRows[0].getAttributeValue("AXDisclosureLevel"), 0, "Fruits is level zero"
);
let disclosedRows = treeRows[0].getAttributeValue("AXDisclosedRows");
is(disclosedRows.length, 2, "Fruits discloses two rows");
is(
disclosedRows[0].getAttributeValue("AXDescription"), "Apple", "fruits discloses apple"
);
is(
disclosedRows[1].getAttributeValue("AXDescription"), "Orange", "fruits discloses orange"
);
is(
treeRows[1].getAttributeValue("AXDescription"), "Apple", "Located correct second row, row has correct desc"
);
is(
treeRows[1].getAttributeValue("AXDisclosing"), 0, "Apple is not disclosing"
);
is(
treeRows[1]
.getAttributeValue("AXDisclosedByRow")
.getAttributeValue("AXDescription"), "Fruits", "Apple is disclosed by fruits"
);
is(
treeRows[1].getAttributeValue("AXDisclosureLevel"), 1, "Apple is level one"
);
is(
treeRows[1].getAttributeValue("AXDisclosedRows").length, 0, "Apple does not disclose rows"
);
is(
treeRows[2].getAttributeValue("AXDescription"), "Orange", "Located correct third row, row has correct desc"
);
is(
treeRows[2].getAttributeValue("AXDisclosing"), 0, "Orange is not disclosing"
);
is(
treeRows[2]
.getAttributeValue("AXDisclosedByRow")
.getAttributeValue("AXDescription"), "Fruits", "Orange is disclosed by fruits"
);
is(
treeRows[2].getAttributeValue("AXDisclosureLevel"), 1, "Orange is level one"
);
is(
treeRows[2].getAttributeValue("AXDisclosedRows").length, 0, "Orange does not disclose rows"
);
is(
treeRows[3].getAttributeValue("AXDescription"), "Veggies", "Located correct fourth row, row has correct desc"
);
is(
treeRows[3].getAttributeValue("AXDisclosing"), 1, "Veggies is disclosing"
);
is(
treeRows[3].getAttributeValue("AXDisclosedByRow"), null, "Veggies is disclosed by outline"
);
is(
treeRows[3].getAttributeValue("AXDisclosureLevel"), 0, "Veggies is level zero"
);
disclosedRows = treeRows[3].getAttributeValue("AXDisclosedRows");
is(disclosedRows.length, 2, "Veggies discloses two rows");
is(
disclosedRows[0].getAttributeValue("AXDescription"), "Green Veggies", "Veggies discloses green veggies"
);
is(
disclosedRows[1].getAttributeValue("AXDescription"), "Squash", "Veggies discloses squash"
);
is(
treeRows[4].getAttributeValue("AXDescription"), "Green Veggies", "Located correct fifth row, row has correct desc"
);
is(
treeRows[4].getAttributeValue("AXDisclosing"), 1, "Green veggies is disclosing"
);
is(
treeRows[4]
.getAttributeValue("AXDisclosedByRow")
.getAttributeValue("AXDescription"), "Veggies", "Green Veggies is disclosed by veggies"
);
is(
treeRows[4].getAttributeValue("AXDisclosureLevel"), 1, "Green veggies is level one"
);
disclosedRows = treeRows[4].getAttributeValue("AXDisclosedRows");
is(disclosedRows.length, 2, "Green veggies has two rows");
is(
disclosedRows[0].getAttributeValue("AXDescription"), "Spinach", "Green veggies discloses spinach"
);
is(
disclosedRows[1].getAttributeValue("AXDescription"), "Peas", "Green veggies discloses peas"
);
is(
treeRows[5].getAttributeValue("AXDescription"), "Spinach", "Located correct sixth row, row has correct desc"
);
is(
treeRows[5].getAttributeValue("AXDisclosing"), 0, "Spinach is not disclosing"
);
is(
treeRows[5]
.getAttributeValue("AXDisclosedByRow")
.getAttributeValue("AXDescription"), "Green Veggies", "Spinach is disclosed by green veggies"
);
is(
treeRows[5].getAttributeValue("AXDisclosureLevel"), 2, "Spinach is level two"
);
is(
treeRows[5].getAttributeValue("AXDisclosedRows").length, 0, "Spinach does not disclose rows"
);
is(
treeRows[6].getAttributeValue("AXDescription"), "Peas", "Located correct seventh row, row has correct desc"
);
is(
treeRows[6].getAttributeValue("AXDisclosing"), 0, "Peas is not disclosing"
);
is(
treeRows[6]
.getAttributeValue("AXDisclosedByRow")
.getAttributeValue("AXDescription"), "Green Veggies", "Peas is disclosed by green veggies"
);
is(
treeRows[6].getAttributeValue("AXDisclosureLevel"), 2, "Peas is level two"
);
is(
treeRows[6].getAttributeValue("AXDisclosedRows").length, 0, "Peas does not disclose rows"
);
is(
treeRows[7].getAttributeValue("AXDescription"), "Squash", "Located correct eighth row, row has correct desc"
);
is(
treeRows[7].getAttributeValue("AXDisclosing"), 0, "Squash is not disclosing"
);
is(
treeRows[7]
.getAttributeValue("AXDisclosedByRow")
.getAttributeValue("AXDescription"), "Veggies", "Squash is disclosed by veggies"
);
is(
treeRows[7].getAttributeValue("AXDisclosureLevel"), 1, "Squash is level one"
);
is(
treeRows[7].getAttributeValue("AXDisclosedRows").length, 0, "Squash does not disclose rows"
);
},
{ topLevel: false, chrome: true }
);
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-06)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.