<!doctype html>
<html>
  <head>
    <title>aria-dropeffect=move</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",
                  "objectAttributes",
                  "contains",
                  "dropeffect:move"
               ]
            ],
            "AXAPI" : [
               [
                  "property",
                  "AXDropEffects",
                  "is",
                  "[move]"
               ]
            ],
            "IAccessible2" : [
               [
                  "property",
                  "objectAttributes",
                  "contains",
                  "dropeffect:move"
               ]
            ],
            "UIA" : [
               [
                  "property",
                  "AriaProperties.dropeffect",
                  "is",
                  "move"
               ]
            ]
         },
         "title" : "step 1",
         "type" : "test"
      }
   ],
   "title" : "aria-dropeffect=move"
}

    ) ;
    </script>
  </head>
  <body>
  <p>This test examines the ARIA properties for aria-dropeffect=move.</p>
    <div role='group' id='test' aria-dropeffect='move'>content</div>

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