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

Outlook 2007: calendar When Focused on Appointment - NVDA Does NOT Read #2943

Closed
nvaccessAuto opened this issue Jan 24, 2013 · 34 comments
Closed
Labels
Milestone

Comments

@nvaccessAuto
Copy link

Reported by kevinchao89 on 2013-01-24 16:09
Win7, Outlook 2007, and NVDA 2012.3.1

Open Outlook 2007;
CTRL+2 for Calendar;
TAB or SHIFT+TAB to navigate among appointments;
Actual: keyboard focus moves to appointment, but NVDA does not speak appointment summary
Expected: NVDA to speak appointment summary and not have to manually query for such data using NVDA+UP ARROW or NVDA+TAB
Blocking #3934

@nvaccessAuto
Copy link
Author

Comment 1 by Joseph Lee <joseph.lee22590@... on 2014-04-22 06:29
In [b864dae]:

Pressing TAB or Shift+TAB in Outlook Calendar now announces appointments if any. Initial work for #2943 with tweaks from 3934.
In Outlook app module, added an overlay class to deal with Outlook Calendar which allows announcement of time slots and announcing appointments when pressing TAB or Shift+TAB. This fixes #2943.
The overall code is based on t3934 as the needed functionality depends on ability to hear screen text when pressing arrow keys and tab key in Calendar.

Changes:
State: closed

@nvaccessAuto
Copy link
Author

Comment 2 by nvdakor on 2014-04-22 06:33
Hi,
Initial fix for this is now available:

  • Branch: t2943
  • Commit ID: b864dae
  • Based on: t3934
    Technically, merged master into t3934, then added t2943 code, as some functionality depends on ability to hear time slots in Outlook Calendar (which wasn't really the scope for Support for navigating day view in Outlook Calendar #3934). This works well in Outlook 2010. Thanks (and sorry for misunderstanding in 3934).

@nvaccessAuto
Copy link
Author

Comment 3 by nvdakor on 2014-04-22 06:35
Hi,
Hmmm, again, I don't know why, but when I use specific keywords in commit messages, Trac seems to think that I have fixed the ticket (when I didn't); sorry jteh and mdcurran.

@nvaccessAuto
Copy link
Author

Comment 4 by mdcurran on 2014-04-30 05:52
Changes:
State: reopened

@nvaccessAuto
Copy link
Author

Comment 5 by mdcurran (in reply to comment 3) on 2014-04-30 05:55
Replying to nvdakor:

Hmmm, again, I don't know why, but when I use specific keywords in commit messages, Trac seems to think that I have fixed the ticket (when I didn't); sorry jteh and mdcurran.

sorry, our fault for not explaining before you started commiting. There are seveal keywords if seen directly before a ticket number will take a particular action. Fixes #2943 will close as fixed. Incubates #2943 will incubate. Re #2943 will just comment on the ticket.

@nvaccessAuto
Copy link
Author

Comment 6 by mdcurran on 2014-04-30 06:03
nvdakor:
You should also bind leftArrow and rightArrow as these move through the days.
For tab and shift+tab, I think it might ben an idea in the script to check if the focus has moved after sending the gesture as if there are no more appointments focus jumps to the Back button, but the script will still speak the value.
I'm happy to make these changes if you like as I'm deep in Outlook stuff at the moment as you can see.

@nvaccessAuto
Copy link
Author

Comment 7 by nvdakor on 2014-04-30 06:07
Hi,
I once thought about binding left/right arrows, but it announces rows for tasks and such, so I gave up on it.
For the remaining coding, please do so (I'm studying for my midterms and you're working on Outlook support at the moment). Thank you.

@nvaccessAuto
Copy link
Author

Comment 8 by mdcurran (in reply to comment 7) on 2014-04-30 06:10
Replying to nvdakor:

I once thought about binding left/right arrows, but it announces rows for tasks and such, so I gave up on it.

Mm. I have seen that also. I'm currently thring to work out exactly where that is coming from. I think it is some kind of UIA focus event coming from a side bar with tasks or something... it always talks about empty rows for me. I will try and suppress this.

@nvaccessAuto
Copy link
Author

Comment 9 by nvdakor (in reply to comment 8) on 2014-04-30 06:14
Replying to mdcurran:

Replying to nvdakor:

I once thought about binding left/right arrows, but it announces rows for tasks and such, so I gave up on it.

Mm. I have seen that also. I'm currently thring to work out exactly where that is coming from. I think it is some kind of UIA focus event coming from a side bar with tasks or something... it always talks about empty rows for me. I will try and suppress this.

