73 lines
2.5 KiB
HTML
73 lines
2.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body id="body">
|
|
|
|
<div id="content" contenteditable tabindex="0">
|
|
hello<br>
|
|
<b>world</b>
|
|
</div>
|
|
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
|
|
<script>
|
|
|
|
description("This tests that a contenteditable region behaves as a proper AXTextArea.");
|
|
|
|
var notification = 0;
|
|
var textArea = 0;
|
|
var notificationType = "AXValueChanged";
|
|
function callback(notification) {
|
|
if (notification == notificationType) {
|
|
textArea.removeNotificationListener();
|
|
debug("Updated value: " + textArea.stringValue);
|
|
document.getElementById("content").style.visibility = "hidden";
|
|
finishJSTest();
|
|
}
|
|
}
|
|
|
|
if (window.accessibilityController) {
|
|
window.jsTestIsAsync = true;
|
|
|
|
// In ATK, value-changed notifications are made for widgets which implement
|
|
// the AtkValue interface (sliders, progress bars, etc.).
|
|
if (accessibilityController.platformName == "atk")
|
|
notificationType = "AXTextChanged";
|
|
|
|
textArea = accessibilityController.accessibleElementById("content");
|
|
textArea.addNotificationListener(callback);
|
|
|
|
debug("Role: " + textArea.role);
|
|
debug("Value: " + textArea.stringValue);
|
|
debug("Value (writable): " + textArea.isAttributeSettable("AXValue"));
|
|
debug("String with range: " + textArea.stringForRange(1, 9));
|
|
debug("Attributed string with range: " + textArea.attributedStringForRange(1, 9));
|
|
debug("Line for index(0): " + textArea.lineForIndex(0));
|
|
debug("Line for index(7): " + textArea.lineForIndex(7));
|
|
debug("Range for line(0): " + textArea.rangeForLine(0));
|
|
debug("Range for line(1): " + textArea.rangeForLine(1));
|
|
debug("Bounds for range: " + textArea.boundsForRange(3, 5));
|
|
|
|
var range = document.createRange();
|
|
range.setStart(document.getElementById("content").firstChild, 0);
|
|
range.setEnd(document.getElementById("content").firstChild, 4);
|
|
var sel = window.getSelection();
|
|
sel.addRange(range);
|
|
|
|
debug("Selected text range: " + textArea.selectedTextRange);
|
|
debug("Selected text: " + textArea.stringAttributeValue("AXSelectedText"));
|
|
|
|
// Send a value cahnge.
|
|
document.getElementById("content").focus();
|
|
eventSender.keyDown('q', []);
|
|
}
|
|
|
|
</script>
|
|
|
|
<script src="../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|