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

in Mozilla Firefox Downloads window, NVDA repeats the information associated to the file being downloaded each time the download progress is updated #4417

Open
nvaccessAuto opened this issue Aug 25, 2014 · 37 comments

Comments

@nvaccessAuto
Copy link

Reported by blindbhavya on 2014-08-25 10:10
Steps to reproduce
Download something (preferably big that may take enough download time to investigate and reproduce the issue successfully).
Press Ctrl + J and ensure that your focus is on the window named Libraries.
Now listen to NVDA repeating what is mentioned in the summary line of this ticket.
Is this an NVDA issue or an FX one?
I am using FX 31

@nvaccessAuto
Copy link
Author

Comment 1 by jteh on 2014-08-25 11:50
This is a tricky one. All of the information is contained in the name of the list item. The name is technically changing every time the information changes, so Firefox notifies NVDA that the name changed. In response, NVDA reads the new name. Normally, reading the new name is desirable, but here, it's obviously annoying. I guess the only way to work around this is to special case it.

@nvaccessAuto
Copy link
Author

Comment 2 by blindbhavya on 2014-08-25 16:14
Do resolve this issue when you get the time.
Thank you.

@nvaccessAuto
Copy link
Author

Comment 3 by blindbhavya on 2014-09-15 12:41
Hi.
Just posting a reminder, since quite a few new devs have come up recently.
Also, do you think this ticket could be associated the keywords 'good for new devs'?

@nvaccessAuto
Copy link
Author

Comment 4 by blindbhavya on 2014-09-15 12:45
Changes:
Changed title from "in Firefox Downloads dialog NVDA keeps repeating the file being downloaded and all its other information" to "in Mozilla Firefox Downloads window, NVDA repeats the information associated to the file being downloaded each time the download progress is updated"

@nvaccessAuto
Copy link
Author

Comment 5 by blindbhavya on 2014-09-15 12:45
Hi.
I am wondering, why did you initially change the component of this ticket from Speech to Core?
Please clarify m doubt.

@nvaccessAuto
Copy link
Author

Comment 6 by jteh on 2014-09-15 21:30
Any dev is welcome to tackle any ticket, but it's probably not easy to explain how to do this one to a new developer. I'm not even 100% sure how I'd fix it myself without some thought.

It's not specifically speech related because you wouldn't fix this by modifying NVDA's speech support. You would fix it by modifying the way this event is handled for this specific case.

@nvaccessAuto
Copy link
Author

Comment 7 by blindbhavya on 2014-09-16 01:26
Thanks for the clarification.

@nvaccessAuto
Copy link
Author

Comment 8 by driemer.riemer@... on 2015-01-09 14:50
Hey jamie,
I am gonna try to tackle this one. It may not be easy to find the accurate info, but I can probably parse the string.

@nvaccessAuto
Copy link
Author

Comment 9 by driemer.riemer@... on 2015-01-09 15:57
Hey,
Place this in your appModules folder, and we could include it into the core. Just replaceing the firefox.py would work probably. Here is both firefox.py and a patch generated off of master because i did the work in the wrong nvda repo.

Btw, would you prefer paches or linking to a git repo, or a diff?

@nvaccessAuto
Copy link
Author

nvaccessAuto commented Jan 9, 2015

Attachment 0001-In-firefox-when-the-status-of-a-download-changes-nvd.patch added by driemer.riemer@... on 2015-01-09 15:59
Description:
Update:
File added from Trac
0001-In-firefox-when-the-status-of-a-download-changes-nvd.patch.txt

@nvaccessAuto
Copy link
Author

Comment 11 by mdcurran on 2015-03-18 03:56
Code review:
The name of the window "library" may be a translatable string in Firefox. This will certainly work for english, but other languages may break.

I'm having trouble following your logic. to me it looks like if the new value is the came as what is cached, then you let it through to be spoken. If it is not the same, you cache it. Shouldn't it be that you let it through to be spoken only if it is different from the cache?

@nvaccessAuto
Copy link
Author

Comment 12 by driemer.riemer@... on 2015-03-18 15:50
What I am doing is cache everything but the percentage. Then if nothing has changed ignoring the percentage, we assume we shouldn't speak the name. As with translatable strings, how do I detect the window?

@nvaccessAuto
Copy link
Author

Comment 13 by driemer.riemer@... on 2015-03-18 16:17
Try this updated firefox.py. What I did,

*check on ROLE_LISTITEM and STATE_SELECTED

This aught to fix the issue mentioned with translatable strings.

@nvaccessAuto
Copy link
Author

nvaccessAuto commented Mar 18, 2015

Attachment firefox.2.py added by driemer.riemer@... on 2015-03-18 16:18
Description:
Update:
File added from Trac

firefox.2.py.txt

@nvaccessAuto
Copy link
Author

Comment 14 by jteh on 2015-03-18 22:47
You want this check to be as specific as possible. Hint: The id attribute (obj.IA2Attributes["id"]) on the list itself is "downloadsRichListBox".

