<!doctype html>
<html>
  <head>
    <title>searchbox autocomplete unspecified</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_ENTRY"
               ],
               [
                  "property",
                  "states",
                  "doesNotContain",
                  "STATE_SUPPORTS_AUTOCOMPLETION"
               ]
            ],
            "AXAPI" : [
               [
                  "property",
                  "AXRole",
                  "is",
                  "AXTextField"
               ],
               [
                  "property",
                  "AXSubrole",
                  "is",
                  "AXSearchField"
               ],
               [
                  "property",
                  "AXRoleDescription",
                  "is",
                  "search text field"
               ],
               [
                  "property",
                  "autocomplete",
                  "is",
                  "<nil>"
               ]
            ],
            "IAccessible2" : [
               [
                  "property",
                  "role",
                  "is",
                  "ROLE_SYSTEM_TEXT"
               ],
               [
                  "property",
                  "objectAttributes",
                  "contains",
                  "text-input-type:search"
               ],
               [
                  "property",
                  "objectAttributes",
                  "contains",
                  "autocomplete:none"
               ]
            ],
            "MSAA" : [
               [
                  "property",
                  "role",
                  "is",
                  "ROLE_SYSTEM_TEXT"
               ]
            ],
            "UIA" : [
               [
                  "property",
                  "ControlType",
                  "is",
                  "Edit"
               ],
               [
                  "property",
                  "LocalizedControlType",
                  "is",
                  "search box"
               ],
               [
                  "property",
                  "autocomplete",
                  "is",
                  ""
               ]
            ]
         },
         "title" : "step 1",
         "type" : "test"
      }
   ],
   "title" : "searchbox autocomplete unspecified"
}

    ) ;
    </script>
  </head>
  <body>
  <p>This test examines the ARIA properties for searchbox autocomplete unspecified.</p>
    <div id="test" role="searchbox"></div>


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