<script src="../resources/js-test.js"></script>
<script src="../resources/accessibility-helper.js"></script>
<ul role="radiogroup">
    <li role="radio">Explicit Item 1</li>
    <li role="radio">Explicit Item 2</li>
    <li role="radio">Explicit Item 3</li>
</ul>
<ol>
    <li>Implicit Item 1</li>
    <li>Implicit Item 2</li>
    <li>Implicit Item 3</li>
</ol>
<div role="group">
<select multiple role="group">
    <option role="textbox">Explicit Option 1</option>
    <option role="textbox">Explicit Option 2</option>
</select>
<select multiple>
    <option>Implicit Option 1</option>
    <option>Implicit Option 2</option>
</select>
<select role="group">
  <option role="textbox">Explicit dropdown 1</option>
  <option role="textbox">Explicit dropdown 2</option>
</select>
<select>
  <option>Implicit dropdown 1</option>
  <option>Implicit dropdown 2</option>
</select>
<progress value="22" max="100" role="status"></progress>
<progress value="22" max="100"></progress>
<input type="range" name="points" min="0" max="10" role="status">
<input type="range" name="points" min="0" max="10">
</div>
<p>End of test</p>
<p id="description"></p>
<div id="console"></div>
<script>
description("This tests that the role attribute is not missed.");

if (window.testRunner)
    testRunner.dumpAsText();
if (window.accessibilityController)
    buildAccessibilityTree(accessibilityController.focusedElement, 0, 1);
</script>
