Accessible Data Visualization

Making Data Clearer for Everyone

Shanice Smith

2026-11-11

Situation: Data visualization is about communication

We use data visualizations to:

  • Identify patterns and trends
  • Communicate findings to stakeholders
  • Support informed business decisions

But can everyone understand the visualizations we create?

Complication: A beautiful chart can still exclude people

Not everyone experiences visual information the same way.

  • Color vision deficiencies: Difficulty distinguishing certain colors.
  • Low vision: Small fonts and poor contrast make charts difficult to read.
  • Color-dependent information: Important differences may only be communicated through color.
  • Screen readers: Charts without text descriptions can be inaccessible.

Question: How can we make our visualizations more accessible?

How can we improve accessibility without sacrificing quality or adding unnecessary complexity?

The good news: We can make meaningful improvements using tools already available in R and RStudio.

Answer: Four practical techniques

Small design changes can make a big difference.

1. Choose accessible colors

Use color palettes designed for people with color vision deficiencies.

R package: viridis

2. Don’t rely on color alone

Use direct labels, symbols, patterns, and different line types.

3. Improve readability

  • Larger fonts
  • Strong contrast
  • Clear titles and labels
  • Less visual clutter

4. Include alternative text

Provide written descriptions so screen reader users can understand the chart’s key message.

R package: BrailleR

Answer: Let’s put it into practice with R

Example: Average movie rating by genre

Horizontal bar chart showing average movie ratings by genre.

What makes this chart more accessible?

R code Accessibility benefit
scale_fill_viridis_d() Accessible color palette
geom_text() Displays actual values
base_size = 16 Improves readability
labs() Descriptive titles and axes
fig-alt Provides a text description

Accessibility Beyond the Visual

What does BrailleR tell us about this chart?

This chart has title 'Average Movie Rating by Genre'.
It has the subtitle 'Based on survey responses'.
It has x-axis 'Average rating (scale of 1–5)' with labels 0, 1, 2, 3, 4 and 5.
It has y-axis 'Movie genre' with labels Drama, Animation, Comedy, Biographical, Science-Fiction, Dark comedy, Horror and Superhero.
It has 2 layers.
Layer 1 is a bar chart with 8 (error with orientation) bars.
Bar 1 is centered at 1, and length is from 0 to 3.42 with fill colour brilliant bluish green which maps to  = Drama.
Bar 2 is centered at 2, and length is from 0 to 3.6 with fill colour very deep purple which maps to  = Animation.
Bar 3 is centered at 3, and length is from 0 to 3.91 with fill colour moderate blue which maps to  = Comedy.
Bar 4 is centered at 4, and length is from 0 to 4.17 with fill colour vivid purplish blue which maps to  = Biographical.
Bar 5 is centered at 5, and length is from 0 to 4.23 with fill colour vivid yellow green which maps to  = Science-Fiction.
Bar 6 is centered at 6, and length is from 0 to 4.33 with fill colour deep greenish blue which maps to  = Dark comedy.
Bar 7 is centered at 7, and length is from 0 to 4.33 with fill colour vivid yellowish green which maps to  = Horror.
Bar 8 is centered at 8, and length is from 0 to 4.64 with fill colour vivid greenish yellow which maps to  = Superhero.
Layer 1 has width set to 0.7.
Layer 2 is a text graph that VI cannot process.
Layer 2 has hjust set to -0.2.
Layer 2 has size set to 4.5.

Why Does This Matter?

  • Alternative communication: Provides information about a chart in text form.
  • Screen reader support: Text descriptions can help people who cannot interpret visual charts.
  • Greater understanding: Explains chart elements, labels, and data patterns.
  • Inclusive design: Encourages data scientists to think beyond visual presentation.

Conclusion: Accessibility is better data communication

Four things to remember:

  1. Design for different visual abilities.
  2. Communicate information in more than one way.
  3. Use R packages to simplify accessibility.
  4. Test your visualizations before sharing.

Don’t just ask whether your visualization looks good.

Ask whether everyone can understand it.

Further learning