Subject: bug#46135: 28.0.50; Gnus: icalendar: Buttons in text/calendar view not reachable by TAB

From: "Jose A. Ortega Ruiz" <[email-masked]>
Date: Wed, 27 Jan 2021 17:33:24 +0000

When using the excellent gnus-icalendar lib, a set of buttons is
displayed when receiving icalendar mime parts.  E.g.:

      1.  ( ) text/plain          (*) text/calendar       

      [ Show Agenda ]    [ Show Org Entry ]    

      Summary:    Accepted: Let's talk about it in this meeting
      Location:   
      Time:       <2021-02-02 18:00-19:00>
      Organizer:  [email-masked]
      Attendance: Required
      Method:     REPLY

Where [ Show Agenda ] and [ Show Org Entry ] are buttons.  If one goes
to the article buffer and presses TAB, though,  they're skipped and
cannot be navigated that way.  It'd be great i one could :)

Thanks!

In GNU Emacs 28.0.50 (build 15, x86_64-pc-linux-gnu, cairo version 1.16.0)
 of 2021-01-26 built on osgiliath
Repository revision: 8f0a2c84b66ff8d45a9d088a181617417115ec9e
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12010000
System Description: Debian GNU/Linux bullseye/sid

Configured using:
 'configure --prefix=/usr/local/stow/emacs --with-x-toolkit=no
 --with-imagemagick'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ IMAGEMAGICK
JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY OLDXMENU PDUMPER PNG RSVG SOUND THREADS TIFF X11 XDBE XIM XPM
ZLIB

Important settings:
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Summary

Minor modes in effect:
  TeX-PDF-mode: t
  org-roam-mode: t
  circe-lagmon-mode: t
  mpdel-mode: t
  telega-patrons-mode: t
  telega-mode-line-mode: t
  sly-symbol-completion-mode: t
  global-diff-hl-mode: t
  eshell-syntax-highlighting-global-mode: t
  pdf-occur-global-minor-mode: t
  winner-mode: t
  show-paren-mode: t
  persistent-scratch-autosave-mode: t
  global-so-long-mode: t
  marginalia-mode: t
  selectrum-prescient-mode: t
  prescient-persist-mode: t
  global-company-mode: t
  ednc-mode: t
  savehist-mode: t
  recentf-mode: t
  save-place-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  global-auto-revert-mode: t
  shell-dirtrack-mode: t
  override-global-mode: t
  selectrum-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t

Load-path shadows:
/home/jao/.emacs.d/elpa.28/telega-20210126.2117/telega hides ~/lib/elisp/telega
/home/jao/.emacs.d/elpa.28/circe-20210111.2141/tracking hides /home/jao/.emacs.d/elpa.28/tracking-20201101.1045/tracking
/home/jao/.emacs.d/elpa.28/circe-20210111.2141/shorten hides /home/jao/.emacs.d/elpa.28/tracking-20201101.1045/shorten

