I'm working on a web page with a series of charts that are built from visually-hidden HTML tables for accessibility - the idea being that the tables present the data in a form suitable for screen readers, and the data is rendered to SVG for visual web browsers.

It all works pretty well, but I'm wondering what the best way to accessibly specify units (effectively, the y-axis label) might be? Some of the tables / charts represent percentages, some represent frequencies, and some represent ages.

I suppose I could put the units in every element of the table so screen readers read, eg. "5 times per week", "3 times per week", but this seems very clunky. What I'd really like to do is specify units on, eg. the column header. Is there an accessible way to do this, though? Alternatively, would it be better to just specify the units in the table caption?

1 Answer 1


I think this is debatable. In my experience, some screen reader users might benefit from having the units ("per week") in each table cell because it can be mentally taxing to cross-reference the data in a cell against information provided separately. It's better to have that extra verbosity for the avoidance of doubt, even if it is a little repetitive.

That said, an alternative would be to include the units in the column heading (inside the <th> element). That should then be announced each time the user moves from one column to the next. In JAWS (and I expect other screen readers) this information can be repeated on command by the user.

  • 1
    Yes, there's no need to put the units in each cell. The screen reader will announce the header as you enter a column and won't keep repeating the header as you move up and down within a column. Jan 14, 2015 at 12:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.