I see.
Speaking of this ticket: I once read that you can use COM to work with Outlook Calendar, which may also solve #2942. Would that work?

@nvaccessAuto
Copy link
Author

Comment 10 by mdcurran (in reply to comment 9) on 2014-04-30 06:23
Replying to nvdakor:

Speaking of this ticket: I once read that you can use COM to work with Outlook Calendar, which may also solve #2942. Would that work?

In theory, yes. But in the past I've had bad luck with Outlook's COM implementation. Certain things caused it to pop up a security dialog asking for access to the messages. this was in Outlook 2007 I think For now I would like to get as far as possible with out relying on COM, and then after that, investigate COM again to possibly add little bits like the appointment count and such.

@nvaccessAuto
Copy link
Author

Comment 11 by mdcurran on 2014-04-30 06:58
Those empty rows only show up if the daily task list is showing. View -> layout -> daily task list (on the ribbon). If you set this to off it seems to fix the issue. Though I will still try to fix that.

@nvaccessAuto
Copy link
Author

Comment 12 by mdcurran on 2014-04-30 06:59
However, now I have the issue where the arrows will not do anything at all (i.e. the value does not change). I must have mucked up the view pretty bad in Outlook.

@nvaccessAuto
Copy link
Author

Comment 13 by Michael Curran <mick@... on 2014-05-05 10:53
In [620f6eb]:

Merge branch 't2943' into next (Outlook Calendar support, 2007 and above). Incubates #2943

Changes:
Added labels: incubating

@nvaccessAuto
Copy link
Author

Comment 14 by nvdakor on 2014-05-06 08:52
Hi Mick and others,
Here is a page listing keystrokes for Outlook, including Calendar views:
http://office.microsoft.com/en-us/outlook-help/keyboard-shortcuts-HP003084223.aspx

@nvaccessAuto
Copy link
Author

Comment 15 by Michael Curran <mick@... on 2014-05-07 02:10
In [5d28dce]:

Merge branch 't2943' into next. Incubates #2943

@nvaccessAuto
Copy link
Author

Comment 17 by nvdakor on 2014-05-12 02:46
Hi Andrewd,
Try with the next snapshot and see if it reads calendar time slots automatically. Also, please don't use changesentry to write comments, as that field is used at the end when the feature is ready. Thanks.

@nvaccessAuto
Copy link
Author

Comment 18 by jteh on 2014-05-12 02:57
comment:17 was referring to snapshots for the "next" branch, not the next master snapshot. This work is only available on the "next" branch.

@nvaccessAuto
Copy link
Author

Comment 19 by nvdakor on 2014-05-13 12:19
Hi,
Another annoyance: in calendar view, after moving around the time slots (whether or not we have appointments), when a user presses TAB or Shift+TAB, the following is heard:

  • If there are no appointments, time slot is repeated before other screen elements are spoken (such as back button in Outlook 2010).
  • If an appointment was focused, the appointment detail is spoken before other screen elements are spoken.
    After debugging, it appears that TAB and Shift+TAB should have their own script bindings, we should implement lose focus event or something. I'm sure there is a simple way to see if the next event would be loseFocus and do something about it.
    Thanks.

@nvaccessAuto
Copy link
Author

Comment 20 by mdcurran (in reply to comment 19) on 2014-05-13 22:35
Replying to nvdakor:
I did work on this issue a little, but found that the focus event for the next screen element (In my Outlook its the Back button) is delayed more than at least 0.5 ms. At first I did similar to what I did in Excel in that there was a while loop that would keep pumping the core until a new focus event occurred or a timeout was hit. But as this ran all the time arowing through the calendar became slower than was nice. I think I agree that tab and shift+tab therefore should be separated. They can do similar to what I just explained, but then run the original code. this then would only slow down announcement of appointments, rather than all movement in the calendar.

@nvaccessAuto
Copy link
Author

Comment 21 by Michael Curran <mick@... on 2014-05-14 00:45
In [416a39d]:

Outlook appModule: If fetching the native object model fails the first time, do a focus juggle away from Outlook and back again to ensure that its COM server gets registered.

This may fix an issue where some users did not get COM support unless the restarted NVDA fter starting Outlook.
Re #2943

@nvaccessAuto
Copy link
Author

Comment 22 by Michael Curran <mick@... on 2014-05-14 00:45
In [c35de65]:

Outlook appModule Calendar view: There is actually no need for any scripts at all as NVDA was knowingly dropping focus winEvents. Therefore override isDuplicateIAccessibleEvent for this object and return False always. Outlook always fires useful focus events anyway.

Note that This is only tested with Outlook 2010, I hope 2007 also fires these events?

