5

There aren't really any steps to reproduce, other than to say that Orion's tabs are invisible to the Accessibility API. This causes two issues. The most important issue is that users with disabilities will be unable to navigate Orion's tabs using macOS' built-in accessibility features. Safari, Chrome, and Edge all have tabs that are fully functional with the Accessibility system, which is where these users will head.

The second issue is that there are a number of apps that work with other apps' windows and tabs, and these apps will be unable to support Orion. One such example is our own Witch, which allows users to switch directly to windows in any application, and directly to tabs in applications that have macOS Accessibility support in their tabs.

Witch cannot see Orion's tabs—either vertical or horizontal. That's because those tabs don't exist in the Accessibility system. The "easy" way to solve this is to use Apple's standard tab APIs (as that would automatically include Accessibility support), but I expect you have many good reasons for doing what you did. Another solution would be to look at TextEdit's tabs using Accessibility Inspector, and then make your tabs convey those same details to the Accessibility API. This wouldn't involve changing how your tabs are designed, but just having them generate some additional information for the Accessibility API to use.

The advantage for us, of course, is that Witch will now be able to see and switch between Orion's tabs. But the bigger-picture advantage for Orion is that your app will be more usable by individuals who rely on the Accessibility features in macOS to use their Macs. They are always grateful for apps that have full Accessibility API support.

If you don't have any experience with Accessibility API programming on macOS, here are the references we rely on for help:

https://developer.apple.com/documentation/accessibility/integrating_accessibility_into_your_app
https://developer.apple.com/documentation/appkit/nsaccessibility?language=occ

Thank you for considering these changes that will not only help our mutual users, but anyone who relies on the macOS Accessibility system's features.

  • Vlad replied to this.

    MT-Rob Thanks, this will be something we will look into as we refactor our tab system currently.

      15 days later

      MT-Rob We implemented most Accessibility APIs but we couldn’t show tabs on Witch app even though we set the appropriate properties.Can you share more information about what does Witch use?

        4 days later

        Vlad Sorry, just saw this today...let me take a look at what data we can see and work with Peter (our founder/programmer) to see what we're not seeing. I'll get back to you shortly—thanks for making the effort!

        -rob.

          Vlad:

          Based on the latest beta (0.99.109.1-beta (Webkit 613.1.12), you are very close to having full tab support in Accessibility (and hence, in Witch).Update: The following only applies to top tabs; side tabs appear to be in their older, non-supported state.

          Peter took a look, and here's what he had to say:

          For the tab AXRadioButtons, they specify the tabs' zero-based positions in the tab bar as their respective AXValues (first tab: 0; second tab: 1; third tab: 2; etc.). This is incorrect. The AXValues should be binary (they're radio buttons, after all), and they should have the following values:

          - active tab: true/1
          - any other tab: false/0

          This trips up Witch, because it looks for a value of true/1 to find the active tab: With the incorrect zero-based index values Orion currently specifies, Witch always considers the second tab (i.e., the one with the 1 value) active.

          So the only required change Orion such that the tab AXRadioButtons' AXValues are either 1 (active tab only) or 0 (any other tab). This won't just "fix" Witch, it's also an accessibility win in general, because again, tabs are AXRadioButtons.

          Thanks again for taking this on; not only will you make Witch users happy, you'll make anyone who uses Accessibility features extremely happy.

          -rob.

            MT-Rob Thanks for the detailed report. We take accessibility seriously so we will prioritize this for the next build.

              MT-Rob Thanks to your comment we were able to complete the accessibility support. This will be available in the next update.

                5 days later

                Excellent news; looking forward to testing the update!

                -rob.

                  16 days later

                  Confirmed working with horizontal tabs—thanks! (It'd be amazing to have it working with side tabs, but I have no idea what that would require on your end, and I'm fine with telling Witch users that if they want tab support for Orion, they have to use "traditional" top tabs, so I consider this one 100% solved—thanks for the efforts!

                  -rob.

                  • Vlad replied to this.

                    MT-Rob No problem, if you need support for vertical tabs please describe the problem from a technical standpoint.

                      7 days later

                      Did you change something in the latest beta? They're working now (though oddly, not for this page, the issue tracker). As for the technical, it's the same as the normal horizontal tabs—you'd just need to supply the same Accessibility data for vertical tabs ... but as noted, it seems they're working.

                      -rob.

                      No one is typing