Alt text (alternative text descriptions) describes the appearance and function of visuals and images on the report page to screen reader users.
Report authors should add alt text to every object that conveys meaningful information on a report. Most visualization programs like PowerBI and Tableau have the ability to add custom alt text to dashboard elements.
Alt text should include information about the insight that you'd like the report consumer to take away from a visual.
If you used any images or shapes to call out data points, use alt text to explain what is being called out.
Before writing alt text, test your dashboard with a screen reader to find out what is read automatically.
In Power BI: screen readers read out the title and type of a visual, so developers just need to add a description and keyboard instructions.
- "Chart type" + showing + “what’s it showing”. +
- Where “purpose of looking at chart”. +
- "Keyboard instructions", like “Press control + right arrow to enter the chart. Press enter to read specific data points. Use escape to exit the visual.”
Avoid using explicitly spatial language like "higher bars" or “darker colors”. Use “higher values” or “higher case rates” instead.
Example: A bar chart of San Francisco COVID-19 cases by sexual orientation. Higher values show more cases associated with a specific orientation. Press control + right arrow keys to enter the chart. Press Enter key to select data. Escape to exit the visual.
When helpful, use conditional, dynamic alt text so that any key data values are read aloud for users.
Dynamic alt text ensures that screen readers have easy access to key information.
Be careful with dynamic alt text when there is a filter on the page. With a filter, you will want to test the dashboard and ensure the alt text makes sense within the filter environment.
Power BI tip: To do this in Power BI, create a measure that concatenates your alt text language with a measure value.
- All cards should have dynamic alt text. This enables users to easily get the value without having to go inside the visual.
- Basic Pattern: Measure Title = “static text” & [DAX measure] & “static text”
- For example: Alt Text for Card = "Card showing recent 7-day rolling average new covid cases is " & round([Most recent rolling average],0) & " new cases, as of " & LASTDATE('Date'[Date]) & ". Press Control + Right Arrow to enter the card. Use Escape to exit."
- Enter this into the alt text by using the fx button:
Screenshot of Power BI formatting pane, showing where to enter dynamic alt text using the fx button under "General"
In Power BI, the title and type of chart is automatically read aloud to users using a screen reader (the first part of the formula above). Don’t repeat this info. Instead, add what isn’t read aloud.
Make sure your alt text is less than 250 characters (the limit in Power BI).
The following are example alt texts you would create for each type of visual (cards should use dynamic alt text to read in the card value):
- Static: The number of new cases shows how much the virus is spreading in San Francisco. Press Control and Right Arrow keys to enter the chart. Use Enter to select a data point. Use Escape to exit.
- Dynamic: The number of new cases shows how much the virus is spreading in San Francisco. Most recent average is [Measure of new cases] new cases. Press Control and Right Arrow keys to enter the chart. Use Enter to select a data point. Use Escape to exit.
- Table: Use Control and Right Arrow keys to enter the table. Use arrow keys to navigate around the table. Press the Enter key to select a cell. Select a column header to sort by that column. Escape key to exit.
- Filter: Slicer filters the dates shown on the line chart and table. The default selection is all dates with data. Use Control + right arrow keys to enter the filter. Use Spacebar or Enter keys to select items. Use Escape to exit. Charts will update.
- Card: Card showing cumulative, or running total, confirmed covid cases. Most recent running total is [Cumulative Cases] cases, as of [max date]. Press Control + Right Arrow to enter the card. Use Escape to exit.
- For text boxes, put the text in the alt text box as well.
- Selected radio button entitled “Cumulative totals”. This button is already selected, the dashboard is showing cumulative totals of covid cases and deaths by gender.
- Unselected radio button entitled “Trends over time”. Press Enter key to select this view and dashboard will update to show trends over time in covid cases by gender.