<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/js-test-pre.js"></script>
</head>
<body id="body">

<div role="garbage grid" id="grid1">
<div role="row"><div role="gridcell">item1</div></div>
</div>

<div role="   garbage      grid     " id="grid2">
<div role="row"><div role="gridcell">item1</div></div>
</div>

<div role="     grid     " id="grid3">
<div role="row"><div role="gridcell">item1</div></div>
</div>

<p id="description"></p>
<div id="console"></div>

<script>

    description("This tests if an element is using fallback role tokens, it will still become the 'correct' element which will expose the correct attributes.");

    if (window.accessibilityController) {

        for (var k = 1; k < 4; k++) {
           var grid = accessibilityController.accessibleElementById("grid" + k);
           var cell = grid.cellForColumnAndRow(0, 0);
           debug("cell: " + cell.role + ", " + cell.stringValue + "\n");
           if (accessibilityController.platformName != "atk") {
              var cellChild = cell.childAtIndex(0);
              debug("cellChild: " + cellChild.role + ", " + cellChild.stringValue + "\n");
          }
        }
    }
</script>

<script src="../resources/js-test-post.js"></script>
</body>
</html>
