<!DOCTYPE HTML>
<script src="../resources/gc.js"></script>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<!--
Accessibility Object Model
Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
Spec: https://wicg.github.io/aom/spec/
-->
<div id="no-int-props" role="button">Click me!</div>
<div id="list" role="list">
<div id="listitem" role="listitem" aria-setSize="10" aria-posinset="3"></div>
</div>
<script>
test(function(t) {
assert_true(internals.runtimeFlags.accessibilityObjectModelEnabled);
}, "Make sure that Accessibility Object Model is enabled");
promise_test(async function(test) {
var element = document.getElementById("no-int-props");
computedAXNode = await window.getComputedAccessibleNode(element);
assert_equals(computedAXNode.role, "button");
assert_equals(computedAXNode.colCount, null);
assert_equals(computedAXNode.colIndex, null);
assert_equals(computedAXNode.colSpan, null);
assert_equals(computedAXNode.level, null);
assert_equals(computedAXNode.posInSet, null);
assert_equals(computedAXNode.rowCount, null);
assert_equals(computedAXNode.rowIndex, null);
assert_equals(computedAXNode.rowSpan, null);
assert_equals(computedAXNode.setSize, null);
}, "computedAccessibleNode has nullable int properties.");
promise_test(async function(test) {
var listitem = document.getElementById("listitem");
computedAXNode = await window.getComputedAccessibleNode(listitem);
assert_equals(computedAXNode.posInSet, 3);
assert_equals(computedAXNode.setSize, 10);
}, "computedAccessibleNode.setSize and computedAccessibleNode.posInSet");
</script>
<div id="first-heading" role="heading" aria-level="1">Satu</div>
<div id="second-heading" role="heading" aria-level="2">Dua</div>
<div id="third-heading" role="heading" aria-level="2">Tiga</div>
<script>
promise_test(async function(test) {
var heading1 = document.getElementById("first-heading");
var heading2 = document.getElementById("second-heading");
var heading3 = document.getElementById("third-heading");
computedAXNode1 = await window.getComputedAccessibleNode(heading1);
computedAXNode2 = await window.getComputedAccessibleNode(heading2);
computedAXNode3 = await window.getComputedAccessibleNode(heading3);
assert_equals(computedAXNode1.level, 1);
assert_equals(computedAXNode2.level, 2);
assert_equals(computedAXNode3.level, 2);
}, "computedAccessibleNode.level");
// TODO(meredithl): add in tests for (col | row) * (index | index | span)
</script>