mirror of
https://github.com/apache/superset.git
synced 2026-04-09 19:35:21 +00:00
chore(Dashboard): Improve Table accessibility (#28059)
This commit is contained in:
@@ -274,7 +274,7 @@ export default typedMemo(function DataTable<D extends object>({
|
||||
prepareRow(row);
|
||||
const { key: rowKey, ...rowProps } = row.getRowProps();
|
||||
return (
|
||||
<tr key={rowKey || row.id} {...rowProps}>
|
||||
<tr key={rowKey || row.id} {...rowProps} role="row">
|
||||
{row.cells.map(cell =>
|
||||
cell.render('Cell', { key: cell.column.id }),
|
||||
)}
|
||||
@@ -295,7 +295,11 @@ export default typedMemo(function DataTable<D extends object>({
|
||||
const { key: footerGroupKey, ...footerGroupProps } =
|
||||
footerGroup.getHeaderGroupProps();
|
||||
return (
|
||||
<tr key={footerGroupKey || footerGroup.id} {...footerGroupProps}>
|
||||
<tr
|
||||
key={footerGroupKey || footerGroup.id}
|
||||
{...footerGroupProps}
|
||||
role="row"
|
||||
>
|
||||
{footerGroup.headers.map(column =>
|
||||
column.render('Footer', { key: column.id }),
|
||||
)}
|
||||
|
||||
@@ -216,6 +216,7 @@ function StickyWrap({
|
||||
let headerTable: ReactElement | undefined;
|
||||
let footerTable: ReactElement | undefined;
|
||||
let bodyTable: ReactElement | undefined;
|
||||
|
||||
if (needSizer) {
|
||||
const theadWithRef = React.cloneElement(thead, { ref: theadRef });
|
||||
const tfootWithRef = tfoot && React.cloneElement(tfoot, { ref: tfootRef });
|
||||
@@ -228,8 +229,15 @@ function StickyWrap({
|
||||
visibility: 'hidden',
|
||||
scrollbarGutter: 'stable',
|
||||
}}
|
||||
role="presentation"
|
||||
>
|
||||
{React.cloneElement(table, {}, theadWithRef, tbody, tfootWithRef)}
|
||||
{React.cloneElement(
|
||||
table,
|
||||
{ role: 'presentation' },
|
||||
theadWithRef,
|
||||
tbody,
|
||||
tfootWithRef,
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -255,9 +263,10 @@ function StickyWrap({
|
||||
overflow: 'hidden',
|
||||
scrollbarGutter: 'stable',
|
||||
}}
|
||||
role="presentation"
|
||||
>
|
||||
{React.cloneElement(
|
||||
table,
|
||||
React.cloneElement(table, { role: 'presentation' }),
|
||||
mergeStyleProp(table, fixedTableLayout),
|
||||
colgroup,
|
||||
thead,
|
||||
@@ -274,9 +283,10 @@ function StickyWrap({
|
||||
overflow: 'hidden',
|
||||
scrollbarGutter: 'stable',
|
||||
}}
|
||||
role="presentation"
|
||||
>
|
||||
{React.cloneElement(
|
||||
table,
|
||||
React.cloneElement(table, { role: 'presentation' }),
|
||||
mergeStyleProp(table, fixedTableLayout),
|
||||
colgroup,
|
||||
tfoot,
|
||||
@@ -303,9 +313,10 @@ function StickyWrap({
|
||||
scrollbarGutter: 'stable',
|
||||
}}
|
||||
onScroll={sticky.hasHorizontalScroll ? onScroll : undefined}
|
||||
role="presentation"
|
||||
>
|
||||
{React.cloneElement(
|
||||
table,
|
||||
React.cloneElement(table, { role: 'presentation' }),
|
||||
mergeStyleProp(table, fixedTableLayout),
|
||||
colgroup,
|
||||
tbody,
|
||||
@@ -321,6 +332,7 @@ function StickyWrap({
|
||||
height: sticky.realHeight || maxHeight,
|
||||
overflow: 'hidden',
|
||||
}}
|
||||
role="table"
|
||||
>
|
||||
{headerTable}
|
||||
{bodyTable}
|
||||
|
||||
Reference in New Issue
Block a user