Skip to content

Add default keyboard mappings for flattened object nav scripts#15065

Merged
seanbudd merged 8 commits into
nvaccess:masterfrom
LeonarddeR:flattenedReview
Jul 4, 2023
Merged

Add default keyboard mappings for flattened object nav scripts#15065
seanbudd merged 8 commits into
nvaccess:masterfrom
LeonarddeR:flattenedReview

Conversation

@LeonarddeR

@LeonarddeR LeonarddeR commented Jun 28, 2023

Copy link
Copy Markdown
Collaborator

Link to issue number:

Fixes #15053

Summary of the issue:

Object navigation can be difficult to grasp for some people. It is helpful to assign the flattened object nav gestures (that are now only available on touch screen)by default.

Description of user facing changes

See change log items

Description of development approach

Added gestures to scripts in globalCommands.

Testing strategy:

Test desktop and laptop assignments.

Known issues with pull request:

Translators must be made aware of these new assignments, since they might need a special localized mapping for other keyboard layouts.

Change log entries:

Changes

  • Added default keyboard gesture assignments to move to the next or previous object in a flattened view of the object hierarchy. (Map flattened object nav gestures by default #15053)
    Add the following additional gesture mappings:
  • Desktop:NVDA+numpad9 and NVDA+numpad3 to move to the previous and next objects, respectively
  • Laptop: shift+NVDA+[ and shift+NVDA+] to move to the previous and next objects, respectively

Code Review Checklist:

  • Pull Request description:
    • description is up to date
    • change log entries
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • API is compatible with existing add-ons.
  • Documentation:
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • Security precautions taken.

@cary-rowen

Copy link
Copy Markdown
Contributor

Hi,

This set of keymaps has been used in the NVDA Chinese community for a long time.
For laptop layout we are using NVDA+Ctrl+PageUp/PageDown

@LeonarddeR

Copy link
Copy Markdown
Collaborator Author

I personally prefer to avoid adding pageUp/pageDown on laptop because many laptops don't have these keys.

@zstanecic

zstanecic commented Jun 28, 2023 via email

Copy link
Copy Markdown
Contributor

@AppVeyorBot

Copy link
Copy Markdown

See test results for failed build of commit 50daecbd68

@LeonarddeR

Copy link
Copy Markdown
Collaborator Author

I wonder whether we shouldn't yet go for the brackets for laptop instead. They are only one row above the current keys and might be a bit more obvious, i.e. clearly pointing left and right) and we don't have to do the accute/cedilla trick.

@burmancomp

Copy link
Copy Markdown
Contributor

I wonder whether we shouldn't yet go for the brackets for laptop instead. They are only one row above the current keys and might be a bit more obvious, i.e. clearly pointing left and right) and we don't have to do the accute/cedilla trick.

Do you mean curly brackets ({}) which are shift+[ and shift+]? In Finnish key layout, key which writes } (shift+]) in US key layout, is somekind of key combination which is used to write special letters like û, ê and î. Letters are written so that first "}" key combination is pressed and then usual letter, for example "}" key u gives û.

I'm not localizing Finnish version but I would like to know if this would be a problem if these keys would be tried to be added to localized gesture map. These keys should be unassigned currently in Finnish version.

Different keys seem to be assigned according to key layout of the language. For example keys producing ; and ' in US layout are with NVDA key assigned to mouse clicks in Finnish localization, and mouse clicks when NVDA language is English are (with NVDA key) keys producing [ and ] in US key layout.

@CyrilleB79

Copy link
Copy Markdown
Contributor

I wonder whether we shouldn't yet go for the brackets for laptop instead. They are only one row above the current keys and might be a bit more obvious, i.e. clearly pointing left and right) and we don't have to do the accute/cedilla trick.

Do you mean curly brackets ({}) which are shift+[ and shift+]? In Finnish key layout, key which writes } (shift+]) in US key layout, is somekind of key combination which is used to write special letters like û, ê and î. Letters are written so that first "}" key combination is pressed and then usual letter, for example "}" key u gives û.

I'm not localizing Finnish version but I would like to know if this would be a problem if these keys would be tried to be added to localized gesture map. These keys should be unassigned currently in Finnish version.

Different keys seem to be assigned according to key layout of the language. For example keys producing ; and ' in US layout are with NVDA key assigned to mouse clicks in Finnish localization, and mouse clicks when NVDA language is English are (with NVDA key) keys producing [ and ] in US key layout.

We can see in the various gestures.ini files that gestures using keys other than letters (mainly punctuation) need to be localized according to locale keyboard layout. That's the case for laptop layout left or right mouse click.

Regarding dead key (i.e. key that do not type a character but change the next one), in French we have "^" located just at the right of "P" key, i.e. where "[" appears on US layout; this dead key is used followed by another vowel to type "â", "ê", "î", etc. I can see that it has not been used to localize for left click. @MichelSuch is there any reason why?

Of course, the best way to know if dead keys can be used is to test.

@LeonarddeR

Copy link
Copy Markdown
Collaborator Author

