<!doctype html>
<html>
  <head>
    <title>slider only valuenow 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_SLIDER"
               ],
               [
                  "property",
                  "interfaces",
                  "contains",
                  "Value"
               ],
               [
                  "result",
                  "atk_value_get_minimum_value()",
                  "is",
                  "0"
               ],
               [
                  "result",
                  "atk_value_get_current_value()",
                  "is",
                  "20"
               ],
               [
                  "result",
                  "atk_value_get_maximum_value()",
                  "is",
                  "40"
               ]
            ],
            "AXAPI" : [
               [
                  "property",
                  "AXRole",
                  "is",
                  "AXSlider"
               ],
               [
                  "property",
                  "AXSubrole",
                  "is",
                  "<nil>"
               ],
               [
                  "property",
                  "AXRoleDescription",
                  "is",
                  "slider"
               ],
               [
                  "property",
                  "AXMinValue",
                  "is",
                  "0"
               ],
               [
                  "property",
                  "AXValue",
                  "is",
                  "20"
               ],
               [
                  "property",
                  "AXMaxValue",
                  "is",
                  "40"
               ]
            ],
            "IAccessible2" : [
               [
                  "property",
                  "role",
                  "is",
                  "ROLE_SYSTEM_SLIDER"
               ],
               [
                  "property",
                  "interfaces",
                  "contains",
                  "AccessibleValue"
               ],
               [
                  "property",
                  "minimumValue",
                  "is",
                  "0"
               ],
               [
                  "property",
                  "currentValue",
                  "is",
                  "20"
               ],
               [
                  "property",
                  "maximumValue",
                  "is",
                  "40"
               ]
            ],
            "MSAA" : [
               [
                  "property",
                  "role",
                  "is",
                  "ROLE_SYSTEM_SLIDER"
               ]
            ],
            "UIA" : [
               [
                  "property",
                  "ControlType",
                  "is",
                  "Slider"
               ],
               [
                  "property",
                  "controlPatterns",
                  "contains",
                  "RangeValue"
               ],
               [
                  "result",
                  "RangeValue.Minimum",
                  "is",
                  "0"
               ],
               [
                  "result",
                  "RangeValue.Value",
                  "is",
                  "20"
               ],
               [
                  "result",
                  "RangeValue.Maximum",
                  "is",
                  "40"
               ]
            ]
         },
         "title" : "step 1",
         "type" : "test"
      }
   ],
   "title" : "slider only valuenow unspecified"
}

    ) ;
    </script>
  </head>
  <body>
  <p>This test examines the ARIA properties for slider only valuenow unspecified.</p>
    <div role="slider" aria-valuemin="0" aria-valuemax="40" id="test">
  Go Fish
  </div>

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