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

;INSERT+F1 help message capability #2699

Open
nvaccessAuto opened this issue Oct 6, 2012 · 19 comments
Open

;INSERT+F1 help message capability #2699

nvaccessAuto opened this issue Oct 6, 2012 · 19 comments
Assignees
Labels
Addon/management In NVDA management of addons by users. task

Comments

@nvaccessAuto
Copy link

Reported by louie12000 on 2012-10-06 05:10
I would like to point you to an INSERT+F1 help message feature I'd like to be added to NVDA. This is a feature I used in the JAWS screen reader.

@nvaccessAuto
Copy link
Author

Comment 1 by briang1 on 2012-10-06 06:17
This key sequence is already defined as developer info so people can see the current state of the current object etc. Very handy when a piece of software is not working as it should.
Maybe you could explain exactly what the Jaws function does which is so useful against what is available in nvda?

@nvaccessAuto
Copy link
Author

Comment 2 by ondrosik on 2012-10-06 18:18
I don't think we need this, as NVDA Help and keyboard shortcuts are available from NVDA menu, but in general, what it does: I pressed insert+F1 in Wondows explorer:
Use all the arrow keys to move through and select items in this list.
You can also use first letter navigation to move quickly to an item.

List JAWS Hot Keys
Press ESCAPE to close this message.
i clicked to list jaws hotkeys:
Here are some JAWS hot keys for general use:
description hot key
Screen Sensitive Help Insert+F1
Windows tips on navigation Insert+W
Read window title Insert+T
Activate the JAWS window Insert+J
Minimize all applications and move to the desktop WINDOWS KEY+M or CTRL+ESC, ALT+M
Close JAWS at any time Insert+F4
Access the JAWS search dialog Control+Insert+F
Toggle JAWS options Insert+V
Restrict the JAWS Cursor Insert+R
Read current window Insert+B
Copy text in the current window to the Virtual Buffer Control+Insert+w
Refresh screen Insert+Escape
Open JAWS Help for specific applications, press and hold INSERT, then press F1 twice quickly
Open a JAWS utility Insert+F2.

what it does in firefox when combobox has focus:
To select an item in a combo box,
press the first letter of the item,
or use UP or DOWN ARROW to move through the list.
In some combo boxes, you may need to first press ALT+DOWN ARROW to open the list of items.

List JAWS Hot Keys
Press ESCAPE to close this message.

This should be fine for beginners but from my experience, beginners just don't read userguide carefully (yes, that is also my problem, and I also created a ticked because I didn't understood something correctly) but extraneous help will be probably waste of time for developers and will not reduce the traffic for nvda-support e-maillist.
Changes:
Changed title from "INSERT+F1 help message capability" to ";INSERT+F1 help message capability"

@nvaccessAuto
Copy link
Author

Comment 3 by nvdakor on 2013-11-25 11:17
Hi,
Now I found it: knew someone mentioned context-sensitive help as a possible feature suggestion...
This was the ticket which gave me the idea to create Control Usage Assistant add-on:
http://addons.nvda-project.org/addons/controlUsageAssistant.en.html
I do have plans to add more help messages in the future similar to what the other screen reader is doing. As basic control help messages are here, the focus of the add-on would be to add context-sensitive help and control help messages in applications. At the moment I have a app messages dictionary to process this information, but what could truly bring this suggestion to reality is a method defined in objects and app modules which the core can call to obtain help information.
Thanks.

@nvaccessAuto nvaccessAuto added task Addon/management In NVDA management of addons by users. labels Nov 10, 2015
@bhavyashah
Copy link

@josephsl With reference to #2699 (comment), could you please share updates on the current development status and feature set of the Control Usage Assistant add-on? I would also like to kindly request thoughts from others regarding whether context-sensitive help is add-on territory or if it falls in the ambit of NVDA core.

@josephsl
Copy link
Collaborator

josephsl commented Aug 14, 2017 via email

@derekriemer
Copy link
Collaborator

what exactly would you like to know? @feerrenrut I've heard rumors that NVDA wants to build in help into NVDA, is this true?

@feerrenrut
Copy link
Contributor

@derekriemer Yes, this is something that we are considering for the near future.

@josephsl
Copy link
Collaborator

josephsl commented Jun 4, 2018

Hi,

Inspired by the latest pull request on context-sensitive help for NVDA settings...

I'm willing to take this on again, or mentor someone throughout this summer.

Preliminary design: add "_get_helpText" method to NVDA objects that'll announce help messages in MRO (method resolution order), beginning with the current object and moving to superclasses. This is suited for overlay classes and app modules, but eventually global plugins should be given a chance to add help messages.

Thanks.

josephsl added a commit to josephsl/nvda that referenced this issue Jun 17, 2018
…t getter. Re nvaccess#2699.

