Closed GoogleCodeExporter closed 9 years ago
This appears to be caused by Apple's standard "NSStatusItem" not supporting accessibility. (If true, that is an incredibly poor decision on Apple's part.)
I did a quick test by making a version of Tunnelblick that gives a "title" to the Tunnelblick icon, but VoiceOver still can't navigate to it, so I dug a little deeper. (I also couldn't get VoiceOver to work with the Tunnelblick menu properly if I clicked it with the mouse.)
The problem is that, for Tunnelblick to be used with VoiceOver, it needs to use a non-standard method of creating the Tunnelblick Status Menu item, using something called "MenuExtra Enabler" instead of the Apple-recommended method, which is to use "NSStatusItem".
One problem with using "MenuExtra Enabler" is apparently that it stops working with each new release of OS X. It also appears to completely change the way that the program "attached" to it works -- it is always automatically started when the computer starts (i.e., it runs even before someone logs in!) and runs in a different context than a regular application. So it may not be possible for Tunnelblick to use it.
See the post at
http://www.mail-archive.com/macvisionaries@googlegroups.com/msg09249.html
for a more complete explanation, and the rationale that "Rogue Amoeba" uses to NOT support VoiceOver.
That said, I will look into doing this, although I know very little about it and will have a lot to learn.
If we can't use "MenuExtra Enabler", perhaps some completely different solution would work -- for example, an option to make Tunnelblick like a regular application, with a Dock icon and a regular menu bar. Or making some kind of "hot key" expose the Tunnelblick menu.
I would appreciate any ideas on this -- it isn't something I know much about.
PS - I didn't understand your comment "try using xcode and 64bit, it may help
alot" -- can you expand on this?
Original comment by jkbull...@gmail.com
on 31 Jul 2010 at 12:46
It looks like a tremendous amount of work, with major changes, to use
"MenuExtra Enabler". It changes almost everything about how Tunnelblick works
-- it is no longer a special application that runs in its own address space,
for example, it becomes code that runs in the SystemUIServer process. I don't
think that's a good idea.
I did solve the problem with VoiceOver navigating the Tunnelblick menu once it
is selected (by clicking the Tunnelblick icon). It turns out that if a menu
item has a ToolTip, VoiceOver thinks that the focus changed to Finder or
something. So it loses track of where it is on the Tunnelblick menu. Also,
ToolTips seem to mess things up even if they aren't invoked -- the next time
the Tunnelblick menu is selected, it says it has 0 items! Both of these are
solved by inhibiting ToolTips in the Tunnelblick code. So at least once the
Tunnelblick menu is selected, using Voiceover to navigate around it works (as
far as I can tell).
The remaining problem is how to simulate a click on the Tunnelblick icon. I'm
working on that. Maybe an Applescript or something.
Original comment by jkbull...@gmail.com
on 1 Aug 2010 at 12:56
I have attached two Tunnelblick builds for testing.
#1 uses the hot key combination of command-option-t to pop up the Tunnelblick
menu. Then you can use the keyboard (and VoiceOver) to navigate on it. (For
this to work, Tunnelblick must be running, but it does not need to be in the
foreground.)
#2 does that, plus it disables Tooltips. (I had trouble navigating using
VoiceOver until I disabled Tooltips, but it may have been caused by me being
unfamiliar with VoiceOver.)
Please try out #1, and if you have trouble navigating the Tunnelblick Menu or
the Details… window, see if #2 solves those problems. Separately, please see
if there are any problems with the "when Tunnelblick launches" and "when the
computer starts" radio buttons in the Details… window -- they are implemented
in a non-standard way that VoiceOver and/or keyboard navigation may not like.
Assuming one of these works, there are some refinements to be made before this
is incorporated in Tunnelblick:
The key and the modifier keys (some combination of one or more of command,
option, alt, shift) will be preferences. There won't be a GUI way to set the
preferences, but they will default to "t" and "command+option". (Unless you
have another suggestion).
Turning Tooltips off will need to be controlled:
A. By a preference, probably doNotShowTooltips. And there would have to be a
checkbox in the very first window that is displayed when you are installing
Tunnelblick, so you could disable Tooltips for the first launch of Tunnelblick.
OR
B. (My preference): Turn them off whenever VoiceOver is running (i.e., a
process named "VoiceOver" is running).
The choice between A and B, or how B is implemented, may depend on how people
use VoiceOver. Do you leave it running or turn it on and off all the time?
Original comment by jkbull...@gmail.com
on 1 Aug 2010 at 11:03
Attachments:
I have removed the two .dmg attachments from my previous message.
Tooltips interfere with VoiceOver. Because the tooltips have very little
information, I am considering removing them completely from Tunnelblick, or
perhaps displaying them only when the "doDisplayTooltips" preference is set to
true. (Currently, they are displayed only when the "doNotDisplayTooltips"
preference is missing or not set to true.)
Because the alphabetic keys do not appear on all keyboards, the use of
command-option-F1 is being considered to pop up the Tunnelblick menu.
It may be useful to add a submenu to the Options… submenu to select a
different hot key from a list (command-option-F1 through command-option-F16, or
"None" to turn off the hot key). But I am hesitant to make the Tunnelblick menu
more complex.
Comments?
Original comment by jkbull...@gmail.com
on 5 Aug 2010 at 6:33
I'm closing this Issue. Tunnelblick 3.1beta12 includes changes that:
(1) Remove tooltips unless the "showTooltips" preference is true. (Tooltips
seem to interfere with VoiceOver.)
(2) Implement command-option-F1 as the default keyboard shortcut.
(3) A "Keyboard Shortcut" submenu in the Options submenu lets you select any of
command-option-F1 through command-option-F12 as the keyboard shortcut. It is
not displayed if the "doNotShowKeyboardShortcutSubmenu" option is true.
Original comment by jkbull...@gmail.com
on 2 Sep 2010 at 1:00
Original issue reported on code.google.com by
migara...@gmail.com
on 31 Jul 2010 at 6:53