@nvaccessAuto
Copy link
Author

nvaccessAuto commented Mar 19, 2015

Attachment firefox.3.py added by driemer.riemer@... on 2015-03-19 01:35
Description:
Changes in this version are: Changed if statement.
Update:
File added from Trac
firefox.3.py.txt

@nvaccessAuto
Copy link
Author

Comment 15 by driemer.riemer@... (in reply to comment 14) on 2015-03-19 01:38
Replying to jteh:

You want this check to be as specific as possible. Hint: The id attribute (```obj.IA2Attributes[on the list itself is "downloadsRichListBox".

Oh. I didn't know that IA2Attributes could be checked. That is a much better way of identifying the window. I also am checking on the class of the list item now.

if obj.role == controlTypes.ROLE_LISTITEM and obj.parent.IA2Attributes["id"]("id"]```)) == "downloadsRichListBox" and obj.IA2Attributes["class"] == u'download download-state': #the list's id, and the class of  the list item seem to identify this well.

The newly attached file implements these changes, and also I changed the copyright date at the top from 2012 to 2015.

@nvaccessAuto
Copy link
Author

Comment 16 by driemer.riemer@... on 2015-03-19 02:14
Woopsi. That seems to break in the search bar.

@nvaccessAuto
Copy link
Author

nvaccessAuto commented Mar 19, 2015

Attachment firefox.py added by driemer.riemer@... on 2015-03-19 02:17
Description:
Most recent version as of 16.
Update:
File added from Trac
firefox.py.txt

@nvaccessAuto
Copy link
Author

Comment 17 by briang1 on 2015-03-19 07:50
For some time now I've just set the download going, opened the library section but moved the cursor to the file below the one I'm downloaded. This seems to just give you the percentage or beeps according to what you have set up. Of course remembering to put the thing back is most important!
There also does seem to be something not quite right about the options you get after a download. and I usually use the application key to get a menu to bring up the open containing folder option.

@nvaccessAuto
Copy link
Author

Comment 18 by driemer.riemer@... on 2015-03-24 17:16
Hi,
This is ready for another code review. the latest file is firefox.py.

@nvaccessAuto
Copy link
Author

Comment 19 by driemer.riemer@... on 2015-05-19 19:31
Just a friendly reminder that this ticket is ready for a code review.

@nvaccessAuto
Copy link
Author

Comment 21 by bdorer on 2015-05-29 16:54
The patch is working here, on NVDA next with FF40A2 so I vote for implementing.

@nvaccessAuto
Copy link
Author

Comment 22 by driemer.riemer@... on 2015-07-09 13:24
Hi,
I have another patch for firefox that I am gonna create a ticket for, but I piggy backed the code for that ontop of this ticket and thus it will be blocking this one. Is there any way we could get this into 2015.3 maybe?
Thanks.

@nvaccessAuto
Copy link
Author

Comment 23 by jteh on 2015-07-09 23:28
Is there any good reason to base the new patch on top of this one? Otherwise, this should generally be avoided.

Whether this gets into 2015.3 depends on whether I can find time to review it before then. At this stage, I'm not sure if that's going to happen.

@ehollig
Copy link
Collaborator

ehollig commented Sep 2, 2017

@derekriemer, is this something you still would like to be included into core? Should I assign you to this issue, or should I close this, and the attachment be included in a PR?

@Brian1Gaff
Copy link

Brian1Gaff commented Sep 2, 2017 via email

@derekriemer
Copy link
Collaborator

I saw this. I don't know what this is supposed to mean, because it's just weird.

@Brian1Gaff
Copy link

Brian1Gaff commented Sep 3, 2017 via email

@derekriemer
Copy link
Collaborator

No, I have seen your issue with the try build I triggered the other night. It's just strange.

@Brian1Gaff
Copy link

Brian1Gaff commented Sep 3, 2017 via email

@derekriemer
Copy link
Collaborator

It's just not an issue any more unless the top file is focused.

@Brian1Gaff
Copy link

Brian1Gaff commented Sep 4, 2017 via email

@Adriani90
Copy link
Collaborator

@derekriemer are you planning to raise a PR with the coresponding patch? Thank you very much for your work.

@josephsl
Copy link
Collaborator

josephsl commented Jan 2, 2019

Hi,

Er, @jcsteh, is this something that might be doable from Mozilla side as well? CC @MarcoZehe

@jcsteh
Copy link
Contributor

jcsteh commented Jan 10, 2019

I'm not sure how we could "fix" this in Firefox. The name of the list item is changing, so we fire a nameChange event accordingly. If we didn't do this, as an example, braille wouldn't update the name. A real fix for this would probably require some standardised way to indicate to a screen reader that this name shouldn't be "spoken" when it changes, but that feels pretty screen reader specific; we'd need a semantic abstraction for that.

@Adriani90
Copy link
Collaborator

A solution could be possible I guess if braille and speech can behave differently from an output perspective. At least this is how it works in Jaws. Braille outputs instantly and speech does it only when moving the focus away and then back on the item.

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

7 participants