Status Of The Accessibility Of Slack
After my report on the accessibility of the IRCCloud IRC client, but also in general, the question of how accessible the Slack team communication service is, has come up time and again. Here’s my observation after trying it out.
What is Slack?
Slack is an instant messaging service for teams. Primarily targeted at companies initially, it now has been adopted more and more by open-source projects like WordPress, too, over traditional Internet Relay Chat (IRC).
Unlike IRC, signing up to Slack teams is relatively simple. You need either a public invitation link or one sent to you via mail by someone who is already on that team, or administers it. You then fill out a form with your e-mail address, nickname and password, and in you are.
On IRC, if you want to join a channel of a project, you first need to know the server this particular project runs its channel on, AKA the IRC network, choose a nickname and then have a varying number of methods to authenticate as you, or not as the case may be. With Slack, all you need after signup is the team name, your e-mail address and chosen password, and in you are.
Slack incorporates several features that make it a more productive tool over IRC in many ways. At the time of this writing, January 2016, there are over 150 apps and services that can be integrated into a team, ranging from simple Twitter notifications when a particular account is mentioned, to document sharing via Dropbox, Box or Google Drive, to initiating team-wide calls via either Skype or Google Hangouts. It integrates with Github, Trello and other productivity services. So, you essentially use Slack as the hub of communication in your team around a project where everything ties together. Some even report they’ve completely replaced e-mail communication with Slack rooms to make it easier to keep everyone on the same page. As Slack is centralized, there is also no such thing as net splits known from IRC that can cause relatively frequent down times.
What initiated my interest?
Originally, I wanted to join the a11ySlackers via Slack. While doing so, I found several problems, with both the website as well as the iOS client, that made me quickly abandon that effort, and instead use Gitter and its IRC bridge plus IRCCloud as my IRC client.
However, in early January of 2016, Chris Heilmann announced that he had created a Slack community for evangelists/advocates. Drawing from my past experience, I told him that I would love to join, but that Slack is very inaccessible and thus not an option for me. I really felt left out and disappointed. Christian captures the essence of our conversation and his conclusions in his post titled “Don’t use Slack?“.
However, after sleeping over it for a night, I decided to turn this frustration into something positive and dig back into the problems I was having with Slack and maybe contact the team at Slack to fix their stuff. I started by signing up to Chris’s evangelism community, which is appropriate anyway since evangelism/advocacy is a large part of what I do.
And here are my observations about the accessibility of the different ways one can interact with Slack.
The web interface
As hinted already, the web interface is pretty much inaccessible once you join a team and interact with the real UI. Getting information about Slack, even signing up to a team work OK, but the actual hot stuff isn’t working. Aside from the textarea that is the input for a message, and an occasional link strewn about, the rest is all non-semantic clickable div and span elements, probably very nicely colored if memory serves me right from reading reviews. Even though it’s 2016, and Slack has only been around since 2013, they definitely didn’t use the web accessibility basics, AKA proper semantics, in their HTML. So yes, you can get all kinds of information about Slack, you can sign up to teams, but the rest should then be done in a mobile client (see below). That is, if you’re a keyboard or screen reader user or have a need for other assistive technologies in the browser. The only place this is a little better is in mobile Safari, and using exploratory touch, not sequential walk through of the web app. There, you can get to certain things a little more easily than from the constraints of a desktop browser/screen reader combination.
The Mac and Windows clients
The same sad story is true for the native clients on Mac OS X and Windows. I tested the OS X client myself, and it is mostly a native wrapper around the same inaccessible web content. The Windows version, according to tweets I received, is similar, with not much to go on for assistive technologies.
The iOS client
From reports of friends, and my initial trials, I knew the iOS client was supposed to be accessible. However when I first tried this with the a11ySlackers, I found a very confusing bug with where my position was or should be within a channel’s message history. Back then in September of 2015, I gave up and switched to IRC instead. Now, as I signed up to Chris’s evangelism community, I decided to dig back into this and finally figure out what was wrong. Because the rest of the app seemed largely accessible, including hiding the background when one of the side bar menus is active, something many iOS developers get wrong initially, by experience. It took me a sleepless night and a literal four-o’clock-in-the-morning-moment to figure out what was actually going on. Here’s the story:
When launching into a channel, the last messages that came in are being shown. You would expect that this would be the bottom of the list of messages. It actually is, just not for VoiceOver. VoiceOver thinks I am on page 1 of 42. Normally, to get to earlier messages, one would scroll the screen down, done with a 3 finger swipe down in VoiceOver. Not so in Slack. Because VoiceOver gets the screen pages in reverse order, I found that I had to scroll upwards to get older content. But the content itself was then shown oldest at the top, newest at the bottom again. A later visual confirmation shows that, when you scroll up with VoiceOver, by flicking upwards with 3 fingers, the actual screen visually scrolls down, going the opposite direction as your fingers. The same is true in the opposite direction as well. This is definitely not like all other iOS apps I’ve used before behaved. They always scrolled in the correct direction and showed the items in the order I would expect them to. I’ve really never seen this particular bug in any iOS app before, and it confused the bloody hell out of me!
So here’s what I found works best to catch up on a channel:
- When you initially come into a channel, and have more than one screen worth of unread items, find an item near the top header stating how many unread messages there are. Use exploration, not swipes, ideally.
- Double-tap that item.
- You will be placed onto a heading saying “New Messages”. Start swiping right to sequentially read all new messages. You can go straight to the imaginary bottom (from a VoiceOver’s point of view).
One other problem I found is with messages that contain attachments such as links to articles, images etc. These can currently not be accessed with VoiceOver.
When I wrote about those two problems to the Slack feedback e-mail address, I got a response that both problems are known, and will hopefully be fixed soon. I hope that soon is sooner rather than later. The scrolling problem was already in the September timeframe and is still there in the current version 2.66 of the iOS app a few months later.
Amanda Rush, who I exchanged notes with on Twitter, told me that she and others were seeing problems also with the sub menu that allows to change teams, and a general sluggishness in busy channels. I cannot confirm either. I am on two teams by now, and never had problems switching between teams or channels on either iPhone or iPad.
The Android client
The Android client, from some initial testing, also seems largely accessible, and it doesn’t even have a wrong page/scrolling order! Yay!
The only thing I found are two unlabeled controls, one at the top of the Settings screen, and one in the sub menu for adding/changing teams. Adding a team is unlabeled, existing teams have labels.
If you have an iOS or Android device and are in need of any assistive technology, the clients should get you most of the way there in terms of accessibility of the Slack service. The web site is another matter, though, and if you only have a desktop computer and assistive technology, you are currently out of luck.
However, there are rumors that Slack are working on improving the web site’s accessibility. I certainly hope so, and that those improvements will hit the public soon! After all, the biggest driver behind the development of Slack features, according to Slack’s CEO Stewart Butterfield in an interview with German Gründerszene Magazin, is the question how users feel when using the service. Well, I can tell you, Mr. Butterfield, right now, a not small group of users or potential users feel pretty much left out! And it is my sincere hope, and plea, that you use some of those millions of dollars you keep raising, to make sure that more users feel better about your service in the near future!
I will keep this article updated to reflect latest developments as they reach the public.