Keyboard navigation: a new prototype

91 views
Skip to first unread message

Yakov

unread,
Jul 18, 2025, 3:51:10 PMJul 18
to TiddlyWikiClassic
Hello everyone,

recently I figured that I really want to implement some nice keyboard navigation (aside the JumpKeysPlugin) while keeping an eye on accessibility, too. That proved to be a long-term project, but I think I now have a prototype that can be helpful, so let me share it:


I'm not 100% satisfied about the behavior on tiddler click (sometimes scrolling to the title is not convenient, so I'll be thinking about when to prevent it), but other than that (and maybe the selected tiddler styling), it looks to me as a good candidate to be included into the future core versions.

Let me know if you find it helpful or if you have any objections to adding similar functionality to the core.

Best regards,
Yakov

Yakov

unread,
Sep 6, 2025, 8:11:15 AMSep 6
to TiddlyWikiClassic
Just want to point that the plugin got much more mature, now there are scopes (global/tiddlerEdit/tiddlerFocus) for commands, and one can set different hotkeys for those scopes (as an example of a global command, there's an implementation of saveChanges command, which can substitute SaveByHotKeyPlugin). Various other features were added, like ctrl+↑/↓ to jump between edit fields, esc to move focus from an in-tiddler element to the tiddler itself, etc.

There's still a lot to do (for instance, support of edit context commands, so that one can "ctrl+b to wrap selected text with ''...''", or means to quickly navigate between "areas" like backstage, main menu, or tiddlers), but it already makes my user experience much more pleasant, so you may want to give it a try.

(by the way, I've also updated YourSearchPlugin to make it compatible with DarkModePlugin and KNP)

пятница, 18 июля 2025 г. в 22:51:10 UTC+3, Yakov:

Roma

unread,
Sep 10, 2025, 5:14:17 AMSep 10
to TiddlyWikiClassic
Dear Yakov,
Many thanks. I still find this kind of plugin very useful as it is related to productivity. I could try KeyboardNavPrototype, so here are my comments.
  • I love the keyboard access to menu commands (edit, cancel, focus, etc.) or fields in a tiddler. [Shift+Tab], [Tab] to reverse the cycle or go to fields in a tiddler, [Esc] to shift menu access / fields in a tiddler.
  • I use a lot JumpKeysPlugin. Both plugins are companions.
  • I didn't catch the focus trick. ctrl+↑/↓ just puts me page up or down. Since for first release I never could find FocusTiddlerPlugin (the reason why I didn't comment). I use CollapseTiddlersPlugin.
  • [Ctrl+Shift+d] or [d] just proposes me to suppress the tiddler when in edit mode, otherwise nothing.
  • I use TW almost always in "Tab mode" (TiddlersBarPlugin). This is why JumpKeysPlugin is, somewhat, more useful for me. But yes, the possibility to access commands, panels (areas)... was missing.
May be I forgot some comments. I will let you know in this case. I am very enthousiastic! I wish you the best...
Roma -

Yakov

unread,
Sep 13, 2025, 9:50:19 AMSep 13
to TiddlyWikiClassic
Hi Roma, thanks for the feedback!

The ctrl+↑/↓ are set to do 2 types of navigation:
1. If you select a tiddler (for instance, by clicking on it, but not on a button or an input inside it), it shifts selection to the next/prev tiddler;
2. If an input is in focus (for instance, an editor of title/text/tags), it shifts focus to the next editor. This was done primarily because with chkInsertTabs: true, you can't navigate out of text editor (as tab/shift+tab are "blocked").

> [Ctrl+Shift+d] or [d] just proposes me to suppress the tiddler when in edit mode, otherwise nothing.
Not sure what you mean by "suppress", doesn't it delete the tiddler?

среда, 10 сентября 2025 г. в 12:14:17 UTC+3, Roma:

Yakov

unread,
Sep 24, 2025, 3:21:28 AM (13 days ago) Sep 24
to TiddlyWikiClassic
Another update includes:
  • self-documentation (KeyboardShortcuts shadow/<<keyboardShortcuts>> macro);
  • hotkeys to jump to tiddlers (t)/sidebar (s)/main menu (m)/backstage (b) + ability to add custom (see self-doc);
  • skip to content link (hidden, gets into focus on first Tab) + hidden link to KeyboardShortcuts after it;
  • some minor improvements.
PS Roma, I got what confused you about the d/ctrl+shift+d shortcuts, see the updated intro.

Presumably, I'll start merging the plugin into JumpKeysPlugin soon.

суббота, 13 сентября 2025 г. в 16:50:19 UTC+3, Yakov:

Roma

unread,
Sep 26, 2025, 9:32:45 AM (11 days ago) Sep 26
to TiddlyWikiClassic
This is great! Works well. Thank you for all... Merging with JumpKeyPlugin will make a key plugin ;) :)

Roma

unread,
Sep 28, 2025, 7:24:19 AM (9 days ago) Sep 28
to TiddlyWikiClassic
I notice that the Plugin prevents me from selecting text when not in edit mode: the highlight is not maintained...

Yakov

unread,
Sep 28, 2025, 7:49:31 AM (9 days ago) Sep 28
to TiddlyWikiClassic
Could you be more specific on how to reproduce the issue (steps, expected behavior, actual one)? If it's reproducible on a11y.tiddlyhost.com, please describe for it; otherwise, this needs investigating interaction with other extensions, maybe listing all the installed ones will be a start. Finally: did the behavior changed to the unwanted one on some update of KNP, or you just have noticed the problem recently, while it may have been there since the first version you've tried?

