On Mon, 9 Feb 2026 08:35:13 GMT, Jeremy Wood <[email protected]> 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 <[email protected]>
Committer: Sergey Bylokhov <[email protected]>
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

Reply via email to