On Thu, 15 Jun 2023 15:58:18 GMT, Abhishek Kumar <abhis...@openjdk.org> wrote:

> The issue exist only for non-editable combobox and the root cause is 
> accessible object is not created due to incorrect index returned from 
> component class which results in no a11y API invoked.
> 
> Proposed solution is to return the correct accessible child from 
> getAccessibleChild method which is AquaComboBoxButton (arrowButton) instance 
> and that results in invoking the a11y APIs to return the current selected 
> item in combobox. 
> 
> Further when the application comes up first time the accessible name is not 
> set for current displayed item in JCombobox that is handled in 
> AquaComboBoxButton which will take care for the current selected item as well 
> as if user modifies the selection by drop-down list.
> 
> This fix results in few JCK test failure and that may require modification. I 
> have filed an issue against JCK 
> ([JCK-7319423](https://bugs.openjdk.org/browse/JCK-7319423)).  
> 
> CI link is posted in JBS.

Changes requested by nikitkoc...@github.com (no known OpenJDK username).

src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java line 
1121:

> 1119:     @Override
> 1120:     public int getAccessibleChildrenCount(JComponent c) {
> 1121:         return 2;

I think the logic here has to be equal to the logic in `getAccessibleChild `, 
otherwise `getAccessibleChildrenCount` returns 2 even when 
`getAccessibleChild(..., 1)` returns null.

src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java line 
1128:

> 1126:     public Accessible getAccessibleChild(JComponent c, int i) {
> 1127:         // 0 = the popup
> 1128:         // 1 = the editor

The comment here needs to be updated

src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java line 
1146:

> 1144:                         && (arrowButton instanceof Accessible)) {
> 1145:                     return (Accessible) arrowButton;
> 1146:                 }

How about to idiomatize the code a bit by using Java 14's enhanced `instanceof`?

-------------

PR Review: https://git.openjdk.org/jdk/pull/14497#pullrequestreview-1484328290
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1232746895
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1232741613
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1232750667

Reply via email to