WCAG 1.3.1 · Info and Relationships

A WordPress Accessible Tables Plugin for Budgets, Fee Schedules, and Fee Lists

A screen reader user lands in the middle of a fee schedule table with 40 rows and no way to know which column they’re in, because the table has no header scope at all. Accessible Data Tables adds the row and column relationships a screen reader needs to announce "Late Fee, Column 3" instead of a bare number.

A Table Without Header Scope Is Just a Grid of Disconnected Numbers.

Budget tables, fee schedules, and comparison charts built in the block editor or pasted from a spreadsheet frequently ship with no <th> scope attributes at all. A sighted user tracks the row and column visually. A screen reader user gets a flat sequence of numbers with no relationship between them and the header that gives them meaning.

This plugin pairs well with WPPersona's built-in accessibility compliance if your agency runs on the WPPersona CMS, and installs standalone on any WordPress 6.0+ site.

1.3.1

WCAG success criterion requiring information and relationships to be programmatically determined

Accessibility Features

What Accessible Data Tables Actually Checks

Every feature below maps to a specific WCAG 2.1 success criterion, not a vague accessibility claim. Here's exactly what changes on your site.

WCAG 1.3.1 (Level A)

Automatic header scope tagging

Detects header rows and columns in existing tables and applies correct scope="col" and scope="row" attributes, so screen readers announce the right header with every cell.

WCAG 1.3.1, 2.4.6

Required table captions

Prompts editors to add a caption describing the table’s purpose, giving screen reader users context before they navigate into the data itself.

WCAG 1.3.1 (Level A)

Complex table header association

For tables with multi-row or multi-column headers, like a budget broken out by department and quarter, applies headers/id attribute pairs so every cell announces its full header path.

WCAG 1.4.10 (Level AA)

Responsive reflow without losing headers

On narrow screens, tables reflow to a stacked layout for readability while keeping the header-to-cell relationship intact for screen reader and screen magnification users.

WCAG 1.3.1

Spreadsheet paste cleanup

Tables pasted directly from Excel or Google Sheets often carry no semantic structure at all. The plugin detects pasted tables and prompts for header rows before publishing.

How It Works

From Install to Fixed, in Four Steps

01

Scan existing published tables

The plugin finds every table on your site, block editor and Classic Editor alike, and reports which ones are missing header scope or captions.

02

Auto-tag straightforward tables

Simple single-header-row tables get scope attributes applied automatically with one click across the flagged list.

03

Review complex tables manually

Multi-level header tables get a guided review interface so an editor can confirm the header-to-cell mapping before it publishes.

04

Enforce on new tables going forward

New tables built or pasted into the editor prompt for a caption and header confirmation before the post can be published.

Our fee schedule table had 60 rows and zero header scope. A screen reader user described it as "a wall of numbers with no idea what any of it meant."

Records Manager, County Government

Common Questions About Accessible Data Tables

What does scope="col" actually do for a screen reader user?

It tells the screen reader which header applies to a given data cell. Without it, navigating into a table cell announces only the raw value, like "42.50," with no indication it belongs to a "Late Fee" column. With scope set correctly, the screen reader announces "Late Fee, 42.50" automatically.

Should I use a table for layout instead of data?

No. Tables should only hold tabular data with real row and column relationships. Layout tables confuse screen reader navigation, since the reader assumes every table it encounters contains genuine data relationships. Use CSS grid or flexbox for visual layout instead.

Does this work with tables from Excel or Google Sheets?

Yes. The plugin detects when a table has been pasted in without semantic header markup, which is the normal result of copying from a spreadsheet, and prompts you to designate header rows and columns before it publishes.

Get Started

Get Accessible Data Tables on Your Site

There's no self-serve checkout yet. Submit the form and our team confirms your license tier, sends pricing, and gets you installation instructions within 1 business day.

  • WordPress 6.0+, PHP 7.4+, works with Block Editor and Classic Editor tables
  • License covers updates and support for 12 months

Need more than one? See the full Accessibility Suite bundle.

Request to Purchase

Tell us which plugins you need. We'll send licensing and setup details.

Plugins You're Interested In

License Size

We respond within 1 business day · No spam, ever

Free Tool

See Your Agency's PDF Risk in 2 Minutes

Enter your government website URL. We crawl every page, scan every PDF, and deliver a full ADA compliance risk report. No account. No credit card.

Run Free Audit

Talk to Someone Who Speaks Government

Our team understands government procurement, ADA compliance timelines, and what it takes to migrate a government website. Free 20-minute demo. No hard sell.

  • Full platform walkthrough for your agency type
  • Answers to procurement and security questions
  • Honest timeline and migration assessment
Schedule a Free Demo