Swing works, but OpenJFX applications not working with screen readers

Don Johnson kodosaru at gmail.com
Sun Mar 5 08:36:50 UTC 2023


Hi All,

This is accessibility API question. Swing applications like IntelliJ 
IDEA appear in the utilities jaccesswalker, jaccessinspector (JDK/bin) 
and access-bridge-explorer (.NET app at 
https://github.com/google/access-bridge-explorer.git). However, no scene 
graph or accessibility messages in these utilities appear for any 
OpenJFX application I have written. A screen reader needs both to know 
the scene graph and be able to send and receive accessibility messages 
to perform automation and read control descriptions.

I have put these values in the "accessibility.properties" file in the 
JDK lib folder:

     assistive_technologies=com.sun.java.accessibility.AccessBridge
     screen_magnifier_present=true
     screen_reader_present=true

In different test OpenJFX applications running on Windows machines, with 
the screen reader JAWS running, the 
Platform.accessibilityActiveProperty() is "true." When JAWS is not 
running, the value is "false." However, the screen reader cannot 
communicate with the OpenJFX applications.

Why are the OpenJFX applications not communicating across the 
communication channel facilitated by the WindowsAccessBridge-64.dll and 
JavaAccessBridge.dll? Incidentally, the Java Access Bridge is enabled 
with jabswitch.exe. There is some type of Windows IPC used by the bridge 
(COM?) once it is enabled. This bridge facilitates communication between 
the screen reader and a Java application running inside of a JVM.

I've also tried explicitly setting roles etc. even though OpenJFX 
graphical object already have default values. For example in the 
"bouncing ball" sample program I set,

         setAccessibleRole(AccessibleRole.BUTTON);
         setAccessibleRoleDescription("Bouncing Ball");
         setAccessibleText("I'm a bouncing ball");
         setAccessibleHelp("This is bouncing ball, use the primary 
action to start animation");

Does anyone have an OpenJFX sample program the shows up in the 
jaccesswalker and jaccessinspector utilities and works with a screen 
reader like JAWS or NVDA? This YouTube presentation implies 
accessibility is already built into OpenJFX, but I can't get it to work, 
see https://youtu.be/iUPPEkD9H1I "The New JavaFX Accessibility API." My 
applications must comply with Section 508 of the Rehabilitation Act of 
1973 but cannot so far because of this OpenJFX accessibility problem.

Thanks,
Don


More information about the openjfx-dev mailing list