On Tue, 27 May 2025 17:01:16 GMT, Abhishek Kumar <abhis...@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 <abhis...@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

Reply via email to