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

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


> **Issue** : VO doesn't announce Tab items of a JTabbedPane as RadioButton which is wrong. 
> 
> **Analysis** : That is due to the role mapping of tab items as `NSAccessibilityRadioButtonRole` in `JavaAccessibilityUtilities.m` file. Since the accessibility role description is fetched in `accessibilityRoleDescription` API if `CommonComponentAccessiblity.m` file, the sub-role passed as a parameter is `nil`, returned value is RadioButton..
> 
> **Proposed Fix** : Fix is to get the correct accessibility role description from Appkit, we should pass `NSAccessibilityTabButtonSubrole` in the subrole parameter and that returns the accessibility role as `Tab` and is announced correctly by VO.
> 
> **Testing** : Manual test case has been added to verify the fix.

Abhishek Kumar has updated the pull request incrementally with one additional commit since the last revision:

  Role description code moved to TabButtonAccessibility

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/26096/files
  - new: https://git.openjdk.org/jdk/pull/26096/files/7d0b9379..bfaf0100

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=26096&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26096&range=02-03

  Stats: 18 lines in 2 files changed: 10 ins; 6 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/26096.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26096/head:pull/26096

PR: https://git.openjdk.org/jdk/pull/26096


More information about the client-libs-dev mailing list