@burmancomp I meant the left and right brackets, i.e. [ and ].
As @CyrilleB79 pointed out, some magic happens in gestures.ini regarding to these assignments. The acute/cedilla should probably be be moved to the Dutch assignments and removed from the pr.

@burmancomp

Copy link
Copy Markdown
Contributor

@burmancomp I meant the left and right brackets, i.e. [ and ].

Do I missunderstand something but are not [ and ] assigned to mouse clicks when nvda language is English?

@LeonarddeR

Copy link
Copy Markdown
Collaborator Author

@burmancomp I meant the left and right brackets, i.e. [ and ].

Do I missunderstand something but are not [ and ] assigned to mouse clicks when nvda language is English?

Yes, but not with shift added to the gesture 😉

@burmancomp

Copy link
Copy Markdown
Contributor

Do I missunderstand something but are not [ and ] assigned to mouse clicks when nvda language is English?

Yes, but not with shift added to the gesture 😉

And it means that we are speaking about curly brackets ({}) because they are produced from square brackets ([]) in uS layout andding shift.

@CyrilleB79

Copy link
Copy Markdown
Contributor

Do I missunderstand something but are not [ and ] assigned to mouse clicks when nvda language is English?

Yes, but not with shift added to the gesture 😉

And it means that we are speaking about curly brackets ({}) because they are produced from square brackets ([]) in uS layout andding shift.

Actually, when talking about key combination gestures in NVDA, we indicate the main character and the modifiers. So we usually do not write 'Type "{"', but 'Type "shift+["'. This goes for the User's Guide as well as for the code. It doesn't matter which character is ultimately produced.

@LeonarddeR LeonarddeR marked this pull request as ready for review June 30, 2023 20:00
@LeonarddeR LeonarddeR requested review from a team as code owners June 30, 2023 20:00

@seanbudd seanbudd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @LeonarddeR

@Qchristensen Qchristensen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text looks good, but two comments:

In "Section 5.6 Review Modes", it mentions "Review modes are a replacement for the older Flat Review concept found in NVDA.". Given we are now introducing a "new" flat review and also as it has been 10 years (2013.2) since the original flat review was removed, could we also remove that sentence in this PR?

And in Section 5.4 Object Navigation (before the keystrokes) we have a paragraph which goes through the concept of the hierarchy of objects (beginning with "Rather than having to move back and forth through....") - is it worth a sentence at the end of that paragraph noting the new commands which essentially ignore it?

@LeonarddeR

Copy link
Copy Markdown
Collaborator Author

@Qchristensen thanks for the valuable comments. I removed the said line and also added another paragraph about flat view object nav. Any suggestions to make this clearer are greatly appreciated.

Comment thread user_docs/en/userGuide.t2t Outdated

@Qchristensen Qchristensen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Leonard, great work!

Co-authored-by: Sean Budd <seanbudd123@gmail.com>
@AppVeyorBot

Copy link
Copy Markdown

See test results for failed build of commit d91ae179f4

@seanbudd seanbudd merged commit 5c4e6e1 into nvaccess:master Jul 4, 2023
@nvaccessAuto nvaccessAuto added this to the 2023.2 milestone Jul 4, 2023
seanbudd pushed a commit that referenced this pull request Jul 26, 2023
…commands for all keyboard layouts (#15191)

Closes #15185
Follow-up of #15065.

Summary of the issue:
New gestures to move in flattened object hierarchy have been added in #15065: nvda+numpad3/9 for desktop layout and shift+NVDA+[ / ] for laptop layout.

Although mainly used with desktop layout, object nav-related gestures associated to numpad are usually bound to all keyboard layout (desktop and laptop). This allows for example users to have NVDA to be configured with laptop layout for a laptop computer without numpad on its keyboard, but to use the numpad gestures in case an external keyboard with numpad is plugged in.

Description of user facing changes
The gestures NVDA+numpad3/9 for the new flattened object navigation commands will now be available both in laptop and in desktop mode.

As done for other obj nav gestures, the user guide (and the change log) still advertises numpad gestures for desktop layout only.

Description of development approach
Changed the gesture definition.
@CyrilleB79 CyrilleB79 mentioned this pull request Aug 3, 2023
6 tasks
seanbudd pushed a commit that referenced this pull request Aug 4, 2023
Fix-up of #15065

Summary of the issue:
Various issues found in documentation while reviewing translation:

Flattened review:
For example, if you move to the next object in this flattened view and the current object contains other objects, NVDA will automatically move to the first object that contains it.
Should be "that it contains", not "that contains it"!
Cc @LeonarddeR for approval

Excel UIA option not at the correct place in the documentation with respect to its position in the GUI's Advanced settings panel.

Searching for add-ons

-Type a keyword or two for the kind of add-on you're looking for, then tab back to the list of add-ons.
Actually, we tab forward, not back.

Add-on Store spelling: Let's take care to use an unique writing so that people get immediately used:
So "Add-on Store", not "Add-ons Store".

Key name formatting:
Key name formatting should always be used for single keys, not for a whole list of keys including separators or parenthesis that do not belong to the name of a key as done for some braille keys.
@LeonarddeR LeonarddeR deleted the flattenedReview branch August 23, 2025 06:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Map flattened object nav gestures by default

9 participants