Discussing with Discord

By PaulMartz, 24 June, 2022

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.

Learning Discord

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.

Accessibility Issues

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.

Action Keybind
Show List of Keybinds Command+/
Open Inbox Command+I
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

Conclusions

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.

Options

Comments

By emassey on Friday, June 24, 2022 - 04:27

I have never used Discord for desktop, but I have used the iOS app, and it is pretty accessible, although there are a few issues. I am not sure if keybinds work, since I almost always use a braille display rather than a Bluetooth keyboard. I have found no way to jump to unread messages, and you cannot even move to the last message easily. When you navigate from the text field at the bottom to the message list, the VoiceOver focus moves to a message somewhat up the list, so you have to navigate past at least a few messages to find the last one, and the number of messages above the last one varies. You can read messages from notifications, but long messages are truncated this way, and channels that receive a lot of messages quickly will stop sending notifications for a while, and I have found no way to turn this off. Also, Discord will not send notifications while you are using the app, even for channels and direct messages you are not currently reading. Its in-app notifications are displayed on screen but are not announced by VoiceOver, and if you happen to find one with VoiceOver they disappear very quickly. In the menu that can be opened from the button on the top-left, unread direct messages are shown before the servers, and each server says if you have any mentions there, which automatically includes replies to messages you sent. To read old messages that are not on screen, you have to find the button that says "load older messages", between the buttons at the top and message list, but you cannot navigate to it from the left, but you have to navigate left past all the messages on the screen unless you can find it by touch. Scrolling up usually moves faster though. In addition, sometimes Discord stops responding completely and eventually crashes, although this is rare.

By PaulMartz on Friday, June 24, 2022 - 04:27

Thanks for the information regarding the iOS version of Discord. From reviewing Discord forum topics here on AppleVis, I understand there have been attempts to improve Discord's accessibility. Let's hope those efforts continue. Whether on iOS or Mac, it appears to have a long way to go.

By Bruce Harrell on Monday, July 24, 2023 - 04:27

I got tired of beating my head against my discord ignorance for hours every day for the past couple weeks, so, duh, I thought I'd look on applevis and see if anyone had comes up with helpful suggestions. Lo and behold! Today, now armed with Paul's many helpful hints, I'm going to charge headfirst into the discord wall. Maybe (here's hoping) I'll actually make progress! smile

Thanks,

Bruce
d

By PaulMartz on Monday, July 24, 2023 - 04:27

I am still using Mac Discord, pretty much on a daily basis, and things behave essentially as I originally described here in this blog. It requires some patience while you develop a workflow, and if you use it rarely, it will always be frustrating. FYI, I tried using the iOS app and did not have the patience to master it, so I'll just keep using the Mac version.

By PaulMartz on Wednesday, June 26, 2024 - 04:27

I did something other than a simple test of voice channels today. I participated in a virtual competition for solving the Rubik's Cube. The scenario is that a competitor and a judge use a voice channel together. They each enable their microphones with Command+Shift+A as described in this post. The competitor also enables their camera. I never did learn the shortcut for this, but once you’re in a voice channel, navigate around until you find the button to turn on the camera. The camera allows the judge to visually verify that the competitor is following the rules for solving the cube.

In my experience, it worked great. Discord uses noise canceling that seems to produce better results than Zoom. I can’t speak to image quality, but the judge who observed my solves didn’t seem to have any issues. The user interface is clumsy, but it worked.