Navigation Menu

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

NVDA should read automatically incoming chat from Skype #2298

Closed
nvaccessAuto opened this issue May 5, 2012 · 87 comments
Closed

NVDA should read automatically incoming chat from Skype #2298

nvaccessAuto opened this issue May 5, 2012 · 87 comments
Assignees
Milestone

Comments

@nvaccessAuto
Copy link

Reported by drein on 2012-05-05 07:23
As you know, there are external tools that can be used to have a good experience with skype.
the first is skypetalking, the second is gwconnect. But, all these programs have a great limitation:
they don't read and announce facebook chat.
If NVDA read incoming message automatically, especially when you are in the chat window, all these limits will disappear.
Is it possible?
Blocking #2018

@nvaccessAuto
Copy link
Author

Comment 1 by dallasobrien on 2012-09-14 02:17
hi. this is now doubly important, as the latest skype is moving towards being the form for msn. the newest skype beta can now have both skype contacts, and messenger contacts all together, in the one program. and add facebook to this mix, and skype is now no longer a single app, for a single protocall. its now a multi app client. so this really does need looking in to soon.

@nvaccessAuto
Copy link
Author

Comment 2 by k_kolev1985 on 2012-11-25 16:39
Hello,

Now I've noticed that in the latest Skype version (6.0), there's a specific MSAA event for the case when someone is typing in the chat (conversation) window. JAWS detects that MSAA event and speaks it, so I guess that can be done for NVDA as well.

Also, if automatic speaking of incoming and outgoing chat messages, as well as their manual review with some keyboard commands (e.g. with the F-keys) can be implemented, that will be very good.

And another thing - some time ago, a NVDA user modified the default NVDA addon for Skype, making it so NVDA can read the number of missed events for any conversation item in the "Recent" tab of the Skype's main window. Can this modification be implemented in the default NVDA app module for Skype?

Thanks in advance!

@nvaccessAuto
Copy link
Author

Comment 3 by dallasobrien on 2013-03-03 12:53
hi guys. just wondering if any progress has been made in this? i must admit myself to being a little curious as to what holds this up, and why NVDA as of yet, does not read skype chat windows of any kind automaticly, seeing as its such an important program for communications these days, and is more and more being integrated in to all types of computers. what i'm getting at here is, is there actually any reason in particular, thats making this hard to do?

@nvaccessAuto
Copy link
Author

Comment 4 by jteh on 2013-03-03 14:02
As always, it's largely a matter of priorities, especially as this is likely to be tricky to implement.

@nvaccessAuto
Copy link
Author

Comment 5 by camlorn on 2013-04-14 02:23
I'm going to add my vote to this. Disregarding the fact that Skype is popular in general for a moment, it's amazing how many blind people have it. It's not something that's uncommon these days, and I'd like to see support for automatic reading of chat as well. Surprisingly, the rest of the program works OK. Not great, but useable, especially if you know object navigation, but there really is no way to find out about new chat messages as they come in.
I'd include this under the heading of dynamic content, and make it togglable with nvda+5.
I don't think that chat review commands are needed. At least for me, to get from the send textbox to the chat log is only one keystroke and to get back is only one more.
Skype is automatically going into a screenreader mode, so it's possible that Skype is communicating the message content in some way. There's a checkbox in the option menu for this, and it is detecting nvda. There's probably some way to get at the message content; I'd not be surprised if Freedom Scientific or someone got them to add something for that.

@nvaccessAuto
Copy link
Author

Comment 6 by dallasobrien on 2013-04-16 14:57
hi. I've also noticed something interesting. when i am in an msn window within skype, to an msn contact, i rout my mouse to the last message incoming, or outgoing. i do this, because if i keep repeting the command to rout the mouse to it, the tone gos up, when somebody starts to type a new message. this is simply my cheat way to do this. however, i have noticed something rather interesting happening. when i am pressing the command to rout the mouse curser to the last message, if i manage to press it, at exactly the same time as somebody starts typing, it in fact says with nvda, username is typing a message. username being who ever i am messaging at the time. so obviously, some access is getting through. its just that this is not coming through at any other time. only when i'm doing this action. so perhaps skype is in fact atempting to communicate, and nvda simply needs to link in to that stream of communication? not sure. but thought it bore bringing up, in case it leads somebody to discover something.

@nvaccessAuto
Copy link
Author

