RFR: 8361283: [Accessibility, macOS, VoiceOver] VoiceOver announced Tab items of JTabbedPane as RadioButton on macOS [v2]

Abhishek Kumar abhiscxk at openjdk.org
Mon Jul 14 08:36:58 UTC 2025


On Sat, 12 Jul 2025 11:51:52 GMT, Artem Semenov <asemenov at openjdk.org> wrote:

>> TabButtonAccessibility is initialized in TabGroupAccessibility but since TabButtonAccessibility is not exposed to accessible system (i.e. not createdwithaccessible) and hence a11y subsystem in unable to invoke the method.
>> 
>>> TabGroupAccessibility is not being created or used at all, which is incorrect.
>> 
>> TabGroupAccessibility does get created and the APIs are invoked by a11y subsystem. Once the accessibilityRoleDescription selector is defined in TabGroupAccessibility, it gets called but only when the self javarole is `pagetablist`.
>> 
>> After adding an entry for TabButtonAccessibility in rolesMap`[rolesMap setObject:@"TabButtonAccessibility" forKey:@"pagetab"]`, creates an accessible component for TabButtonAccessibility instead of CommonComponentAccessibility and is exposed to get invoked by a11y client. Then accessibilityRoleDescription API is invoked by a11y client.
>> 
>> But I am yet to find if there is any repercussion of adding the entry for TabButtonAccessibility.
>
> Do not forget to increment [rolesMap capacity] before adding a role.

Moved the role description code to TabButtonAccessibility file.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26096#discussion_r2204216487


More information about the client-libs-dev mailing list