iTerm tabs vs. accessibility (and our app, Witch)
- iTerm2 version: 3.0.13
- OS version: 10.12.3 (16D32)
Hi George/iTerm team,
my name is Peter, and I'm a fellow Mac developer. The following isn't a bug report, it's a question/enhancement request regarding iTerm's tabs. I'm currently working on Witch, a cmd-tab/Exposé alternative for the Mac, and Witch's version 4, which is currently in open beta (see: https://manytricks.com/witch/beta) adds support for tabs. That is to say, you can switch to a window's tabs directly from a cmd-tab-like interface.
Witch accesses a window's tabs via accessibility, which means it relies on tabs being represented in a somewhat standard way. Standard window tabs, as introduced in macOS Sierra, look like a NSTabView with close widgets from the accessibility system's point of view: Each tab is an AXRadioButton inside an AXTabGroup. And the AXTabGroup usually refers to its collection of tabs/AXRadioButtons in two ways:
- via its AXTabs attribute
- via its AXChildren attribute, which also includes the tabs' close widgets
(We're interested in those close widgets, because Witch also lets you close tabs from its switcher panel via the W key, much like you can quit apps from macOS's cmd-tab app switcher by hitting the Q key.)
Now, beta testers have asked us to make Witch work with iTerm, so I had a look at it, and it seems that iTerm's tabs aren't quite standard, possibly because they're way older than Apple's now-standard window tab implementation. There is an AXTabGroup, but it has neither AXTabs nor AXChildren — the only tab I can access is the currently active one, which is returned as the AXTabGroup's AXValue. And the tabs' close widgets don't seem to be accessible at all.
So I wonder: Are there any plans, by chance, to switch iTerm to standard tabs? Or alternatively, would you consider cooperating on making the accessibility representation of your existing tabs system match standard tabs more closely? Our shared users would get a kick out of that, and I'd be happy to help as best I can.
Thanks for your time, and sorry for the long message! Cheers,
Peter.