Integrated: 8377428: VoiceOver Cursor Navigates Invisible Components
Jeremy Wood
jwood at openjdk.org
Sun Feb 15 06:07:22 UTC 2026
On Mon, 9 Feb 2026 08:35:13 GMT, Jeremy Wood <jwood at openjdk.org> wrote:
> This PR prevents VoiceOver from letting me navigate the VoiceOver cursor to hidden components.
>
> ### Technical Details
>
> VoiceOver is responsible for a call to `CAccessibility.getChildrenAndRoles(JFrame, JFrame, JAVA_AX_ALL_CHILDREN, false)`.
>
> That last boolean is `allowIgnored`.
>
> When `allowedIgnored == false` we already omitted certain components based on their AccessibleRole. This PR expands our definition of "what should be ignored" to include invisible Components.
>
> ### Other Considerations
>
> 1. Originally I thought the resolution to this problem would be to change JAVA_AX_ALL_CHILDREN to JAVA_AX_VISIBLE_CHILDREN . And maybe that's still a viable option, but after some research I've come to believe it's simpler/appropriate to change our definition of "ignored".
> 2. NSViews have a separate property `isHidden`. Another approach to this ticket might be to try to assign `myNSView.isHidden = !myJavaComponent.isVisible()`. Some reading suggests that this might (?) automatically resolve this ticket.
This pull request has now been integrated.
Changeset: ef0851d8
Author: Jeremy Wood <jwood at openjdk.org>
Committer: Sergey Bylokhov <serb at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/ef0851d8adbb834e1cd5aff5b3b973b953e57e2d
Stats: 175 lines in 2 files changed: 167 ins; 0 del; 8 mod
8377428: VoiceOver Cursor Navigates Invisible Components
Reviewed-by: serb, kizune
-------------
PR: https://git.openjdk.org/jdk/pull/29630
More information about the client-libs-dev
mailing list