<!doctype html>
<html>
  <head>
    <title>doc-endnote</title>
    <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_LIST_ITEM"
               ],
               [
                  "property",
                  "objectAttributes",
                  "contains",
                  "xml-roles:doc-endnote"
               ]
            ],
            "AXAPI" : [
               [
                  "property",
                  "AXRole",
                  "is",
                  "AXGroup"
               ],
               [
                  "property",
                  "AXSubrole",
                  "is",
                  "<nil>"
               ],
               [
                  "property",
                  "AXRoleDescription",
                  "is",
                  "group"
               ]
            ],
            "IAccessible2" : [
               [
                  "property",
                  "objectAttributes",
                  "contains",
                  "xml-roles:doc-endnote"
               ]
            ],
            "MSAA" : [
               [
                  "property",
                  "role",
                  "is",
                  "ROLE_SYSTEM_LISTITEM"
               ],
               [
                  "property",
                  "states",
                  "contains",
                  "STATE_SYSTEM_READONLY"
               ]
            ],
            "UIA" : [
               [
                  "property",
                  "ControlType",
                  "is",
                  "Text"
               ],
               [
                  "property",
                  "LocalizedControlType",
                  "is",
                  "endnote"
               ]
            ]
         },
         "title" : "step 1",
         "type" : "test"
      }
   ],
   "title" : "doc-endnote"
}

    ) ;
    </script>
  </head>
  <body>
  <p>This test examines the ARIA properties for doc-endnote.</p>
    <div role="doc-endnote" id="test">Text</div>

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