Features:
(shadow rect pkg-info epl org-duration lsp-diagnostics lsp-headerline
lsp-icons lsp-modeline lsp-steep lsp-svelte lsp-sqls lsp-yaml lsp-xml
lsp-vimscript lsp-vhdl lsp-vetur lsp-html lsp-verilog lsp-vala
lsp-terraform lsp-tex lsp-sorbet lsp-solargraph lsp-rust lsp-rf lsp-r
lsp-purescript lsp-pyls lsp-pwsh lsp-php lsp-perl lsp-ocaml lsp-nix
lsp-nim lsp-lua lsp-kotlin lsp-json lsp-javascript lsp-haxe lsp-groovy
lsp-hack lsp-go lsp-completion lsp-gdscript lsp-fsharp lsp-fortran
lsp-eslint lsp-erlang lsp-elixir lsp-elm lsp-dockerfile lsp-dhall
lsp-css lsp-csharp lsp-crystal lsp-cmake lsp-clojure lsp-clangd lsp-bash
lsp-angular lsp-ada lsp-actionscript erlang preview tex-buf reftex-dcr
reftex-auc reftex reftex-loaddefs reftex-vars font-latex latex
latex-flymake flymake-proc flymake tex-ispell tex-style tex tex-mode
geiser-mode geiser-xref geiser-compile geiser-debug geiser-gambit
geiser-chibi geiser-mit geiser-chez geiser-chicken geiser-racket
geiser-guile geiser-repl geiser-image geiser-company geiser-doc
geiser-menu geiser-edit geiser-completion geiser-autodoc geiser-eval
geiser-connection geiser-syntax geiser-log geiser-popup geiser-impl
geiser-custom geiser-base scheme tabify ucs-normalize org-roam
org-roam-link org-roam-graph org-roam-doctor org-roam-dailies
org-roam-completion org-roam-buffer org-roam-faces org-id org-protocol
org-roam-compat org-roam-capture org-roam-db emacsql-sqlite3
org-roam-macs autoload org-archive dictionary dictionary-connection
calc-poly calc-arith calc-misc calc-aent calc-alg metar calc-units
w3m-lnum goto-addr rng-cmpct rng-nxml rng-valid nxml-mode nxml-outln
nxml-rap mhtml-mode css-mode eww xdg url-queue mm-url org-static-blog
org-cliplink org-cliplink-transport org-cliplink-string tramp-cache
async dabbrev binhex flow-fill quail canlock bbdb-pgp mailalias
bbdb-message magit-extras dired-aux gnus-dired goto-chg hl-line
cider-macroexpansion cider cider-debug cider-browse-ns cider-mode
cider-inspector cider-completion cider-profile cider-eval
cider-repl-history cider-repl cider-resolve cider-test cider-overlays
cider-stacktrace cider-doc cider-browse-spec cider-clojuredocs
cider-eldoc cider-client cider-common cider-connection cider-util
cider-popup sesman-browser nrepl-client queue nrepl-dict cider-compat
parseedn parseclj-parser parseclj-lex a sieve-mode pdf-sync pdf-annot
pdf-outline pdf-links pdf-history gnus-fun cl-print debug mm-archive qp
misearch multi-isearch gnus-cite mail-extr gnus-async gnus-bcklg
gnus-dup gnus-ml gnus-topic utf-7 bbdb-gnus gnus-delay gnus-draft
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-cache gnus-msg
nndraft nnmh gnus-demon nntp cal-move view cal-iso w3m-cookie w3m-form
w3m-symbol w3m-filter w3m-search w3m-bookmark w3m-tabmenu w3m-session
helpful trace edebug backtrace help-fns radix-tree elisp-refs vc-mtn
vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs sgml-mode sh-script
executable cdlatex texmathp bibtex url-cache emojify tar-mode lui-track
circe-display-images circe-color-nicks circe-lagmon circe lui-irc-colors
irc lcs lui-format circe-compat slack slack-company slack-unread
slack-websocket slack-thread-event slack-room-event slack-star-event
slack-reaction-event slack-reply-event slack-typing slack-slash-commands
slack-message-event slack-event slack-dialog-edit-element-buffer
slack-dialog-buffer slack-dialog slack-stars-buffer
slack-search-result-buffer slack-thread-message-compose-buffer
slack-file-list-buffer slack-file-info-buffer slack-all-threads-buffer
slack-message-buffer slack-user-profile-buffer slack-pinned-items-buffer
slack-pinned-item slack-thread-message-buffer slack-room-info-buffer
slack-room-buffer slack-message-share-buffer slack-message-edit-buffer
slack-room-message-compose-buffer slack-message-compose-buffer
slack-message-attachment-preview-buffer slack-action slack-star
slack-reminder slack-search slack-message-reaction slack-message-editor
slack-message-sender slack-message-notification slack-buffer
slack-message-formatter slack-thread slack-im slack-channel slack-group
slack-conversations slack-create-message slack-attachment
slack-selectable slack-bot-message slack-user-message slack-file
slack-message slack-message-faces slack-unescape slack-block
slack-mrkdwn slack-usergroup slack-reaction slack-modeline slack-room
slack-counts slack-user slack-bot slack-dnd-status slack-emoji
slack-image slack-request slack-log request lui flyspell ispell
slack-team slack-team-ws slack-util websocket copyright mule-util
embark-consult espotify-embark espotify-consult consult-selectrum
consult ace-window avy char-fold bash-completion em-unix em-script
em-prompt em-ls em-hist em-pred em-glob em-cmpl em-basic em-banner
jao-ednc exwm-systemtray xcb-systemtray xcb-xembed exwm-edit exwm
exwm-input xcb-keysyms exwm-manage exwm-floating xcb-cursor xcb-render
exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xkb
xcb-xproto xcb-types xcb-debug bml-logs bml bml-misc bml-whizzml
bml-clojure bml-clj-tests bml-python info-look bml-skels bml-utils
whizzml-skeletons skeleton whizzml-mode jao-emms-random-album mpdel
mpdel-browser libmpdel-directory mpdel-playlist mpdel-tablist mpdel-song
mpdel-core libmpdel time-stamp navigel espotify jao-mpris
jao-emms-lyrics jao-lyrics jao-emms-info-track jao-emms jao-osd
emms-librefm-stream emms-librefm-scrobbler emms-playlist-limit
emms-volume emms-volume-mixerctl emms-volume-pulse emms-volume-amixer
emms-i18n emms-history emms-score emms-stream-info
emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
emms-browser sort emms-playlist-sort emms-last-played emms-player-xine
emms-player-mpd emms-playing-time emms-lyrics emms-url emms-streams
emms-show-all emms-tag-editor emms-mark emms-mode-line emms-cache
emms-info-exiftool emms-info-tinytag emms-info-metaflac
emms-info-opusinfo emms-info-ogginfo emms-info-mp3info emms-info
emms-later-do emms-playlist-mode emms-player-vlc emms-player-mpv
emms-player-mplayer emms-player-simple emms-source-playlist
emms-source-file locate emms-setup emms emms-compat telega-obsolete
telega telega-tdlib-events telega-webpage visual-fill-column telega-root
telega-info telega-chat telega-modes telega-company telega-user
telega-notifications telega-voip telega-msg telega-tme telega-sticker
telega-i18n telega-vvnote telega-ffplay telega-media telega-sort
telega-filter telega-ins telega-folders telega-inline telega-tdlib
telega-util rainbow-identifiers telega-server telega-core cursor-sensor
telega-customize emacsbug jao-proton-utils enwc enwc-backend bluetooth
json-mode json-reformat json-snatcher js cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
virtualenvwrapper gud ediprolog sly-quicklisp sly-fancy sly-tramp
sly-indentation sly-cl-indent sly-stickers pulse hi-lock
sly-trace-dialog sly-fontifying-fu sly-package-fu sly-scratch
sly-fancy-trace sly-fancy-inspector sly-mrepl sly-autodoc sly-parse sly
sly-completion sly-buttons sly-messages sly-common apropos arc-mode
archive-mode hyperspec geiser sesman clojure-mode paredit
display-fill-column-indicator smartscan lisp-mnt exunit edit-list
debbugs soap-client warnings rng-xsd xsd-regexp lsp-origami lsp-mode
lsp-protocol network-stream inline ht f bindat yasnippet flycheck
jao-vterm-repl jao-compilation gitconfig-mode conf-mode git-link
git-timemachine orgit-forge forge-list forge-commands forge-semi
forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab
forge-github ghub-graphql treepy gsexp ghub forge-notify forge-revnote
forge-pullreq forge-issue forge-topic bug-reference forge-post
forge-repo forge forge-core forge-db closql emacsql-sqlite emacsql
emacsql-compiler url-http url-auth url-gw nsm diff-hl log-view vc-dir
ewoc vc vc-dispatcher eshell-autojump em-dirs esh-var eshell-up
git-ps1-mode em-term eshell-syntax-highlighting em-alias vterm
face-remap term disp-table ehelp vterm-module w3m w3m-hist w3m-fb
bookmark-w3m w3m-ems w3m-favicon w3m-image w3m-proc w3m-util bbdb-mua
bbdb-anniv bbdb-com bbdb bbdb-site timezone jao-maildir jao-frm smtpmail
sendmail randomsig gnutls jao-doc-view saveplace-pdf-view pdf-occur
ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter
semantic/wisent/comp semantic/wisent semantic/wisent/wisent
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local cedet pdf-isearch let-alist pdf-misc pdf-tools
pdf-view magit-bookmark bookmark pdf-cache pdf-util markdown-toc
markdown-mode htmlize jao-org-links pdf-info tq jao-org-utils ol-info
ol-docview doc-view image-mode exif ol-bbdb ol-eshell esh-mode eshell
esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups
esh-util ol-w3m ol-gnus nnselect gnus-search eieio-opt speedbar ezimage
dframe gnus-icalendar org-capture gnus-art mm-uu mml2015 mm-view
mml-smime smime dig gnus-sum shr kinsoku svg dom gnus-group gnus-undo
gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 netrc
nnoo gnus-spec gnus-int gnus-range gnus-win icalendar org-agenda
org-refile gnus nnheader ob-shell ob-scheme ob-python python tramp-sh
tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat
parse-time iso8601 ls-lisp ob-org ob-ocaml ob-makefile ob-haskell
ob-gnuplot ob-clojure ob-calc calc-store calc-trail calc-ext calc
calc-loaddefs calc-macs ob-prolog prolog smie align org-tempo tempo
ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn
nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar
ox-html table ox-ascii ox-publish ox org-element avl-tree org-fragtog
jao-afio winner bm paren autoinsert origami origami-parsers find-dired
dired-x wgrep-ag wgrep grep compile jka-compr company-oddmuse
company-keywords company-etags etags fileloop generator xref project
company-gtags company-dabbrev-code company-dabbrev company-files
company-clang company-capf company-cmake company-semantic
company-template company-bbdb persistent-scratch so-long cal-china lunar
solar cal-dst cal-bahai cal-islam cal-hebrew holidays hol-loaddefs
vc-git appt diary-lib diary-loaddefs jao-embark-targets
jao-embark-prompter embark ffap thingatpt marginalia selectrum-prescient
selectrum minibuf-eldef prescient company-math math-symbol-lists company
ednc jao-minibuffer tracking shorten jao-notify alert log4e
notifications gntp diminish time jao-recoll inform jao-greenish-theme
jao-themes pinentry epa-file battery major-mode-hydra pretty-hydra s
dash-functional memory-usage jao-sleep dbus xml savehist recentf
tree-widget saveplace gnu-elpa-keyring-update poly-org orgit
magit-submodule magit-obsolete magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func imenu
magit-diff smerge-mode diff diff-mode git-commit log-edit message rmc
puny dired dired-loaddefs rfc822 mml mml-sec epa epg epg-config
gnus-util rmail rmail-loaddefs text-property-search mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log
magit-core magit-autorevert autorevert filenotify magit-margin
magit-transient magit-process with-editor shell server magit-mode
transient magit-git magit-section magit-utils crm dash org ob ob-tangle
ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint
org-pcomplete pcomplete comint ansi-color org-list org-faces
org-entities time-date noutline outline org-version ob-emacs-lisp
org-table ol org-keys org-loaddefs find-func cal-menu calendar
cal-loaddefs polymode poly-lock polymode-base polymode-weave
polymode-export polymode-compat polymode-methods pcase polymode-core
derived polymode-classes eieio-custom eieio-base color paradox
paradox-menu paradox-commit-list hydra ring lv cus-edit pp cus-start
cus-load wid-edit paradox-execute paradox-github paradox-core spinner cl
cl-extra help-mode use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key use-package-core
literate-elisp ob-core org-compat advice ob-eval org-macs format-spec
finder-inf tex-site rx easy-mmode edmacro kmacro w3m-load info package
easymenu browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json subr-x map url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo x
multi-tty make-network-process emacs)

Memory information:
((conses 16 7738683 919592)
 (symbols 48 117085 280)
 (strings 32 1119841 126669)
 (string-bytes 1 54907664)
 (vectors 16 308558)
 (vector-slots 8 7846808 509607)
 (floats 8 20924 19743)
 (intervals 56 931823 32062)
 (buffers 984 265))

-- 
You can't do anything about the length of your life, but you can do
something about its width and depth.
 -H.L. Mencken, writer, editor, and critic (1880-1956)