Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Plover fully navigable with keyboards #1291

Open
nvdaes opened this issue Apr 24, 2021 · 6 comments
Open

Make Plover fully navigable with keyboards #1291

nvdaes opened this issue Apr 24, 2021 · 6 comments

Comments

@nvdaes
Copy link
Contributor

nvdaes commented Apr 24, 2021

Is your feature request related to a problem? Please describe.

Using Plover interface with a screen reader is frustrating since tab and arrow keys don't move the focus to Plover controls as expected.

Describe the solution you'd like

Commands available in the operative system (like tab, shift+tab, arrow keys and Enter, for example on Windows ) should be enough to focus and interact with Plover controls like buttons, edit boxes and others.

Describe alternatives you've considered

  • If the above solution is not possible for different operative systems, add shortcuts for different tasks, like done and explained in the Thorium Reader shortcuts article

Additional context

You may test Plover with different screen readers like NVDA on Windows, VoiceOver on Mac or Orca on Linux to get an idea about features that need to be improved.

@user202729
Copy link
Member

Turns out that I am already aware of this issue (mostly that when the focus got into some table, it's impossible to tab out of it), but it didn't annoy me enough to report a bug.

@nvdaes
Copy link
Contributor Author

nvdaes commented Apr 24, 2021

I use Notepad++ to edit Python and json files and this seems something general of Plover's interface, so I decided to request this as a new feature instead of reporting lots of bugs.

I used NVDA object navigation and discovered features that I didn't know, available in the toolbar. I tried to use the dialog to edit dictionaries and it's possible, but it's too slow in an proffesional environment where we may have to act very fast.

In the configuration dialog, I've never been able to edit keymappings and I have to press Escape since there are lots of keystrokes and then it's difficult to go back to the other configuration controls.

@user202729
Copy link
Member

Experiment: if I add tabKeyNavigation = False to the table (in this code, only the list-of-dictionaries table inside the dictionaries widget on the main window), it's possible to tab out of the table, but then you have to use up/down to navigate inside the table.

diff --git a/plover/gui_qt/dictionaries_widget.ui b/plover/gui_qt/dictionaries_widget.ui
index bdb83e9..c85e615 100644
--- a/plover/gui_qt/dictionaries_widget.ui
+++ b/plover/gui_qt/dictionaries_widget.ui
@@ -37,6 +37,9 @@
      <property name="frameShape">
       <enum>QFrame::Box</enum>
      </property>
+     <property name="tabKeyNavigation">
+      <bool>false</bool>
+     </property>
      <property name="showDropIndicator" stdset="0">
       <bool>true</bool>
      </property>

@nvdaes
Copy link
Contributor Author

nvdaes commented Apr 24, 2021

The above code maybe a solution. A friend, also user of JAWS and NVDA, feels frustrated since Plover reads the full path of dictionaries and this maybe anoying when we add files not contained in assets. She would like a feature to optionally deactivate this verbosity since listening the full path is slow. She requests me to develop an NVDA add-on for Plover if this can't be addressed as an option in the program.

@user202729
Copy link
Member

Plover reads the full path of dictionaries

#1162 .

@user202729
Copy link
Member

user202729 commented Apr 24, 2021

Test: #1293 (Disable tabKeyNavigation for all tables) -- distribution packages can be downloaded as artifacts.

I think that this covers all the tables in the code. There's still one in the plugin manager, but that part is in a different repo.


Note: while trying to use Plover with the keyboard some more (I don't frequently have to modify the key map anyway) I notice that if I press up/down to select a cell in the keymap table, the outer window does not scroll. (this may not be easy to fix. The idea is probably outer.verticalScrollBar().setValue() with table.visualRect(current) and table.geometry() on table.currentChanged(current, [previous]) events fired)


By the way, most components on the main interface already have a shortcut (both Qwerty and steno (assignable))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants