rstudio / rstudio/bslib

Sidebar marked up as aside

Open
#1,358 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
SCSS
Stars
569
Forks
72
Avg merge
1d 2h
Merged PRs (30d)
5

Description

Describe the problem

Sidebars created using both layout_sidebar() and page_sidebar() are marked up as aside.

OSU accessibility staff identified use cases for different landmarks:

  • Main: The primary content of the page. Excludes sidebars.
  • Form: Sections that contain form inputs and elements. Forms that are used for search should have a role=search and not a form role.
  • Aside: Sidebars and other supporting sections of the page, complementary to the main content at a similar level in the DOM hierarchy, that remain meaningful when separated from the main content.

Sidebar containing UI elements/inputs within a dashboard should not be an aside. Main would be the most appropriate landmark for this. We recommend since it is a form to nest a form landmark within the main land mark to indicate that there is a form to complete to generate the data plots. This should help users more easily navigate the structure of the page. 

Reprex

library(shiny)
library(bslib)

ui <- page_sidebar(
  title = "Page Sidebar Reprex",
  sidebar = sidebar(
    id = "page_aside_id",
    "This text lives inside an <aside> tag at the page level."
  ),
  "Main content area"
)

server <- function(input, output, session) {}

shinyApp(ui, server)
library(shiny)
library(bslib)

ui <- page_fluid(
  h2("Layout Sidebar Reprex"),
  layout_sidebar(
    sidebar = sidebar(
      id = "layout_aside_id",
      "This text lives inside an <aside> tag scoped to this layout component."
    ),
    "Main content block inside the component"
  )
)

server <- function(input, output, session) {}

shinyApp(ui, server)
Session Info

─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.6.1 (2026-06-24)
 os       macOS Tahoe 26.3.1
 system   aarch64, darwin23
 ui       Positron
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       America/Chicago
 date     2026-09-17
 pandoc   NA
 quarto   1.8.24 @ /usr/local/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
! package * version date (UTC) lib source
askpass 1.2.1 2024-10-04 [1] CRAN (R 4.6.0)
base64enc 0.1-6 2026-02-02 [1] CRAN (R 4.6.0)
brand.yml 0.1.0 2025-11-06 [1] CRAN (R 4.6.0)
brio 1.1.5 2024-04-24 [1] CRAN (R 4.6.0)
bsicons 0.1.2 2023-11-04 [1] CRAN (R 4.6.0)
P bslib * 0.12.0.9000 2026-09-17 [?] deps
cachem 1.1.0 2024-05-16 [1] CRAN (R 4.6.0)
callr 3.8.0 2026-06-05 [1] CRAN (R 4.6.0)
cli 3.6.6 2026-04-09 [1] CRAN (R 4.6.0)
commonmark 2.0.0 2025-07-07 [1] CRAN (R 4.6.0)
credentials 2.0.3 2025-09-12 [1] CRAN (R 4.6.0)
curl 8.0.0 2026-08-25 [1] CRAN (R 4.6.1)
desc 1.4.3 2023-12-10 [1] CRAN (R 4.6.0)
devtools 2.5.2 2026-04-30 [1] CRAN (R 4.6.0)
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)
evaluate 1.0.5 2025-08-27 [1] CRAN (R 4.6.0)
fastmap 1.2.0 2024-05-15 [1] CRAN (R 4.6.0)
fontawesome 0.5.3 2024-11-16 [1] CRAN (R 4.6.0)
fs 2.1.0 2026-04-18 [1] CRAN (R 4.6.0)
gert 2.4.1 2026-08-19 [1] CRAN (R 4.6.1)
gh 1.6.1 2026-07-20 [1] CRAN (R 4.6.1)
gitcreds 0.1.2 2022-09-08 [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)
httr2 1.3.0 2026-07-13 [1] CRAN (R 4.6.1)
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)
knitr 1.52 2026-09-06 [1] CRAN (R 4.6.1)
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)
openssl 2.4.2 2026-06-09 [1] CRAN (R 4.6.0)
otel 0.2.0 2025-08-29 [1] CRAN (R 4.6.0)
pak 0.11.1 2026-07-22 [1] CRAN (R 4.6.1)
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.0)
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.0)
prettyunits 1.2.0 2023-09-24 [1] CRAN (R 4.6.0)
processx 3.9.0 2026-04-22 [1] CRAN (R 4.6.0)
promises 1.5.0 2025-11-01 [1] CRAN (R 4.6.0)
ps 1.9.3 2026-04-20 [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)
rcmdcheck 1.4.0 2021-09-27 [1] CRAN (R 4.6.0)
Rcpp 1.1.2 2026-07-05 [1] CRAN (R 4.6.1)
rdtools 0.1.0 2026-07-16 [1] CRAN (R 4.6.1)
renv 1.2.4 2026-08-03 [1] CRAN (R 4.6.1)
rlang 1.3.0 2026-07-05 [1] CRAN (R 4.6.1)
roxygen2 8.1.0 2026-08-04 [1] CRAN (R 4.6.1)
rprojroot 2.1.1 2025-08-26 [1] CRAN (R 4.6.0)
rstudioapi 0.19.0 2026-06-11 [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.0)
shiny * 1.14.0 2026-06-21 [1] CRAN (R 4.6.0)
sys 3.4.3 2024-10-04 [1] CRAN (R 4.6.0)
testthat * 3.3.2 2026-01-11 [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.0)
vctrs 0.7.3 2026-04-11 [1] CRAN (R 4.6.0)
withr 3.0.3 2026-06-19 [1] CRAN (R 4.6.0)
xfun 0.61 2026-09-16 [1] CRAN (R 4.6.1)
xml2 1.6.0 2026-06-22 [1] CRAN (R 4.6.1)
xopen 1.0.1 2024-04-25 [1] CRAN (R 4.6.0)
xtable 1.8-8 2026-02-22 [1] CRAN (R 4.6.0)
yaml 2.3.12 2025-12-10 [1] CRAN (R 4.6.0)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the page_sidebar() and layout_sidebar() entry points and reproduce the generated landmarks using the supplied Shiny examples. Trace how each sidebar's contents are rendered and verify the dashboard and form cases described in the issue. Done means sidebar content is not always exposed as an aside and the landmark structure follows the stated main/form guidance.

Written by the indexing model from the issue text.

Assessment

Tech stack
r
Domain
accessibility, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.