Page MenuHome GnuPG

Kleopatra: Make keylist / keytreeview accessible
Closed, ResolvedPublic

Description

I think this one is more difficult but should be done early as we also need this for other widgets like the keyselectionline etc.

There is probably some accessible role queried on the model in which we could return the "summary line" for a key. If a user then wants to know more we need to make her understand how to open details / select details.

Event Timeline

aheinecke created this task.
ikloecker moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

First observations regarding screen readers and the certificate table:

  • The comment in the report that only the name (in the first column) is read may be an issue of the screen reader.
  • Orca reads all table cells (because of the (default) settings "readFullRowInGUITable"). There is also a keyboard shortcut to "toggle the reading of tables, either by single cell or whole row". I expect that other screen readers have similar settings and toggle functionality.
  • I don't think navigation by cell makes sense, because this is a read-only table, i.e. interaction with individual cells isn't possible.

I implemented the following solution:

  • People using screen readers can navigate from cell to cell with the arrow keys. Depending on the style there is no (or no easily perceivable) visual feedback, but that doesn't matter. A not blind person will simply perceive the Left/Right arrow keys as having no effect.
  • The special behavior of QTreeView which expands or collapses items with children on Left/Right does not work anymore. Expanding/collapsing subtrees with Plus/Minus/Asterisk still works.

Additionally, I tried to improve the accessibility of some table entries for blind persons:

  • Empty name and email entries are read as "no name" resp. "no email".
  • Dates are read as localized, long format dates to avoid ambiguous reading of three numbers. Unfortunately, the long format date may include the day of week.
  • An empty expiration date is read as "no expiration".
  • Key IDs and fingerprints are read as a string of groups of 4 individual characters.

The column headers are available to screen readers and orca announces the column header when moving the cursor to another column.

I don't think there is something like a "summary" for a table row. This could probably be emulated with row headers and a subclass of QAccessibleTree. But what would this summary include? Reading the full row on request (if the screen reader supports this) seems sufficient.

ikloecker changed the task status from Open to Testing.Feb 23 2022, 11:46 AM
ikloecker removed ikloecker as the assignee of this task.
ikloecker moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

Ready for testing

ebo claimed this task.
ebo moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.
ebo added a subscriber: ebo.

closing this due to external testing. The follow up on this is T6568