GNOME Bugzilla – Bug 443067
[verified] sayAll by sentence skips content that is in HTML tables in Firefox
Last modified: 2008-07-22 19:27:28 UTC
Steps to reproduce: 1. Navigate to some text in Firefox that precedes an HTML table 2. With sayAll set to read by sentence, launch sayAll Expected results: Orca would read the entire page from the present location. Actual results: Orca speaks the table description and then skips the remainder of the table with the exception of the last table cell. patch to follow
Created attachment 89213 [details] [review] patch to hopefully solve the problem This should also solve the problem Will commented about here: http://bugzilla.gnome.org/show_bug.cgi?id=437753#c6 Mike please test.
This doesn't solve it for me on techbargains.com; it does on sfgate.com and live.gnome.org. Time to figure out what's going on with techbargains....
Sorry to be spammy: If I move focus to the top of the page of techbargains.com, sayAll works as expected.
The code that's doing 'autospeak' is as follows. I wonder if the lines marked with "-->" are not ending up at the same spot as when you move focus to the top of the page by hand. What do you think? if finishedLoading: # We want to present something regarding where the # caret is in the newly loaded page. If the caret # isn't anywhere, we will set it to the top of the # page. # [obj, characterOffset] = self.getCaretContext() if not obj: ---> [obj, characterOffset] = self.findNextCaretInOrder() ---> self.setCaretContext(obj, characterOffset) if not obj: return # When a document is loaded, we are going to # assume that the newly loaded document frame has # focus. Gecko doesn't seem to give us a focus # event for this, though, so we will force the # locus of focus here. # orca.setLocusOfFocus(event, obj, False) # For braille, we just show the current line # containing the caret. For speech, however, we # will start a Say All operation if the caret is # in an uneditable area (e.g., it's not in a text # entry area such as Google's search text entry). # Otherwise, we'll just speak the line that the # caret is on. # self.updateBraille(obj) if obj.state.count(atspi.Accessibility.STATE_EDITABLE): self.speakContents( self.getObjectContentsAtOffset(obj, characterOffset)) elif settings.enableSpeech: self.sayAll(None)
While we still have the problem of not starting from the correct place when a new page is opened I think this patch solves the origional problem reported in the bug. Sayall now seems to work when encountering tables when reading by sentense.
Okie dokie. Patch checked in.
I see it's verified by Mike. Closing as FIXED.