Comment 7 by camlorn on 2013-04-18 01:39
Ok, I've done some looking and can offer information. I believe this may be add-on territory, and am considering getting on the mailing list to ask some questions. An add-on to replace skype talking and similar is actually not as hard as it sounds.
Skype uses two methods to allow applications to communicate with it, though it used to use more. One is COM. COM is, so far as I can tell, not interesting to us as it doesn't report events. Documentation on both of these is sparse, so it's possible I'm missing something.
The other is called the raw api, and it uses messages to pass information to and from the program. Commands are sent as strings and results are received as strings. It looks like one can register to be informed about chat messages. The method for doing this is the creation of a message-only window using createWindowX and the registration of two skype specific messages, asking skype for access which would require a note in the user manual of the add-on or NVDA, and coming up with a way for the user to control it. I believe that the easiest way to do more advanced functions would simply to be to have the add-on to add a submenu to the NVDA menu, as this menu can be accessed quickly from anywhere. Skype broadcasts that it has been started and closed, and there is a method provided to find out which window is Skype.
There is one issue. I believe that Skype will give access to all NVDA add-ons without asking, once NVDA receives permission. This particular question only appears once--once an application has permission, it keeps permission unless the user explicitly revokes it. This is, obviously, a security hole, I'm just not sure how big of one it actually is, as that depends on a few things: first and foremost if NVDA has any sort of security in add-on installation to prevent third-party programs from installing add-ons behind NVDA's back.
This information is available, just google the skype api reference. I don't ahve a link at the moment, but can comment with it later if desired.

@nvaccessAuto
Copy link
Author

Comment 8 by jteh on 2013-04-18 01:43
We'll endeavour to investigate this, particularly now that MSN Messenger is being/has been phased out.

We've been informed that using the Skype API doesn't give access to all messages, suhc as those from other networks. There should be another way to do this anyway.
Changes:
Milestone changed from None to 2013.2

@nvaccessAuto
Copy link
Author

Comment 9 by camlorn on 2013-04-19 01:12
The developer reference:
http://dev.skype.com/desktop-api-reference
I do not believe it is possible to access messages from other networks via the API. I do not have a convenient way to see if Skype is exposing them through MSAA or similar.
One interesting point, though: this is headed into application specific territory, and I can think of at least one skype-specific option that would be useful: whether or not to announce chats when not in the skype window. Not having vision makes it impossible for me to know what happens, visually, when I receive a message. I think that the difficulty is going to be determining which notifications the user has enabled/disabled in Skype itself. I imagine this might end up in the contact the developer of the software territory. I assume that for legal reasons the functionality can't be learned about by reading Jaws scripts (which are sometimes not available in source form anyway).
Skype has become extremely popular, though, yes. I don't have skype because I wanted skype when I woke up in the morning one day, I have skype because I had at least one person a week asking me for my skype--and typically a visually impaired person for that matter.

@nvaccessAuto
Copy link
Author

Comment 10 by camlorn on 2013-04-19 19:39
Just another interesting point. I can't find all the networks skype supports, but believe it only to be MSN. If it is, the Skype API may be back on the table: MSN is in the process of being phased out, and will probably be gone by the time this is implemented into NVDA. Facebook may or may not still be an issue.

@nvaccessAuto
Copy link
Author

Comment 13 by James Teh <jamie@... on 2013-05-03 05:34
In [71681b4]:

In Skype, new chat messages are reported automatically while the conversation is focused.

Fixes #2298.

Changes:
State: closed

@nvaccessAuto
Copy link
Author

Comment 14 by k_kolev1985 on 2013-05-03 06:45
I'm using Skype 6.5 beta in compact mode and in bulgarian, an installed copy of NVDA snapshot master-9164,557a856, and the automatic reading of Skype chat messages does not work (neither for incoming, nor for outgoing ones). And the current conversation window is in focus, while I test that. Am I missing something here?

@nvaccessAuto
Copy link
Author

Comment 15 by dallasobrien on 2013-05-03 06:54
yes. the snapshot build for today has not yet been made. lol. so you yet do not have the latest code, including the skype addition.

@nvaccessAuto
Copy link
Author

Comment 16 by k_kolev1985 on 2013-05-03 07:01
Oops, stupid me :). But with this new numbering system for the snapshots, I got confused. Sorry for the false report.

@nvaccessAuto
Copy link
Author

Comment 17 by dallasobrien on 2013-05-03 07:05
its ok. i get a bit confuzzled with them myself.

on the subject of the skype reading incoming chats, once we have confirmed that it is functioning as it should, would it be possible to create history message reading, such as control 1 to 0, to read the last 10 messages? not sure how hard that would be to do, but i see that something similar was done in miranda.

@nvaccessAuto
Copy link
Author

