--- shr.el~ 2016-11-29 10:20:10.401598400 +0000 +++ shr.el 2016-12-02 09:04:23.642006900 +0000 @@ -344,8 +344,13 @@ ((or (eobp) (not (setq skip (text-property-not-all (point) (point-max) 'shr-url nil)))) - (goto-char start) - (message "No next link")) + (let ((command (lookup-key (current-local-map) (this-command-keys)))) + (unless (and command + (condition-case nil + (progn (call-interactively command) t) + (error nil))) + (goto-char start) + (message "No next link")))) (t (goto-char skip) (message "%s" (get-text-property (point) 'help-echo)))))) @@ -364,9 +369,13 @@ (not (setq found (get-text-property (point) 'help-echo)))) (forward-char -1)) (if (not found) - (progn - (message "No previous link") - (goto-char start)) + (let ((command (lookup-key (current-local-map) (this-command-keys)))) + (unless (and command + (condition-case nil + (progn (call-interactively command) t) + (error nil))) + (message "No previous link") + (goto-char start))) ;; Put point at the start of the link. (while (and (not (bobp)) (get-text-property (point) 'help-echo))