Accessible list/grid delegates
Closed, ResolvedPublic

Description

List/Grid delegates currently aren't accessible, which makes a large portion of System Settings inaccessible.

This is primarily due to the fact that they often include focusable controls, which violates the expectations of blind users and others relying on strictly keyboard navigation.

The expected UI is that tab is used to enter/leave the grid/list, while arrow keys are used to navigate between items in the grid and list, and space/enter is used to trigger the currently selected item if it has an associated action.

Putting focusable controls in the delegate at least violates the expectation of tab behaviour, and in the case of controls such as text fields, additionally the arrow key behaviour.
This is a large accessibility issue and needs to be addressed if we wish to give users relying exclusively on keyboard navigation a good user experience.

Besides violating expectations, there's also some other usability issues.
Given a sufficiently large count of items, tab focus will not be able to get to items after the grid/list within a reasonable amount of time, and when utilising stuff like search, it's possible for focus to get in the middle of the list, in which case exiting the app is the only way to get out of the list/grid view within a reasonable amount of time.

On the technical side of things, focusable controls in list/gridview delegates additionally yield many bugs which compound on the design accessibility issues.

cblack created this task.Apr 21 2021, 9:08 PM

Solution 1: Expandable Everything

While permanently available focusable controls are problematic, making them temporarily show up specifically on interacting with a control is fine, given that there's an escape hatch, such as collapsing the expanded control with escape or simply dismissing the items if focus leaves them.

Solution 2: Menus

Alternatively, instead of making everything an expandable control, we can add a dropdown menu to everything with actions that gets revealed when triggering the list/grid item.

ngraham added a subscriber: mart.

@mart, thoughts? I know you feel somewhat strongly about list and grid items and inline hover controls. :)

mart added a comment.Apr 22 2021, 2:46 PM

the problem is really having item views with more than one action per item.

I don't know if there is some key combination that is expected to go in/out of those extra actions.. perhaps menu keyboard key vs esc..

as always visible extra actions vs only after some triggering (mouse over or a menu button) yes i prefer them *not* always visible ;)

ognarb added a subscriber: ognarb.Apr 22 2021, 3:25 PM
In T14388#254350, @mart wrote:

the problem is really having item views with more than one action per item.

I don't know if there is some key combination that is expected to go in/out of those extra actions.. perhaps menu keyboard key vs esc..

The menu keyboard doesn't exist in many keyboard layouts and more importantly, we shouldn't use special keyboard shortcut since they are not discoverable. Instead, we can only use tab, navigation key and space/return. The idea of Jan of making list items with more than one action extendable when using the keyboard looks like a good idea for me.

as always visible extra actions vs only after some triggering (mouse over or a menu button) yes i prefer them *not* always visible ;)

mart added a comment.Apr 22 2021, 4:04 PM

The idea of Jan of making list items with more than one action extendable when using the keyboard looks like a good idea for me.

I guess it's acceptable

ngraham closed this task as Resolved.May 14 2021, 4:21 PM
ngraham moved this task from Todo to Done on the Plasma Accessibility board.

Calling it done.

ngraham moved this task from Backlog/Planned to Done on the VDG board.May 14 2021, 4:22 PM
cblack reopened this task as Open.May 14 2021, 4:30 PM

Hardly done; system settings and other applications are still filled with inaccessible delegates.

cblack moved this task from Done to Work in Progress on the VDG board.May 14 2021, 4:31 PM

I had a feeling closing it would get an actual response. :) Next time please respond to a normal question

Sorry; I missed your comment

I missed that one as well.
How can i test it?

chempfling closed this task as Resolved.Jul 20 2023, 9:59 PM

I finally was able to do a detailed test.
Works like a charm. Thanks a lot :)! good work.