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

"To" and "CC" addresses in Outlook 2007 are not read by NVDA #421

Closed
nvaccessAuto opened this issue Jan 1, 2010 · 9 comments

Comments

Projects
None yet
1 participant
@nvaccessAuto
Copy link

commented Jan 1, 2010

Reported by vtsaran on 2009-09-21 01:18
When focusing on, navigating through or querying information about participant addresses or names in "to" or "cc" fields of Outlook 2007, NVDA simply says "space".

@nvaccessAuto

This comment has been minimized.

Copy link
Author

commented Jan 12, 2010

Comment 1 by vtsaran on 2010-01-12 21:35
Wanted to see if anyone has any idea as to why this is happening. I believe, the names of recipients are stored in embedded objects and not written out as words. I can't remember if these were read in Outlook 2003, but they are definitely ignored in 2007.

@nvaccessAuto

This comment has been minimized.

Copy link
Author

commented Feb 7, 2010

Comment 2 by mdcurran on 2010-02-07 01:38

  • These controls are edit fields with a RichEdit20WPT window class.
  • These controls support ITextDocument, so theoretically, if we set the 'useITextDocumentSupport' property on their NVDAObjects to True, NVDa will start reading the embedded objects via ITextDocument.

However, having tried this, all NVDA says for each embedded object is "unknown embedded object".
The reason for this is because there is a COMError (unspecified error) when calling IOleObject::getClipboardData.

I also tried two other things since getClipboardData can't be used:

  • I tried using IOleObject::getMoniker (with the hope then of getting its display name). However getMoniker returns notImplemented.
  • I tried QueryInterface on the IOleObject to IDispatch and randomly trying property names like 'name' or 'displayName' in the hope that this object may also be an Outlook email recipient object. In fact 'name' does work, and gives us what we need. However, when 'name' is accessed, Outlook 2007 brings up a security dialog asking if the user wants to allow an external program access to Outlook. Of course this confuses NVDA some what, not to mention the user. Certainly not a good solution there.

So, no success with this bug so far.

@nvaccessAuto

This comment has been minimized.

Copy link
Author

commented Feb 13, 2010

Comment 3 by travisroth (in reply to comment 2) on 2010-02-13 20:15
Replying to mdcurran:
I used Inspect to look at the MSAA. The Value property does contain the full names/addresses of the To and CC fields. It seems NVDA's MSAA reviewing functions do not see the same object as Inspect does however, and only reports a ";" if I enter two addresses into the To field.
I am not sure if pointing NVDA at the MSAA object containing the To and CC values wold improve? It'd seem the user coudl at least read what's contained even if editting was still difficult... I assume there's a reason you've not done this?

@nvaccessAuto

This comment has been minimized.

Copy link
Author

commented Feb 13, 2010

Comment 4 by mdcurran on 2010-02-13 22:52
True, we could have NVDA report the value when the control receives focus. But, as you're aware, then trying to use the arrow keys would result in hearing only spaces and semi colons.

If we really can't fix this before 2010.1, I guess we can consider doing this for the release. As a temporary solution.

However, I'm not too sure how to do it as NVDA currently ignores the value if it thinks the control is editable, as the editable text in theory also contains the value. ... I'll think about it.

@nvaccessAuto

This comment has been minimized.

Copy link
Author

commented Apr 14, 2010

Comment 5 by vtsaran (in reply to comment 4) on 2010-04-14 21:47
Hi Mick,
I think hearing some kind of announcement would be better than hearing none. At the moment there is no access to those fields at all. I know, this is not perfect, but it is better than nothing.

Replying to mdcurran:

True, we could have NVDA report the value when the control receives focus. But, as you're aware, then trying to use the arrow keys would result in hearing only spaces and semi colons.

If we really can't fix this before 2010.1, I guess we can consider doing this for the release. As a temporary solution.

However, I'm not too sure how to do it as NVDA currently ignores the value if it thinks the control is editable, as the editable text in theory also contains the value. ... I'll think about it.

@nvaccessAuto

This comment has been minimized.

Copy link
Author

commented Apr 16, 2010

Comment 6 by vtsaran on 2010-04-16 23:59
Hello Mick and Jamie,
I just ran AccEventWatcher tool from MSAA SDK 2.0 while typing in names into the "To" and "CC" fieldsof the "new message" dialog of Outlook 2007.
When suggested names come up on the screen Outlook sends the following accesible events:

  • obj_CreateName
    The data associated with these events contains the suggested Email addresses.
    When I was selecting particular names with arrow keys, Outlook was firing obj_SelectionName that contained the name currently selected. you can simply filter those out and extract the data that way.
    I think this should give you enough information to advance on this bug.
@nvaccessAuto

This comment has been minimized.

Copy link
Author

commented Apr 30, 2010

Comment 7 by vtsaran on 2010-04-30 07:17
My comment above incorrectly states the names of events. They should be OBJ_CREATE and OBJ_SELECTION.
However, as these are only applicable for the "autosuggestion" feature, I will open a new bug for this.

@nvaccessAuto

This comment has been minimized.

Copy link
Author

commented Oct 26, 2010

Comment 8 by jhomme on 2010-10-26 12:33

Hi,
In case it helps, here is the information I got when I used NVDA + F1.

Input: kb(laptop):nvda+f1
INFO - appModules._default.AppModule.script_navigatorObject_devInfo (08:18:42):
Developer info for navigator object:
name: u'To'
role: ROLE_EDITABLETEXT
states: STATE_MULTILINE, STATE_FOCUSABLE, STATE_FOCUSED
Python object: <NVDAObjects.Dynamic_IAccessibleRichEdit20WindowNVDAObject object at 0x0243FC70>
Python class mro: (<class 'NVDAObjects.Dynamic_IAccessibleRichEdit20WindowNVDAObject'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.edit.RichEdit20'>, <class 'NVDAObjects.window.edit.RichEdit'>, <class 'NVDAObjects.window.edit.Edit'>, <class 'NVDAObjects.behaviors.EditableTextWithAutoSelectDetection'>, <class 'NVDAObjects.behaviors.EditableText'>, <class 'editableText.EditableText'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: None
location: (232, 140, 794, 17)
value: u'Lum, Heather; '
appModule: <outlook (appName outlook, process ID 7452) at address 23b0d50>
TextInfo: <class 'NVDAObjects.window.edit.EditTextInfo'>
windowHandle: 722938
windowClassName: u'RichEdit20WPT'
windowControlID: 4099
windowStyle: 1342296132
windowThreadID: 8096
windowText: u' ; \x00'
IAccessibleObject: <POINTER(IAccessible) ptr=0x1a1de0 at 241e9e0>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=722938, objectID=-4, childID=0
IAccessible accRole: ROLE_SYSTEM_TEXT
IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048580)

@nvaccessAuto

This comment has been minimized.

Copy link
Author

commented Jun 10, 2011

Comment 9 by mdcurran on 2011-06-10 02:59
Fixed in a216b8c.

Changes:
Milestone changed from None to 2011.2
State: closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.