Comment 18 by dallasobrien on 2013-05-03 12:25
hi. ok, after testing with skype 6.3, and the latest snapshot of nvda, on windows 8 pro 32-bit, a few things of note.

when it does work, it tends to be repeting each message twice.

i noticed a problem.
it sometimes works for one message, somebody starts typing back to me, it says they are typing, but then there is no more feedback. not even if they send another message.

@nvaccessAuto
Copy link
Author

Comment 19 by fatma.mehanna on 2013-05-03 16:02
hi,
after testing, i found out the following:
when i type a message, nvda reads it fine, but if someone started to reply, nvda will still repeat my out going message till the one who is replying sent his message.
nvda doesn't announces it though, but i know that a new message came when nvda stops repeating my outgoing message.
on the other hand, when the recipient is sending another message after his reply, nvda repeats "x is typing" till the message arrives.
it doesn't tell me the incoming message automatically too.

@nvaccessAuto
Copy link
Author

Comment 20 by jteh on 2013-05-06 01:29
Typing notifications break this. I wasn't able to get typing notifications at all when I was implementing this, but I was using an iPhone as the other device and it seems iPhone Skype never sends typing notifications.
Changes:
State: reopened

@nvaccessAuto
Copy link
Author

Comment 21 by jteh (in reply to comment 19) on 2013-05-06 01:30
Replying to fatma.mehanna:

when i type a message, nvda reads it fine, but if someone started to reply, nvda will still repeat my out going message till the one who is replying sent his message.

What version of Skype are you using? This is different to the other reports I've had (which I can now reproduce). I can't reproduce yours.

@nvaccessAuto
Copy link
Author

Comment 22 by James Teh <jamie@... on 2013-05-06 03:33
In [567c432]:

skype: Fix code for reporting new messages so that it works when there are typing notifications.

This is a significant rewrite, as typing notifications break several assumptions in the previous code. It also removes some duplicate code and inefficiency.
Note that typing notifications aren't read at this point.
Fixes #2298.

Changes:
State: closed

@nvaccessAuto
Copy link
Author

Comment 23 by dallasobrien on 2013-05-06 12:14
hi. i can confirm, this has repaired most of the problems. it seems to be still double / tripple speaking each message sttill though, but other then that, its working well now.

@nvaccessAuto
Copy link
Author

Comment 24 by jteh on 2013-05-06 12:17
I've no idea why you're seeing double speaking. That suggests the code is monitoring the window multiple times, which shouldn't happen. Do you always get this? If not, is there anything in particular (alt+tabbing, whatever) that makes it start?

@nvaccessAuto
Copy link
Author

Comment 25 by jteh on 2013-05-06 12:30
Btw, please provide your Skype version for any feedback.

@nvaccessAuto
Copy link
Author

Comment 26 by dallasobrien on 2013-05-06 12:47
hi. no, seems to double speak all the time. nothing seems to effect it to do this or not. appears to be happening all the time.
i'm using
Skype™ Version 6.3.0.105
on windows 8 pro
using NVDA snapshot
Version: master-9182,9ffddba

@nvaccessAuto
Copy link
Author

Comment 27 by dallasobrien on 2013-05-06 13:13
after disabling skype talking completely from the skype permitions, it appeared to work perfectly for a while. then i sent a message on an msn contact, and its now repeting again! lol. this seems so strange. i can't understand why its doing this.

@nvaccessAuto
Copy link
Author

Comment 28 by jteh on 2013-05-06 13:15
I have now managed to reproduce the double speaking issue here, but it's intermittent and I haven't been able to make it happen reliably enough to track it down.

@nvaccessAuto
Copy link
Author

Comment 29 by dallasobrien on 2013-05-06 13:21
wow. sometimes at the moment, i'm getting each message up to about 6 to 8 times! lol. and yet, before i sent a message on an msn contact, it was seemingly working correctly, after disabling skype talkings permitions. lol. i thought that it had solved it. but i was wrong.

@nvaccessAuto
Copy link
Author

Comment 30 by dallasobrien on 2013-05-06 13:30
ahh. just noticed something. when i went in to flat review, and looked at the screen, i noticed that my latest message was there, but under it, was an earlier one, as though the screen haden't scrolled down fully. then, i close the current window, which i had been typing in for a bit, and reopened the chat window with that contact, and it seemed to stop repeting, seems to be a problem with to many chats, or perhaps a scrolling issue when lots of chats have been sent and received?

@nvaccessAuto
Copy link
Author

Comment 31 by PZajda on 2013-05-06 13:39
Hi,