re #2943

@nvaccessAuto
Copy link
Author

Comment 23 by Michael Curran <mick@... on 2014-05-14 00:51
In [0b6f13a]:

Merge branch 't2943' into next. Incubates #2943

@nvaccessAuto
Copy link
Author

Comment 24 by nvdakor on 2014-05-14 06:59
Hi,
In Outlook 2013, whenever a user moves through time slots or when pressing TAB, the name of the focused object is announced as well. Haven't tested long enough to see if name change is the cause of this. Thanks.

@nvaccessAuto
Copy link
Author

Comment 25 by mdcurran (in reply to comment 24) on 2014-05-14 07:02
Replying to nvdakor:

In Outlook 2013, whenever a user moves through time slots or when pressing TAB, the name of the focused object is announced as well. Haven't tested long enough to see if name change is the cause of this. Thanks.

Is this new since the change to remove all key bindings, or did it always exist?

@nvaccessAuto
Copy link
Author

Comment 26 by nvdakor on 2014-05-14 07:25
Hi,
Further to the previous comment, it appears gain focus event for a list item is fired when we change time slots, hence the announcement.
I'll remove the actual move by entry script (and will need to update the headers as well).

@nvaccessAuto
Copy link
Author

Comment 27 by Joseph Lee <joseph.lee22590@... on 2014-05-14 07:36
In [7e46b0c]:

Outlook app module/CalendarView: remove the unneeded script itself, since there's no point in keeping the script (might be added back later), also updated copyright headers (copyright year, URL). re #2943.

@nvaccessAuto
Copy link
Author

Comment 28 by Michael Curran <mick@... on 2014-05-23 05:46
In [46c3690]:

Merge branch 't2943' into next. Incubates #2943

@nvaccessAuto
Copy link
Author

Comment 29 by nvdakor (in reply to comment 25) on 2014-05-24 01:59
Replying to mdcurran:

Replying to nvdakor:

In Outlook 2013, whenever a user moves through time slots or when pressing TAB, the name of the focused object is announced as well. Haven't tested long enough to see if name change is the cause of this. Thanks.

Is this new since the change to remove all key bindings, or did it always exist?

After testing the 416a39d revision (the one before we removed the movement gesture), it appears that it always has been that way - even with gestures included, Outlook 2013 reports calendar view items (time slots) as list items. I first checked out 416a39d via Tortoise Git, then ran the generated launcher (generated via SCons) on a system with Outlook 2013, as well as the current next branch (which removes the entry gestures). Both instances returns role of list item for time slots in Calendar 2013.
Also, further tests shows that Outlook 2013 uses lists in Calendar, one per day, with time slots as list items. Since the focus event is fired for the list, this might explain why extraneous info was heard as one moves through time slots in Outlook 2013. I'm fiddling with event_NvDAObject_init code to see what can be done. Another option might be to assign clanedar window as the parent of the time slot, but not sure if this may solve this problem and am worried about future problems that might arise. Thanks.

@nvaccessAuto
Copy link
Author

Comment 31 by andrewd on 2014-06-02 01:13
Comments on Outlook 2010 Calendar with Snapshot 10664,79de5c1. Summary: great. A couple of things to consider for documentation. In Week View when arrowing from day to day "Has appointment" is not announced unless either the whole day or time of the appointment is selected. In the month view this isn't an issue, as time slots within a day are not selectable unless I've missed something. However, tabbing through appointments does not work unless high detail is selected.
Andrew

@nvaccessAuto
Copy link
Author

Comment 32 by Michael Curran <mick@... on 2014-06-02 03:28
In [dfd730e]:

Outlook 2013 calendar: suppress name change and state change as they are not needed and cause extra pointless info in Outlook 2013. Re #2943

@nvaccessAuto
Copy link
Author

Comment 33 by Michael Curran <mick@... on 2014-06-02 03:29
In [9632e36]:

Merge branch 't2943' into next. Incubates #2943

@nvaccessAuto
Copy link
Author

Comment 34 by Michael Curran <mick@... on 2014-06-09 06:26
In [a4c1723]:

Merge branch 't2943' into next. Incubates #2943

@nvaccessAuto
Copy link
Author

Comment 35 by Michael Curran <mick@... on 2014-06-26 07:11
In [b1ed776]:

Merge branch 't2943'. Fixes #2943

Changes:
Removed labels: incubating
State: closed

@nvaccessAuto
Copy link
Author

Comment 36 by mdcurran on 2014-06-26 07:13
Changes:
Milestone changed from None to 2014.3

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

No branches or pull requests

1 participant