-
Bug
-
Resolution: Fixed
-
P3
-
8u74, 9
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8278018 | 8u331 | Kumar Abhishek | P3 | Resolved | Fixed | b02 |
JDK-8279454 | 8u321 | Kumar Abhishek | P3 | Closed | Fixed | b32 |
Any control or node that you hide via setVisible(false), still appears in the accessible tree and is visible and actionable by screen readers. See screen shot attached which shows a dialog containing a GridPane, populated like so:
Button button1 = new Button();
button1.setText("Button One");
Button button2 = new Button();
button2.setText("Button Two");
gridPane.add(button1, 0, 0);
gridPane.add(button2, 0, 1);
button2.setVisible(false);
Although button2 cannot be tabbed to, if the screen reader has a mode where it can read out the dialog, it will read out invisible controls. It is also possible to action the control. For example, VoiceOver on Mac has the “Item Chooser” menu. Use CTRL+ALT+I to open the Item Chooser, scroll down to the invisible button and press ENTER to click the button.
Note, this applies to controls that have been explicitly hidden, and also controls that are hidden because their parent is hidden.
This bug applies to inbuilt controls also, those that I have spotted are:
1. TabPane control has the close buttons on tabs listed, and the tabs can be closed, even if the TabPane has been configured not to allow tab closing.
2. Scrollable panes have scroll bars listed even when they are not visible.
3. The ListView of a ComboBox is read out even when the drop down of the ComboBox is not showing.
Button button1 = new Button();
button1.setText("Button One");
Button button2 = new Button();
button2.setText("Button Two");
gridPane.add(button1, 0, 0);
gridPane.add(button2, 0, 1);
button2.setVisible(false);
Although button2 cannot be tabbed to, if the screen reader has a mode where it can read out the dialog, it will read out invisible controls. It is also possible to action the control. For example, VoiceOver on Mac has the “Item Chooser” menu. Use CTRL+ALT+I to open the Item Chooser, scroll down to the invisible button and press ENTER to click the button.
Note, this applies to controls that have been explicitly hidden, and also controls that are hidden because their parent is hidden.
This bug applies to inbuilt controls also, those that I have spotted are:
1. TabPane control has the close buttons on tabs listed, and the tabs can be closed, even if the TabPane has been configured not to allow tab closing.
2. Scrollable panes have scroll bars listed even when they are not visible.
3. The ListView of a ComboBox is read out even when the drop down of the ComboBox is not showing.
- backported by
-
JDK-8278018 Invisible controls are still accessible by screen readers.
-
- Resolved
-
-
JDK-8279454 Invisible controls are still accessible by screen readers.
-
- Closed
-
- relates to
-
JDK-8189641 [Accessibility, windows] NPE when navigating to ComboBox with empty string
-
- Resolved
-
-
JDK-8151989 Content of unselected tabs of a TabPane is accessible to screen readers.
-
- Open
-