RFR: 8286204: [Accessibility, macOS, VoiceOver] VoiceOver reads the spinner value 10 as 1 when user iterates to 10 for the first time on macOS [v3]

Abhishek Kumar abhiscxk at openjdk.org
Tue Mar 4 05:29:59 UTC 2025


On Mon, 3 Mar 2025 14:16:56 GMT, Artem Semenov <asemenov at openjdk.org> wrote:

>> Abhishek Kumar has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Fix pushed to mac os specific class
>
> src/java.desktop/macosx/classes/sun/lwawt/macosx/CAccessible.java line 127:
> 
>> 125:                     AccessibleContext thisAC = accessible.getAccessibleContext();
>> 126:                     Accessible parentAccessible = thisAC.getAccessibleParent();
>> 127:                     if (!(parentAccessible instanceof JSpinner.NumberEditor)) {
> 
> Why do you need all this if the spinner has an accessible role?
> ```jdk-21.0.6+7/src/java.desktop/share/classes/javax/swing/JSpinner.java```
> 
>         public AccessibleRole getAccessibleRole() {
>             return AccessibleRole.SPIN_BOX;
>         }
> 
> Also, there is already getting an a11y parent lower in the code.

Native spinner and Java spinner is not a similar UI component and the issue lies in the text component of JSpinner. I don't find any probable solution in native side implementation of spin box.

This seems a simple workaround fix for the issue right now.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23841#discussion_r1978644965


More information about the client-libs-dev mailing list