codaxy / codaxy/cxjs

Chart legend labels are unstructured divs, so they arrive as loose text

Open Beginner friendly
#1,330 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
491
Forks
71
Avg merge
23h
Merged PRs (30d)
5

Description

A chart legend renders each entry's label in a bare `

`:

```html




Serie 1




```

A `

` carries no semantics, so in a tagged PDF the label becomes content with nothing containing it — Chrome maps a bare div to `/NonStruct`, which is defined as having no structural significance. Read back through a screen reader the labels arrive as loose text with no block around them and no relationship to the chart they belong to:

```
/Document > /NonStruct > /NonStruct > … > /NonStruct "Electronics"
/Document > /NonStruct > /NonStruct > … > /NonStruct "Clothing"
```

The same is true in HTML, where the legend is a sequence of unstructured divs rather than anything a reader can navigate as a group.

The swatch beside each label is already handled well — `aria-hidden` on the `

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the chart legend renderer that produces the cxb-legend, cxe-legend-entry, and cxe-legend-entry-text elements, then inspect its HTML output. Update the legend labels or entries to use semantic structure while keeping the aria-hidden SVG swatches unchanged; done means screen readers and tagged PDFs receive each label as structured content belonging to the chart.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
accessibility, frontend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.