RFR: 8341311: [Accessibility, macOS, VoiceOver] VoiceOver announces incorrect number of items in submenu of JPopupMenu [v3]

Artem Semenov asemenov at openjdk.org
Thu May 29 07:24:51 UTC 2025


On Thu, 29 May 2025 07:03:58 GMT, Abhishek Kumar <abhiscxk at openjdk.org> wrote:

>> VoiceOver announce incorrect number of child for a submenu of JPopupMenu when it is visible for the first time only. After that VO is able to announce the number of items correctly.
>> 
>> Issue: Problem is with the a11y subsystem method call to get the accessible children details.
>> 
>> Analysis: When the Submenu of a JPopupMenu is opened, accessible component of PopupMenu is created dynamically in the native side implementation and `PostMenuOpened` notification is sent to the a11y subsystem for the newly created PopupMenu. Once the notification is sent to a11y sub-system, it invokes the `accessibilityChildren` method to get the children details for the menu component. A11y subsystem always retrieve the information of the root level PopupMenu irrespective of the submenu's PopupMenu (PopupMenu is associated with each JMenu) and thus announce the root level PopupMenu child count which is incorrect.
>> 
>> Proposed Fix: Proposed fix is to ensure the correct child details are sent back to a11y sub-system for correct announcement. So, whenever the `accessibilityChildren` method is invoked, first try to find out the current accessible PopupMenu which is opened for the Submenu and then return the child details.
>> 
>> Testing : Manual test case is attached to verify the fix and there is no failure with fix in CI pipeline.
>> 
>> `Current fix also ensures the correct child counts are announced for the JMenu's Submenu which are present in the JMenubar.`
>> 
>> **Note :** While verifying the fix, a new issue is unearthed for multi-level submenu where VO is failed to announce the Submenu's text. Since the issue exists without the proposed fix too, it shall be treated as a new bug finding and will raise a separate JBS issue.
>
> Abhishek Kumar has updated the pull request incrementally with one additional commit since the last revision:
> 
>   code optimization

LGTM

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

Marked as reviewed by asemenov (Committer).

PR Review: https://git.openjdk.org/jdk/pull/25470#pullrequestreview-2877352903


More information about the client-libs-dev mailing list