WCAG 1.3.1 · Info and Relationships

A Drupal Accessible Tables Module for Budgets, Schedules, and Fee Charts

A screen reader hits a fee schedule table and reads every cell as a flat list of numbers, because the table has no header cells and no scope. Accessible Data Tables fixes table structure in CKEditor 5 content and in Views-rendered tables so a screen reader can announce which row and column each value belongs to.

Data Tables Carry the Exact Information Residents Need. Built Wrong, They’re Noise.

Budgets, meeting schedules, fee charts, and election results are almost always tables, and a table with no header cells, no scope attributes, and no caption is announced to a screen reader as a meaningless stream of cells. The information is technically present and functionally unreachable, which is a direct WCAG 1.3.1 failure on some of the most important content an agency publishes.

This module installs on any Drupal 10.6+ or Drupal 11 site with Composer, and pairs with WPPersona's WCAG 2.1 AA compliance approach. No CMS migration required.

1.3.1

WCAG criterion requiring that structure and relationships be programmatically determinable

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 Drupal site.

WCAG 1.3.1 (Level A)

CKEditor 5 table structure

Editors mark header rows and columns in CKEditor 5 and the module emits real th elements with scope, plus a caption, instead of a grid of plain cells.

WCAG 1.3.1 (Level A)

Views table remediation

Tables rendered by Views get proper header association and scope, so dynamic listings of documents, meetings, or datasets are readable by assistive tech.

WCAG 1.3.1 (Level A)

Scope and header association

Applies scope for simple tables and header id association for complex multi-level tables, so each data cell is tied to the headers that describe it.

WCAG 1.3.1

Caption and summary support

Adds a visible caption describing each table’s purpose, giving screen reader users the context a sighted reader gets from the surrounding layout.

WCAG 1.3.1

Layout table detection

Flags tables used purely for visual layout and recommends converting them to CSS, since layout tables confuse assistive technology when read as data.

How It Works

From composer require to Fixed, in Four Steps

01

Scan existing tables

The module inventories tables in body content and Views output and flags which lack headers, scope, or a caption.

02

Fix high-value tables first

Start with the budget, fee, and schedule tables residents actually use, sorted by page traffic.

03

Enable editor tooling

Turn on CKEditor 5 table controls so editors designate headers and captions correctly as they build new tables.

04

Remediate Views tables

Apply header association to Views-rendered tables so dynamic listings stay accessible as their data changes.

“Our entire fee schedule was one giant unlabelled table pasted from a spreadsheet years ago. A blind resident could not read a single number in it. Now every value announces its row and column.”

Web Content Manager, County Clerk’s Office

Common Questions About Accessible Data Tables

Why can’t a screen reader just read my table as-is?

Without header cells and scope, a screen reader has no way to know that the number in a cell is a fee for a particular permit in a particular year. It reads the cells in order with no relationship between them, which turns a clear chart into an unintelligible list.

Does this handle complex tables with merged cells?

Yes. For multi-level headers and merged cells it applies id and headers association rather than simple scope, which is the WCAG-supported pattern for complex tables, though genuinely complex data is often clearer split into several simple tables.

Does it fix tables inside Views listings?

It does. Views table displays get proper header markup and scope, so listings of documents, datasets, or meeting records are accessible even as the underlying content changes.

Get Started

Get Accessible Data Tables on Your Drupal Site

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

  • Drupal 10.6+ or Drupal 11, PHP 8.1+, works with CKEditor 5 and Views table displays
  • License covers updates and support for 12 months

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

Request to Purchase

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

Modules 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