Link destinations exposed as links in MSHTML virtual buffers #1326

Closed
nvaccessAuto opened this Issue Jan 19, 2011 · 4 comments

1 participant

@nvaccessAuto

Reported by briang1 on 2011-01-19 19:33
This problem is best demonstrated as follows.
Launch the user guide fro nvda in IE7
Launch elements list and leave as links
go down the tree view to the 66th item.
From here on I see numerous tree items with no text mixed in with some legitimate links
Click one of the blank items
You will find that the link in question is one character wide only and usually below another link.
This effect is not seen in firefox.
If you attempt to click this link nothing will occur as althoug as you cursor through it, it says link, its presumably not one. Obviously I do not know if this is a spurious report coming from IE or a bug in mshtml code, but it does affect web sites as well.

Note its in 2010.2 and snaps as well.
Short demo log from 2010.2.
INFO - nvda (19:15:38):
Starting NVDA
INFO - core.main (19:15:38):
Config dir: C:\nvda extra\userConfig
DEBUG - core.main (19:15:38):
setting language to Windows
INFO - core.main (19:15:38):
NVDA version 2010.2
INFO - core.main (19:15:38):
Using Windows version sys.getwindowsversion(major=5, minor=1, build=2600, platform=2, service_pack='Service Pack 3')
INFO - core.main (19:15:38):
Using Python version 2.7 (r27:82525, Jul 4 2010, 09:01:59) v.1500 32 bit (Intel)
INFO - core.main (19:15:38):
Using comtypes version 0.6.2
DEBUG - core.main (19:15:38):
Creating wx application instance
DEBUG - core.main (19:15:38):
Speech Dictionary processing
DEBUG - speechDictHandler.SpeechDict.load (19:15:38):
Loading speech dictionary '.\userConfig\speechDicts\default.dic'...
DEBUG - speechDictHandler.SpeechDict.load (19:15:38):
file '.\userConfig\speechDicts\default.dic' not found.
DEBUG - speechDictHandler.SpeechDict.load (19:15:38):
Loading speech dictionary 'builtin.dic'...
DEBUG - speechDictHandler.SpeechDict.load (19:15:38):
4 loaded records.
DEBUG - core.main (19:15:38):
Initializing speech
INFO - synthDrivers.espeak.SynthDriver.init (19:15:38):
Using eSpeak version 1.44.21 02.Jan.11
DEBUG - speechDictHandler.SpeechDict.load (19:15:38):
Loading speech dictionary '.\userConfig\speechDicts\espeak-english (en_en).dic'...
DEBUG - speechDictHandler.SpeechDict.load (19:15:38):
4 loaded records.
INFO - synthDriverHandler.setSynth (19:15:38):
Loaded synthDriver espeak
INFO - core.main (19:15:38):
Using wx version 2.8.11.0 (msw-unicode)
DEBUG - core.main (19:15:38):
Initializing braille
INFO - braille.initialize (19:15:38):
Using liblouis version 2.1.1
INFO - braille.BrailleHandler.setDisplayByName (19:15:38):
Loaded braille display driver noBraille
DEBUG - core.main (19:15:38):
Initializing NVDAHelper
DEBUG - core.main (19:15:38):
Initializing displayModel
DEBUG - core.main (19:15:38):
Initializing GUI
DEBUG - core.main (19:15:39):
Initializing appModule Handler
DEBUG - appModuleHandler.getKeyMapFileName (19:15:39):
Found keymap file for default at .\appModules_default_desktop.kbd
DEBUG - appModuleHandler.AppModule.loadKeyMap (19:15:39):
added 80 bindings to appModule <default (appName csrss, process ID 692) at address 21a65f0> from file .\appModules_default_desktop.kbd
DEBUG - core.main (19:15:39):
initializing Java Access Bridge support
DEBUG - core.main (19:15:39):
Initializing winConsole support
DEBUG - core.main (19:15:39):
Initializing UIA support
WARNING - core.main (19:15:39):
UIA not available
DEBUG - core.main (19:15:39):
Initializing IAccessible support
DEBUG - core.main (19:15:39):
Initializing keyboard handler
DEBUG - core.main (19:15:39):
initializing mouse handler
DEBUG - appModuleHandler.getKeyMapFileName (19:15:39):
Found keymap file for _default at .\appModules_default_desktop.kbd
DEBUG - appModuleHandler.AppModule.loadKeyMap (19:15:39):
added 80 bindings to appModule from file .\appModules_default_desktop.kbd
DEBUG - appModuleHandler.getKeyMapFileName (19:15:39):
No keymapFile for explorer
DEBUG - core.main (19:15:39):
starting core pump
DEBUG - core.CorePump.__init
(19:15:39):
Core pump starting
DEBUG - core.main (19:15:39):
Initializing watchdog
INFO - core.main (19:15:39):
NVDA initialized
DEBUG - core.main (19:15:39):
entering wx application main loop
IO - speech.speakText (19:15:39):
Speaking u'Taskbar'
IO - keyboardHandler.internal_keyDownEvent (19:15:47):
key press: nvda+n
DEBUG - appModuleHandler.getKeyMapFileName (19:15:47):
Found keymap file for default at .\appModules_default_desktop.kbd
DEBUG - appModuleHandler.AppModule.loadKeyMap (19:15:47):
added 80 bindings to appModule from file .\appModules_default_desktop.kbd
DEBUG - appModuleHandler.getKeyMapFileName (19:15:47):
No keymapFile for nvda
IO - speech.speakText (19:15:47):
Speaking u'unknown'
IO - speech.speakText (19:15:47):
Speaking u'NVDA menu'
IO - keyboardHandler.internal_keyDownEvent (19:15:49):
key press: extendeddown
IO - speech.speakText (19:15:49):
Speaking u'Preferences subMenu p'
IO - keyboardHandler.internal_keyDownEvent (19:15:50):
key press: extendeddown
IO - speech.speakText (19:15:50):
Speaking u'Tools subMenu t'
IO - keyboardHandler.internal_keyDownEvent (19:15:50):
key press: extendeddown
IO - speech.speakText (19:15:50):
Speaking u'Help subMenu h'
IO - keyboardHandler.internal_keyDownEvent (19:15:52):
key press: return
IO - speech.speakText (19:15:52):
Speaking u'User guide u'
IO - keyboardHandler.internal_keyDownEvent (19:15:53):
key press: extendeddown
IO - speech.speakText (19:15:53):
Speaking u'Keyboard Command Quick Reference k'
IO - keyboardHandler.internal_keyDownEvent (19:15:53):
key press: extendedup
IO - speech.speakText (19:15:53):
Speaking u'User guide u'
IO - keyboardHandler.internal_keyDownEvent (19:15:54):
key press: return
DEBUGWARNING - watchdog.watcher (19:15:54):
Trying to recover from freeze, core stack:
File "nvda.pyw", line 139, in
File "core.pyo", line 260, in main
File "wx_core.pyo", line 8007, in MainLoop
File "wx_core.pyo", line 7303, in MainLoop
File "gui__init
.pyo", line 144, in onShowGuiCommand
File "gui__init__.pyo", line 347, in onActivate
File "wx_windows.pyo", line 2190, in PopupMenu
File "gui__init__.pyo", line 310, in

