This page is mainly intended for highlighting the current state of Accessibility in JavaFX and upcoming work.
Accessibility support for JavaFX
...
has the following main aspects:
- Supporting High Contrast and Theming
- Keyboard Navigation
- Accessibility APIs and Assistive Technology support
...
High Contrast and Theming
...
Theming can be achieved using high contrast style sheet provided with FX runtime. Currently this style sheet has to be loaded manually. You You can do this using:
scene.getStylesheets().add("/com/sun/javafx/scene/control/skin/caspian/highcontrast.css");
This should however be triggered to auto-load when the platform theming is changed. This will require a triggering mechanism from glass.
...
Unfortunately, there is currently no support to inform your program that the user has changed dynamically changed to and from high contrast. Some platforms simply do not have the concept and instead, expect the user to choose the appropriate desktop theme.
Keyboard Navigation
See the document that lists all JavaFX UI Controls including their shortcuts and keyboard navigation
Accessibility
...
APIs and Assistive Technology
...
Support
Work is underway to understand the next steps for Accessibility in this area. Some work has been done for 8.0, and the results can be found here.
The accessibility architecture is based on Microsoft UI Automation which helps provide us a
low overhead path to implementation on Windows. The design scales well to NSAccessibility protocol on Mac platform and AT-SPI on Linux.
<Insert image FX Accessibility Architecture.png>
- Architecture
- Supported Assistive Technologies
- APIs
- What works today and how to scale this further
- Testing