summaryrefslogtreecommitdiff
path: root/chromium/ui/accessibility/platform/ichromeaccessible.idl
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/accessibility/platform/ichromeaccessible.idl')
-rw-r--r--chromium/ui/accessibility/platform/ichromeaccessible.idl64
1 files changed, 64 insertions, 0 deletions
diff --git a/chromium/ui/accessibility/platform/ichromeaccessible.idl b/chromium/ui/accessibility/platform/ichromeaccessible.idl
new file mode 100644
index 00000000000..f3567d1ba74
--- /dev/null
+++ b/chromium/ui/accessibility/platform/ichromeaccessible.idl
@@ -0,0 +1,64 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import "objidl.idl";
+import "oaidl.idl";
+
+const long DISPID_CHROME_BULK_FETCH = -1600;
+const long DISPID_CHROME_ON_BULK_FETCH_RESULT = -1601;
+const long DISPID_CHROME_HIT_TEST = -1602;
+const long DISPID_CHROME_ON_HIT_TEST_RESULT = -1603;
+
+// Interface to be implemented by the client that calls IChromeAccessible.
+// For every method in IChromeAccessible, there's a corresponding response
+// method in IChromeAccessibleDelegate.
+[object, uuid(0e3edc14-79f4-413f-b854-d3b6860d74a2), pointer_default(unique)]
+interface IChromeAccessibleDelegate : IUnknown
+{
+ [propput, id(DISPID_CHROME_ON_BULK_FETCH_RESULT)] HRESULT bulkFetchResult(
+ [in] LONG requestID,
+ [in] BSTR resultJson
+ );
+
+ [propput, id(DISPID_CHROME_ON_HIT_TEST_RESULT)] HRESULT hitTestResult(
+ [in] LONG requestID,
+ [in] IUnknown* result
+ );
+};
+
+// Chrome-specific interface exposed on every IAccessible object.
+//
+// This interface is EXPERIMENTAL and only available behind a flag.
+// Run Chrome with --enable-features=IChromeAccessible to use it.
+//
+// Do not depend on this interface remaining stable! It's only designed
+// for prototyping ideas, and anything that's stabilized should move to
+// an open standard API.
+[object, uuid(6175bd95-3b2e-4ebc-bc51-9cab782bec92), pointer_default(unique)]
+interface IChromeAccessible : IUnknown
+{
+ // TODO(crbug.com/1083834): Fully document this interface.
+ // Fetch multiple accessibility properties of one or more accessibility
+ // nodes as JSON. This method is asynchronous; the result is returned
+ // by calling put_bulkFetchResult on |delegate|. The client can pass any
+ // valid LONG as requestID and the same value will be passed to
+ // put_bulkFetchResult to enable matching of requests and responses.
+ [propget, id(DISPID_CHROME_BULK_FETCH)] HRESULT bulkFetch(
+ [in] BSTR inputJson,
+ [in] LONG requestID,
+ [in] IChromeAccessibleDelegate* delegate
+ );
+
+ // Hit-test the given pixel in screen physical pixel coordinates.
+ // This method is asynchronous; the result is returned
+ // by calling put_hitTestResult on |delegate|. The client can pass any
+ // valid LONG as requestID and the same value will be passed to
+ // put_hitTestResult to enable matching of requests and responses.
+ [propget, id(DISPID_CHROME_HIT_TEST)] HRESULT hitTest(
+ [in] LONG screenPhysicalPixelX,
+ [in] LONG screenPhysicalPixelY,
+ [in] LONG requestID,
+ [in] IChromeAccessibleDelegate* delegate
+ );
+};