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]
Artem Semenov
asemenov at openjdk.org
Tue Mar 4 05:49:58 UTC 2025
On Tue, 4 Mar 2025 05:27:42 GMT, Abhishek Kumar <abhiscxk at openjdk.org> wrote:
>> 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.
I like this solution, I just ask you to consider replacing the ```instance of``` check with a role comparison…
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23841#discussion_r1978668563
More information about the client-libs-dev
mailing list