<!doctype html>
<html>
  <head>
    <title>grid rowheader required true</title>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
    <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="/wai-aria/scripts/ATTAcomm.js"></script>
    <script>
    setup({explicit_timeout: true, explicit_done: true });

    var theTest = new ATTAcomm(
    {
   "steps" : [
      {
         "element" : "test",
         "test" : {
            "ATK" : [
               [
                  "property",
                  "role",
                  "is",
                  "ROLE_ROW_HEADER"
               ],
               [
                  "property",
                  "states",
                  "contains",
                  "STATE_REQUIRED"
               ]
            ],
            "AXAPI" : [
               [
                  "property",
                  "AXRole",
                  "is",
                  "AXCell"
               ],
               [
                  "property",
                  "AXRequired",
                  "is",
                  "true"
               ]
            ],
            "IAccessible2" : [
               [
                  "property",
                  "role",
                  "is",
                  "ROLE_SYSTEM_ROWHEADER"
               ],
               [
                  "property",
                  "states",
                  "contains",
                  "IA2_STATE_REQUIRED"
               ]
            ],
            "MSAA" : [
               [
                  "property",
                  "role",
                  "is",
                  "ROLE_SYSTEM_ROWHEADER"
               ]
            ],
            "UIA" : [
               [
                  "property",
                  "ControlType",
                  "is",
                  "HeaderItem"
               ],
               [
                  "property",
                  "IsrequiredForForm",
                  "is",
                  "true"
               ]
            ]
         },
         "title" : "step 1",
         "type" : "test"
      }
   ],
   "title" : "grid rowheader required true"
}

    ) ;
    </script>
  </head>
  <body>
  <p>This test examines the ARIA properties for grid rowheader required true.</p>
    <div role="grid">
    <div role="row">
       <div id="test" role="rowheader" aria-required="true">test cell</div>
    </div>
  </div>

  <div id="manualMode"></div>
  <div id="log"></div>
  <div id="ATTAmessages"></div>
  </body>
</html>
