On Wed, 12 Apr 2023 15:13:25 GMT, Ambarish Rapte <ara...@openjdk.org> wrote:
> Issue: > CheckBoxTreeItem extends TreeItem and adds a CheckBox. > The state of this CheckBox is not visible to an accessibility client > application. > If we analyze a simple program that contains a CheckBoxTreeItem using a > windows application "Accessibility Insights for Window", we can notice that > toggle state of CheckBox is not exposed. > > Fix: > Include the [Toggle Control > Pattern](https://learn.microsoft.com/en-us/windows/win32/winauto/uiauto-implementingtoggle) > in Accessibility information of a CheckBoxTreeItem in addition to the > patterns that are used for a TreeItem. > > Verification: > On Windows: Do the following with and without the fix. > 1. Run the sample program attached to JBS issue. > 2. Launch "Accessibility Insights for Window" > 3. Observe that patterns section for each item > 4. Select / de-select the CheckBoxes and observe the patterns section for > correctness of toggle state. I echo Andy's question about using an enum for the new AccessibleAttribute. More importantly, I think the values of that new attribute need to be a platform-independent. See inline comments. modules/javafx.controls/src/main/java/javafx/scene/control/cell/CheckBoxTreeCell.java line 495: > 493: state = 2; > 494: } else if (checkBox.isSelected()) { > 495: state = 1; I recommend using platform-independent constants here (possibly an enum as discussed earlier). modules/javafx.graphics/src/main/java/com/sun/glass/ui/win/WinAccessible.java line 1588: > 1586: if (isDisposed()) return 0; > 1587: if (getAttribute(ROLE) == AccessibleRole.CHECK_BOX_TREE_ITEM) { > 1588: return (int)getAttribute(TOGGLE_STATE); I recommend mapping the return value of `getAttribute(TOGGLE_STATE)`, which should be a platform-independent value, to one of the three Windows-specific values. Otherwise you are making an assumption that might not hold for other platforms (e.g., macOS). ------------- PR Review: https://git.openjdk.org/jfx/pull/1088#pullrequestreview-1417144589 PR Review Comment: https://git.openjdk.org/jfx/pull/1088#discussion_r1188755406 PR Review Comment: https://git.openjdk.org/jfx/pull/1088#discussion_r1188750544