TAK+-+User+Needs

The Any Key (TAK) is a web site that is aimed at anyone who wants to be informed about keyboard commands. This is potentially anyone who uses the Internet, although most of the users will tend to be on the more knowledgeable side when it comes to computers. This is because many people who are less knowledgeable tend not to use keyboard commands and shortcuts in the first place. While we certainly don’t represent a wide range of potential users, the three members of our group are all typical users. As such, we decided to complete step one ourselves. We started by coming up with an initial overview of our expected users.
 * Step 1: **


 * Initial List of Users: **
 * Developers looking for commands to be used in IDEs, testing software, debugging programs, etc.
 * Graphic designers looking for commands to be used in image or video editing software
 * Businesspeople looking for commands to be used in financial software, store front-ends, etc.
 * Writers, looking for commands to be used in word processors, publishing software, etc.
 * Gamers, looking for shortcuts for actions in computer or video games
 * In a wider, more general sense, potentially anyone who regularly uses applications with shortcuts and has an Internet connection

We also came up with a list of possible user scenarios. We drew from personal experience and from imagined scenarios.


 * Hypothetical User Scenarios: **
 * Using Google Chrome, need quick way to access preferences ( command +, ) without clogging bookmarks bar, searches TAK, finds shortcut
 * Using Photoshop, need a quick way to scale font size ( command + shift + ), searches TAK, doesn’t find shortcut. Searches Google, finds shortcut, adds to TAK database
 * Using Mac, want to take a quick screenshot, searches TAK, doesn’t find shortcut, leaves feedback requesting that shortcut be included
 * Using Office, wants shortcut to hide toolbar, searches TAK, finds incorrect shortcut, Googles for real shortcut, edits incorrect shortcut on TAK

We continued by compiling an initial list of user tasks. We tried to cover all the basic actions that could take place on our web site.


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Initial List of User Tasks: **
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Search database for a command. (very frequent)
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Add a new command to the database. (somewhat frequent)
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Edit the information for an existing command in database. (somewhat frequent)
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Send feedback to the developers (us) about issues/suggestions, or commands to be added. (somewhat infrequent)
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Sign up for account, enables adding and editing commands. (infrequent but important)
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Login to a previously setup account (frequent)

<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">To validate our tasks, we showed our initial task list to a knowledgeable computer user with many years of experience in IT. In talking with him, several issues were raised about our task list and TAK in general.
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 14pt; text-decoration: none; vertical-align: baseline;">Step 2: **


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Issues Raised: **
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">How do you search for a command that you may not know the name of?
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">How to deal with users who may search using questions?
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Will users be thinking in a way that’s command-oriented? Task-oriented? Tool-oriented?
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Mouse commands or multi-touch gestures?
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">User can search for all commands associated with a particular program
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Can user search by entering command keys?
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Can user change password/other info/etc?

<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">After thinking and talking about these issues, we came up with a refined list of tasks.


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Refined List of Tasks: **
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Search database for a command
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Search database for all commands associated with a program
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Record an entered command into the search
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Add a new command to the database
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Edit the information for an existing command in database
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Send feedback to the developers (us) about issues/suggestions, or commands to be added
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Sign up for user account, to enable adding and editing commands
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Login to a previously setup account
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Edit user information
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Assist users when TAK doesn’t have what they’re looking for
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Recover Edit History
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Alternate ways of searching (ie. keybinding)
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Alternate sign in methods (Google, Facebook, ect.)
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Wiki functionality, including articles

