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

Abhishek Kumar abhiscxk at openjdk.org
Mon Mar 3 10:05:51 UTC 2025


On Fri, 28 Feb 2025 12:37:35 GMT, Abhishek Kumar <abhiscxk at openjdk.org> wrote:

>> VoiceOver is unable to announce the correct value for spinner. For JSpinner with maximum value of more than 10, VO announce 10 as 1, 20 as 2 and so on. Probable reason is the "ACCESSIBLE_TEXT_PROPERTY" fired by accessible JTextComponent that leads to wrong range value invoked for accessibility API by VO.
>> Workaround fix is to ensure "ACCESSIBLE_TEXT_PROPOERTY" is not fired in case of JSpinner with numeric values.
>> 
>> Since the fix is in Java Component, verified fix with JAWS on windows. I don't see any side effects in announcement.
>> Manual test case is added to verify the fix.
>> 
>> CI pipeline testing is ok for the proposed fix.
>
> Abhishek Kumar has updated the pull request incrementally with three additional commits since the last revision:
> 
>  - space fix
>  - whitespace fix
>  - Copyright year update and manual test case added

> > Since the fix is in Java Component, verified fix with JAWS on windows. I don't see any side effects in announcement. Manual test case is added to verify the fix.
> 
> If this error affects only macOS, try looking for a solution somewhere in `src/java.desktop/macosx/native/libawt_lwawt/awt/a11y/SpinboxAccessibility.m`.

Probable fix is related to the `Text Component` of a spinner and I didn't get any fix in SpinboxAccessibility.m. I can try to push the fix to macOS related class (which won't impact the Windows announcements).
Will update the PR after testing it.

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

PR Comment: https://git.openjdk.org/jdk/pull/23841#issuecomment-2693848852


More information about the client-libs-dev mailing list