I also agree with Pam in that you should first consult established standards like W3. However, the W3-aria recommendation for tables is essentially an implementation of keyboard-based navigation (arrow keys + space bar). You may want something more.
It helps to understand your motivation for wishing to implement keyboard-driven sorting. If it's an accessibility issue, then W3-aria is a starting point for sure, since that's its driving force. However, it doesn't present you with a very QUICK method of access. If you have many columns in a table, it will take that many right arrow presses to get over to the column and then perform the sort. Bear in mind that if your end-user is motor-skill impaired or is vision impaired, she will have already had to perform a number of keypresses just to tab into the table.
At this point, hotkeys become more attractive. There are a number of problems with hotkeys:
- They often conflict with screen reader default hotkeys
- They must be memorized if they're not obvious
- Keyboard input may become trapped by other technologies such as Flash
Contextualizing your keypress capture will help a lot with points #1 and #3 - for example, certain keyboard combinations being only enabled once the table gains focus, or a particular control has been activated.
For vision impaired users, the whole notion of a large, sortable table is problematic from the outset, and such users would benefit from a more wizard-like approach to accessing, sorting and delivering the data, so I think we will keep them as a second priority.
So now we must consider a) your motor impaired users and b) your power-users.
Power users are less of an issue, since by nature, they will be happy to learn and memorize whichever hotkeys they need in order to make them productive. Choosing a logical, consistent schema is your best approach, for example, using the first letter (or first n letters) of the column heading should be sufficient.
Motor impaired users on the other hand will appreciate the most efficient way to access the controls that they will be using most frequently. For this, it's often more important to consider WHERE the control is placed than WHAT the key combination would be. Consider then disassociating the column sorting controls from the physical placement of the table - or rather, make sure that your sorting controls can be navigated to with a minimum of keypresses.
One such strategy might be to implement a simple pull-down menu that can be placed near the top-left (for LTR languages) of the window. Once the pull-down menu gains focus, you can easily open it and select the column you wish to sort by. A nearby control can reverse the order. Pull down menus are typically associated with hotkeys, and they provide a nice visual way of reminding the user what the hotkey is, while providing an alternative method of navigation (arrow keys + spacebar) for people just learning the interface.
By pulling the sorting controls out of the table itself, you give yourself greater breadth for considering all your target audience needs.