RFR: 8283214: [macos] Screen magnifier does not show the magnified text for JcomboBox
Abhishek Kumar
abhiscxk at openjdk.org
Mon Jun 19 08:52:07 UTC 2023
On Fri, 16 Jun 2023 10:06:42 GMT, Artem Semenov <asemenov at 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
More information about the client-libs-dev
mailing list