Bug 156557 - Cannot use Shift+Tab to tab backwards through side bar
Summary: Cannot use Shift+Tab to tab backwards through side bar
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
7.2.0.0 alpha1+
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:24.2.0 target:7.6.1
Keywords: accessibility
Depends on:
Blocks: Sidebar-Accessibility
  Show dependency treegraph
 
Reported: 2023-07-31 16:17 UTC by Michael Weghorn
Modified: 2023-08-16 11:04 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Weghorn 2023-07-31 16:17:57 UTC
Usually, navigating through the UI is possible using the Tab key (to move one element forward) and using Shift+Tab (to move one UI element backwards). However, moving backwards in the sidebar doesn't work to get all the way back to the top.

1) In Writer press Ctrl+Alt+1 to open the Properties deck (note that the "Style" panel title will be focused)
2) press Tab a few times to move focus through the UI elements in the sidebar panel (OK)
3) try to move backwards by pressing Shift+Tab, starting with focus in the "Font Name" combobox in the "Characters" section:
3.1) press Shift+Tab once -> moves focus to the "More options" button above (OK)
3.2) press Shift+Tab again -> moves focus to the "Character" heading left to that (OK)
3.3) press Shift+Tab again

Actual result:
The "Font Name" combobox gets focus again, i.e. it's not possible to move further up the sidebar deck again using Shift+Tab, there's a cycle.

Expected result: Focus should move to the UI element above the "Character" heading.
It should do the opposite of what happens when using just the Tab key (i.e. without Shift) when focus is on the previous UI element.

Note: See also the discussion in https://gerrit.libreoffice.org/c/core/+/154918 for further information and some more aspects.

Version: 24.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: 9807d927a00e538af1561889fd897154ad9f3349
CPU threads: 12; OS: Linux 6.4; UI render: default; VCL: gtk3
Locale: en-GB (en_GB.UTF-8); UI: en-US
Calc: threaded
Comment 1 V Stuart Foote 2023-07-31 17:49:39 UTC
confirmed--primary AT Navigation if the UI must be supported with:

<F10>, <F6>, <Shift><F6>, <Tab>, <Shift><Tab> movements consistently. 

Movement within SB content panels can then be a mix of Tab and Cursor, but should be consistent for a given deck. And within a deck the <Shift> modifier should reverse the Tab or Cursor movements as well.
Comment 2 Stéphane Guillou (stragu) 2023-08-01 08:56:57 UTC
Starting from step 3, testing with gtk3 VCL on Ubuntu 20.04 + GNOME 3.36:
- Up until 6.4, tab navigation would stay inside a single section.
- In 7.0, tab navigation would bypass section headings and eventually exit the sidebar without allowing reaching it again.
- In 7.1, tab navigation would exit sections and get lost after navigating the heading.
- Since 7.2, as in description.

Version: 7.2.0.0.alpha1 / LibreOffice Community
Build ID: 94c1521be4ef12f195d08413d5e2134e07a49f85
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3
Locale: en-AU (en_AU.UTF-8); UI: en-US
Calc: threaded
Comment 3 Jim Raykowski 2023-08-04 05:57:01 UTC
Hi All,

I remember that I noticed this behavior when I was poking around the FocusManager code a few years ago. 

Here is a go at making Shift+Tab navigate the Sidebar as expected:
https://gerrit.libreoffice.org/c/core/+/155333

The patch makes Shift+Tab change keyboard focus to the last panel control of the previous panel when focus is currently on a panel title. It also makes Shift+Tab change keyboard focus to the Tabbar hamburger menu when focus is currently on the "Close Sidebar Deck" button.

Side note observation: When the keyboard focus is in the Style panel "Set Paragraph Style" box and Tab is pressed the style is always applied.
Comment 4 Commit Notification 2023-08-04 16:25:03 UTC
Jim Raykowski committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/e2db54b9bf48b79802154d5fc9460fc432ea69a0

tdf#156557 Sidebar: Make Shift+Tab kb navigation behave as expected

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 5 Michael Weghorn 2023-08-05 08:57:03 UTC
Fix verified, thanks!

Version: 24.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: be58058b0e49cceff1732535b5a9ab57aeb9aa7c
CPU threads: 12; OS: Linux 6.4; UI render: default; VCL: gtk3
Locale: en-GB (en_GB.UTF-8); UI: en-US
Calc: threaded
Comment 6 Commit Notification 2023-08-16 11:04:20 UTC
Jim Raykowski committed a patch related to this issue.
It has been pushed to "libreoffice-7-6":

https://git.libreoffice.org/core/commit/ef4ac09618a859d7399c55559b27030228745a5f

tdf#156557 Sidebar: Make Shift+Tab kb navigation behave as expected

It will be available in 7.6.1.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.