On Tue, 27 May 2025 17:01:16 GMT, Abhishek Kumar <[email protected]> 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.
test/jdk/javax/accessibility/TestPopupMenuChildCount.java line 42:
> 40: */
> 41:
> 42: public class TestPopupMenuChildCount {
Nitpick: as far as I understand, this is for macOS only. Do you think it would
make more sense to have a name mention that the test is Mac only? The same for
test description. Seems to me a bit confusing otherwise
It's fine with me if you leave it as it is though.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25470#discussion_r2109947825