Why this matters
As a Data Visualization Engineer, your charts must be understandable by everyone, including screen reader users and people who cannot perceive color or fine detail. Good alternative text and descriptions ensure key insights are communicated, not just the picture.
- BI dashboards: Summarize key trends, alerts, and filters so screen reader users get the same insight.
- Reports and slide exports: Static images need short alt text and, when complex, a longer description or a data table alternative.
- Monitoring and KPI tiles: Provide concise, stable descriptions that highlight change and context.
Real task examples
- Describe a quarterly revenue line chart with a Q3 dip and Q4 recovery.
- Explain a heatmap’s highest and lowest cells in plain language.
- Provide a fallback table and long description for a complex Sankey diagram.
Concept explained simply
Think of descriptions as a three-layer system:
- Layer 1: Alt text (short). A one-sentence summary that states the purpose and the main takeaway.
- Layer 2: Caption. A slightly longer, human-friendly note that adds context like time range and units.
- Layer 3: Long description (or data alternative). A structured explanation listing trends, outliers, and any filters, plus a small table if needed.
Mental model: Radio commentary. If someone cannot see the chart, what would you say in 10–20 seconds so they still understand the point?
What to describe
- Purpose: What question does the chart answer?
- Type and scope: Chart type, timeframe, and key dimensions.
- Main takeaway: Trend, comparison, or anomaly in plain language.
- Numbers and units: Provide the essential figures (not every data point).
- Extremes and change: Peaks, troughs, max/min, percentage or absolute change.
- Filters/state: Current selection, date range, segments.
- Avoid: Visual styling, color names, or step-by-step geometry unless critical.
Length and structure
- Alt text: 1–2 sentences (roughly 80–150 characters). Focus on the key insight.
- Caption: 1–3 short sentences with context and timeframe.
- Long description: Bullet points or brief paragraphs. Keep scannable. Include a tiny data summary if helpful.
Templates you can reuse:
- Alt: "[Metric] [rises/falls/is flat] over [time/segment], with [highlight/anomaly]."
- Caption: "[Chart type] of [metric] from [start] to [end]. [Key change] ([%/value]). Filters: [x]."
- Long: "Purpose: ... | Takeaway: ... | Detail: 1) ..., 2) ..., 3) ... | Notes: ..."
Worked examples
Example 1: Line chart (monthly revenue)
Scenario: Jan–Jun revenue, steady rise from 200k to 350k, dip in April (260k), strong May–Jun recovery.
Alt: "Monthly revenue rises overall Jan–Jun, brief dip in April, ends higher in June."
Caption: "Line chart of revenue Jan–Jun. +150k overall; April dips to 260k before recovering to 350k in June."
Long description: "Purpose: Show revenue trend H1. Takeaway: Upward trend with one dip. Details: Jan 200k, Feb 220k, Mar 280k, Apr 260k, May 310k, Jun 350k. Change: +75%. Notes: USD."
Example 2: Bar chart (campaign signups)
Scenario: Jan 120, Feb 130, Mar 300 due to campaign launch.
Alt: "Signups jump in March after campaign, more than doubling from Feb."
Caption: "Bar chart of monthly signups. Jan 120, Feb 130, Mar 300. Key change driven by campaign launch."
Long description: "Purpose: Show impact of campaign. Takeaway: March spike. Detail: Base level ~125; March +170 over Feb (≈+131%). Filters: All users."
Example 3: Choropleth map (conversion rate)
Scenario: West region highest at 6.2%, South lowest at 3.1%.
Alt: "Conversion highest in West, lowest in South; other regions mid-range."
Caption: "Map of conversion rate by region: West 6.2%, North 5.1%, East 4.8%, South 3.1%."
Long description: "Purpose: Compare regional conversion. Takeaway: West leads; South lags. Detail: Range 3.1–6.2%. Consider traffic mix."
Example 4: Stacked bar (device share by quarter)
Scenario: Mobile share grows from 45% to 60% over four quarters.
Alt: "Mobile share increases each quarter, reaching majority by Q4."
Caption: "Stacked bars of device share Q1–Q4. Mobile grows 45%→60%; desktop declines accordingly."
Long description: "Purpose: Track device mix. Takeaway: Shift toward mobile. Detail: Q1 M45/D55, Q2 M50/D50, Q3 M55/D45, Q4 M60/D40."
Special cases and patterns
- Pie/Donut: Use for part-to-whole with few slices. Describe top slices and totals. Avoid calling out colors; name the slice.
- Heatmap: Mention what rows/columns represent, range, and the cells with highest/lowest values.
- Scatter: Note correlation direction/strength, clusters/outliers, and axes units.
- Maps: State regions and values; summarize extremes and noteworthy clusters. Consider a small table for exacts.
- Dashboards: Provide a short, stateful overview. Include filters, date range, and any alerts.
- Streaming/real-time: Focus on current level vs baseline and short trend window.
- Error/empty states: Alt should explain the issue and what’s shown (e.g., "No data for selected filters").
Implementation tips for engineers
- Images: Use alt for short text. Provide a nearby caption. For complex visuals, add a long description immediately after or a collapsible section.
- SVG: Provide a short label and description programmatically (e.g., role and labels). Ensure keyboard focus and reading order are logical.
- Decorative graphics: Use empty alt so they are skipped.
- Data alternative: Offer a compact data table for complex charts.
- State: When filters change, ensure the accessible name/description reflects the new state.
Reusable description skeleton
- Title: [What/When]
- Alt: [Key insight in one sentence]
- Caption: [Type] of [metric] [timeframe]. [Change + figure]. Filters: [x].
- Long: Purpose | Takeaway | Details 1–3 | Notes (units/assumptions)
Checklist
- Alt states the key takeaway in 1–2 sentences.
- Caption adds timeframe, units, and context.
- Long description available for complex charts.
- Numbers are included for peaks/troughs; not every point is read.
- Filters and date range are stated.
- No reliance on color names or styling.
- Data table or summary provided for dense visuals.
- Descriptions update when state/filters change.
Exercises
Complete these practice tasks. Then take the Quick Test. Note: The Quick Test is available to everyone; logged-in users will have their progress saved.
Exercise 1: Bar chart spike
Create alt, caption, and long description for a bar chart of monthly signups: Jan 120, Feb 130, Mar 300 (campaign launched in March).
Deliverables: Alt (1–2 sentences), Caption (1–3 sentences), Long description (bullet or short paragraph).
Mirror of exercise ID: ex1
Exercise 2: Pie chart share
Craft alt and a brief long description for a pie chart showing product share: A 40%, B 35%, C 25%.
Mirror of exercise ID: ex2
Exercise 3: Interactive line (filters)
Provide a stateful description for a line chart of daily active users over the last 30 days, filter Region = EMEA, up 12% vs previous 30 days, with a dip on day 12 due to outage.
Mirror of exercise ID: ex3
Common mistakes
Too visual, not insightful
Bad: "Blue line with dots goes up and down." Good: "Usage rises overall with a mid-month dip; ends 12% higher."
Too long
Do not list every data point. Summarize extremes and overall trend; offer a table for details.
Forgetting filters/timeframe
Always include current filters and date range in the caption or long description.
Color dependence
Never describe colors as the sole identifier. Use labels like category names.
How to self-check
- Screen reader pass: Can someone understand the takeaway without seeing the chart?
- Time test: Can your alt be spoken clearly in 10–20 seconds?
- State test: Change a filter—does the description still match?
- Peer review: Ask a teammate to restate the insight after hearing your description.
Practical projects
- Retrofit one dashboard: Add alt, captions, and long descriptions to three charts, including one complex visual with a small data table.
- Template library: Create reusable templates for line, bar, pie, map, and heatmap descriptions in your team’s design system.
- Dynamic descriptions: Implement stateful descriptions that update when filters change for two interactive charts.
Mini challenge
Pick a chart you shipped last month. In 60 seconds, write a one-sentence alt that states the purpose and the main takeaway. Then expand it into a two-sentence caption and a four-bullet long description.
Who this is for
- Data Visualization Engineers and BI developers who build dashboards and reports.
- Analytics engineers who publish charts from pipelines.
- Designers and PMs defining reporting requirements.
Prerequisites
- Basic understanding of common chart types and their purpose.
- Familiarity with your stack’s rendering (images, SVG, canvas) and how text alternatives are provided.
Learning path
- Learn the three layers (alt, caption, long description).
- Practice with line and bar charts.
- Handle special cases (pie, heatmap, scatter, maps).
- Add stateful descriptions for interactive dashboards.
- Standardize templates in your team.
Next steps
- Apply these patterns to your current dashboard.
- Have one teammate review your descriptions using a screen reader.
- Take the Quick Test below and iterate based on results.