Jump to content

Topic on Extension talk:RevisionSlider

Suggestion: Add keyboard shortcuts to move between revisions

Summary by

Tracked here. (talkcontribs)


As a user, I can't easily move to the previous (or next) set of revisions easily without using the mouse.


Currently, if a user wants to move both pointers at the same time they need to click and drag the pointers twice, once to move the first pointer, and a second time to move the second one. While this makes perfect sense when the revisions are far apart, it is quite cumbersome when one wants to move to the previous (or next) two revisions.

Proposed solution

Keyboard shortcuts to move in each direction:

  • Shortcut to move both pointers ( ctrl + alt + ) - simultaneous move the pointers to the two previous revisions.
  • Shortcut to move one pointer (ctrl + ) - move the left or right pointer to previous or next revision (talkcontribs)

For the second shortcut since there are cases where one would want to use either the left or the right pointer, maybe these would be better:

  • Move right pointer- META+ Shift+ 
  • Move left pointer - META+ 
Christoph Jauera (WMDE) (talkcontribs)


thanks for the feedback. I created a ticket for your proposal on Phabricator so we can keep track off the idea and consider it for a future version or volunteers that might want to work on it. https://phabricator.wikimedia.org/T162119


Christoph (talkcontribs)

This seems like such an easy hack, that it would probably also be useful for mediawiki core, and it is also easy to write a simple userscript (something I'll probably do for myself).

Thanks for the prompt feedback... (talkcontribs)

I created this small userscript that does this. It doesn't yet move the pointers individually because that's a bit more complex. This even works on older mediawiki versions (> mediawiki 1.19).

// This software is entirely free to re-use, adapt, or sell  (hope it makes someone rich!), without any warranty of any kind or need to attribute "the IP". Use it at your own risk.
// Use ctrl + alt + arrow (left or right) to move to previous revisions or next.
var pressedKeys = {
	ctrl: false,
	shift : false,
	left: false,
	right : false
var urlQry = {};
location.search.substr(1).split("&").forEach(function(token) {
	urlQry[token.split("=")[0]] = token.split("=")[1];
document.onkeydown = function (event) {
	if (urlQry.type === "revision" || urlQry.diff) {
		if (event.ctrlKey) {
			pressedKeys.ctrl = true;
		if (event.keyCode == 37) {
			pressedKeys.left = true;
		} else if (event.keyCode == 39) {
			pressedKeys.right = true;
		if (pressedKeys.ctrl && pressedKeys.left) {
		} else if (pressedKeys.ctrl && pressedKeys.right) {
document.onkeyup = (function(event) {
	// reset status of the button 'released' == 'false'
	if (urlQry.type === "revision" || urlQry.diff) {
		if (event.ctrlKey) {
			pressedKeys.ctrl = false;
		if (event.keyCode == 37) {
			pressedKeys.left = false;
		if (event.keyCode == 39) {
			pressedKeys.right = false;
}); (talkcontribs)

It is also works independently from revision slider, so maybe it will help future "searchers".