anchor.diff:                     (%follow-hint-new-buffer-focus (first result) buffer)
                      (mapcar (alex:rcurry #'%follow-hint-new-buffer buffer)
                              (rest result)))
  -                 :multi-selection-p t
  -                 :annotate-visible-only-p annotate-visible-only-p)))
  -
  -(define-command follow-hint-nosave-buffer (&key annotate-visible-only-p)
  +                 :multi-selection-p t)))
  +
  +(define-command follow-hint-nosave-buffer ()
     "Show a set of element hints, and open the user inputted one in a new
   nosave buffer (not set to visible active buffer)."
     (query-hints "Open element in new buffer"
                  (lambda (result) (mapcar #'%follow-hint-nosave-buffer result))
  -               :multi-selection-p t
  -               :annotate-visible-only-p annotate-visible-only-p))
  -
  -(define-command follow-hint-nosave-buffer-focus (&key annotate-visible-only-p)
  +               :multi-selection-p t))
  +
  +(define-command follow-hint-nosave-buffer-focus ()
     "Show a set of element hints, and open the user inputted one in a new
   visible nosave active buffer."
     (query-hints "Go to element in new buffer"
                  (lambda (result)
                    (%follow-hint-nosave-buffer-focus (first result))
                    (mapcar #'%follow-hint-nosave-buffer (rest result)))
  -               :multi-selection-p t
  -               :annotate-visible-only-p annotate-visible-only-p))
  -
  -(define-command copy-hint-url (&key annotate-visible-only-p)
  +               :multi-selection-p t))
  +
  +(define-command copy-hint-url ()
     "Show a set of element hints, and copy the URL of the user inputted one."
  -  (query-hints "Copy element URL" (lambda (result)  (%copy-hint-url (first result)))
  -               :annotate-visible-only-p annotate-visible-only-p))
  -
  -(define-command bookmark-hint (&key annotate-visible-only-p)
  +  (query-hints "Copy element URL" (lambda (result)  (%copy-hint-url (first result)))))
  +
  +(define-command bookmark-hint ()
     "Show link hints on screen, and allow the user to bookmark one"
     (query-hints "Bookmark hint"
                  (lambda (result)
                    (let ((url (url (first result))))
                      (bookmark-url :url url)))
  -               :multi-selection-p t
  -               :annotate-visible-only-p annotate-visible-only-p))
  -
  -(define-command download-hint-url (&key annotate-visible-only-p)
  +               :multi-selection-p t))
  +
  +(define-command download-hint-url ()
     "Download the file under the URL(s) hinted by the user."
     (let ((buffer (current-buffer)))
       (query-hints "Download link URL"
  
positive.code:                          ;; TODO: sleep should NOT be necessary to avoid breaking download
                           do (download buffer (url link))
                              (sleep 0.25)))
                   :multi-selection-p t
                   :annotate-visible-only-p annotate-visible-only-p)))
  
negative.code:       (setf (ps:@ element text-content) hint)
        element))
  
    (let ((element (nyxt/ps:qs document (ps:lisp (format nil "[nyxt-identifier=\"~a\"]" nyxt-identifier)))))
      (ps:chain element (set-attribute "nyxt-identifier" (ps:lisp hint)))
      (ps:let ((hint-element (hint-create-element element (ps:lisp hint))))
        (ps:chain document body (append-child hint-element)))))
  
  (defun add-element-hints (&key (selectors '("a" "button" "input" "textarea")))
    ;; TODO: Use hint generator from https://github.com/atlas-engineer/nyxt/issues/1290 maybe?
    (labels ((select-from-alphabet (code char-length alphabet)
               (let* ((exponents (nreverse (loop for pow below char-length
                                                 collect (expt (length alphabet) pow)))))
                 (coerce (loop for exp in exponents
                               for quotinent = (floor (/ code exp))
                               collect (aref alphabet quotinent)
                               do (decf code (* quotinent exp)))
                         'string)))
             (generate-hints (length)
               (let* ((alphabet (hints-alphabet (current-mode 'web)))
                      (char-length (ceiling (log length (length alphabet)))))
                 (loop for i below length collect (select-from-alphabet i char-length alphabet)))))
      (let* ((dom (update-document-model))
             (hintable-elements (alex:mappend #'(lambda (selector)
                                                  (coerce (clss:select selector dom) 'list))
                                              selectors))
             (hints (generate-hints (length hintable-elements))))
        (add-stylesheet)
        (mapcar #'(lambda (elem hint)
                    (hint-element (get-nyxt-id elem) hint)
                    (plump:set-attribute elem "nyxt-hint" hint)
                    elem)
                hintable-elements hints))))
  
  (define-parenscript remove-element-hints ()
    (defun hints-remove-all ()
  