Accessibility Visualizer

Simple and Visible Web Accessibility

Test Page Notice

This page contains intentionally problematic accessibility patterns for testing and demonstration purposes only.

Do not use these examples in production websites. They violate accessibility guidelines and best practices.

This page is designed to work with the Accessibility Visualizer browser extension to help developers identify and understand accessibility issues.

Tables

Tables organize data in rows and columns and must be properly structured for screen readers to understand relationships between data.

Table Structure

Table with proper headers

✅ Well-structured table with th elements for headers and proper scope attributes. Screen readers can announce column/row relationships.

NameAgeCity
John25New York
Jane30London
Table without headers

❌ Table using only td elements without proper th headers. Screen readers cannot establish relationships between data.

NameAgeCity
John25New York
Jane30London
Table with row headers

✅ Table with both column headers and row headers using appropriate scope attributes for complex data relationships.

QuarterSalesProfit
Q1$100K$20K
Q2$150K$30K
Table with caption

✅ Table with caption element providing context about the table's purpose. Helps users understand what data the table contains.

Employee Information
NameDepartment
AliceEngineering
BobMarketing

Complex Headers

Row group headers (scope="rowgroup")

✅ scope="rowgroup" headers (Cats, English speakers) apply to every cell in their row group except cells in the columns to their left. Note that the row headers (Legs, Tails) are placed in the second column, not the leftmost one.

IDMeasurementAverageMaximum
Cats
93Legs3.54
10Tails11
English speakers
32Legs2.674
35Tails0.331

This table is from the HTML Standard by WHATWG, used under CC BY 4.0.

Column group headers (scope="colgroup")

✅ A scope="colgroup" header (Sales) applies to every cell in its column group, grouping multiple columns under a shared heading.

Sales
MonthOnlineStore
January120340
February150310
Row header not in the first column

✅ The row header (Country) is in the second column with a data column (Rank) to its left. scope="row" headers apply only to cells on their right, so the Rank column is not associated with them.

RankCountryCapital
1JapanTokyo
2FranceParis