diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2013-11-18 23:37:47 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2013-11-19 10:02:28 +0000 |
commit | ca99a47bf383faf265dd65d3e70a6f43096de76d (patch) | |
tree | 1a0c65bb313037684fdf9a20fe1af453dc8049eb /winaccessibility | |
parent | 448727e598ca0c35ee9cd6f2c25a847c8147943b (diff) |
uia: add some possibly helpful overview documentation.
Change-Id: I4163b587d82a0fd6403fdd124808ab895b4ed460
Diffstat (limited to 'winaccessibility')
-rw-r--r-- | winaccessibility/README | 47 |
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/ |