On Wed, 25 Mar 2026 22:49:17 GMT, Jeremy Wood <[email protected]> wrote:
>> A JButton's `AccessibleAction#getAccessibleActionDescription()` is localized.
>>
>> For example: in German it returns "clicken", and in English it returns
>> "click".
>>
>> In JavaAccessibilityActions.m we have this method:
>>
>> void initializeActions() {
>> int actionsCount = 5;
>>
>> sActions = [[NSMutableDictionary alloc] initWithCapacity:actionsCount];
>>
>> [sActions setObject:NSAccessibilityPressAction forKey:@"click"];
>> [sActions setObject:NSAccessibilityIncrementAction forKey:@"increment"];
>> [sActions setObject:NSAccessibilityDecrementAction forKey:@"decrement"];
>> [sActions setObject:NSAccessibilityShowMenuAction forKey:@"toggle
>> popup"];
>> [sActions setObject:NSAccessibilityPressAction forKey:@"toggleexpand"];
>> ...
>>
>>
>> This sets up a mapping based on the constant fields in
>> `javax.accessibility.AccessibleAction`.
>>
>> But this mapping doesn't help if the String we interface with is translated.
>> (This test focuses on German, but this principle applies to any non-English
>> localization.)
>>
>> For the most part this won't seriously affect German users, because
>> VoiceOver has a fallback: if you ask to "click" a button that doesn't have a
>> NSAccessibilityPressAction, then VoiceOver will temporarily move the mouse
>> over the button, click it, and then restore the mouse.
>>
>> This PR modifies CommonComponentAccessibility.m so it defines a
>> NSAccessibilityPressAction, so VoiceOver doesn't have to move the mouse to
>> activate buttons. This is based on the observation that VoiceOver is willing
>> to try pressing the component anyway (with a simulated mouse click),
>> therefore it should be safe (or at least "equally dangerous") to offer a
>> NSAccessibilityPressAction instead.
>>
>> If this is considered too generic / risky we could instead:
>> A. Limit this new logic to components with AccessibleRoles that act as
>> buttons or
>> B. De-localize this text in CAccessibility. For ex: `if (axActionDesc ==
>> UIManager.getString("AbstractButton.clickText") return "click"`
>
> Jeremy Wood has updated the pull request incrementally with one additional
> commit since the last revision:
>
> 8377938: remove " (Mac-only)"
>
> This is in response to:
> https://github.com/openjdk/jdk/pull/30181#discussion_r2984313760
Marked as reviewed by kizune (Reviewer).
-------------
PR Review: https://git.openjdk.org/jdk/pull/30181#pullrequestreview-4011412838