<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">The next step was to prioritize our tasks. We grouped our tasks into “must include”, “should include”, and “could include” categories based on what we decided were the most critical elements of our system. We used our own analysis as well as the thoughts of the other person we spoke to to decide what was more important. We also took into consideration the practicality of some of these features.
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 14pt; text-decoration: none; vertical-align: baseline;">Step 3: **


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Must Include: **
 * 1) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Add a new command to the database
 * 2) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Search database for a command
 * 3) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Edit the information for an existing command in database
 * 4) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Sign up for user account, to enable adding and editing commands
 * 5) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Login to a previously setup account
 * 6) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Edit user information


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Should Include: **
 * 1) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Send feedback to the developers (us) about issues/suggestions, or commands to be added
 * 2) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Search database for all commands associated with a program
 * 3) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Make it easy to start looking on your own if TAK doesn’t have anything
 * 4) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Specialized Google search to help out?
 * 5) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Should make it easy for the user to enter the information they find, rather than relying on them to remember to come back.
 * 6) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Edit history that can be recovered
 * 7) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Helps cut down on vandalism?
 * 8) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Makes it easy to fix a mistake
 * 9) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; vertical-align: baseline;">WCAG 2.0 <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;"> accessibility guideline compliance


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Could Include: **
 * 1) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Record an entered command into the search
 * 2) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Keybinding - let users type a shortcut and then search based on that
 * 3) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Javascript can do this
 * 4) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Sign-in with some other account, like Google or Facebook
 * 5) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Articles on categories
 * 6) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Sort of meta-pages that compile together information on a group of commands
 * 7) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Text Editing
 * 8) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Nonstandard names, like “kill” and “yank”
 * 9) <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">3d Camera Controls

<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">When it comes to what users we would like to address, we decided that we would like to address as wide a user base as possible, since anyone using the Internet could potentially utilize TAK. However, we can assume a certain amount of understanding as to what keyboards are and how they function, as well as a general knowledge of what is meant by “keyboard command” or “keyboard shortcut”. We don’t plan to assume anything that we don’t have to however. In terms of accessibility, we want our web site to be accessible to as many people as possible. However, if a feature can only be implemented in an inaccessible way we might still implement it, but the core functionality should be accessible.

<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">In addition, we came up with a list of existing products to compare with TAK.


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Things to Compare To: **
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Stack Overflow
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Wikipedia
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Search engines (Google)
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">KeyXL
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Photoshop Keyboard Shortcut Editor
 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Mac OS X Keyboard Shortcut Preferences


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Stack Overflow: **<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;"> A quick search for keyboard shortcuts on Stack Overflow reveals a long list of posts asking about keyboard shortcuts. Many of the posts are directly requesting a list of keyboard shortcuts for a particular program, or simply providing a list. There are many other posts on keyboard shortcuts that show up as well, which would make it more difficult for a user to find a simple list of shortcuts. Also, the functionality of TAK will go beyond simply providing a list of shortcuts for a program.


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Wikipedia: **<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">TAK may or may not end up being a kind of wiki. Wikipedia has a list keyboard shortcuts that is fairly comprehensive, but only applies to operating systems and is just a single page. A TAK wiki would be more comprehensive and specialized.


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Search engines (Google): **<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;"> Search engines like Google are probably a common way for people to look up keyboard shortcuts, as it is the first instinct of pretty much anybody when you don’t know something on the Internet. Of course search engines that search the entire web are not nearly as efficient as a more specialized search when you know what you are looking for.


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">KeyXL: **<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;"> A large collection of keyboard shortcut lists, grouped by program. KeyXL is searchable only by program and operating system, and provides its information only in list form. Allows users to vote “+” or “-” on shortcuts in a list, indicating usefulness or incorrectness, and has a feature for submitting ratings and comments on each list page as a whole.


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Photoshop: **<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Photoshop provides a list of editable keyboard shortcuts that can be grouped by category. While users who personally edit the shortcuts of a program are not a target user (with regard to that program), TAK will still be useful for users of Photoshop and other programs that have their own list of keyboard shortcuts because those lists are often poorly documented and hard to search.


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Mac OS X: **<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; text-decoration: none; vertical-align: baseline;">Mac OS X also provides an interface for viewing and editing keyboard shortcuts. As well as not providing all of the functionality we hope to provide with TAK, they use symbols to represent certain keys (ie. shift is an upward arrow) without the symbol actually appearing on the physical key. We will aim for better readability and clarity with TAK.


 * <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">Research related to the efficacy and ease-of-use of keyboard shortcuts: **