DEBUG - appModuleHandler.getKeyMapFileName (19:15:55):
Found keymap file for default at .\appModules_default_desktop.kbd
DEBUG - appModuleHandler.AppModule.loadKeyMap (19:15:55):
added 80 bindings to appModule <default (appName iexplore, process ID 1952) at address 2235a90> from file .\appModules_default_desktop.kbd
IO - speech.speakText (19:15:55):
Speaking u'Windows Internet Explorer'
DEBUGWARNING - watchdog._watcher (19:15:55):
Trying to recover from freeze, core stack:
File "nvda.pyw", line 139, in
File "core.pyo", line 260, in main
File "wx_core.pyo", line 8007, in MainLoop
File "wx_core.pyo", line 7303, in MainLoop
File "gui__init
.pyo", line 144, in onShowGuiCommand
File "gui__init__.pyo", line 347, in onActivate
File "wx_windows.pyo", line 2190, in PopupMenu
File "gui__init__.pyo", line 310, in
File "core.pyo", line 245, in Notify
File "IAccessibleHandler.pyo", line 845, in pumpAll
File "IAccessibleHandler.pyo", line 611, in processGenericWinEvent
File "IAccessibleHandler.pyo", line 533, in winEventToNVDAEvent
File "NVDAObjects\IAccessible__init__.pyo", line 35, in getNVDAObjectFromEvent
File "IAccessibleHandler.pyo", line 361, in accessibleObjectFromEvent