Sometimes, NVDA repeat three or four times the last message, then read all the messages list from the beginning (including the options to choose what messages we want to be displayed).
Sometimes it just reads the last message two or three times.
And messages are read even if the conversation window has not the focus (Alt+tabbed) but I still have to test if it is different when the window is minimized.
I use Skype 6.3.59.105 on Windows XP Pro.

@nvaccessAuto
Copy link
Author

Comment 32 by PZajda on 2013-05-06 13:47
An add: when a new conversation is displayed, NVDA reads the message and I have the following error:
ERROR - queueHandler.flushQueue (15:42:51):
Error in func update from eventQueue
Traceback (most recent call last):
File "queueHandler.pyc", line 47, in flushQueue
File "appModules\skype.pyc", line 48, in update
File "comtypes__init__.pyc", line 795, in call
COMError: (-2147024809, 'Incorrect parameter.', (None, None, None, 0, None))

@nvaccessAuto
Copy link
Author

Comment 61 by PZajda on 2013-05-09 09:51
Hi,

Oops, now NVDA doesn't read new messages at all...

I didn't tested with a new conversation for the moment.

@nvaccessAuto
Copy link
Author

Comment 62 by PZajda on 2013-05-09 09:55
The problem seems to be more strange than I though.
I have one conversation window where new messages are read, and one where no messages are...

@nvaccessAuto
Copy link
Author

Comment 63 by PZajda on 2013-05-09 10:36
I think I understand something: the conversation where new messages was not read was already opened when I started NVDA. Maybe there is a reason why NVDA ignores it?

For all new conversation I open, NVDA reads every message I send.
When someone will answer I'll tell you if it is OK too, and when a new conversation I didn't open myself begins...

@nvaccessAuto
Copy link
Author

Comment 64 by PZajda on 2013-05-09 11:09
OK, it seems messages were not read because the window was already opened when NVDA started.

For new chat window, no problem, new messages are read correctly if there are not old messages and if there are some it works too.

@nvaccessAuto
Copy link
Author

Comment 65 by jteh on 2013-05-09 11:11
I can't reproduce the problem of messages not reading if the window is already opened when NVDA starts. I assume you're using compact view? I can't reproduce it in either compact or default views in any case.

@nvaccessAuto
Copy link
Author

Comment 66 by dallasobrien on 2013-05-09 12:58
using the latest snapshot, main, and i don't seem to be getting output at all, from any skype chats. is this supposed to be?
i had thought it had been included in the main snapshots. but maybe i read something wrong, i've still got the skype version as a portable to play with, but i thought i would try the latest snapshot installed.

@nvaccessAuto
Copy link
Author

Comment 67 by fatma.mehanna on 2013-05-09 13:02
using snap 9198, with latest version of skype, windows xp.
nvda stopped repeating my outgoing messages, and it stopped reading the whole conversation list.
thanks.

@nvaccessAuto
Copy link
Author

Comment 68 by jteh (in reply to comment 66) on 2013-05-10 02:21
Replying to dallasobrien:

using the latest snapshot, main, and i don't seem to be getting output at all, from any skype chats. is this supposed to be?

It should work correctly. Please confirm that you have reporting of dynamic content changes enabled (NVDA+5 or Object Presentation dialog).

@nvaccessAuto
Copy link
Author

Comment 69 by dallasobrien on 2013-05-10 02:59
yes. its enabled.
i'm currently running,
Version: master-9198,56654c3

@nvaccessAuto
Copy link
Author

Comment 70 by jteh on 2013-05-10 03:05
Please try with the previous snapshot (9195,3084070). I don't understand where this could have broken.

@nvaccessAuto
Copy link
Author

Comment 71 by dallasobrien on 2013-05-10 08:23
hi, no, that doesn't seem to work either.

@nvaccessAuto
Copy link
Author

Comment 72 by Ahiiron on 2013-05-12 16:08
Working here. Using Skype latest 6.3, master-9198,56654c3, Windows 8 x64.
Have a few chats going, all reading properly when I'm focused in Skype.

@nvaccessAuto
Copy link
Author

Comment 73 by jteh on 2013-05-14 12:15
Dallas, can you please verify that a) this still doesn't work with latest master and b) it still works with the last build that worked for you? I'm really struggling to follow what broke here. If these are both true, I guess I'll try to come up with a try build which does more debug logging. :)

@nvaccessAuto
Copy link
Author

Comment 74 by dallasobrien (in reply to comment 73) on 2013-05-14 14:01
Replying to jteh:

Dallas, can you please verify that a) this still doesn't work with latest master

