Summary
Considering the standard Twitter website is so basic, it's surprising it is so inaccessible. This Focus Twitter Greasemonkey script puts the favourite, reply and delete links into the keyboard tab order to make it easier for keyboard-only users to use Twitter.
Author: Gez Lemon
Contents
- Twitter Accessibility
- Similar Functionality; not an Equivalent
- Finding a Solution
- Installing the Greasemonkey Script
Twitter Accessibility
There are many accessibility problems with Twitter, but by far the biggest issue is having links that can only be activated using a mouse. The links for making a particular tweet a favourite, the links for replying to a particular tweet, and the links to delete a tweet or direct message can only be activated using the mouse on the standard Twitter website. The favourite, reply and delete links are revealed when the user hovers the mouse over a tweet.
Hiding actions and only revealing them when the user moves the mouse results in a very poor user experience, as many mouse users will be unaware that the functionality exists at all. For keyboard-only users, the situation is far worse, as they could never possibly know the functionality exists.
Similar Functionality; not an Equivalent
Twitter has a set of commands to use with Twitter updates, including a @username
command to send a reply to a particular user. The syntax is @username message you want to send to the user. Whilst useful, there are two significant difficulties with this syntax:
- The reply is associated with the last tweet the user sent. If the user has sent tweets since the particular message a user intends to reply to, the reply is associated with the wrong tweet. By contrast, the reply is always associated with the correct tweet when using the reply button.
- The user has to physically type the username. As usernames aren't always simple to remember, the user sometimes has to copy and paste them. By contrast, the name is automatically put into the reply box with the correct syntax, and associated with the correct tweet when a user hits the reply button.
Using commands to manually send replies is not an equivalent for a button that does everything for the user.
There is also a FAV
command to make a tweet a favourite. The syntax is FAV username, which will make the last tweet by the user a favourite. Like replies, the FAV
command assumes the very last tweet from a user, and requires the user to type the username.
Keyboard-only users cannot delete tweets, as there are no commands for deleting tweets or direct messages.
Finding a Solution
There are so many accessibility issues with Twitter that I originally wanted to build an accessible Twitter application. The problem is that I wouldn't have the bandwidth to run a server-side Twitter application, and Twitter doesn't currently use OAauth, which means I would have to ask users to trust me with their usernames and passwords. When discussing this on Twitter, Derek Featherstone (feather) suggested writing a Greasemonkey script. This was a good idea, as it at least allowed the biggest accessibility problems to be addressed immediately.
The Greasemonkey script reveals Favorite, Reply and Delete links when appropriate for each tweet in the timeline. The link phrases have contextual information for assistive technology, but hidden visually, as the links are clearly grouped with the tweet to which they belong. I also removed the avatar from the keyboard tab order to reduce the number of redundant links for keyboard-only users, as the name immediately by the side of the avatar activates the same link. I have left the link in place so that mouse users have a larger target area, as they can click on the avatar.
Installing the Greasemonkey Script
If you don't already have Greasemonkey installed, you will need to install Greasemonkey in Firefox first. After installing the extension, select the Focus Twitter Greasemonkey script, and you will be prompted to install the script. From then on, you will have access to reply, favourite and delete links using the keyboard.
Category: Accessibility.
[twitter-focus.php#comment1]
When a twitterer adds a new tweet, the new tweet is inserted into the DOM. I missed this functionality in the original script, so the favourite, reply, or delete links were not added to newly inserted tweets.
I've added a mutation event that catches new elements being inserted into the page. When a new tweet is added, the new tweet now becomes keyboard accessible.
If you installed the previous Greasemonkey script, you should update to the latest version of the Focus Twitter Greasemonkey script.
Posted by Gez Lemon on
[twitter-focus.php#comment2]
Thanks you very much for this script, Gez. It makes Twitter not only much more accessible but also more usable. Great work!
Posted by Laura on
[twitter-focus.php#comment3]
Excellent work, too bad twitter don't implement it by default.
Posted by icaaq on
[twitter-focus.php#comment4]
You would not believe how much i dislike Twitter, almost as much as Starbucks if you know what i mean
Posted by Ed Hardy on