Accessible SVG Charts with AChart

Keith Andrews and Christopher Alexander Kopel

Graz University of Technology, Austria

Slides:
https://keithandrews.com/talks/2024/2024-10-13-avis-achart/

Repos:
https://github.com/tugraz-isds/achart-creator
https://github.com/tugraz-isds/achart-interpreter

Sun 13 Oct 2024, Vis 2024 Workshop on Accessible Data Visualization, Florida (Virtual).

Describler [2016-2017]

Describler. Screenshot of Describler, showing derived textual
description in the lefthand panel and corresponding bar chart in
the righthand panel.
Describler describler.com.

AChart [2020-2021]


> acreate --chart bar --dataset fruit.csv \
  --chart-title "Most Popular Fruits" \
  --chart-desc "Each fruit with volume sold."

AChart. Screenshot of AChart Interpreter showing a
multi-line chart with three data series in the lefthand panel
and the corresponding derived textual description in the
righthand panel.
AChart Interpreter.

AChart's ARIA Roles

Table 1: Some of the ARIA roles used by AChart, based on those of Describler. Asterisk (*) indicates role is defined in an official ARIA specification.
Role Element Ancestor Content Meaning
graphics-document* svg - all charts graphics root element
chart g svg all objects chart root element
chartarea rect chart - chart outline (visual width and height)
xaxis g chart axis title and labels x-axis
yaxis g chart chart & axis title and labels y-axis
axislabel title/text axis text label of axis item
dataset g chart datapoints data series
datagroup g data series title and data points collection of related data points
datapoint g/shape data series/data group data point names and values data point
datavalue title/text data point text value of data point
...

AChart's ARIA Properties

Table 2: The ARIA properties used by AChart, based on those of Describler. Asterisk (*) indicates property is defined in an official ARIA specification.
Property Object Value Meaning
aria-charttype chart root bar/pie/line type of chart
aria-axistype axis category indicates axis has discrete values
aria-valuemin* numerical axis number minimum value
aria-valuemax* numerical axis number maximum value
aria-lebelledby* chart/data point id of title/name title of chart/name of data point

AChart Creator

The command:


> acreate --chart bar --dataset fruit.csv \
  --chart-title "Most Popular Fruits" \
  --chart-desc "Each fruit with volume sold."

creates this SVG:

AChart bar chart of fruit popularity.

Open Image in New Tab and then View Source.

AChart Interpreter

Live Demo

https://tugraz-isds.github.io/achart-interpreter

Thank You!