Inspired by Control Usage Assistant add-on: add a method in NVDA objects named '_get_helpText' that presents help information for a control. It starts with focused control, MRO for the control (if it exists), the app, and finaly a generic message.
josephsl added a commit to josephsl/nvda that referenced this issue Jun 17, 2018
Add NVDA+H as a command to obtain context-sensitive help for the focused contorl. If there is no help info, an appropriate message will be given. Note that the help text is in reverse order so help for the current contorl can come first, followed by more generic information.
josephsl added a commit to josephsl/nvda that referenced this issue Oct 3, 2018
…t getter. Re nvaccess#2699.

Inspired by Control Usage Assistant add-on: add a method in NVDA objects named '_get_helpText' that presents help information for a control. It starts with focused control, MRO for the control (if it exists), the app, and finaly a generic message.
josephsl added a commit to josephsl/nvda that referenced this issue Oct 3, 2018
Add NVDA+H as a command to obtain context-sensitive help for the focused contorl. If there is no help info, an appropriate message will be given. Note that the help text is in reverse order so help for the current contorl can come first, followed by more generic information.
@josephsl
Copy link
Collaborator

josephsl commented Oct 3, 2018

Hi,

I propose the following procedure:

  1. Add a generic message about closing the help screen.
  2. Add help messages for object roles unless browse mode is active, in which case this should be skipped.
  3. Let overlay classes add help messages, beginning with superclasses.
  4. Add a provision to pull in messages from overlay classes defined in global plugins and app modules.
  5. Reverse this list and present the whole thing as a browse mode document.

to help with this, I propose adding roleHelpMessages dictionary in control types module (for this, if Derek agrees, I'm happy to donate code from Control Usage Assistant). As for building the help messages list, I think this should be done as part of the context-sensitive help script in global commands (see my commits for details). Of course, I'm sure NV Access may have a different design, in which case I'm willing to follow their design or compromise.

Thanks.

@derekriemer
Copy link
Collaborator

Yeah, use the code. It wasn't my addon, I just technically took over maintenance of it. Also, all addons are GPL, so you can use their code in NVDA without waiting for approval from the original person.

@josephsl
Copy link
Collaborator

Hi,

And that original person happens to be me, so my offer still stands.

Thanks.

josephsl added a commit to josephsl/nvda that referenced this issue Dec 7, 2018
Add preliminary set of help messages for object roles. For now, some of the most common roles have help messages. This will be expanded over time.
josephsl added a commit to josephsl/nvda that referenced this issue Dec 7, 2018
…ess#2699.

Just in case an overlay class doesn't have help text, fall back to using help messages for obj.role if defined.
josephsl added a commit to josephsl/nvda that referenced this issue Jul 18, 2019
…rs to participate in providing help text. Re nvaccess#2699.

If help texts are present in app module and/or tree interceptor, allow these to add their own information to help texts list.
@josephsl
Copy link
Collaborator

Hi,

I'm picking this up again.

As of now, app modules and tree interceptors can add their own help messages. I expect more work will be done in the future 9or perhaps through a pull request).

Thanks.

@XLTechie
Copy link
Collaborator

Interesting work!
Is it still a question whether to do this in core, or as an add-on? If so, I vote for core. Reason being that the people most likely to need it, are those least likely to have discovered and installed add-ons yet, or to know that they need this one.

Even if only basically effective, and only covering the very minimum of control types, it could be helpful to get it into near term versions after Python 3 gets into broader testing. That might prompt others to become interested and fill gaps in coverage as well, and some help is better than no help to someone who really needs it.

Rhetorical question: why does this issue title start with a semicolon? :)

@josephsl
Copy link
Collaborator

josephsl commented Jul 18, 2019 via email

@josephsl
Copy link
Collaborator

Hi,

Now that Python 3 is here, and with continued popularity of Control Usage Assistant (which was just ported to Python 3), I'll continue to work on this.

at the moment Control Usage Assistant is going through a complete redesign - moving from offsets to method resolution order (or at least a string representation) in order to closely match the work I'm doing for Core. My plan is to release a development snapshot of Control Usage Assistant in a few days, and then open a pull request regarding this feature. But first, there are some missing things to fill, namely help messages for more roles, more NVDA objects, and overlay classes found in app modules.

Thanks.

@josephsl
Copy link
Collaborator

josephsl commented Nov 9, 2019

Hi,

Update: rather than letting NVDA objects and app modules pull in help messages from superclasses (in a list), the global command itself will loop through MRO (method resolution order). This is in consideration for app modules bundled as part of add-ons or global plugins which may add help messages for overlay classes that are part of the module/package.

Thanks.

@josephsl
Copy link
Collaborator

josephsl commented Nov 9, 2019

Hi,

Follow-up: as for when the PR will be done, I'm personally leaning towards post-2019.3 - I don't want to introduce regressions.

Thanks.

@cary-rowen
Copy link
Contributor

If you check the "Report object descriptions" option in the "Object Presentation" of NVDA, you can report short and important contextual help information in the menu bar of MS Word. I think this is a very friendly UX design.
Can this feature be applied to NVDA? I don't know if WXPython can do this?

@josephsl
Copy link
Collaborator

josephsl commented Jun 25, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Addon/management In NVDA management of addons by users. task
Projects
None yet
Development

No branches or pull requests

8 participants