If Catalyst Apps Are the Future of Mac Software, the Future Currently Doesn't Look Too Bright for VoiceOver Users
Update 29 October 2019: the macOS 10.15.1 release appears to have resolved the problem of not being able to interact with the preference windows of Catalyst apps when running VoiceOver.
In my early tests I have been able to access and configure settings in all three Catalyst apps which previously exhibited the problematic behaviour described in the post below.
It's great news that Apple appears to be making changes to the underlying app conversion process that should address some accessibility issues without developers needing to do anything.
If you encounter any further improvements to Catalyst apps after updating to macOS 10.15.1, please let us know by posting a comment below.
In its recent “deep dive” in to Mac Catalyst, Ars Technica reported that Apple and developers they spoke with considered Catalyst apps to be “the future of Mac software”. If my early experience is anything to go by, Apple still has much to do if VoiceOver users are to be included in that future.
If you are unfamiliar with Mac Catalyst, it's new from Apple with the release of macOS Catalina and essentially enables developers to quickly and easily create Mac versions of their existing iPad apps.
According to Apple's developer website, developers need only check a box to select the Mac as a supported device when viewing their iPad project in Xcode.
By checking this box, Apple's Xcode software will do much of the ‘heavy lifting’ in regard to porting an iPad app to macOS: it will automatically create a default menu bar; add support for trackpad, mouse, and keyboard input; add support for window resizing and full-screen display; enable Mac-style scroll bars; add support for copy-and-paste and drag-and-drop; and add support for system Touch Bar controls.
Apple's vision is that by automating so much of what's required, developers can focus their time on adding desktop-specific features to their apps:
Your newly created Mac app runs natively, utilizing the same frameworks, resources, and runtime environment as apps built just for Mac. Fundamental Mac desktop and windowing features are added, and touch controls are adapted to the keyboard and mouse. Custom UI elements that you created with your code come across as-is. You can then continue to implement features in Xcode with UIKit APIs to make sure your app looks great and works seamlessly.
As both a Mac and iPad user, this is a vision that I can readily buy in to - the prospect of being able to use the same apps across both platforms is extremely appealing; as is the thought of having a much greater selection of apps available on my Mac.
Regrettably, my early experience suggests that Mac Catalyst currently does not deliver when it comes to ensuring that macOS versions of an app offer the same level of accessibility and user experience as they do on iPad.
One Important Caveat
Before I share my early experiences with some Catalyst apps, I need to stress that I am not an advanced VoiceOver user on macOS.
Although I have been using a Mac for many years, I have transitioned over time from using colour inversion alone; to using colour inversion along side screen magnification; to using VoiceOver as an occasional aid; to now relying completely on VoiceOver. It's been an incremental learning process with no professional training or support. Consequently, I have learned what I think I need to know for my own use case, and along the way have certainly skipped or missed much of VoiceOver's capabilities.
All of that to say that what follows is not the experience or opinion of an advanced VoiceOver user who knows all of VoiceOver's capabilities and features on macOS. I simply know what works for me and my use case. Accordingly, more advanced VoiceOver users may have different experiences and opinions to those below; I certainly hope that you will share them by posting replies.
My Early Experiences with Catalyst Apps
Following the release of macOS Catalina earlier this week, I have use three Catalyst apps:
My intent in this post is not to discuss any app-specific issues, as I believe that focusing on accessibility failings of initial releases of apps created with a tool which is still mostly unfamiliar and unproven would be unfair on the app developers concerned. Doing so would also potentially distract from the more fundamental and pressing issue: the current implementation of Mac Catalyst does not deliver a basic level of VoiceOver support ‘out of the box’.
My early experience suggests that there are currently at least two significant issues for VoiceOver users that are likely to be common to all Catalyst apps:
- How preferences windows are generated by Mac Catalyst.
- Keyboard navigation of Catalyst apps.
Where did the Preferences Go?
Mac applications typically let users manage app-specific settings via a preferences window. Users access this window by selecting the application menu followed by the Preferences menu item in the menu bar, or by using the Command-comma keyboard shortcut.
With Mac Catalyst, developers are told that if their iPad app has a “Settings bundle”, the system automatically provides the Catalyst version of their app with a preferences window:
When a user runs your app on their Mac device and selects the Preferences menu item, the system displays a Mac-friendly preferences window based on the options provided in your Settings bundle. You can further enhance the user experience by adding child panes and optional Mac-specific keys to your Settings bundle.
The issue I've consistently encountered with all three Catalyst apps is that although the preferences window may be “Mac-friendly”, it is definitely not VoiceOver-friendly.
My experience with all three apps is that I can use the VoiceOver modifier keys in conjunction with the left and right arrow keys to move VoiceOver focus through some of what's on the preferences window. I say “some”, as common sense and experience of the iPad apps tells me that there should be more to find, and on occasions a lucky click of the mouse pointer will find and enable me to navigate through some of what was previously missing.
However, the far more significant problem comes when I VO-Space on anything on the preferences window: without fail, VoiceOver focus immediately returns to the main window of the app.
If I use the Window Switcher to return to the preferences window, nothing has changed. If I had attempted to navigate to a section of the preferences window or change a setting, it will not have happened. The preferences window will still be on its initial view and with its default settings.
Routing the mouse pointer to a UI element on the preferences window returns the same result.
In the case of all three of my test Catalyst apps, the inability to configure them through their preferences window effectively makes the apps unusable.
If an RSS Reader won't allow me to add an RSS service or import an OPML file, it is effectively nothing more than wallpaper. And, at $20 or $32, it's pretty darn expensive wallpaper!
What's particularly frustrating in the cases of lire and Fiery Feeds, is that the developers of each app has longstanding and demonstrable commitments to not only making their apps accessible, but proactively seeking to enhance the experience for VoiceOver users. Now, they find themselves unable to do the same on macOS because of apparent failings with Mac Catalyst.
With three out of three Catalyst apps sharing an identical problem with their preferences windows, it doesn't seem unreasonable to expect that this behaviour will be common to any Catalyst app which has automatically generated preferences windows. Which, is likely to be the very vast majority of them. Some of these apps will be usable without needing to access or change any settings. But, if my expectation is correct, I would personally be very reluctant to buy a Catalyst app in the hope that it's usable ’out of the box’.
However, a problem accessing preferences windows may not be the only current issue of note with Catalyst apps for VoiceOver users.
Where did the Keyboard Navigation Go?
With sighted help I was able to get all three of my test Catalyst apps setup and configured as desired.
This should have left me happily enjoying apps which I know to be great on iPad (well, certainly true for lire and Fiery Feeds).
Regrettably, the user experience of all three apps when relying solely on keyboard navigation is nothing less than painful.
In all three cases, none of the keyboard shortcuts I would typically use to quickly jump between the main sections of a Mac application work. Tab, VO-j, and various VoiceOver rotor options all leave focus stubbornly where it is.
I have tried the keyboard shortcuts I use with my iPad - just in case these had been ported across - but, VoiceOver focus remains stubborn.
This is the part of the post where I most want (and probably expect) an advanced VoiceOver user to step forward and point me towards something I am missing, as having to rely on VO and the arrow keys to navigate these three apps is not a user experience I wish to revisit. Not only is it a poor user experience, but I am quite sure that there are sections of each app which are not being located when navigating by arrow key alone (something which seems to be confirmed by others in regard to the Twitter app).
As with the preferences window issue, it's extremely hard to believe that the paucity of keyboard navigation options - and their apparent unreliability - is app-specific. In my opinion, it has all the appearance of being something that will be common to all Catalyst apps.
It's hard not to feel anything other than completely disappointed by my initial experiences with Catalyst apps.
I didn't approach them expecting there to be no ‘teething problems’, but I did expect Apple to ensure that everything generated automatically by Xcode as part of the porting process would be accessible with VoiceOver, and that Catalyst apps would be at least mostly usable with VoiceOver. This was particularly true for Mac versions of apps that I know provide a great VoiceOver experience on iPad.
Early reports indicate that VoiceOver users aren't the only ones facing problems with Catalyst apps. Bloomberg has reported on numerous teething problems, with developers saying that they've had to work harder than expected to get their iPad apps working well on the Mac:
Developers have found several problems with Apple’s tools for bringing iPad apps over to Mac computers. Some features that only make sense on iPad touchscreens, such as scrollable lists that help users select dates and times on calendars, are showing up on the Mac, where the input paradigm is still built around a keyboard and mouse or trackpad.
Troughton-Smith said Mac versions of some apps can’t hide the mouse cursor while video is playing. He’s also found problems with video recording and two-finger scrolling in some cases, along with issues with using the keyboard and full-screen mode in video games. Thomson, the PCalc developer, said some older Mac computers struggle to handle Catalyst apps that use another Apple system called SceneKit for 3-D gaming and animations.
It seems that we can add poor VoiceOver support to the list of problems faced by developers and users of early Catalyst apps. It's extremely disappointing that something as fundamental as the accessibility of preferences windows and support for keyboard navigation have made it past Apple's QA testing of Mac Catalyst. We can only hope that this is corrected quickly by Apple, and that VoiceOver support will be part of the porting process when a developer checks the ‘Mac’ box in Xcode.
I look forward to hearing everybody's early thoughts and experiences of Catalyst apps. Have you found any that you would recommend? Have you found workarounds for the issues I mention above? Or, can you simply confirm my fears that Mac Catalyst still needs a lot of work in regard to VoiceOver? Add your comments below!
I am not a Mac user but certainly know how frustrating it is when our needs seemed not to be factored into a major release like this. I hope this is addressed quickly for Mac VO users. I presume you’ve already brought this to the attention of Apple Accessibility and hope other affected users will do the same
I am very disappointed by the Catalyst Apps provided by Apple. The Podcast and TV App are frustrating to use.
In most Apps I heavily use the Home and End keys to quickly navigate through them, but especially in Podcast it is quite a hassle to jump from top to bottom and backwards. That is additionally to the situation with the settings pane.
In TV I needed to trial and error to buy a movie. For me it was not intuitive where the buttons to perform the transaction appeared.
What frustrates me the most is, that I have to perform a VO + Space click on the search field to interact with it. For years I have been using the interact function with quick nav toggled on. Now in these Apps I need to remember every time, that I have to use it like an iOS App, but on the Mac.
I know Catalina is out for only some days and many of the problems mentioned will get ironed out but for now I think Apple and the Developers need to work on the implementation of Catalyst in their Apps for Voiceover users..
TV is not a catalyst app.
Although I been using iPhone since 4 to iPhone XS, I will keep using windows. Hope your problems get fix before the end of the year.
I don't currently have any 3rd-party apps on here that are part of Catalyst. But I did take a look at the native music app which made its way over to the Mac, and I have to say that it's not bad but a bit confusing. It has the familiar iTunes feel, with some tweaks and extra features thrown in. I inadvertently closed the app when all my music was being uploaded to the cloud, and when I reopened the app all my music was gone. But only temporarily. Don't exactly know how I managed that, but I think everything's back to normal. I guess only time will tell how all Catalyst apps behave on here. Personally, I think Catalyst was more or less a waste of time. But then again I'm not a developer so may be misinterpreting something here.
I've got carrot weather for the Mac side and can safely say it's interesting. Firstly, one thing i've noticed is that when you open the app, the speech doesn't work, you've got to go into preferences and change sound effects to play all, and the speech voice to whatever you want and usually it'll work, but only if you keep the app open. If you close it again, it won't work.
Twitter is also unusable. I suggest that we make a list of catalyst apps that have come across from completely usable IOS apps so that wee might present it to apple and also create an open letter to those developers.
I'd like to know what developer tools are provided by apple for such ports, if any. You'd assume that most of them would work in the same way as using a keyboard with and IOS device or iPad.
As the OP describes, it is a worry but I think that through the right channels of communication it can be resolved. From all accounts Catalina is somewhat of a mess, one reviewer dubbing it apples vista.
Twitter is kind of usable, sort of. I watched my friend navigate it, and he has ben a mac user since 2007 or so. I can't test this as there is no get button for me when I try and dl the app, but there was for his older 2012 mac book pro. Go figure eh?
Thank you for the correction. I was under the impression that Music is the only remaining bit of iTunes. I still think iTunes worked better for me.
I hope that many app developers use Catalyst to increase the number of Mac apps and let us help them solving these accessibility issues.
Twitter can be kinda navigated but you can't seem to scroll the list, interact with the tweets or even change settings. In effect, it is not usable for it's intended task. I know what you mean though. Unusable was a rather wide term. It's not functionally accessible, maybe that's closer to the mark.
Actually it can be scrolled with only the voiceover curser according to my friend who did just that and looked at messages, mentions. He even I think sent a few tweets but he is not impressed, at least not yet. He is willing to give apple a chance though, and if I get to see this, I will as well.
Yes, with a bit more of a play I found that you can actually interact with tweets too. I couldn't get the scrolling working so only had about six tweets on the screen. Either way, it is a laborious process. I would at least have expected the vo shift M combo to bring up options for retweeting and replying etc.
Thanks for the update.
VoiceOver on the Mac also has custom actions like iOs. However I'm not aware of any Mac apps that actually use them probably due to how the interface works. But it looks like catalyst uses them quite extensively, any action that's on the iOS rotor seems to show up in this menu on the Mac. Press VO-Command-Space to bring this menu up. At least in Twitter it has all the options that you get on iOS. That being said, like a few other people here I haven't managed to scroll at all. Not with VO movement, not with just pressing arrow keys on the keyboard, not with 3-finger flicks on the trackpad. I also couldn't really interact with the app too much. The first time I opened it I just saw a nearly blank screen with a compose button on the toolbar, so I couldn't sign in. The second time things started working and I signed in. But for example trying to click the button to switch to the latest tweets view didn't work at all.
One kind of interesting thing I noticed is that, with the Twitter app the interface really just feels like iOS. Everything is just there, if you VO-Right you'll move from the tabs to all the tweets, making the interface a bit cluttered. But if you compare it to an Apple app, like VOice Memos which is also built with catalyst, there the list of recordings is in a separate group that you have to interact with. And this group seems to scroll on its own, at least I think it does because I have at least 30 memos in it and I can see all of them.
That's great. There is still so much of VoiceOver I don't use and haven't learned because I've found other ways around it.
Yeah, still no scrolling for me no matter what I try.
You're not alone there! I can't scroll it, either.
It kinda scrolls, well sort of, if you put the VO focus on the last tweet and you press down without the VO mod keys it sometimes scrolls down a couple of tweets though, not to a usable extent.
Looping back to this in light of the Big Sur beta. Twitter is still very difficult to use. Apple’s own apps seem to have some better support, and there is a WWDC session available now that explains some of the techniques Catalyst developers can employ to make the VoiceOver experience on the Mac better.
But I have to say, and I will also provide this as feedback to Apple with a video included, that Catalyst apps feel really alien. Not only the already described problem of focus not following the VO cursor, and text fields not being immediately editable, but also the fact that VO+Space emits the iOS tap sound and not the Mac typical “Press” or “Activate” or “check” announcement, really make these apps feel out of place to a VoiceOver user. Granted, Trackpad Commander also makes that sound when double-tapping, but that’s a touch interaction. Apps on the mac should be feeling the same to VoiceOver users no matter their origin, be it Catalyst, SwiftUI or AppKit.