MatplotAlt: A Python Library for Adding Alt Text to Matplotlib Figures in Computational Notebooks
Kai Nylund, Jennifer Mankoff, Venkatesh Potluri
TL;DR
MatplotAlt tackles the accessibility gap for Matplotlib figures in computational notebooks by providing heuristic and VLM-based alt-text generation, plus tools to surface descriptions in notebooks and via CLI. It infers chart data and ten figure types from figures, producing configurable L1-L4 captions and optional data tables to support diverse accessibility needs. Evaluation on VisText and Matplotlib Gallery shows heuristics can produce human-like long-form captions and that conditioning VLM generations with heuristic text and data tables reduces factual errors, though risks remain. The work offers practical guidelines for deploying accessible notebook content and highlights tradeoffs between accuracy, verbosity, and trust, inviting collaboration to broaden coverage and reliability.
Abstract
We present MatplotAlt, an open-source Python package for easily adding alternative text to Matplotlib figures. MatplotAlt equips Jupyter notebook authors to automatically generate and surface chart descriptions with a single line of code or command, and supports a range of options that allow users to customize the generation and display of captions based on their preferences and accessibility needs. Our evaluation indicates that MatplotAlt's heuristic and LLM-based methods to generate alt text can create accurate long-form descriptions of both simple univariate and complex Matplotlib figures. We find that state-of-the-art LLMs still struggle with factual errors when describing charts, and improve the accuracy of our descriptions by prompting GPT4-turbo with heuristic-based alt text or data tables parsed from the Matplotlib figure.
