<!DOCTYPE HTML>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<select id="listbox" size="3">
<option id="item0">Alicia</option>
<option id="item1">Peter</option>
<option id="item2">Kalinda</option>
<option id="item3" disabled>Frank</option>
</select>
<script>
async_test(function(t)
{
var listbox = document.getElementById("listbox");
listbox.selectedIndex = 0;
listbox.focus();
accessibilityController.accessibleElementById('dummy');
var gotCheckedStateChanged = false;
var gotSelectedChildrenChanged = false;
window.setTimeout(function() {
var result = "";
accessibilityController.addNotificationListener(t.step_func(function listener(element, notification) {
if (notification == "CheckedStateChanged") {
assert_equals(element.role, "AXRole: AXListBoxOption");
gotCheckedStateChanged = true;
}
if (notification == "SelectedChildrenChanged") {
assert_equals(element.role, "AXRole: AXListBox");
gotSelectedChildrenChanged = true;
}
if (gotCheckedStateChanged && gotSelectedChildrenChanged) {
t.done();
}
}));
listbox.selectedIndex = 1;
}, 0);
}, "menu list fires correct events when active index changes.");
function axElementById(id) {
return accessibilityController.accessibleElementById(id);
}
test(function(t) {
var axOption = axElementById("item2");
assert_equals(axOption.isFocusable, true);
}, "Listbox option is focusable");
test(function(t) {
var axOption = axElementById("item3");
assert_equals(axOption.isFocusable, false);
}, "Disabled listbox option is not focusable");
</script>