[BlindMath] FW: [BlindRUG] Introducing R maidr: explore ggplot2 and base R plots with sound, text, and braille

dandrews920 at comcast.net dandrews920 at comcast.net
Fri Oct 2 23:29:14 UTC 2026



-----Original Message-----
From: BlindRUG <blindrug-bounces at nfbnet.org> On Behalf Of Seo, JooYoung via BlindRUG
Sent: Friday, October 2, 2026 3:51 PM
To: blindrug at nfbnet.org
Cc: Seo, JooYoung <jseo1005 at illinois.edu>
Subject: [BlindRUG] Introducing R maidr: explore ggplot2 and base R plots with sound, text, and braille

Hello everyone,

My name is JooYoung Seo. I am a blind information scientist and an assistant professor in the School of Information Sciences at the University of Illinois Urbana-Champaign, and I use R in my own work. My lab, the (x)Ability Design Lab, develops "maidr" (Multimodal Access and Interactive Data Representation, pronounced "mader"), an open-source system that lets blind and low-vision people explore data visualizations.

In 2020 I was a software engineer intern at RStudio, where I worked on screen reader and keyboard accessibility in Shiny, R Markdown, and the IDE.

I am writing to introduce R maidr, which brings maidr to ggplot2 and base R. I maintain it on CRAN, and Niranjan Kalaiselvan co-authored it. Version 0.5.0 reached CRAN on September 29, 2026, and I would like to hear what this group thinks of it.

A text description or alt text can tell you what a plot shows, but it does not let you compare values, follow a trend, or find an outlier yourself. R maidr turns a ggplot2 or base R plot into an interactive version that you explore with the keyboard. Sighted colleagues still see the plot as designed. You reach every data point with the arrow keys. Your screen reader reads each point, and you can also play it as a tone or show it in braille, as encodings for single-line braille displays or as multiline tactile graphs on a Dot Pad.

Here is a small example to try, a histogram with a density curve drawn over it:

    install.packages("maidr")
    library(maidr)
    library(ggplot2)
    p <- ggplot(mpg, aes(hwy, after_stat(density))) +
      geom_histogram(bins = 15) +
      geom_density() +
      labs(title = "Highway mileage", x = "Highway miles per gallon", y = "Density")
    show(p)

The plot opens in your default web browser (in the RStudio Viewer if you work in RStudio). Press Tab to move to the plot. Your screen reader announces that it is a maidr plot with 2 layers, starting on the histogram, and lists the main keys. After that:

- Left and Right move between data points. On the histogram, the first press of Right reads "Highway miles per gallon is 10.86 through 13.14, Density is 0.01".
- Up and Down move between series or segments, in plots that have them.
- Page Up and Page Down switch between layers, which is how ggplot2 plots with several layers are read. Page Up moves to the next layer and Page Down to the previous one. In this example, Page Up goes from the histogram to the density curve.
- D opens a description of the plot: its title, axes, a short summary (for example the smallest and largest values), and the data table.
- S turns sound on and off, B does the same for braille, and T switches the text mode.
- Ctrl+/ (Command+/ on a Mac) opens the full list of keyboard shortcuts.

For base R graphics, draw the plot as usual and call show() with no arguments. After library(maidr), printing a ggplot2 object (typing p at the console) opens it the same way. save_html(p, "highway_mileage.html") writes an HTML file that opens in any browser and works offline; keep the lib folder created next to it.

R maidr also works in R Markdown and Quarto HTML documents (call maidr_on() in a setup chunk), in Shiny apps, and with plotly, highcharter, and echarts4r widgets. It handles bar plots (simple, grouped, and stacked), pie plots, histograms, line and step plots, scatter plots, box and violin plots, candlestick plots, heat maps, density and smooth curves, faceted plots, ggplot2 plots with several layers, and multi-panel layouts, including patchwork. If a plot type is not supported, you get a warning and a static image instead of a wrong reading.

R maidr is free and open source (GPL, version 3 or later). The optional AI chat for asking questions about a plot works with your own API key for OpenAI, Claude, or Gemini, or with a local model through Ollama, which needs no key and keeps your data on your machine.

Many of you will know BrailleR, created by this list's founder, Jonathan Godfrey. R maidr is meant to sit alongside it by letting you explore the data in a plot point by point.

R maidr is still young. It is at version 0.5.0, so I expect rough edges, and I would like to hear about them. I would especially like to know:

- How it behaves with the screen reader and browser you use, and whether the announcements tell you what you need when you first reach a plot and as you move through it.
- Which plot types and workflows matter most to you, such as RStudio, VS Code, the terminal, R Markdown, Quarto, or Shiny.

Please reply on the list, write to me at jseo1005 at illinois.edu, or open an issue on GitHub. I am glad to answer questions here too.

Thank you for reading.

All the best,
JooYoung Seo
Assistant Professor, School of Information Sciences University of Illinois Urbana-Champaign

Links
- R maidr on CRAN: https://cran.r-project.org/package=maidr
- Documentation and getting started: https://r.maidr.ai/
- Source code: https://github.com/xability/r-maidr
- Report a problem: https://github.com/xability/r-maidr/issues
- The maidr project, including the Python and JavaScript versions: https://maidr.ai/ _______________________________________________
BlindRUG mailing list
BlindRUG at nfbnet.org
http://nfbnet.org/mailman/listinfo/blindrug_nfbnet.org
To unsubscribe, change your list options or get your account info for BlindRUG:
http://nfbnet.org/mailman/options/blindrug_nfbnet.org/dandrews920%40comcast.net
The list archive can be viewed at:
http://www.nfbnet.org/pipermail/blindrug_nfbnet.org
More information and useful links about using R as a blind person can be obtained at:
http://R-Resources.massey.ac.nz

Look for help using R commands by reading the accessible e-book "Let's Use R Now" compiled by Jonathan Godfrey at:
http://R-Resources.massey.ac.nz/lurn/front.html



More information about the BlindMath mailing list