TypeCellOS / TypeCellOS/BlockNote

merged table cells do not expose clear header relationships

Open
#2,826 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

a11y
Dominant language
TypeScript
Stars
10.2k
Forks
772
Avg merge
3d 11h
Merged PRs (30d)
17

Description

What’s broken?

This issue was identified during the Docs accessibility audit on a page containing table-related content.

Audited page:
https://docs.numerique.gouv.fr/docs/0d998bef-1b69-47ce-bd18-83d4d849c734/

In BlockNote tables, merged cells do not expose clear relationships with their related row and column headers.

When a table contains merged cells, the structure becomes more complex. However, the generated markup does not clearly indicate which headers apply to each merged cell.

There is no reliable id / headers relationship to help assistive technologies understand the table structure.

Because of this, screen readers may not be able to announce the correct header context for merged cells.

What did you expect to happen?

Merged cells should preserve clear relationships with their related table headers.

For complex tables, especially when cells are merged, BlockNote should expose relationships using id and headers.

Example:

<th id="q1">Q1</th>
<th id="north">North</th>
<td headers="north q1">120</td>
Steps to reproduce
  • Insert a table using BlockNote.
  • Create or use a table with merged cells and row/column headers.
  • Inspect the generated table in the DOM.
  • Notice that merged cells are not explicitly associated with their related headers:
  • no reliable id / headers relationship;
  • no clear semantic relationship allowing assistive technologies to identify which headers apply to the merged cell.
BlockNote version

0.51.4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue in a BlockNote table with merged cells and row/column headers, then inspect the generated DOM and existing table implementation. Compare the markup with the issue’s id/headers example and verify that assistive technologies can determine the applicable headers for merged cells.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
accessibility, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.