<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">Amy Hurst, Scott E. Hudson, and Jennifer Mankoff. 2007. Dynamic detection of novice vs. skilled use without a task model. In Proceedings of the SIGCHI conference on Human factors in computing systems (CHI '07). ACM, New York, NY, USA, 271-280. DOI=10.1145/1240624.1240669 <span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 10pt; vertical-align: baseline;">@http://doi.acm.org/10.1145/1240624.1240669

<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">Jeff C. Hendy, Juliette Link, Kellogg S. Booth, and Joanna McGrenere. 2011. Parameter selection in keyboard-based dialog boxes. In Proceedings of the 2011 annual conference on Human factors in computing systems (CHI '11). ACM, New York, NY, USA, 2761-2764. DOI=10.1145/1978942.1979350 <span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 10pt; vertical-align: baseline;">@http://doi.acm.org/10.1145/1978942.1979350

<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">Brian Krisler and Richard Alterman. 2008. Training towards mastery: overcoming the active user paradox. In Proceedings of the 5th Nordic conference on Human-computer interaction: building bridges (NordiCHI '08). ACM, New York, NY, USA, 239-248. DOI=10.1145/1463160.1463186 <span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 10pt; vertical-align: baseline;">@http://doi.acm.org/10.1145/1463160.1463186

<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">Craig S. Miller, Svetlin Denkov, and Richard C. Omanson. 2011. Categorization costs for hierarchical keyboard commands. In Proceedings of the 2011 annual conference on Human factors in computing systems (CHI '11). ACM, New York, NY, USA, 2765-2768. DOI=10.1145/1978942.1979351 <span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 10pt; vertical-align: baseline;">@http://doi.acm.org/10.1145/1978942.1979351

<span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">Joey Scarr, Andy Cockburn, Carl Gutwin, and Philip Quinn. 2011. Dips and ceilings: understanding and supporting transitions to expertise in user interfaces. In Proceedings of the 2011 annual conference on Human factors in computing systems (CHI '11). ACM, New York, NY, USA, 2741-2750. DOI=10.1145/1978942.1979348 <span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 10pt; vertical-align: baseline;">@http://doi.acm.org/10.1145/1978942.1979348 **<span style="background-color: transparent; color: #000000; font-size: 10pt; text-decoration: none; vertical-align: baseline;">Other references: ** <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">Google’s page about accessibility by keyboard commands in Chrome: <span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 10pt; vertical-align: baseline;">@https://sites.google.com/a/chromium.org/dev/user-experience/keyboard-access <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">If users are going to want information on keyboard-based accessibility features, will we need to provide accessibility features of our own to get them there?

A blog post explaining the difference between keyboard shortcuts and “accelerators” <span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 10pt; vertical-align: baseline;">@http://blog.i18n.ro/keyboard-shortcuts-and-mnemonics-or-accelerators-are-not-the-same-thing/ <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">We’ll need to see if users want to search or enter data on accelerators or not.

A guide for designing and selecting keyboard shortcuts and selecting accelerators: <span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 10pt; vertical-align: baseline;">@http://fast-consulting.com/gdhb/gdhb_keyboard.htm <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">This should be helpful in understanding the developer perspective on keyboard shortcuts. To an extent, we’re helping users understand things the way developers intended.

Existing guides to keyboard shortcuts, which we can compare our system to: <span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 10pt; vertical-align: baseline;">@http://morris-photographics.com/photoshop/shortcuts/downloads/PSCS4_Keyboard_Shortcuts_Mac.pdf @http://bibdesk.sourceforge.net/manual/BibDesk%20Help_89.html @http://labmice.techtarget.com/articles/keyboard.htm @http://www.microsoft.com/enable/products/keyboard.aspx @http://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">Most of these guides are static, without any search of navigation features at all. Microsoft’s guide is hierarchical and collapsible, but we can probably do better

A guide to Wikipedia’s access keys (which are the web-equivalent of keyboard shortcuts) <span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 10pt; vertical-align: baseline;">@http://en.wikipedia.org/wiki/Wikipedia:Keyboard_shortcuts <span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 10pt; text-decoration: none; vertical-align: baseline;">We should ask our users: are access keys something they’d want to look up with our tool?