On Thu, 19 Nov 2020 00:23:01 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:

>> Alexander Zuev has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Fixed the year in file header.
>>   
>>   Added comments on a reason for the common component layer existance.
>
> src/java.desktop/macosx/native/libawt_lwawt/awt/JavaComponentAccessibility.m 
> line 140:
> 
>> 138: // Please see 
>> https://developer.apple.com/documentation/appkit/nsaccessibilityprotocol
>> 139: // for more details.
>> 140: @interface CommonComponentAccessibility : JavaComponentAccessibility 
>> <NSAccessibilityElement> {
> 
> I remember we had a plan to implement this step by step, replacing the parts 
> of the old API with some new parts.
> 
> If the plan still in place then why we do not implement 
> `NSAccessibilityElement` in the `JavaComponentAccessibility ` class, so the 
> usage of current (old) methods like 
> `accessibilityPositionAttribute/accessibilitySizeAttribute/accessibilityFocusedAttribute`
>  could be replaced by the new methods from the NSAccessibilityElement 
> protocol like accessibilityParent/accessibilityFrame/isAccessibilityFocused.
> 
> If we plan to implement it from scratch then why the 
> CommonComponentAccessibility extends JavaComponentAccessibility?
> 
> It is not obvious from the change since the `accessibilityFrame()` is 
> implemented from scratch mostly duplicate 
> `accessibilityPositionAttribute+accessibilitySizeAttribute`, but the 
> `accessibilityParent()` uses the code from the `JavaComponentAccessibility `

Implementing it step by step is exactly why i did it - if i make 
JavaComponentAccessibility implementing the NSAccessibilityElement it triggers 
mac os to stop using the old property based API on all of it and we are not 
ready for that. I'm planning to keep CommonComponentAccessibility 
implementation minimal so once all of our bases are covered we can just swap 
JavaComponentAccessibility to implementing NSAccessibilityElement and switching 
all the subcomponent's peers to extend it and then we will be able to drop 
CommonComponentAccessibility altogether (or just leave it so we can swap to 
older API easier for comparison testing).

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

PR: https://git.openjdk.java.net/jdk/pull/1290

Reply via email to