Commands have an isExectuable method which say if they can run in the current context (e.g. table commands only run on table selections, clear annotation only runs on annotated selections, list ident only on lists).
If isExecutable is false, we don't prevent default so inputs like 'TAB' return to their default behaviour outside of a list item.
This can cause problems if the default command is undesirable, e.g. on macs, command+m closes the window, but we map it to clear annotation command, so when run on a non-annotated selection it falls back to closing the window.
In this particular example we should probably remove command+m, but in general we should allow commands to distinguish between isExecutable, and shouldTriggerPreventDefault.