Java Supported Controls and Accessibility
Also see Java Automation Commands Support and Prerequisites
Control / Java GUI Framework |
Swing |
JavaFX |
Applet (AWT) |
---|---|---|---|
Label |
Read |
Read |
Read |
Buttons |
Read |
Read |
Read |
Checkboxes |
Read, Write |
Read, Write |
Read, Write |
Radio buttons |
Read, Write only true (1) |
Read, Write only true (1) |
Read, Write only true (1) |
Combo boxes |
Read, Write (not always) (2) |
Read, can’t write (3) |
Can’t read, Write (4) |
List boxes |
Read, Write |
Read, Write |
Can’t read, Write only by index (5) |
Text boxes |
Read, Write |
Read, Write |
Read, Write |
Text areas |
Read, Write |
Read, Write |
Read, Write |
Panel headers |
Read |
Read |
Non-existing control in platform |
Tabs |
Read |
Read |
Non-existing control in platform |
Canvas (6) |
- |
- |
Non-existing control in platform |
Table |
Read |
Read, Write on cell |
Non-existing control in platform |
Tree |
Read, Expand, Collapse by Index, Text |
Read |
Non-existing control in platform |
Menu Item |
Read |
Read |
Non-existing control in platform |
Spinner |
Non-existing control in platform |
Read, can’t write (7) |
Non-existing control in platform |
(1)Radio buttons can be checked by our tool if they are already unchecked, but cannot be unchecked. To uncheck radio button, you should check another one.
(2) Combo boxes can be set only in Swing framework, but it does not work for all controls. Java app may throw Exception to invalid combo box state. It is related to the internal behavior of Java Access Bridge, which sets selection index to -1 before setting value. In such cases double setting action might be needed, first one will set dropdown to empty value and second will set correct index.
(3) In JavaFX we can’t set Combo box too, but it’s value can be read.
(4) In AWT there is a problem of reading combo box value, it displays random unreadable characters instead. That’s why we can’t set combo box by value in AWT, but setting by index works.
(5) List box in AWT can’t be read and set by value, but can be set by index.
(6) JAB/FlaUI can’t interact with Canvas at all, because it shows only Canvas Pane, but not internal objects (texts, labels, etc.).
(7) In JavaFX there is Spinner control, which can be read by our tool but can’t be set.