IO - speech.speakText (19:15:57):
Speaking u'AUDIODATA dialog'
IO - speech.speakText (19:15:57):
Speaking u'edit multi line'
IO - speech.speakText (19:15:57):
Speaking u'blank'
IO - tones.beep (19:15:57):
Beep at pitch 1760.0, for 40 ms, left volume 50, right volume 50
IO - speech.speakText (19:15:57):
Speaking u'NVDA 2010.2 User Guide - Windows Internet Explorer'
DEBUG - treeInterceptorHandler.update (19:15:58):
Adding new treeInterceptor to runningTable:
IO - speech.speakText (19:15:58):
Speaking u'NVDA 2010.2 User Guide document'
IO - speech.speakText (19:15:58):
Speaking u'NVDA 2010.2 User Guide'
DEBUG - queueHandler.registerGeneratorObject (19:15:58):
Adding generator 1
IO - speech.speakText (19:15:58):
Speaking u'heading level 1 NVDA 2010.2 User Guide'
IO - speech.speakText (19:15:58):
Speaking u'link'
IO - speech.speakText (19:15:58):
Speaking u'heading level 2 Table of Contents'
IO - speech.speakText (19:15:58):
Speaking u'listwith 12 items \u2022 link 1. Introduction'
IO - speech.speakText (19:15:58):
Speaking u'listwith 5 items \u2022 link 1.1. General Features'
IO - speech.speakText (19:15:58):
Speaking u'\u2022 link 1.2. Internationalization'
IO - speech.speakText (19:15:58):
Speaking u'\u2022 link 1.3. Speech Synthesizer Support'
IO - speech.speakText (19:15:58):
Speaking u'\u2022 link 1.4. Braille support'
IO - speech.speakText (19:15:58):
Speaking u'\u2022 link 1.5. Licence and Copyright'
IO - speech.speakText (19:15:58):
Speaking u'out of list \u2022 link 2. System Requirements'
IO - speech.speakText (19:15:58):
Speaking u'\u2022 link 3. Getting NVDA'
IO - speech.speakText (19:16:03):
Speaking u'\u2022 link 4. Installing NVDA'
IO - speech.speakText (19:16:04):
Speaking u'listwith 2 items \u2022 link 4.1. The NVDA Installer'
IO - speech.speakText (19:16:05):
Speaking u'\u2022 link 4.2. NVDA portable'
IO - keyboardHandler.internal_keyDownEvent (19:16:08):
key press: nvda+f7
IO - speech.speakText (19:16:08):
Speaking u'Elements List dialog'
IO - speech.speakText (19:16:08):
Speaking u'tree view'
IO - speech.speakText (19:16:08):
Speaking u'tree view item'
IO - keyboardHandler.internal_keyDownEvent (19:16:11):
key press: extendednext
IO - speech.speakText (19:16:11):
Speaking u'BRLTTY'
IO - keyboardHandler.internal_keyDownEvent (19:16:14):
key press: extendeddown
IO - speech.speakText (19:16:14):
Speaking u'BRLTTY for Windows'
IO - keyboardHandler.internal_keyDownEvent (19:16:15):
key press: extendeddown
IO - keyboardHandler.internal_keyDownEvent (19:16:16):
key press: extendedup
IO - speech.speakText (19:16:16):
Speaking u'BRLTTY'
IO - keyboardHandler.internal_keyDownEvent (19:16:17):
key press: extendedup
IO - speech.speakText (19:16:17):
Speaking u'tree view item'
IO - keyboardHandler.internal_keyDownEvent (19:16:18):
key press: extendedup
IO - speech.speakText (19:16:18):
Speaking u'MDV'
IO - keyboardHandler.internal_keyDownEvent (19:16:19):
key press: extendedup
IO - speech.speakText (19:16:19):
Speaking u'tree view item'
IO - keyboardHandler.internal_keyDownEvent (19:16:20):
key press: extendedup
IO - speech.speakText (19:16:20):
Speaking u'ftp://ftp.handytech.de/public/Software/BrailleDriver/bsd1206a.exe'
IO - keyboardHandler.internal_keyDownEvent (19:16:22):
key press: extendedup
IO - speech.speakText (19:16:22):
Speaking u'Handy Tech'
IO - keyboardHandler.internal_keyDownEvent (19:16:22):
key press: extendedup
IO - speech.speakText (19:16:22):
Speaking u'tree view item'
IO - keyboardHandler.internal_keyDownEvent (19:16:23):
key press: extendedup
IO - speech.speakText (19:16:24):
Speaking u'Optelec'
IO - keyboardHandler.internal_keyDownEvent (19:16:25):
key press: extendedup
IO - speech.speakText (19:16:25):
Speaking u'tree view item'
IO - keyboardHandler.internal_keyDownEvent (19:16:26):
key press: extendedup
IO - speech.speakText (19:16:26):
Speaking u'http://www.freedomscientific.com/downloads/focus-40-blue/focus-40-blue-downloads.asp'
IO - keyboardHandler.internal_keyDownEvent (19:16:27):
key press: extendedup
IO - speech.speakText (19:16:27):
Speaking u'Freedom Scientific'
IO - keyboardHandler.internal_keyDownEvent (19:16:28):
key press: extendedup
IO - speech.speakText (19:16:28):
Speaking u'tree view item'
IO - keyboardHandler.internal_keyDownEvent (19:16:28):
key press: extendedup
IO - speech.speakText (19:16:28):
Speaking u'tree view item'
IO - keyboardHandler.internal_keyDownEvent (19:16:29):
key press: extendedup
IO - speech.speakText (19:16:29):
Speaking u'http://ru.nvda-community.org/?page_id=10'
IO - keyboardHandler.internal_keyDownEvent (19:16:30):
key press: extendedup
IO - speech.speakText (19:16:30):
Speaking u'tree view item'
IO - keyboardHandler.internal_keyDownEvent (19:16:32):
key press: extendedup
IO - speech.speakText (19:16:32):
Speaking u'www.audiologic.it'
IO - keyboardHandler.internal_keyDownEvent (19:16:33):
key press: extendedup
IO - speech.speakText (19:16:33):
Speaking u'tree view item'
IO - keyboardHandler.internal_keyDownEvent (19:16:42):
key press: return
IO - speech.speakText (19:16:42):
Speaking u'NVDA 2010.2 User Guide - Windows Internet Explorer'
IO - speech.speakText (19:16:42):
Speaking u'NVDA 2010.2 User Guide document'
IO - speech.speakText (19:16:42):
Speaking u'out of list out of list link'
IO - speech.speakText (19:16:42):
Speaking u'read only'
IO - keyboardHandler.internal_keyDownEvent (19:16:53):
key press: return
IO - keyboardHandler.internal_keyDownEvent (19:16:55):
key press: extendedup
IO - speech.speakText (19:16:55):
Speaking u'SAPI 5 engines found on your system. '
IO - keyboardHandler.internal_keyDownEvent (19:16:59):
key press: extendeddown
IO - speech.speakText (19:16:59):
Speaking u'link'
IO - keyboardHandler.internal_keyDownEvent (19:17:00):
key press: extendeddown
IO - speech.speakText (19:17:00):
Speaking u'heading level 3 11.4. Audiologic Tts3'
IO - keyboardHandler.internal_keyDownEvent (19:17:04):
key press: extendedup
IO - speech.speakText (19:17:04):
Speaking u'link'
IO - keyboardHandler.internal_keyDownEvent (19:17:05):
key press: extendedleft
IO - speech.speakText (19:17:06):
Speaking u'out of link'
IO - speech._speakSpellingGen (19:17:06):
Speaking character u'space'
IO - keyboardHandler.internal_keyDownEvent (19:17:07):
key press: extendedright
IO - speech.speakText (19:17:07):
Speaking u'link'
IO - speech._speakSpellingGen (19:17:07):
Speaking character u'space'
IO - keyboardHandler.internal_keyDownEvent (19:17:08):
key press: extendedright
IO - speech.speakText (19:17:08):
Speaking u'out of link heading level 3'
IO - speech._speakSpellingGen (19:17:08):
Speaking character u'1'
IO - keyboardHandler.internal_keyDownEvent (19:17:10):
key press: extendedleft
IO - speech.speakText (19:17:10):
Speaking u'out of heading link'
IO - speech._speakSpellingGen (19:17:10):
Speaking character u'space'
IO - keyboardHandler.internal_keyDownEvent (19:17:28):
key press: control+alt+r
INFO - core.main (19:17:29):
Exiting
DEBUG - core.main (19:17:29):
Terminating watchdog
DEBUG - core.main (19:17:29):
Terminating GUI
INFO - config.save (19:17:29):
Configuration saved
DEBUG - core.main (19:17:29):
Cleaning up running treeInterceptors
DEBUG - core.main (19:17:29):
Terminating IAccessible support
DEBUG - core.main (19:17:29):
Terminating UIA support
DEBUG - core.main (19:17:29):
Terminating winConsole support
DEBUG - core.main (19:17:29):
Terminating Java Access Bridge support
DEBUG - core.main (19:17:29):
Terminating NVDAHelper
DEBUG - core.main (19:17:29):
Terminating keyboard handler
DEBUG - core.main (19:17:29):
Terminating mouse handler
DEBUG - core.main (19:17:29):
Terminating braille
DEBUG - core.main (19:17:29):
Terminating speech
DEBUG - core.main (19:17:30):
core done
INFO - nvda (19:17:30):
NVDA exit

@nvaccessAuto

Comment 1 by jteh on 2011-01-19 22:27
Thanks for reporting. In future, if including complete logs, please attach instead of pasting. Only small log fragments should be pasted.

The problem here is that in MSHTML vbufs, link destinations (<a name="foo">) are being exposed as links. This is probably due to the fact that MSHTML stupidly exposes these as links to MSAA, including the linked and focusable states.
Changes:
Changed title from ""false" links appearing in IE7/XP" to "Link destinations exposed as links in MSHTML virtual buffers"
Milestone changed from None to near-term

@nvaccessAuto

Comment 2 by mdcurran on 2011-01-20 00:20
Fixed in 51f51d9.
Changes:
State: closed

@nvaccessAuto

Comment 3 by jteh on 2011-01-20 00:29
Changes:
Milestone changed from near-term to 2011.1

@nvaccessAuto

Comment 4 by briang1 on 2011-02-13 18:49
It looks as if fixing this, has revealed problems with some links not being identified in both Internet Explorer and Microsoft email clients when viewing in html of course.

@nvaccessAuto nvaccessAuto added this to the 2011.1 milestone Nov 10, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment