Keyboard controls for music tree
Currently there's keyboard controls for the library tree, only for the playlist. The gestures should confirm to the aria tree conventions:
Right arrow:
- If the focused node has children and is collapsed, expand it.
- If the focused node has children and is not collapsed, focus the first child
Left arrow:
- If the focused node has children and is expanded, collapse it.
- If the focused node is collapsed or has no children, focus the parent node.
Up arrow:
- If the parent node is expanded and has multiple children:
- If this is the first node:
- Focus the parent node
- If the previous child of this node's parent is an expanded node with children:
- Focus the last child.
- If this is the first node:
- If this is the first node at the tree root in the tree, do nothing
- Otherwise focus this node's previous sibling
Down arrow:
- If the parent node is expanded and has multiple children:
- If this node has expanded children
- Focus the first child
- If this is the last node in its parent:
- Focus the parent node's next sibling
- If there is no next sibling of the parent node, do nothing
- If this node has expanded children
- Otherwise focus this node's next sibling
Space:
- Select this node and deselect all others
Ctrl-Space:
- Toggle select for this node
Enter:
- Add this node to the play queue and play
Shift-Enter/Alt-Enter:
- Add this node the play queue and do not play
Home:
- Focus the first node in the tree
End:
- Focus the last node's last expanded child
Expand selection actions are not currently planned until a reasonable behaviour when crossing album behaviours is decided.