воскресенье, 28 сентября 2025 г. в 14:24:19 UTC+3, Roma:

Roma

unread,
Oct 2, 2025, 7:41:08 AM (5 days ago) Oct 2
to TiddlyWikiClassic
Yes.
  • When I disable KeyboardNavPrototype the issue disappears.
  • In a11y... same effect: when I highlight (select) text, the selection does not retain.
  • I didn't change anything to KeyboardNavPrototype.
  • I have other plugins of course and could give you the list but seem to me alright because no issues between them...
  • My OS is Pop OS on Linux. It has native shortcuts but I don't see a potential relationship with mouse actions.
  • I use Firefox with Timimi.
  • I changed the pointer device, from a graphic tablet to a tracker: same issue.
  • As a reminder, JumpKeyPlugin is installed and works well (no such issue).
As the problem remains on your a11y site, we can suppose some problematic computer caracteristics on my side. 
Let me know what you want me to do to check other parameters. Meanwhile I will try to test on a Windows system.
To be followed...

Roma

unread,
Oct 2, 2025, 7:46:04 AM (5 days ago) Oct 2
to TiddlyWikiClassic
Sorry, forgot:
  • I don't remember this issue on the previous version of KeyboardNavPrototype. May be I just didn't notice / try.
  • I replaced the previous version by the latest.

Yakov

unread,
Oct 2, 2025, 7:51:19 AM (5 days ago) Oct 2
to TiddlyWikiClassic
Right, no need for further testing, it's Firefox that behaves differently, thanks for the report! I'll debug this somewhat soon (most likely in a couple of days).

четверг, 2 октября 2025 г. в 14:46:04 UTC+3, Roma:

Wolfgang

unread,
Oct 4, 2025, 12:57:15 AM (4 days ago) Oct 4
to TiddlyWikiClassic
Hi, I use Palemoon with Tiddlymoon on Windows. The shortcuts do not work. Instead Palmoon functionality is invoked...
Regards, Wolfgang

Yakov

unread,
Oct 4, 2025, 2:16:22 PM (3 days ago) Oct 4
to TiddlyWikiClassic
Roma, check v0.17.8, for some reason I've commented out the check of noTextIsSelected and it happened to behave differently in Chromium-based browsers and Firefox; I've returned the check in the new version.

Wolfgang, which hotkeys/actions do you have problems with?
  • Are there any problems with the global "jump to " shortcuts or scoped "an editable is in focus" actions "jump to the next/prev editable"?
  • In 0.17.8, I've fixed a similar bug for commands with "a tiddler is in focus" scope (in Chrome, if I set ctrl+f shortcut to such a command, pressing ctrl+f caused both default browser action and the command, now just the command), does it help in your cases?
  • If any problems with the other commands/actions, please provide an example.

суббота, 4 октября 2025 г. в 07:57:15 UTC+3, Wolfgang:

Wolfgang

unread,
Oct 5, 2025, 12:55:52 AM (3 days ago) Oct 5
to TiddlyWikiClassic
Hi Yakov,

sorry for beeing unprecise.

The global shortcuts work.
I don't understand what "a non-editable inside a tiddler is in focus" means and <esc> should do.
Using the standard "empty" TWc v2.10.2:
  • "d" does not delete tiddler (which is better so, I think)
  • ctrl+shift+d in edit mode brings "new bookmarks" in Palemoon
  • ctrl+b brings "organise bookmarks" in Palemoon
  • ctrl+l brings "open web link" in Palemoon
Using my customized TWc, some shortcuts do not make sense:
  • e.g. arrow-up/-down (have SinglePageModePlugin ), global "t" (only have tiddlers), global "b" (do not use backstage), global "s" (do not use backstage)
But that is OK for me. What would be nice:
  • global "m" opens  MainMenu, where arrow-up/-down selects menu entries and <enter> opens menu
  • global shortcut (e.g. "h") to open history (HistoryPlugin), same behavior for arrow-up/-down to select/open entries
  • global shortcuts to go to next/previous tiddler in history
  • global shortcuts for new tiddler, new journal, references, fields...
  • in edit mode shortcuts for "done", "cancel"...
I attached my customized TWc v2.10.2.

Many thanks,
Wolfgang
DEV2102-KeyboardNav.html

Roma

unread,
Oct 5, 2025, 9:56:52 AM (2 days ago) Oct 5
to TiddlyWikiClassic
  • For my part, I confirm the text selection issue is fixed. 
  • Moreover, I confirm the plugin is handy and works overall. 
  • However, B worked previously but strangely no more now. 
  • S worked when Side panel is open but not anymore now (I use a button to "fold" it by befault, like backstage, it to get space and mainly to get rid of the long list of tiddlers which gives huge page height and makes page navigation top / bottom too heavy for nothing). 
  • (I have no MainMenu.) 
  • Ctrl+B Fold / Unfold Bookmarks panel, which is handy. 
  • T worked if I remember well but has no effect now, which I regret just a little because Ctrl+J is so handy! 
  • Other shortcuts have no effect. 
  • So, to sum up, I appreciate the easy access to the toolbar menu through TAB. 
  • Ctrl+TAB shifts to the navigator tabs. 
  • May be what I see useless and as a kind of "pollution" are the buttons (the scopes?) appearing to choose the Keyboard Shortcuts reminder or the Jump to Main Content, unless I missed something.
Many thanks too, Yakov!
R -
Reply all
Reply to author
Forward
0 new messages