RFR: 8377745: VoiceOver Identifies Hyperlink as Text

Alexander Zuev kizune at openjdk.org
Fri Feb 13 21:06:04 UTC 2026


On Thu, 12 Feb 2026 08:32:43 GMT, Jeremy Wood <jwood at openjdk.org> wrote:

> If we use `new AccessibleRole("AXLink") {}`, then VoiceOver reads this more like other native apps.
> 
> There isn't a similar precedent in CAccessibility for creating custom AccessibleRoles, so I won't mind if this PR is declined. (But I don't know off the top of my head where else to inject code to get the desired result...)

The issue of wrong reporting of the hyperlink component does exist but this is not the correct way to solve it. For starters it would force old and deprecated property-based accessibility API on this component so when Apple will finally fully switch to the new API this will outright stop working. Currently the hyperlink accessibility role is bound to the native peer StaticTextAccessibility so either there should be a special case for correctly reporting the native accessibility role and the corresponding role selectors such as `isVisited` should be added to it or - ideally - the new peer specific for the hyperlink needs to be created and binding in `[CommonComponentAccessibility initializeRolesMap]` should be updated referencing a new class.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/29686#issuecomment-3899448303


More information about the client-libs-dev mailing list