Bug 53474 - ACCESSIBILITY: Java Accessibility Bridge based Accessibility does not work on Windows for ALL LibreOffice 3.6.x releases thusfar
Summary: ACCESSIBILITY: Java Accessibility Bridge based Accessibility does not work on...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
3.6.0.4 release
Hardware: All Windows (All)
: high major
Assignee: Stephan Bergmann
URL: http://www.oracle.com/technetwork/jav...
Whiteboard: target:3.7.0 target:3.6.3
Keywords:
Depends on:
Blocks: a11y-Windows mab3.6
  Show dependency treegraph
 
Reported: 2012-08-14 03:47 UTC by Masataka Shinke
Modified: 2013-06-25 16:43 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Masataka Shinke 2012-08-14 03:47:23 UTC
operating environment

LibO3.6
OS:WinXP Home Edition SP3,Windows Vista,Windos7
JRE:Java SE Runtime Environment 6 Update 33(i586)
JAB:Java Access Bridge2.0.2
Screen reader:NVDA
Comment 1 V Stuart Foote 2012-10-14 22:47:11 UTC
ALL LibreOffice builds from at least 3.6.0.4 do not have a correctly functioning Java Access Bridge -- UNO Accessibility role mapping.

Using the Oracle accessibility test programs JavaFerret-32.exe and JavaMonkey-32.exe (available with the 

Believe that for the Windows builds from LibO 3.6.0.x onward, the Java Accessibility Bridge modules ( Jar_accessibility, Jar_uno_accessbridge, and
Library_java_uno_accessbridge ) have not been making it into the WNT build.

Is the ifneq ($(*SOLAR_JAVA),) logic--Ref  http://opengrok.libreoffice.org/xref/core/accessibility/Module_accessibility.mk code correct for the WNT case builds?
Comment 2 V Stuart Foote 2012-10-14 23:15:53 UTC
Test case:

Obtain the Oracle accessibility test programs JavaFerret-32.exe and JavaMonkey-32.exe (bundled with the Java Access Bridge 2.0.2 package from Oracle) and the SwingSet2.jar demonstration program ( http://java.net/projects/ojt-accessibility/downloads/download/Demos/SwingSet2.jar ).

Install a Java Runtime Environment, either JRE 1.6b35 or JRE 1.7b7 including environment variable entries in PATH and optionally establishment of a JAVA_HOME variable. 

Then configure a fully functional Java Accessibility environment. Java Access Bridge v2.0.3, bundled with JRE 1.7u6 or newer--or the older v2.0.2 build available as a package download from Oracle (or use the JWin installer script by J. Mazrui -- http://empowermentzone.com/JWin.htm ).

Test Java Access Bridge function using JavaFerret-32 and JavaMonkey-32 by running the SwingSet2.jar program -- e.g. enter "java -jar SwingSet2.jar" at a command prompt.  Running  File -> Refresh Tree command in JavaMonkey will expose that components of the SwingSet2 demo program have Java Accessibility roles. JavaFerret allows selection of the types of Java and Java Accessibility actions and roles that will be exposed in JavaFerret.

The JavaMonkey and JavaFerret testing of LibreOffice for all builds from 3.4.5.2 to the latest 3.5.7rc2,with the exception of 3.5.0rc2 exposes all defined Java Access Bridge -- UNO Accessibility role mappings.

Unfortunately, LibreOffice builds from 3.6.0.4 to 3.6.3.rc1 do not expose the Accessibility roles.

Reporting I've done that 3.6.x Accessibility is functional has been in error! Rather that was a reflection of the NVDA screen readers ability to deal with the malformed non-accessible LibreOffice screen text in a Flat mode.

In reality there is NO Asssistive Technology support for Windows builds in the 3.6.x series.
Comment 3 m_a_riosv 2012-10-17 03:23:06 UTC
I guess is knew, but only as confirmation.

In 3.6 and after, running again the install (without uninstall) and selecting modify, or in the personalized first install, in the third window there is an option to select install: Support assistive technology tools.

Also there is an option about accessibility in Tools/Option/LibreOffice/Accessibility/Support assistive technology tools
Comment 4 V Stuart Foote 2012-10-17 04:57:52 UTC
(In reply to comment #3)
> In 3.6 and after, running again the install (without uninstall) and
> selecting modify, or in the personalized first install, in the third window
> there is an option to select install: Support assistive technology tools.
> 
Yes that was a requested installation feature that folks were excited about, unfortunately while it checks the box--and updates the registrymodifications.xcu in the user profiles it is not really functional yet in LibO 3.6 since the Java Accessibility role mappings are not exposed to Assistive Technologies.
Comment 6 V Stuart Foote 2012-10-21 03:58:16 UTC
Anyone else comfortable with the JRE - Java Access Bridge and Widnows screen readers? 

The TinderBox Win-x86@6 (MSVC) builds are again running to completion. Current daily is 2012-10-20_14.21.35, but I can not get past the MS Installer Error 1935 of fdo#55290 to test David's commit of 15 Oct.

To test David's patch, need to run JRE - Java Access Bridge and the Oracle JavaMonkey-32 test utility against a LibreOffice LODev 3.7 Master Windows build to determine if Java accessibility roles are again being exposed via the access bridge from native UNO roles. Or if another tact is needed.

Stuart
Comment 7 Michael Meeks 2012-10-22 13:00:53 UTC
Pushed to -3-6 - hopefully that makes it easier to get a test build :-)

Sorry for the problem; I'll mark fixed for now - but -please- do re-open / mark verified as/when you can test it.

Wrt. deeper a11y support - we're still waiting for IBM to ensure that their winaccessibility/ code has ALv2 license headers in the Symphony code-dump.
Comment 8 V Stuart Foote 2012-10-22 17:43:43 UTC
OK, I'm watching the TinderBox Windows builds of MASTER and 3.6 to see which first completes an installer to test with (although I'll run through test against both).

>Wrt. deeper a11y support - we're still waiting for IBM to ensure that their >winaccessibility/ code has ALv2 license headers in the Symphony code-dump.

So does that mean that a license statement beyond https://svn.apache.org/repos/asf/incubator/ooo/symphony/trunk/main/LICENSE is going have to be prepended to each item of IBM contributed source code before we'll touch it?
Comment 9 V Stuart Foote 2012-10-23 15:53:09 UTC
Unfortunately, todays TB-9 build of LOdev 3.6 did not improve things.

libreoffice-3-6~2012-10-22_23.52.55_LibO-Dev_3.6.4.0_Win_x86_install_en-US.msi
Build Info
tinderbox: administrator: fridrich.strba@bluewin.ch
tinderbox: buildname: Win-x86_9-Voreppe
tinderbox: tree: libreoffice-3-6
tinderbox: pull time 2012-10-22 23:52:55

Assuming the WindowsAccessBridgeAdapter.cxx of http://opengrok.libreoffice.org/xref/core/accessibility/bridge/source/java/WindowsAccessBridgeAdapter.cxx?r=d475a059fc9f07f4d896bd67649c7d800fc66f6f actually made it into the build.

Not clear to me how I would verify the commit had been incorporated into the 3.6 build, but I'll assume it did.

And if it is, I think the Java Accessibility issues are still not resolved.

Reopening accordingly.

Stuart
Comment 10 Stephan Bergmann 2012-10-24 09:12:38 UTC
(In reply to comment #9)
> Not clear to me how I would verify the commit had been incorporated into the
> 3.6 build, but I'll assume it did.

...and <http://lists.freedesktop.org/archives/libreoffice-qa/2012-October/002867.html> "[Libreoffice-qa] QA work with Windows Tinderbox builds -- need help" backs that assumption.

> And if it is, I think the Java Accessibility issues are still not resolved.

...which would match my fear that "I'm not sure the fix actually helps on Windows, where JNIEXPORT likely expands to the same as SAL_DLLPUBLIC_EXPORT 
(namely __declspec(dllexport)), anyway" at <http://lists.freedesktop.org/archives/libreoffice/2012-October/040061.html> "[REVIEW-3-6-3 2/3] Windows Java Accessibility fix ..."
Comment 11 David Tardon 2012-10-24 09:43:45 UTC
Because I do not have Windows, I am abandoning the ship :-)
Comment 12 Joanmarie Diggs 2012-10-24 11:18:01 UTC
(In reply to comment #11)
> Because I do not have Windows, I am abandoning the ship :-)

Same here. :-)
Comment 13 Not Assigned 2012-10-25 12:04:16 UTC
Stephan Bergmann committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=5ba1694606577f9cda2b773d82ae765118bfc9e1

fdo#53474: Fix Windows Java Accessibility Bridge



The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 14 Stephan Bergmann 2012-10-25 12:41:37 UTC
(In reply to comment #13)
> Stephan Bergmann committed a patch related to this issue.
> It has been pushed to "master":
> 
> http://cgit.freedesktop.org/libreoffice/core/commit/
> ?id=5ba1694606577f9cda2b773d82ae765118bfc9e1
> 
> fdo#53474: Fix Windows Java Accessibility Bridge

See the commit message for details.  With that fix in place I could verify that at least JavaMonkey starts to report information again.

Requested backports to libreoffice-3-6 towards LO 3.6.4 (<https://gerrit.libreoffice.org/#/c/906/>) and libreoffice-3-6-3 (<https://gerrit.libreoffice.org/#/c/907/>), in case we do another LO 3.6.3rc3.
Comment 15 Not Assigned 2012-10-25 13:57:37 UTC
Stephan Bergmann committed a patch related to this issue.
It has been pushed to "libreoffice-3-6":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=44653d129f909a026b91fa4df6e1bd931638d620&g=libreoffice-3-6

fdo#53474: Fix Windows Java Accessibility Bridge


It will be available in LibreOffice 3.6.4.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 16 V Stuart Foote 2012-10-25 21:11:46 UTC
(In reply to comment #15)

Stephen,

commit -- 44653d129f909a026b91fa4df6e1bd931638d620 made it into the TinderBox 9 -Voreppe build of LOdev 3.6 daily

Build Info
tinderbox: administrator: fridrich.strba@bluewin.ch
tinderbox: buildname: Win-x86_9-Voreppe
tinderbox: tree: libreoffice-3-6
tinderbox: pull time 2012-10-25 13:50:02
tinderbox: git sha1s
core:44653d129f909a026b91fa4df6e1bd931638d620
binfilter:842850b911ee08be13f1090bf9937226828ada0a
dictionaries:df5160fa77c796dc9e7fa386a847859b7e6b6a9d
help:ff79af3a761f3034cf4280d5662d5c28854e0613
translations:3a7702b7f3f0a8127c2a123189a1e4e021ca6ebf

However, frustrating because on an otherwise functional Windows system with JRE 1.7u9 and JAB in place--and with javamonkey-32 and javaferret-32 both exposing Java Accessibility roles with demo programs (e.g. the recommended SwingSet2.jar)--I get no response from a LibreOffice session (test document in writer).

Per comment 14 "With that fix in place I could verify that at least JavaMonkey starts to report information again.". So what would be different between LOdev 3.7 and 3.6 trees that is still blocking things?  Is there something else missing? Or is it an issue with the TinberBox 9, Win-x86_9-Voreppe as compared to your Windows build of Master?

Stuart
Comment 17 V Stuart Foote 2012-10-26 01:06:58 UTC
(In reply to comment #16)

> However, frustrating because on an otherwise functional Windows system with
> JRE 1.7u9 and JAB in place--and with javamonkey-32 and javaferret-32 both
> exposing Java Accessibility roles with demo programs (e.g. the recommended
> SwingSet2.jar)--I get no response from a LibreOffice session (test document
> in writer).

Going to retract that. I just was not giving the JavaMonkey32 enouogh time to populate. The commit to LOdev 3.6 seems to have resolved issues. 

Was able to do a side by side comparison of LibO 3.5.7 and LOdev 3.6 of a test .odt document, JavaMonkey showed the same exposed document structure for the two session, and the NVDA screen reader rendered the document the same in the two versions.

Also, noted general agreement in document structure for the test document open in LOdev 3.6 and monitored with JavaMonkey32 (v2.0.2) and the same document open in Symphony 3.0.1 and monitored in MS Inspect UI Access--in MSAA mode (v7.2 from the Windows8 SDK).

I don't know if additional work could refine the Java Accessibility to UNO Accessibility mapping roles to bring Windows support in line with ATK AT/SPI, or if perhaps an early integration of IAccessible2 from the IBM Symphony contribution to Apache OpenOffice ( https://bugs.freedesktop.org/show_bug.cgi?id=39956 ) can replace Java access bridge requirements.


I believe the problem of no Accessibility Support for Assistive Technology is now fixed.

We do need some additional testing, but I'll again make a pitch for a commit into the 3.6.3 branch to get this in place for the Windows AT users as soon as possible.
Comment 18 Not Assigned 2012-10-27 15:35:46 UTC
Stephan Bergmann committed a patch related to this issue.
It has been pushed to "libreoffice-3-6-3":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=c309ce0227a14330094191c1ef15fa00899defcb&g=libreoffice-3-6-3

fdo#53474: Fix Windows Java Accessibility Bridge


It will be available already in LibreOffice 3.6.3.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.