On Fri, 16 Jun 2023 10:06:42 GMT, Artem Semenov <aseme...@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. > > src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxButton.java line > 162: > >> 160: AccessibleContext ac = this.getAccessibleContext(); >> 161: if (ac != null && (comboBox.getSelectedItem() != null)) { >> 162: >> ac.setAccessibleName(comboBox.getSelectedItem().toString()); > > Are you sure that the toString() method always provides a valid string, and > not a descriptive JSON or some other character set that is useless for a > blind user? I tested several times, didn't get such kind of result and as per java docs toString method returns `a string representation of the object.` So, I think it will be a valid string. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1233732120