Discord is a discussion forum tool that connects a network of participants. Discussions are grouped by servers that you create, so the topics and membership are up to you. My writing group recently decided to start using Discord as a replacement for discussing by email, which had become impractical.
Discord was designed by gamers. On the bright side, gamers like to keep their hands on the keyboard. Consequently, all Discord’s features are designed for keyboard access. On the down side, Discord wasn’t designed for screen reader usage, and multiple accessibility issues make using Discord a real challenge.
It had been over a year since I used Discord, and thanks to that amazing miracle of the twenty-first century known as the Software Update, the user interface had completely changed. Never fear! Determined to re-learn it, I dove in with the same fervor as I would GarageBand or Google Docs.
AppleVis has Discord knowledge spread out over many forum topics, available with a simple site search. I gleaned knowledge from multiple forum discussions to learn the app and develop a workflow.
Outside of AppleVis, I recommend reading Changeling’s Guide to Discord for Screen Reader Users. In spite of being JAWS and NVDA-centric, it contains valuable information about the organization of Discord, its user interface, and its features.
Finding a list of keyboard shortcuts was a real challenge. The only online reference I could find with Discord Keybinds for Mac presented the information as unreadable images. A big “thank you” to my sighted spouse for transcribing them.
How I Use Discord
After launching Discord, I open the Inbox with Command+I, which lets me read or jump to unread messages. In a discussion channel, I use Up and Down Arrow to navigate messages when those keys work, and VO+Command+H when they don’t. Option+Shift+Down Arrow moves to the next channel with unread content. If I want to jump to a specific channel, I press Command+K to launch the quick switcher and enter the name of the channel.
While in any channel, I just start typing to enter a message and press enter to post. I can also explicitly move VoiceOver focus to the text entry control with the tab key.
Discord can also access your microphone directly for voice channels, and while talking with friends, you can read other text discussions at the same time. It’s a cool feature, and I’ve found it to be accessible in my limited testing.
Discord’s UI uses list elements, and it’s often handy to jump between them. I had to look this up. It’s VO+Command+X.
Perhaps Discord’s most significant accessibility issue is that screen reader users have no way to read a discussion starting from the oldest unread message. Discord provides mechanisms that should work, such as using the Inbox to jump to the first unread message, or pressing Shift+PageUp to scroll to the first unread message. But both fail to move VoiceOver focus. Navigating into a discussion with VO+Right Arrow places VoiceOver focus on the first post in the discussion, which is not the behavior you want.
I’ve got a couple workarounds. Both have their drawbacks.
- Use VO+Command+Shift+H to navigate backwards from the most recent message to a message that sounds familiar, then read forward from there.
- Don’t read unread messages from the discussion screen. Instead, read them from the Discord Inbox.
Reading from the oldest unread message wasn’t the only accessibility issue I encountered. Here are others I felt were noteworthy.
- The text entry control is non-standard and doesn’t work well with VoiceOver. It’s suitable for short or informal posts. For anything longer, or for posts that might require editing, I use an external editor, then copy and paste into the text entry control.
- Some VoiceOver features fail to work well, such as the Item Chooser VO+I. The reason is that each message in a channel contains nine or ten screen elements. Do the math. For a channel with 100 messages, VoiceOver will need to load about 1000 entries into the Item Chooser, and it will be unresponsive while doing so. My workaround is to use the Item Chooser sparingly.
- When creating a new Discord account, Discord presents an hCAPTCHA challenge. To learn more about hCAPTCHA, read my CAPTCHA blog for AppleVis. With Discord, I could not make hCAPTCHA’s accessibility cookie work. Please post your experience in the comments. To register my new account, I ended up using the tried and true sighted spouse workaround.
- Command+/ displays a dialog of keyboard shortcuts or Keybinds.. But images of keys are used rather than text, and some images are not read by VoiceOver.
- VoiceOver focus sometimes jumps around unpredictably or in a user-unfriendly way. It’s a difficult issue to describe. As a workaround, jump to next list (VO+Command+X) or header (VO+Command+H) until focus is back where you want it.
Discord Keybinds - Keyboard Shortcuts
Like many modern apps, Discord provides its own custom palette of keyboard shortcuts, which it calls Keybinds. If you use Discord occasionally, it will be a real challenge to memorize them, but that’s the world we live in.
I assembled the following table of Keybinds from several resources. It’s not exhaustive, but it contains everything I use.
|Show List of Keybinds||Command+/|
|Open Quick Switcher||Command+K|
|Jump to Direct Messages / Home||Command+1|
|Jump to Servers Listed in the Server Sidebar||Command+2, Command+3, etc.|
|Navigate Between Channels||Option+Up or Down|
|Navigate Between Unread Channels||Shift+Option+Up or Down|
|Mark Channel as Read||Escape|
|Toggle Mute in a voice channel||Shift+Command+M|
|Toggle Deafen in a voice channel||Shift+Command+D|
|Jump to Oldest Unread Message (does not move VoiceOver focus)||Shift+PageUp|
|Focus Text Area||Tab|
Discord would be much more accessible if they provided a way to move VoiceOver focus to the oldest unread message. Even with this major shortcoming, Discord is usable. You just have to tolerate a custom palette of keyboard shortcuts and a few accessibility quirks.
I know many blind users find Discord impossible to use. I hope this blog helps. If you still find the app unusable, please post in the comments.