As we’ve mentioned several times, shipping new features and improvements in our apps is something we love doing. After all, adding new features and iterating on them is something we’re good at, and have been doing for several years!

Today is no different, because in this blog post we’ll be showing some new features and changes we’ve made over the course of this year… but we’ll be looking at Fantastical from a different perspective.

We’ve spent the last several updates improving accessibility support, to help make Fantastical better for visually disabled users relying on VoiceOver when using their devices. Accessibility is something we’re committed to, so while there are several changes we are discussing today, there will also be more improvements coming in the future.

To get started, make sure you’re running Fantastical version 3.7.16 or higher on your iOS devices to access the features we’ll be describing here!

Accessibility Navigation

Fantastical has several different layouts to display information about your events and tasks. DayTicker and Calendar are quite dense: you have a few days (DayTicker) or a full calendar at the top giving you a clue (the more stripes or dots you have, the busier you are), and below this there’s your full event list.

If you’re not relying on VoiceOver, it’s easy. In DayTicker the leftmost day is the first one in the list below, and so on. You see three stripes, then you gaze down a bit and you immediately see what your three events are.

If you’re relying on VoiceOver however, things are a lot harder. You can swipe through DayTicker and hear VoiceOver describing your days (e.g. “July 12, 2023, two events”, “July 13, 2023, one event”) but then there’s no easy way for you to actually understand what these events are. Continuing to swipe left/right will navigate the DayTicker moving forward in to the future (it’s an infinite list), so you’re left with placing your finger randomly on the screen hoping to hit the list below DayTicker or Calendar.

As of Fantastical 3.7.16 we’ve changed how this works. Days in DayTicker and Calendar are now marked as buttons, so to reuse the previous example, VoiceOver now reads “July 13, 2023, one event, button.” This makes a big difference, because you now know that you can double tap on the screen to activate the element. Activating this element will move focus to the first event of the day in the list below. In short, it acts like a link to your event.

Check out this video for how it works in practice, so you can hear what VoiceOver says when using the new element.

Accessibility navigation improvements for Fantastical iOS

Another big improvement is how we handle Go To Today, and navigating to specific days in general. When you tap (or double tap, for VoiceOver users) on the header you’ll jump back to today. Not a big deal if you’re a sighted user, as you’ll notice the content scrolling and then can carry on with your task.

For VoiceOver users however, this is frustrating: you don’t know the content has scrolled and you have navigated to today because the focus remains on the button that triggered the action. You’re left trying to place your finger on the screen hoping to hit the today element, or anywhere close enough, so you can navigate to it.

We’ve changed this so now every view moves focus to Today’s element, and you’ll be able to continue navigating through your days with low effort. This change is demonstrated in the following video: we start in Month View, and when navigating to Today it moves focus to today, where we can then navigate through each event.

Accessibility improvements for Go to Today action in Fantastical iOS

No matter your layout preference, navigating to Today will always provide you information about your day, regardless of your abilities.

The same change also applies to the Go to Date option. If you double tap and hold on the header you’ll be presented with a date picker. Once you’re done choosing your date, focus will now be on the new date in your current view. The following video walks you through going to a specific day in Week view.

Accessibility improvements for Go to Date action in Fantastical iOS

Empty days in DayTicker

We’ve made a small change for the DayTicker view in Fantastical, but it should help reduce confusion with this view. When navigating through DayTicker, if you land on a day that has no events you’ll now hear VoiceOver saying something like “July 14, 2023, no events.” You’ll no longer be left wondering why there’s a gap in your week, even if VoiceOver provided you the audio feedback of having moved its cursor “somewhere on the screen.”

Quarter view

Quarter View is now a bit more useful on iOS for VoiceOver users. You were previously able to navigate through quarters, day by day. However we were not providing any specific information about each day, making this view not very helpful.

This has changed, and now VoiceOver will read a brief summary of each day, similar to what the DayTicker view does.

Year view

We’ve also made the Year view on iOS more accessible. In older versions, VoiceOver would only read month names, providing no information about days in each month. It was not very useful, as you would only hear “January, February, March, April…”

Now you can navigate through the days similarly to DayTicker and Quarter View: VoiceOver will read the day and the number of events for that day. And you can leverage accessibility navigation too! Double tapping on a day will switch to Calendar View, focusing the day. You’re only another double tap away from jumping to the list to learn more about your day.

Accessibility improvements in Year view for Fantastical iOS

Interesting Calendars

For our Premium subscribers, we have overhauled our Interesting Calendars feature on both macOS and iOS, making subscribing to these calendars completely accessible. VoiceOver users are now able to browse Interesting Calendars, hear a preview of them, and subscribe or unsubscribe easily.

Parsed tokens

Finally, did you know you could type / in the parser to quickly set the calendar you’re creating the event on? Well, on iOS this would cause VoiceOver to read “attachment.png,” and on macOS it would read “embedded.” We’ve fixed this so now VoiceOver will read the actual content of the token on both platforms; for example, typing “Lunch with Chrissie /work” in the parser is now read as “Lunch, invitee: Chrissie M, calendar: Work” when VoiceOver is involved.

The same applies to date tokens, which get added when you long tap to create events (iOS) or double click to create events (macOS). Those will now be read correctly when using VoiceOver with Fantastical.

We hope the latest changes have helped make Fantastical better for all of our users, and will be continuing to improve accessibility in our apps with future updates.

If you ever run into an issue with accessibility, or the apps in general, just reach out to our Support team and we will be happy to help!