Appendix C: Keyboard Navigation for Lists on Windows
Along with using the mouse to navigate lists on Windows, users can highlight list items with the arrow keys and the page up, page down, home, end, and tab keys, as well as combinations of these keys and the ctrl, alt, and shift keys. The table below documents what these keys and key combinations do by default. Note the following:
- Some keys and key combinations are privatized—that is, they are reserved for the list and can’t be assigned as menu shortcuts without calling L_RETURNKEY and setting their return states to true. These are marked as “privatized” in the Key or key combination column of the table below.
- Some key combinations can never be assigned as shortcuts. These are marked as “list only” in the Key or key combination column of the table below.
- Some key combinations do nothing; these are marked “N/A”.
- The RowMode published property determines whether a cell or a row is highlighted for ActiveX Toolkit lists. If RowMode is off, one cell is highlighted at a time. If it’s on, one row is highlighted. The table below includes columns for the two RowMode states.
- The ArrowKeyAction published property affects the way some keys and key combinations work for ActiveX Toolkit lists. With the default setting, which is 0, arrow keys move from one row to the next. If ArrowKeyAction is set to 1, arrow keys move from one list item (which can be more than one row) to the next. The table below includes columns for the two ArrowKeyAction states.
- Toolkit lists (non-ActiveX) page up by shifting the highlighted row to the bottom of the display (if there are enough items left in the list) and then highlighting the row at the top of the display. They page down by doing the converse, by moving the highlighted row to the top of the page, and so forth.
For more information on published properties for ActiveX Toolkit lists, see Published properties for ActiveX Toolkit lists.
Key Behavior for Lists in Windows Environments |
|||||
---|---|---|---|---|---|
Standard Toolkit lists (non-ActiveX) |
ActiveX lists |
||||
ArrowKeyAction=0 |
ArrowKeyAction=1 |
||||
RowMode off |
RowMode on |
RowMode off |
RowMode on |
||
up arrow (privatized) |
Move up one row |
Move up one row (highlights same cell in previous row) |
Move up one row (highlights entire row) |
Move up one list item (highlights same cell in the next list itema) |
Move up one list item (highlights same row in previous list item) |
down arrow (privatized) |
Move down one row |
Move down one row (highlights same cell in next row) |
Move down one row (highlights entire row) |
Move down one list item (highlights same cell in the previous list itema) |
Move down one list item (highlights same row in next list item) |
left arrow (privatized) |
N/A |
Move left one cell (no wrapping; stops at end of row) |
N/A |
Move left one cell (wraps up to previous row of list item; does not wrap beyond first cell of list item) |
Move up one row within the list item (highlights entire row; does not move beyond first row of list item) |
right arrow (privatized) |
N/A |
Move right one cell (no wrapping; stops at end of row) |
N/A |
Move right one cell (wraps down to next row of list item; does not wrap beyond last cell of list item) |
Move down one row within list item (highlights entire row; does not move beyond last row of list item) |
page up (privatized) |
Page up |
Page up |
Page up |
Page up |
Page up |
page down (privatized) |
Page down |
Page down |
Page down |
Page down |
Page down |
home (privatized) |
Move to first row in list |
Move to first cell in row |
N/A |
Move to first cell in first row of list item |
Move to first row in list item (highlights entire row) |
end (privatized) |
Move to last row in list |
Move to last cell in row |
N/A |
Move to last cell in last row of list item |
Move to last row in list item (highlights entire row) |
tab |
N/Ab |
Move right one cell (wraps to first cell in same row)b |
N/Ab |
Move right one cell (wraps to first cell in next row of list item; wraps from last cell in list item to first cell in list item)b |
N/Ab |
ctrl + up arrow |
Move up one row |
Move up one row (highlights same cell in previous row) |
Move up one row (highlights entire row) |
Move up one row (highlights same cell in previous row) |
Move up one row (highlights entire row) |
ctrl + down arrow |
Move down one row |
Move down one row (highlights same cell in next row) |
Move down one row (highlights entire row) |
Move down one row (highlights same cell in next row) |
Move down one row (highlights entire row) |
ctrl + left arrow |
N/A |
Move left one cell (no wrapping; stops at end of row) |
N/A |
Move left one cell (no wrapping; stops at end of row) |
N/A |
ctrl+right arrow |
N/A |
Move right one cell (no wrapping; stops at end of row) |
N/A |
Move right one cell (no wrapping; stops at end of row) |
N/A |
ctrl + page up |
Page up |
Move to first cell in row |
N/A |
Move to first cell in row |
N/A |
ctrl + page down |
Page down |
Move to last cell in row |
N/A |
Move to last cell in row |
N/A |
ctrl + home |
Move to first row in list |
Move to first cell in list |
Move to first row in list (highlights entire row) |
Move to first cell in list |
Move to first row in list (highlights entire row) |
ctrl + end |
Move to last row in list |
Move to last cell in list |
Move to last row in list (highlights entire row) |
Move to last cell in list |
Move to last row in list (highlights entire row) |
alt + up arrow (list only) |
N/A |
N/A |
N/A |
N/A |
N/A |
alt + down arrow (list only) |
N/A |
N/A |
N/A |
N/A |
N/A |
alt + left arrow (list only) |
N/A |
N/A |
N/A |
N/A |
N/A |
alt + right arrow (list only) |
N/A |
N/A |
N/A |
N/A |
N/A |
alt + page up (list only) |
N/A |
Move to first cell in row |
N/A |
Move to first cell in row |
N/A |
alt + page down (list only) |
N/A |
Move to last cell in row |
N/A |
Move to last cell in row |
N/A |
alt + home (list only) |
N/A |
N/A |
N/A |
N/A |
N/A |
alt + end (list only) |
N/A |
N/A |
N/A |
N/A |
N/A |
shift + up arrow |
Move up one row |
Move up one row (highlights same cell in previous row) |
Move up one row (highlights entire row) |
Move up one row (highlights same cell in previous row) |
Move up one row (highlights entire row) |
shift + down arrow |
Move down one row |
Move down one row (highlights same cell in next row) |
Move down one row (highlights entire row) |
Move down one row (highlights same cell in next row) |
Move down one row (highlights entire row) |
shift + left arrow |
N/A |
Move left one cell (no wrapping; stops at end of row) |
N/A |
Move left one cell (no wrapping; stops at end of row) |
N/A |
shift + right arrow |
N/A |
Move right one cell (no wrapping; stops at end of row) |
N/A |
Move right one cell (no wrapping; stops at end of row) |
N/A |
shift + page up |
Page up |
Page up |
Page up |
Page up |
Page up |
shift + page down |
Page down |
Page down |
Page down |
Page down |
Page down |
shift + home |
Move to first row in list |
Move to first cell in row |
N/A |
Move to first cell in row |
N/A |
shift + end |
Move to last row in list |
Move to last cell in row |
N/A |
Move to last cell in row |
N/A |
shift + tab |
N/Ab |
Move left one cell (wraps to last cell in same row)b |
N/Ab |
Move left one cell (wraps to last cell in previous row of list item; wraps from first cell in list item to last cell in list item)b |
N/Ab |
ctrl + shift + up arrow (list only) |
Move up one row |
Move up one row (highlights same cell in previous row) |
Move up one row (highlights entire row) |
Move up one row (highlights same cell in previous row) |
Move up one row (highlights entire row) |
ctrl + shift + down arrow (list only) |
Move down one row |
Move down one row (highlights same cell in next row) |
Move down one row (highlights entire row) |
Move down one row (highlights same cell in next row) |
Move down one row (highlights entire row) |
ctrl + shift + left arrow (list only) |
N/A |
Move left one cell (no wrapping; stops at end of row) |
N/A |
Move left one cell (no wrapping; stops at end of row) |
N/A |
ctrl + shift + right arrow (list only) |
N/A |
Move right one cell (no wrapping; stops at end of row) |
N/A |
Move right one cell (no wrapping; stops at end of row) |
N/A |
ctrl + shift + page up (list only) |
Page up |
Move to first cell in row |
N/A |
Move to first cell in row |
N/A |
ctrl + shift + page down (list only) |
Page down |
Move to last cell in row |
N/A |
Move to last cell in row |
N/A |
ctrl + shift + home (list only) |
Move to first row in list |
Move to first cell in list |
Move to first row in list (highlights the entire row) |
Move to first cell in list |
Move to first row in list (highlights the entire row) |
ctrl + shift + end (list only) |
Move to last row in list |
Move to last cell in list |
Move to last row in list (highlights the entire row) |
Move to last cell in list |
Move to last row in list (highlights the entire row) |
a. The same column is activated in the previous or next row or list item. For example, if a list item has eight columns in two rows (four columns each), and the fifth column in the list item is active (i.e., the first cell in the second row), pressing down arrow activates the fifth column in the next item in the list.
b. If the list is part of a composite window, tab and shift + tab move focus to the next or previous child window or enabled button on the composite container window.