summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2013-11-18 23:37:47 +0000
committerMichael Meeks <michael.meeks@collabora.com>2013-11-19 00:01:36 +0000
commit3012193529b10b7540542086d18c483582b8bb31 (patch)
tree7b254db4493fdea964b3968a4dc7c02a7084159b
parenta78df2821277fc1e3a2929b7da960817cece17be (diff)
uia: add some possibly helpful overview documentation.feature/ia2.5
Change-Id: I4163b587d82a0fd6403fdd124808ab895b4ed460
-rw-r--r--winaccessibility/README47
1 files changed, 47 insertions, 0 deletions
diff --git a/winaccessibility/README b/winaccessibility/README
new file mode 100644
index 000000000000..45ec5506283b
--- /dev/null
+++ b/winaccessibility/README
@@ -0,0 +1,47 @@
+Windows Accessibility Bridge.
+
+This code provides a bridge between our internal Accessibility
+interfaces (implemented on all visible 'things' in the suite: eg.
+windows, buttons, entry boxes etc.) - and the Windows MSAA /
+IAccessible2 COM interfaces that are familiar to windows users and
+Accessible Technologies (ATs) such as the NVDA screen reader.
+
+The code breaks into three bits:
+
+source/service/
+ + the UNO service providing the accessibility bridge.
+ It essentially listens to events from the LibreOffice
+ core and creates and synchronises COM peers for our
+ internal accessibilty objects when events arrive.
+
+source/UAccCom/
+ + implementations of the MSAA / IAccessible2 interfaces
+ to provide native peers for the accessbility code.
+
+source/UAccCOMIDL/
+ + COM Interface Definition Language (IDL) for UAccCom.
+
+Here is one way of visualising the code / control flow
+
+VCL <-> UNO toolkit <-> UNO a11y <-> win a11y <-> COM / IAccessible2
+vcl/ <-> toolkit/ <-> accessibility/ <-> winaccessibility/ <-> UAccCom/
+
+
+Debugging / playing with winaccessibility
+
+First you need to ensure that UAccCOM.dll is registered, if this did
+not happen at install time use:
+
+regsvr32 /absolute/path/to/program/UAccCOM.dll
+
+Next you need to enable 'experiemental mode' in Tools->Options. After
+that NVDA should work as expected. In order to use 'accprobe' to debug
+it is necessary to override the check for whether an AT (like NVDA) is
+running; to do that use:
+
+SAL_FORCE_IACCESSIBLE2=1 soffice.exe -writer
+
+Then you can use accprobe to introspect the accessibility hierarchy
+remotely, checkout:
+
+http://accessibility.linuxfoundation.org/a11yweb/util/accprobe/