/* 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/. */
let range = macDoc.getParameterizedAttributeValue( "AXTextMarkerRangeForUnorderedTextMarkers",
[
macDoc.getAttributeValue("AXStartTextMarker"),
macDoc.getAttributeValue("AXEndTextMarker"),
]
);
let attributedText = macDoc.getParameterizedAttributeValue( "AXAttributedStringForTextMarkerRange",
range
);
// Test different NSRange parameters for AXAttributedStringForRange
let worldLeaf = findAccessibleChildByID(accDoc, "a1").firstChild;
let wordStaticText = worldLeaf.nativeInterface.QueryInterface(
Ci.nsIAccessibleMacInterface
);
attributedText = wordStaticText.getParameterizedAttributeValue( "AXAttributedStringForRange",
NSRange(4, 1)
);
is(attributedText.length, 1, "Last character is in single attribute run");
is(attributedText[0].string, "d", "Last character matches");
attributedText = wordStaticText.getParameterizedAttributeValue( "AXAttributedStringForRange",
NSRange(5, 1)
);
is(attributedText.length, 0, "Range is past accessible bounds");
}
);
// Test misspelling in text area
addAccessibleTask(
`<textarea id="t">hello worlf, i love you</textarea>`,
async (browser, accDoc) => {
let textArea = getNativeInterface(accDoc, "t");
let spellDone = waitForEvent(EVENT_TEXT_ATTRIBUTE_CHANGED, "t");
textArea.setAttributeValue("AXFocused", true);
let attributedText = [];
// For some internal reason we get several text attribute change events // before the attributed text returned provides the misspelling attributes. while (true) {
await spellDone;
let range = textArea.getAttributeValue("AXVisibleCharacterRange");
attributedText = textArea.getParameterizedAttributeValue( "AXAttributedStringForRange",
NSRange(...range)
);
// Test getting a span of attributed text that includes an empty input element.
addAccessibleTask(
`hello <input id="input"> world<button></button>`,
async (browser, accDoc) => {
let macDoc = accDoc.nativeInterface.QueryInterface(
Ci.nsIAccessibleMacInterface
);
let range = macDoc.getParameterizedAttributeValue( "AXTextMarkerRangeForUnorderedTextMarkers",
[
macDoc.getAttributeValue("AXStartTextMarker"),
macDoc.getAttributeValue("AXEndTextMarker"),
]
);
let attributedText = macDoc.getParameterizedAttributeValue( "AXAttributedStringForTextMarkerRange",
range
);
let text = macDoc.getParameterizedAttributeValue( "AXStringForTextMarkerRange",
range
);
is(
attributedText.length,
4, "Should be 4 attribute runs for 2 texts, input and button"
);
is(attributedText[0].string, `hello `, "Attributed string is correct");
ok(
!attributedText[0].AXAttachment, "Regular string attributes run doesn't have attachment"
);
is(
attributedText[1].AXAttachment.getAttributeValue("AXRole"), "AXTextField", "Entry text attribute run has correct attachment"
);
is(
attributedText[3].AXAttachment.getAttributeValue("AXRole"), "AXButton", "Button text attribute run has correct attachment"
);
is(text, `hello world${kEmbedChar}`, "Unattributed string is correct");
}
);
// Test text fragment.
addAccessibleTask(
`This is a test.`,
async (browser, accDoc) => { const macDoc = accDoc.nativeInterface.QueryInterface(
Ci.nsIAccessibleMacInterface
); const range = macDoc.getParameterizedAttributeValue( "AXTextMarkerRangeForUnorderedTextMarkers",
[
macDoc.getAttributeValue("AXStartTextMarker"),
macDoc.getAttributeValue("AXEndTextMarker"),
]
); const attributedText = macDoc.getParameterizedAttributeValue( "AXAttributedStringForTextMarkerRange",
range
);
is(attributedText.length, 3);
ok(!attributedText[0].AXHighlight);
ok(attributedText[1].AXHighlight);
is(attributedText[1].string, "test");
ok(!attributedText[2].AXHighlight);
},
{ urlSuffix: "#:~:text=test" }
);
// Test the <mark> element.
addAccessibleTask(
`This is a <mark>test</mark>.`,
async function testMark(browser, accDoc) { const macDoc = accDoc.nativeInterface.QueryInterface(
Ci.nsIAccessibleMacInterface
); const range = macDoc.getParameterizedAttributeValue( "AXTextMarkerRangeForUnorderedTextMarkers",
[
macDoc.getAttributeValue("AXStartTextMarker"),
macDoc.getAttributeValue("AXEndTextMarker"),
]
); const attributedText = macDoc.getParameterizedAttributeValue( "AXAttributedStringForTextMarkerRange",
range
);
is(attributedText.length, 3);
ok(!attributedText[0].AXHighlight);
ok(attributedText[1].AXHighlight);
is(attributedText[1].string, "test");
ok(!attributedText[2].AXHighlight);
}
);
Messung V0.5
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet)
¤
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.