Accessible Writing With Ulysses

14 min read

Many folks have reviewed Ulysses, but still many have not heard about it. It is a text editor with minimalistic design and powerful features for writing. I will not cover every feature because I don’t use them all. I will focus a decent amount on usability of Ulysses from a VoiceOver user perspective. Therefore, keep in mind if you discover unfamiliar keyboard shortcuts, it is probably VoiceOver shortcuts.

Table of Contents

Library, Sheets & Editor

Design based on a Three-Column Layout, which means You have the list of your groups on the left, sheet list in the middle and editor on the right side. You can use VO + J to navigate through these views. Ulysses give you a quick way to navigate back and forth from library to sheets and if you want to concentrate on a single sheet, simply press ⌘ + 3 and other UI elements disappears from UI. If you are working on several sheets, you can bring back sheets list bi pressing ⌘ + 2 and library view will be still excluded. Great method to focus on a one group and don’t get distracted by other groups in your library. You can also navigate from sheet to sheet by pressing ⌘ + ⌥ + arrow key up or arrow key down. To bring back three colon view in Ulysses, press ⌘ + 1.

VoiceOver Support

Ulysses is pure joy to use with VoiceOver. If you on iOS, you have various swipe options. Either you wonder if you can do something with a group or particular sheet, just flick with one finger up or down and most likely you will find what you are looking after. Ulysses has even a dedicated [VoiceOver page on their website.

To increase/decrease heading level, you can use keyboard shortcut ⌘ + @ to increase and ⌘ + ⇧ + @ to decrease. Before I tried this feature, I was skeptical because most applications don’t give you audio feedback with VoiceOver about is heading level actually changed. Ulysses does great job to inform you if heading level was decreased or increased.

VoiceOver Rotor Objects

Ulysses has an impressive set of features in rotor on iPhone and iPad. For example, when you are on a sheet in a sheet list, you can move a sheet or duplicate it. Here is the full list of functions you can do. To access this menu, you flick one finger down or use arrow key down while holding VO key down.

  • Add to Favorites
  • Use as Regular Sheet
  • Keywords…
  • Move to…
  • Copy to…
  • Duplicate
  • Move Sheet Up
  • Move Sheet Down
  • Move Sheet to Top
  • Move Sheet to Bottom
  • Export…
  • Share…
  • Open in New Window
  • Export in New Window
  • Move to Trash

By offering so many functions, Ulysses is still a minimalistic application which helps you to stay focused. I don’t often make changes on iPhone, but first time when I was not familiar with all features in the rotor, I just kept flick down and had feeling that this list will never end.

Header Navigation

When I tried Ulysses for the first time in spring last year, it was the only app which supported navigation by markdown headers. This approach changes everything because most markdown editors has preview view, which is great when you want to review your text, but not so helpful when you can’t conveniently navigate your text while you editing it. Therefore, Ulysses quickly became one of my favorite text editors.
What more interesting, that it based on VoiceOver rotor which means that you can use keyboard shortcuts you are used to, for example from Safari. To navigate a web page by Vo commands. In the future, I hope more writing applications will add support for this feature because it will make it easier for everyone to navigate more quickly in longer documents.

Feature Parity Across Platforms

Often developers of an application have the main focus on a desktop version with full feature set and powerfulness, and have a simple companion version on the mobile. Still some offers only desktop version. It is maybe okay if you working primary from a Mac and don’t need to continue from last position when you are on the go. Nowadays, it is common that the average user has at least both a laptop and a phone. Often if you are finding a favorite tool on one platform, you probably want to have consistent UI and features across all your devices. Ulysses does an impressive job to deliver the same writing experience no matter if you on your MacBook, iPhone or have an iPad with hardware keyboard attached.

Splitting & Merging Text

One of the advantages of Ulysses compared to other text editors, is the ability to painless and flexible way to split or merge sheets. When you are working on a longer document, it can be unnecessary to see all parts of a document all at once, which later makes it difficult to navigate and involves endless scrolling.

When you are in the editor area on iPhone or iPad in touch mode, you can flick up with one finger and then be able to split the current sheet on current position. To perform this, simply navigate by using VoiceOver Rotor to the exact position where you want to split the text, double tap with one finger and you are done. Ulysses offers many keyboard shortcuts. Therefore, If you have external keyboard attached, you can split the text by pressing ⌘ + ⇧ + B. You can also turn on quick nav on and use arrow keys up or down to perform the same function.

While I wrote this review, I discovered that if you copied something to a clipboard on iOS, activated the text area and flicked up with one finger, you would get this options to how you want to paste your text:

  • Paste As Plain Text
  • Paste As Raw Source
  • Paste As Code Block

    and if you prefer not to paste your clipboard content yet, you get the last option to "Split Here". Little touch, but shows clearly that the team back Ulysses have thought about deliver convenient experience for VoiceOver users.

Manual Sorting

You can sort your sheets in different ways, but manual sorting is what makes it outstanding. Occasionally, you need to rearrange your sheets without copying & pasting multiple times. Sounds as an obvious feature, but haven’t found many text editors with this feature.

Goals & Statistics

When you have inspiration to write, it is great but, it can still be moments when you struggle to start to write or hit a word target. Ulysses lets you set a goal based either on words, sentences or other criteria. In addition, you set a deadline if you need to be finish before a specific date. The Goal can be set either on a group- or sheet basis. When you for example set a word goal and a deadline, Ulysses will show you how many words per day you need to write to come closer to your goal.

Ulysses has the own statistic-window where you can glance at how much you have written sorted by different criteria. You can also exclude some parameters from the view if they are irrelevant for your project. Since Ulysses makes it flexible for you to move text around, to get a word count of an entire group or a few sheets, just select sheets you want to get statistics for and press ⌘ + 7. Doing so, you. Can preview a specific part of your text, to review the part you are currently working on.

Either you are writing a short blog post, newsletter or longer manuscript, it is handy to have access to statistics at your fingertips.

Advanced Grammar Check

Advanced grammar check Wass added in Ulysses 20 and is a part of recent dashboard Revision Mode which was released last year. I will not cover the entire dashboard since I haven’t used it a lot. Out of my interaction with the dashboard, all sections is accessible.

It is useful after you press "Check" button, you will get various suggestions how to improve your text in different ways and remove unnecessary characters or replace often used words with their synonyms.

Once in a while it is fun to browse through suggestions and learn something new. Since english is not my native language, I use this feature all the time before I publish my writing online.

Here is the list of which areas can be reviewed:

  • Spelling
  • Additional Spelling
  • Grammar
  • Typography
  • Style
  • Semantics

After the introduction of advanced grammar checking, Ulysses became an even more powerful writing tool.

External Folders

I don’t know how many users are aware of this feature, but if you like to use different text editors on the same text, it is possible with Ulysses. Instead of storing your notes inside of Ulysses database, you can Drag & Drop a sheet or a group in library view. To access external folders, you need to enable it in settings in library section. Then your sheets will become regular text documents in a folder of your choice. One dilemma I experienced by using Ulysses combined with other text editors is that most editors uses pure Markdown. Therefore, links gets broken after Ulysses syntax.

Another thing to keep in mind that Ulysses don’t longer backups your documents if you use external folders for storage.

Above I mentioned a great feature as Goals & Statistics. Unfortunately, if you use external folders, this feature is not available.

Although few features become unavailable when you have your sheets in the external folder, you still get functionality of Ulysses. It is up to each to decide if they want to deal with lack of couple features in advantage of portability of plain text files.

Left & Right Editor

At first, this one may sound as an unnecessary tool for blind users. However, after I tried to edit two sheets side by side, it was a robust way to jump through sheets. I haven’t discovered other writing applications which let you edit to pieces so seamlessly.
If you are a VoiceOver user and thinking that to get benefits of this feature, you need to have some portion of sight, Fortunately it can be useful for blind users as well. On macOS, you can activate second editor by pressing ⌘ + ⌥ + 3, after this you need to interact out from current editor by pressing VO + ⇧ + Up-arrow key. Now if you navigate to the left, you will hear that VoiceOver announce: "Left Editor group" and respectively if you move to the right, you will hear: "Right Editor group". When you activate a second editor for the first time in this section, you will have the same sheet both in a left and right editor. To select another sheet in one of the editors, you first interact in with for example Left Editor group, interact out and navigate to the left where you have a list of your sheets. There from you selecting the sheet simply by using Up & Down-arrow keys. When you found a sheet you need, you interact out of Sheet List, and move to left editor and interact with it to bring a second sheet to have it side by side. To bring another sheet in the right editor, do the same as I described above.

After you have done this once, Ulysses will remember which editor you interact out from. While you are moving to Sheet List, VoiceOver focus will be on the sheet you currently edited. To get back one editor view, you press ⌘ + ⌥ + 3 once again. When you toggle the second editor off, the sheet which will remain, is the current sheet you are editing or have focus on. Later you maybe change your mind and want to bring a second editor with the same sheet, you use the same keyboard shortcut.

This way you have quick ability to navigate between to specific sheets which may be on the top, another in the middle or near the bottom in your group. This feature confirms that blind users can benefit from multitasking if the feature implemented correctly and is accessible for users with different needs.

Various Export Options

Often when you are finished writing, you need to share it with others, submit before a deadline, or you want to publish a book in several formats. Ulysses currently supports this export options:

  • Text
  • HTML
  • ePub
  • PDF
  • DOCX
  • Publishing
    The first five is self-explanatory, but if you are writing for the web, you may be interested in the last option. You can connect your account and publish to your blog straight from Ulysses. Recently, in version 22 they added support for modifying posts in Ulysses as well. Works currently only on the device you published from. Practical when you need to edit a few typos or maybe forgot to include an url to an article you mentioned in your post. Personally, I haven’t tried to publish directly from Ulysses, but maybe will reconsider this one day.

Inspires to Write

I have tried several writing applications, but it is something special with Ulysses which makes it enjoyable to sit down and write. It may sound Scilly, but so long a tool helps you to write more it is a good tool. Combination of polished UI, excellent support for VoiceOver and many keyboard shortcuts makes it a great experience for writing.

By having the same feature set on all platforms, Ulysses makes it flexible to write words in different context. You could easily review your draft for typos and more using advanced grammar check from your iPhone if you don’t want to go to your Mac or don’t have access to it.

One of the co-founders of Ulysses started on this project because he wanted to write a novel himself, but was not existed by selection of writing tools bak in 2003.1 I’m finding this story very fascinating and if you want to hear this interview with one of the co-founders of Ulysses, you can check out this podcast-episode from iPad Pros.

Flip Side of Ulysses

Nevertheless, a perfect text editor doesn’t exist, but Ulysses at least very close to it.

Here are some few aspects why Ulysses may not fit for your needs:

  • Implementation of Markdown
  • Nonexistent table of contents
  • Wiki Linking
  • Lack of AppleScript
  • Price

Implementation of Markdown

Beauty of Markdown, that it is portable and you can copy & paste it in whatever application you need at the moment. Sadly, things as links and footnotes break if you copy text from Ulysses and paste in a text editor which is based on pure Markdown or Multi Markdown. If you don’t open your text files in other applications and are fine about how Ulysses handles links and footnotes, you are good to go.

Nonexistent Table of Contents

Since Ulysses uses a custom flavour of Markdown, you can’t create a table of contents by writing "{{TOC}}" in your sheet and get a clickable list of headings when you preview your text. Ulysses’ users has asked for this feature for years, but it is unclear whether developers of Ulysses will add it at all.

Wiki Linking

Over last year it was an explosion in note-taking applications, where many added support for wiki links, which makes it possible to navigate to another note in note you are writing in. To make a wiki link, a word, or phrase needs to be surrounded by double brackets, and then this part becomes clickable. For VoiceOver users, VO will announce that there is a link if you came across a wiki link. I found most effective to activate this links by simulating mouse click using keyboard shortcut VO + ⇧ + space.

Such feature opens new possibilities and can take your writing workflow to the next level. Now, you can at least copy an url to a sheet or a group bi right-clicking while you holding ⌥ key down, or pressing ⌘ + ⌥ + ⌃ + C. Since VO key consisting of ⌥ & ⌃ key, you need first to press VO + "TAB" 2before you use the copy url keyboard shortcut.

Having this option is better than nothing, but it could be easier to have a more flexible way to connect your sheets by using native wiki linking.

Lack of AppleScript

Ulysses has a robust X-Callback-URL support, which allows you to manipulate and interact with text in different ways. Unfortunately, Ulysses don’t have AppleScript implementation. I’m a big fan of AppleScript and as a VoiceOver user, I can use it as an accessibility feature as well. For example, In several text editors on my Mac, if the text editor supports AppleScript, I will extract a word count of text as a variable, pass it to VoiceOver and announce it by using a custom keyboard shortcut. Without moving VO focus to count statistic window, I have a convenient way to check how far away I’m from my writing goal. When you are a sighted user, you don’t have this type of problem, since you can always quickly glance at the statistics.

In one of the updates Ulysses broke the ability to dismiss the statistics window by pressing the Esc key. Now, to quit the statistics window, I need to navigate to the top-left corner and press on a "Close" button. I tried to solve this with keyboard shortcut ⌘ + W, but then editor will also be closed. With AppleScript, I could extract any type of statistics without the need of opening the statistics window and spend less time on interaction with the window itself.

Scilly issue, but shows clearly how AppleScript could make applications more effective to use.


As modern development has changed, subscription is now often the preferred choice by developers. Co-founder of Ulysses wrote a great (blogpost) about subscriptions in software industry. In some way, Apple is guilty in this because they never added support for upgrade purchases for customers. If an application you bought before gets a major update, you need to pay full price again.

The most popular excuse for developers to move to subscription is to be able to roll out new features and bug fixes without squeeze it into a major release, but instead ship when it is ready. Ulysses is a fine example of a subscription-based application which rolls out new features, especially, advanced grammar check. After adding this integration with LanguageTool, subscription paid off itself.

Ulysses also offers a student plan which I gladly took advantage of. Personally, when accessibility matters, I will make my writing experience so efficiently as possible. When will it be time to pay full price, will I consider alternatives? Probably, but I’m sceptical that I will find many similar applications with the same set of features, and lower price or even one-time purchase.

At the end of the day, no one is forcing you to use Ulysses. There are great alternatives which is less expensive. If it seems too much by paying for an application which makes your writing process more enjoyable, think about how much money you are wasting on dumb stuff during the year.


I covered most features which I use daily. If you want a full set of features, take a look at this link.

Ulysses is an opinionated application with custom Markdown flavour, but offers many useful features. Therefore, it makes sense why Ulysses has a solid group of users who swears by it.

One thing I’m definitely will continue using Ulysses for, is Revision Mode, which will help me to avoid dummy grammatical errors.

  1. Time when Ulysses first launched ↩︎

  2. Causes VoiceOVer to ignore the next keystroke ↩︎