On Sat, 8 Apr 2023 14:16:57 GMT, Kevin Rushforth <k...@openjdk.org> wrote:
>> Add the common base component for all the new implementing native classes >> Change native peer creation to use the new base component The new code will >> instantiate new protocol implementation for the given role if it exists or >> an old one if it does not exist >> Added BUTTON role implementing class > > modules/javafx.graphics/src/main/java/com/sun/glass/ui/mac/MacAccessible.java > line 807: > >> 805: if (this.peer == 0L) { >> 806: AccessibleRole role = (AccessibleRole) getAttribute(ROLE); >> 807: if (role == null) role = AccessibleRole.NODE; > > When would `role` be null? And if it is, is defaulting to `NODE` going to do > the right thing once you implement the new a11y protocol for Node? It can be when customer creates a custom component that does not provide accessible attributes. With the new API that will be covered by the default implementation that will report some generic role. > modules/javafx.graphics/src/main/java/com/sun/glass/ui/mac/MacAccessible.java > line 976: > >> 974: return -1; >> 975: } >> 976: > > This method is not used anywhere (even from native code). Yes, that was added as one of the ways to provide role to the initialization but i ended up by passing role as a string at the initialization phase so this method has to be removed. ------------- PR Review Comment: https://git.openjdk.org/jfx/pull/1084#discussion_r1161988092 PR Review Comment: https://git.openjdk.org/jfx/pull/1084#discussion_r1161989719