Keyboard navigation gets stuck in the nav_menu when used in page_navbar
When reviewing the keyboard navigation for web accessibility, I'm finding it challenging to transition from page to page in the navbar when there is a nav_menu with multiple panels.
I understand that the left and right arrows move from page to page in the navbar, but after entering the nav_menu, it isn't clear how to exit in with keyboard navigation. Shift Tab only closes the menu, but doesn't let you reverse to the second tab.
By comparison the bootstrap navbar examples do not have this behavior. Navigation is much easier into and out of the dropdown menu: https://getbootstrap.com/docs/5.3/components/navbar/
If there's a keystroke that solves this in bslib, please let me know! Otherwise, I'm concerned it becomes a keyboard trap.
library(shiny)
library(bslib)
ui <- function() {
page_navbar(
id = "main_nav",
nav_panel("first"),
nav_panel("second"),
nav_menu(
"Menu dropdown",
nav_panel("menu1"),
nav_panel("menu2")
)
)
}
server <- function(input, output) {
}
shinyApp(ui, server)
Session Info
Details
─ Session info ───────────────────────────────────────────────────────
setting value
version R version 4.6.0 (2026-04-24 ucrt)
os Windows 11 x64 (build 26200)
system x86_64, mingw32
ui RStudio
language (EN)
collate English_United States.utf8
ctype English_United States.utf8
tz America/New_York
date 2026-08-18
rstudio 2026.04.0+526 Globemaster Allium (desktop)
pandoc NA
quarto 1.9.36 @ C:\\PROGRA~1\\RStudio\\RESOUR~1\\app\\bin\\quarto\\bin\\quarto.exe
─ Packages ───────────────────────────────────────────────────────────
package * version date (UTC) lib source
bslib * 0.12.0 2026-08-04 [1] CRAN (R 4.6.1)
cachem 1.1.0 2024-05-16 [1] CRAN (R 4.6.0)
cli 3.6.6 2026-04-09 [1] CRAN (R 4.6.0)
devtools 2.5.2 2026-04-30 [1] CRAN (R 4.6.1)
digest 0.6.39 2025-11-19 [1] CRAN (R 4.6.0)
ellipsis 0.3.3 2026-04-04 [1] CRAN (R 4.6.0)
fastmap 1.2.0 2024-05-15 [1] CRAN (R 4.6.0)
fs 2.1.0 2026-04-18 [1] CRAN (R 4.6.0)
glue 1.8.1 2026-04-17 [1] CRAN (R 4.6.0)
htmltools 0.5.9 2025-12-04 [1] CRAN (R 4.6.0)
httpuv 1.6.17 2026-03-18 [1] CRAN (R 4.6.0)
jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.6.0)
jsonlite 2.0.0 2025-03-27 [1] CRAN (R 4.6.0)
later 1.4.8 2026-03-05 [1] CRAN (R 4.6.0)
lifecycle 1.0.5 2026-01-08 [1] CRAN (R 4.6.0)
magrittr 2.0.5 2026-04-04 [1] CRAN (R 4.6.0)
memoise 2.0.1 2021-11-26 [1] CRAN (R 4.6.0)
mime 0.13 2025-03-17 [1] CRAN (R 4.6.0)
otel 0.2.0 2025-08-29 [1] CRAN (R 4.6.0)
pillar 1.11.1 2025-09-17 [1] CRAN (R 4.6.0)
pkgbuild 1.4.8 2025-05-26 [1] CRAN (R 4.6.1)
pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.6.0)
pkgload 1.5.3 2026-06-15 [1] CRAN (R 4.6.1)
promises 1.5.0 2025-11-01 [1] CRAN (R 4.6.0)
purrr 1.2.2 2026-04-10 [1] CRAN (R 4.6.0)
R6 2.6.1 2025-02-15 [1] CRAN (R 4.6.0)
Rcpp 1.1.1-1.1 2026-04-24 [1] CRAN (R 4.6.0)
rlang 1.2.0 2026-04-06 [1] CRAN (R 4.6.0)
rstudioapi 0.18.0 2026-01-16 [1] CRAN (R 4.6.0)
sass 0.4.10 2025-04-11 [1] CRAN (R 4.6.0)
sessioninfo 1.2.4 2026-06-04 [1] CRAN (R 4.6.1)
shiny * 1.10.0 2024-12-14 [1] CRAN (R 4.6.0)
tibble 3.3.1 2026-01-11 [1] CRAN (R 4.6.0)
usethis 3.2.1 2025-09-06 [1] CRAN (R 4.6.1)
vctrs 0.7.3 2026-04-11 [1] CRAN (R 4.6.0)
xtable 1.8-8 2026-02-22 [1] CRAN (R 4.6.0)
Keyboard navigation gets stuck in the nav_menu when used in page_navbar
When reviewing the keyboard navigation for web accessibility, I'm finding it challenging to transition from page to page in the navbar when there is a nav_menu with multiple panels.
I understand that the left and right arrows move from page to page in the navbar, but after entering the nav_menu, it isn't clear how to exit in with keyboard navigation. Shift Tab only closes the menu, but doesn't let you reverse to the second tab.
By comparison the bootstrap navbar examples do not have this behavior. Navigation is much easier into and out of the dropdown menu: https://getbootstrap.com/docs/5.3/components/navbar/
If there's a keystroke that solves this in bslib, please let me know! Otherwise, I'm concerned it becomes a keyboard trap.
Session Info
Details