Integrated: 8341311: [Accessibility,macOS,VoiceOver] VoiceOver announces incorrect number of items in submenu of JPopupMenu
Abhishek Kumar
abhiscxk at openjdk.org
Fri May 30 06:28:01 UTC 2025
On Tue, 27 May 2025 17:01:16 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.
This pull request has now been integrated.
Changeset: e33eeeea
Author: Abhishek Kumar <abhiscxk at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/e33eeeea04fc7899bf66b0a2fdaccc30060854b4
Stats: 172 lines in 3 files changed: 170 ins; 0 del; 2 mod
8341311: [Accessibility,macOS,VoiceOver] VoiceOver announces incorrect number of items in submenu of JPopupMenu
Reviewed-by: asemenov, kizune
-------------
PR: https://git.openjdk.org/jdk/pull/25470
More information about the client-libs-dev
mailing list