RFR: 8313138: Horizontal Scrollbar Keyboard enhancement [v5]

eduardsdv duke at openjdk.org
Mon May 6 18:48:59 UTC 2024


On Mon, 1 Apr 2024 19:27:17 GMT, Andy Goryachev <angorya at openjdk.org> wrote:

>> Adding alt-ctrl-LEFT/RIGHT (option-command-LEFT/RIGHT) key bindings to
>> 
>> - ListView
>> - TreeView
>> - TableView
>> - TreeTableView
>> 
>> to support keyboard-only horizontal scrolling.  The main reason for the change is to improve accessibility.
>> 
>> **NOTE: For controls in right-to-left orientation, the direction is reversed.**
>> 
>> As far as I can tell, these key combinations do not interfere with editing.
>> 
>> The proposed solution can be further optimized by adding a public method to the VirtualFlow class, something like
>> 
>> 
>> public void horizontalUnitScroll(boolean right);
>> 
>> 
>> Q: Does this change require a CSR to explain the change in the controls' behavior?  We don't yet have the key bindings documented in /doc-files/behavior
>> 
>> Note:
>> Jenkins headful test passed on all mac configurations, failed on all linux configurations (master branch failed also, so it is test issue), while windows configuration is not yet available.
>
> Andy Goryachev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 14 additional commits since the last revision:
> 
>  - tests
>  - cleanup
>  - node orientation
>  - Merge remote-tracking branch 'origin/master' into 8313138.horizontal
>  - table view behavior
>  - tree view behavior
>  - list view behavior
>  - orientation
>  - Merge remote-tracking branch 'origin/master' into 8313138.horizontal
>  - Merge branch 'master' into 8313138.horizontal
>  - ... and 4 more: https://git.openjdk.org/jfx/compare/07a85ee2...5bae5e7a

modules/javafx.controls/src/main/java/javafx/scene/control/skin/ListViewSkin.java line 686:

> 684:             right = !right;
> 685:         }
> 686:         ScrollBar sb = flow.getHbar();

The ListView has the orientation property ``ListView.setOrientation(Orientation)``.
I think it should be

ScrollBar sb = flow.isVertical() ? flow.getHbar() : flow.getVbar();

and the name of the method something like ``crossUnitScroll(boolean)``.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1393#discussion_r1591418338


More information about the openjfx-dev mailing list