You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When setting an aria-label on a columnheader with empty text content, the aria-label is not respected. Maybe this was done on purpose to guard against non-ideal table implementations?
Use table navigation mode or the virtual cursor to navigate the table cell by cell.
Notice that cells under the second column don't read out the columnheader's computed name, "Random label"
Expected result
"Random header" is read out as the column name for cells in the second column.
Actual result
The column name is not read out.
Additional Information
Okay, you might be wondering why we don't just give the column header text content.
I'm trying to make a legacy table implementation accessible. The problem is, it needs fixed header, so that the header of the table is always visible no matter how much the table rows are scrolled up and down. A lot of our customers are using a version of software that renders web content with MSHTML (an upgraded version of our software uses Chromium instead, thankfully). Upgrades in our industry tend be slow - I'm guessing they need to be slow-moving to mitigate safety issues. This means that to implement fixed headers, we can't use position: sticky CSS. We need to follow the double table pattern, similar to what's done here. Judging from the first paragraph of this article, I'm guessing we're not the only ones who have tried to implement a pattern like this.
The way I'm trying to make this accessible is to
Add aria-hidden="true" to the first table
Add aria-labels to the columnheaders of the second table equal to the text content inside the columnheaders of the first table.
I thought about working around this by using aria-owns to place the header row in the first table inside the header row of the second table, but the first table is aria-hidden. Judging from this thread, aria-hidden and aria-owns are properties we don't want to play together.
This works in JAWs 2021, but not with NVDA. I notice that the correct name is being exposed in UIA and IA2, unless I'm missing context for some other thing that the browser needs to do.
JAWS version and build number
JAWS Version 2022.2206.9 ILM
Operating System and version
OS Name Microsoft Windows 10 Enterprise
Version 10.0.19044 Build 19044
Browser and version:
Chrome Version 103.0.5060.134 (Official Build) (64-bit)
The text was updated successfully, but these errors were encountered:
Summary
When setting an
aria-label
on acolumnheader
with empty text content, thearia-label
is not respected. Maybe this was done on purpose to guard against non-ideal table implementations?Expected result
"Random header" is read out as the column name for cells in the second column.
Actual result
The column name is not read out.
Additional Information
Okay, you might be wondering why we don't just give the column header text content.
I'm trying to make a legacy table implementation accessible. The problem is, it needs fixed header, so that the header of the table is always visible no matter how much the table rows are scrolled up and down. A lot of our customers are using a version of software that renders web content with MSHTML (an upgraded version of our software uses Chromium instead, thankfully). Upgrades in our industry tend be slow - I'm guessing they need to be slow-moving to mitigate safety issues. This means that to implement fixed headers, we can't use
position: sticky
CSS. We need to follow the double table pattern, similar to what's done here. Judging from the first paragraph of this article, I'm guessing we're not the only ones who have tried to implement a pattern like this.The way I'm trying to make this accessible is to
aria-hidden="true"
to the first tablearia-labels
to thecolumnheaders
of the second table equal to the text content inside thecolumnheaders
of the first table.I thought about working around this by using
aria-owns
to place the header row in the first table inside the header row of the second table, but the first table isaria-hidden
. Judging from this thread,aria-hidden
andaria-owns
are properties we don't want to play together.This works in JAWs 2021, but not with NVDA. I notice that the correct name is being exposed in UIA and IA2, unless I'm missing context for some other thing that the browser needs to do.
JAWS version and build number
JAWS Version 2022.2206.9 ILM
Operating System and version
OS Name Microsoft Windows 10 Enterprise
Version 10.0.19044 Build 19044
Browser and version:
Chrome Version 103.0.5060.134 (Official Build) (64-bit)
The text was updated successfully, but these errors were encountered: