nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
Other
2.03k stars 625 forks source link

;INSERT+F1 help message capability #2699

Open nvaccessAuto opened 11 years ago

nvaccessAuto commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 10 years ago

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.

bhavyashah commented 6 years ago

@josephsl With reference to https://github.com/nvaccess/nvda/issues/2699#issuecomment-155300904, 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 commented 6 years ago

Hi, ah yes. Note that NVDA+F1 was already taken. As for an update on that, please ask @DerekRiemer, as I pulled the plug on Control Usage Assistant (no longer developed). Thanks.

derekriemer commented 6 years ago

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 commented 6 years ago

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

josephsl commented 6 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

Hi,

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

Thanks.

josephsl commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

Hi, I’m aiming this for Core after seeing the popularity of the add-on approach (Control Usage Assistant). Thanks.

josephsl commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 3 years ago

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 commented 3 years ago

Hi, I don’t think so unless a similar concept is exposed through MSAA. What we call “descriptions” for UIA controls is really “help text”, a short sentence or a phrase that briefly describes what the control is, slightly smaller in scope than say, a context-sensitive help. Tanks.