maidr (Multimodal Access and Interactive Data Representation) makes data visualizations accessible to users with visual impairments. It converts ggplot2 and Base R plots into interactive, accessible HTML/SVG formats with keyboard navigation, screen reader support, and sonification.
The package provides two main functions:
show()displays an interactive accessible plot in RStudio Viewer or browsersave_html()exports a plot as a standalone HTML file
# Install from CRAN (coming soon)
install.packages("maidr")
# Or install development version from GitHub
pak::pak("xability/r-maidr")
# Alternative: using pacman (auto-installs if missing)
pacman::p_load_gh("xability/r-maidr")library(maidr)
library(ggplot2)
p <- ggplot(mpg, aes(x = class)) +
geom_bar(fill = "steelblue") +
labs(title = "Vehicle Classes", x = "Class", y = "Count")
# Display interactive accessible plot
show(p)
# Or save to file
save_html(p, "vehicle_classes.html")library(maidr)
# Create plot first
barplot(
table(mtcars$cyl),
main = "Cars by Cylinder Count",
xlab = "Cylinders",
ylab = "Count"
)
# Then call show() without arguments
show()maidr supports a wide range of visualization types in both ggplot2 and Base R:
| Plot Type | ggplot2 | Base R |
|---|---|---|
| Bar charts | geom_bar(), geom_col() |
barplot() |
| Grouped/Dodged bars | position = "dodge" |
beside = TRUE |
| Stacked bars | position = "stack" |
beside = FALSE |
| Histograms | geom_histogram() |
hist() |
| Scatter plots | geom_point() |
plot() |
| Line plots | geom_line() |
plot(type = "l"), lines() |
| Box plots | geom_boxplot() |
boxplot() |
| Heatmaps | geom_tile() |
image() |
| Density/Smooth | geom_smooth(), geom_density() |
lines(density()) |
| Plot Type | ggplot2 | Base R |
|---|---|---|
| Faceted plots | facet_wrap(), facet_grid() |
par(mfrow/mfcol) + loops |
| Multi-panel layouts | patchwork package |
par(mfrow), par(mfcol) |
| Multi-layered plots | Multiple geom_* layers |
Sequential plot calls |
See vignette("plot-types") for detailed examples of each plot type.
- Keyboard navigation - explore data points using arrow keys
- Screen reader support - full ARIA labels and live announcements
- Sonification - hear data patterns through sound
- Text descriptions - automatic statistical summaries
- Report bugs or request features at GitHub Issues
- Read the documentation at the package website
vignette("getting-started", package = "maidr")for an introductionvignette("plot-types", package = "maidr")for supported visualizationsvignette("shiny-integration", package = "maidr")for Shiny apps