Note: Any of this is not implemented in FX and this is thoughts on what the feature can be.
Application Developer API:
An application developer will get most accessibility support without any special effort. However there are scenarios where an additional description or relation might be required to better define the usage. In those scenarios an application developer can use the following APIs.
Use Node client properties to set accessible name, description and relationship. Predefine following client properties: accName, accDescription, accLabeledBy, accLabelFor, accDescribedBy
Usage:
Set Accessible Name on button:
button.getProperties().put( accName, "MyButton") ;
Set Label for a button
button.getProperties().put( accLabelFor, buttonLabel ) ;
For the label and description relations its worth considering the need to allow the related object to be either another JavaFX control object or simply a string entered by the developer via the SceneBuilder.
Custom Control Developer
Choice 1:
Implement one or more providers from accessible providers package, com.sun.javafx.accessible.providers. All accessible implementations must implement AccessibleProvider for custom controls accessible implementation.
Choice 2:
If AccessibleNode and AccessibleControl are public classes then, a custom control developer would write their own AccessibleNode / AccessibleControl subclass if the control needs more properties than provided by the super AccessibleNode. This new subclass must implement FXAlly.