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
Fixes#7387Fixes#5819
On entry:
- “[Table title] grid” (Table title if set, “Grid” by screen reader
reading the role)
- `data-component-name="AnalyticalTableContainer"`: role=grid,
aria-labelledby --> `header` prop
- Total row/col count: “Table contains 123 rows and 14 columns ”
- `data-component-name="AnalyticalTableContainer"`: aria-rowcount,
aria-colcount
Column headers navigation:
- “Header” plus header cell text
- role=columnheader, text (if not text content, can be defined via
`headerLabel`)
- Header cells may contain actions like sort. This should be also
announced.
- aria-expanded, aria-controls, aria-haspopup, for column header popover
- Selection, Highlight & Navigation column header announcement
- Sort/Filter Status of row/columns must be indicated
- sort: aria-sort
- filter: aria-label="Filtered"
- group: aria-label="Grouped"
- Header Hierarchies (level 1, 2 ..) must be announced
- N.A.
Row/Cell navigation:
- Grid Cell Row/Col info = header text + position while arrowing through
grid
- Header:
- JAWS/NVDA: relation is made via roles (`columnheader` -> `gridcell`)
to prevent duplicate announcements (following wcag2.2 specs)
- VoiceOver: `aria-labelledby` pointing to column header id (workaround)
- position: `aria-colindex`
- For tables with n rows, speech output should always be <row nr of n
rows>, no matter how many rows are visible. If n is not known, speech
output should always be <row nr>
- `aria-rowindex` -> is ignored by VoiceOver - NVDA reads it, if this
becomes an issue use live announcement via invisible messaging
- Focused cells: Role and label of cell content
- `aria-labelledby`
- Interactive content: native in F5 hook, otherwise has to be defined
via `cellLabel` prop
- Selection state of cell/row must be announced
- `aria-selected` + live announcement when state changes
- Group Header Rows in Table must be announced as such
- "Grouped" is announced when focusing cell in group header row
- Freezing state of s column must be announced
- N.A.
// VoiceOver announces blank because of `aria-hidden` although `aria-labelledby` is set on the `gridcell` element - this is a known bug and there's no workaround
0 commit comments