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.