hi, i solved the problem.
Gods, i could kick myself.
it was the fact that i had an old skype app module in place, and had totally forgotten about it.
the only thing this skype script appears to do, is stop nvda reading the user names as you arrow through the contact list, it just reads the display names. would be cool if that could be put in the default app module for skype that has been constructed, but i don't know much about coding to show you what this did. i could of course, send you the module file to look at if your interested. never the less, with that removed, its working fine once more.

@nvaccessAuto
Copy link
Author

Comment 75 by jteh (in reply to comment 74) on 2013-05-14 23:03
Replying to dallasobrien:

the only thing this skype script appears to do, is stop nvda reading the user names as you arrow through the contact list, it just reads the display names.

The latest Skype code in master should already be doing this. For example, I see "Echo / Sound Test Service Online" instead of "Echo / Sound Test Service (echo123) Online".

@nvaccessAuto
Copy link
Author

Comment 76 by jteh on 2013-05-14 23:05
@PZajda, are you still experiencing issues with Skype chats not reading if they're open when NVDA starts? Did you always have this issue even with the try builds?

@nvaccessAuto
Copy link
Author

Comment 77 by PZajda (in reply to comment 76) on 2013-05-14 23:19
Replying to jteh:

@PZajda, are you still experiencing issues with Skype chats not reading if they're open when NVDA starts? Did you always have this issue even with the try builds?

With master-9226,71b968f everything work good. Thanks.
Maybe another strange thing from Windows...

Replying to jteh:

The latest Skype code in master should already be doing this. For example, I see "Echo / Sound Test Service Online" instead of "Echo / Sound Test Service (echo123) Online".

Yes, and I think preview behavior was better because we had all informations.
I noticed that but I was not sure if this was really the case because before I used Skype talking. Having the display and user names avoids us to miss some informations which could be useful.

@nvaccessAuto
Copy link
Author

Comment 78 by jteh (in reply to comment 77) on 2013-05-14 23:30
Replying to PZajda:

The latest Skype code in master should already be doing this. For example, I see "Echo / Sound Test Service Online" instead of "Echo / Sound Test Service (echo123) Online".

Yes, and I think preview behavior was better because we had all informations.

Actually, the status was missing previously. You either have the display name and status or display name and Skype name. Those are the two options Skype provides. For what it's worth, I don't think even sighted people see the Skype name in the list; you have to look elsewhere for that.

@nvaccessAuto
Copy link
Author

Comment 79 by jteh on 2013-05-14 23:30
Changes:
State: closed

@nvaccessAuto
Copy link
Author

Comment 80 by jteh (in reply to comment 78) on 2013-05-14 23:35
Replying to jteh:

Actually, the status was missing previously.

Sorry. I meant the number of unread events, not the status.

@nvaccessAuto
Copy link
Author

Comment 81 by dallasobrien (in reply to comment 78) on 2013-05-15 08:50
Replying to jteh:

Actually, the status was missing previously. You either have the display name and status or display name and Skype name. Those are the two options Skype provides. For what it's worth, I don't think even sighted people see the Skype name in the list; you have to look elsewhere for that.

hi, yes, its working correctly in master, ... shows you how offten i see my contacts list. lol.
and you are right, sighted users do not see the skype ID, they have to right click the name, and click view profile to obtain that information.

@nvaccessAuto
Copy link
Author

Comment 82 by dallasobrien on 2013-05-19 13:54
hi, just found out something interesting. when atempting to save a file when somebody sends something to me on skype, it causes an error sound, and speech to stop, untill you hit escape to get out of the save dialog.
only seems to be doing so with the versions of nvda with the skype stuff in, but don't quote me on that, as i have not had to save a file on skype for some time.

@nvaccessAuto
Copy link
Author

Comment 83 by ateu on 2013-05-23 09:03
Hi Jamie

NVDA no longer announces when someone is typing. Have you removed this code?

Thanks

@nvaccessAuto
Copy link
Author

Comment 84 by jteh (in reply to comment 83) on 2013-05-27 06:38
Replying to ateu:

NVDA no longer announces when someone is typing. Have you removed this code?

I never really intended it to read this, though it did sometimes in the past. These notifications could become very annoying for some users and I didn't want to implement a configuration dialog just for Skype as part of this feature. If you want this, please file another enhancement request and we can discuss whether this should be optional.

@nvaccessAuto
Copy link
Author

Comment 85 by ateu (in reply to comment 84) on 2013-05-30 00:58
Replying to jteh:

I never really intended it to read this, though it did sometimes in the past. These notifications could become very annoying for some users and I didn't want to implement a configuration dialog just for Skype as part of this feature. If you want this, please file another enhancement request and we can discuss whether this should be optional.

No, I don't think this is an important think.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants