Skip to content

Keybinding to browse different frames/views #1561

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

Open
3 tasks done
josx opened this issue Oct 14, 2022 · 2 comments
Open
3 tasks done

Keybinding to browse different frames/views #1561

josx opened this issue Oct 14, 2022 · 2 comments
Labels
topic: accessibility Enabling the use of the software by everyone topic: code Related to content of the project itself type: imperfection Perceived defect in any part of project

Comments

@josx
Copy link

josx commented Oct 14, 2022

Describe the problem

I am working with a blind programmer that usually uses IDEs. So we need some accessibility by keyboard to browse all the frames/views on the IDE.

The bigger problem is on OUTPUT view because you can't get focus there by the keyboard (so cant listen errors on boards, compile or uploading code).

To reproduce

Touch any keys to try got focus on OUTPUT view.

Expected behavior

A new keybinding/keyboard shortcut to browse all graphics widget (icons, view, etc.)

Arduino IDE version

e577de4

Operating system

Linux

Operating system version

Ubuntu focal

Additional context

I think that would be great to have one key to browse like a carousel all the graphic widgets (so blind readers can read whatever are on it).


Keywords

  • "keybinding"

  • "key binding"

  • "hotkey"

  • "hot key"

  • "accelerator"

  • "key combination"

  • "key sequence"

  • "key chord"

  • "shortcut key"

Issue checklist

  • I searched for previous reports in the issue tracker
  • I verified the problem still occurs when using the latest nightly build
  • My report contains all necessary details
@josx josx added the type: imperfection Perceived defect in any part of project label Oct 14, 2022
@per1234 per1234 added topic: code Related to content of the project itself topic: accessibility Enabling the use of the software by everyone labels Oct 14, 2022
@per1234
Copy link
Contributor

per1234 commented Nov 10, 2022

Thanks for your report @josx

we need some accessibility by keyboard to browse all the frames/views on the IDE.

I did some experimentation using Windows Narrator and found I was able to access all panels and views using Narrator + Right arrow / Narrator + Left arrow (Up/Down arrow when in "Scan Mode").

I found the same with NVDA in "Browse Mode".

Unfortunately I did not have any luck with navigating the Arduino IDE UI using Orca, but it is possible I simply don't know how to use it.

Is there a specific screen reader you are using?

The bigger problem is on OUTPUT view because you can't get focus there by the keyboard

I found a somewhat roundabout way to accomplish this. I don't think it counts as a real solution, but perhaps it will be useful as a workaround so I'll share it anyway:

  1. Press the Ctrl+Shift+P keyboard shortcut (Command+Shift+P for macOS users) to open the "Command Palette".
  2. Select the the "Toggle Output View" command from the menu.
    You can quickly find it by typing the first characters of toggle output view.
    After executing the command the first time, the command will be listed at the top of the Command Palette menu, so you will be able to quickly select it without needing to type the command.
  3. Press the Enter key to execute the command.
  4. If the "Output" view was not previously active, it will now have focus. If it was previously active, the bottom panel will have collapsed. If the latter, repeat the steps above once more to reopen the bottom panel and get focus on the "Output" view.

The same technique can be used for the "Serial Monitor" view, though the Tools > Serial Monitor menu item or its keyboard shortcut might be more straightforward to the users.

If you want to avoid needing to use Command Palette, you can assign a keyboard shortcut to the "Toggle Output View" command (it actually has one by default but it collides with the "Upload Using Programmer" shortcut (#1658). I'll provide instructions for doing that:

  1. Select File > Advanced > Keyboard Shortcuts from the Arduino IDE menus.
    A "Keyboard Shortcuts" view will open in the main panel.
  2. In the "Search keybindings" field of the view, type Toggle Output View
  3. Select the "Edit Keybinding" icon to the left of the "Toggle Output View" command row in the table (it seems the icon will be invisible when selected via a keyboard due to requiring a mouse hover to appear).
    An "Edit Keybinding for output:toggle" dialog will now open.
  4. Type the keyboard shortcut you want into the field in the dialog.
  5. Press Tab to select the OK button.
  6. Press the Enter key.
  7. Press the Ctrl+W keyboard shortcut to close the "Keyboard Shortcuts" view.

@per1234
Copy link
Contributor

per1234 commented Nov 10, 2022

I see now there is actually a quite usable way to access the views in the bottom panel (including "Output") so long as the bottom panel is expanded (which it would typically be when the user wanted to access it since the IDE automatically expands it as appropriate):

  1. If the IDE is not already in the "tab key moves focus" mode, execute the "Toggle Tab Key Moves Focus" command (either via Command Palette or keyboard shortcut).
  2. Press tab until the bottom panel has focus.
  3. If another view is selected in the bottom panel, use Ctrl+Tab to select the "Output" view.

In case the bottom panel is collapsed, the "Toggle Output View" command should be used instead, per my instructions above. Or for those who prefer using the primary UI, there is a "Toggle Bottom Panel" icon on the right side of the status bar. That icon is not accessible via the IDE's native navigation, but can be accessed using the enhanced navigation provided by Narrator and NVDA.

The reason I considered my instructions above to be more of a workaround than a solution is because they required running the command twice to untoggle and then retoggle the view in order to get the side effect of obtaining focus on the view, which is clearly a hack. I don't see any problem with using the command as intended simply to toggle the view when that is needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: accessibility Enabling the use of the software by everyone topic: code Related to content of the project itself type: imperfection Perceived defect in any part of project
Projects
None yet
Development

No branches or pull requests

2 participants