Skip to content

Commit 0317fb4

Browse files
author
Kubit
committed
Add aria-hidden column prop to Table
1 parent e322b22 commit 0317fb4

File tree

6 files changed

+38
-2
lines changed

6 files changed

+38
-2
lines changed

src/components/table/component/listColumnHeaderPriority.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export const ListColumnHeaderPriority = (props: IListComponent): JSX.Element =>
3333
>
3434
{header.label && (
3535
<ListHeaderItemStylesStyled
36+
aria-hidden={header.config?.['aria-hidden']}
3637
customAlign={
3738
header?.config?.alignHeader?.[props.device] || header?.config?.alignHeader
3839
}

src/components/table/component/listRowHeaderPriority.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export const ListRowHeaderPriority = (props: IListRowHeaderPriority): JSX.Elemen
7171
<li key={indexHeader}>
7272
{header.label && (
7373
<ListHeaderItemStylesStyled
74+
aria-hidden={header?.config?.['aria-hidden']}
7475
customAlign={
7576
header?.config?.alignHeader?.[props.device] || header?.config?.alignHeader
7677
}

src/components/table/component/table.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ interface ITableComponent extends Omit<ITableStandAlone, 'headerVariant'> {
2626
}
2727

2828
export const TableComponent = (
29-
props: ITableComponent,
29+
{ ariaHiddenDividerColumn = true, ariaHiddenEmptyColumn = true, ...props }: ITableComponent,
3030
ref: React.ForwardedRef<HTMLTableElement> | undefined | null
3131
): JSX.Element => {
3232
const ariaProps = pickAriaProps(props);
@@ -73,11 +73,15 @@ export const TableComponent = (
7373
styles={props.styles.header?.[props.headerVariant]}
7474
>
7575
{hasRowHeader && (
76-
<TableEmptyColumnHeaderStyled styles={props.styles.header?.[props.headerVariant]} />
76+
<TableEmptyColumnHeaderStyled
77+
aria-hidden={ariaHiddenEmptyColumn}
78+
styles={props.styles.header?.[props.headerVariant]}
79+
/>
7780
)}
7881
{hasSomeDividerContent && (
7982
<TableColumnHeaderStyled
8083
key={'dividerContent'}
84+
aria-hidden={ariaHiddenDividerColumn}
8185
hasDivider={true}
8286
scope="col"
8387
styles={props.styles.header?.[props.headerVariant]}
@@ -96,6 +100,7 @@ export const TableComponent = (
96100
return (
97101
<TableColumnHeaderStyled
98102
key={headerValue.id}
103+
aria-hidden={headerValue.config?.['aria-hidden']}
99104
customAlign={
100105
headerValue?.config?.alignHeader?.[props.device] ||
101106
headerValue?.config?.alignHeader

src/components/table/component/tableRow.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export const TableRow = (props: ITableRow): JSX.Element => {
6262
<TableDivider divider={dividerValue()} styles={props.styles.divider} />
6363
{rowHeader && (
6464
<TableColumnHeaderStyled
65+
aria-hidden={rowHeader.config?.['aria-hidden']}
6566
customAlign={
6667
rowHeader?.config?.alignHeader?.[props.device] || rowHeader?.config?.alignHeader
6768
}
@@ -87,6 +88,7 @@ export const TableRow = (props: ITableRow): JSX.Element => {
8788
return (
8889
<TableColumnBodyStyled
8990
key={indexHeader}
91+
aria-hidden={headerValue.config?.['aria-hidden']}
9092
customAlign={
9193
getCellTokenValue({ headerValue, token: 'align' }) ||
9294
headerValue?.config?.alignValue?.[props.device] ||

src/components/table/stories/argtypes.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,30 @@ export const argtypes = (
4646
category: CATEGORY_CONTROL.CONTENT,
4747
},
4848
},
49+
ariaHiddenDividerColumn: {
50+
description: 'aria-hidden prop applied to divider column created when table has divider',
51+
type: { name: 'boolean' },
52+
control: { type: 'boolean' },
53+
table: {
54+
type: {
55+
summary: 'boolean',
56+
},
57+
defaultValue: { summary: true },
58+
category: CATEGORY_CONTROL.MODIFIERS,
59+
},
60+
},
61+
ariaHiddenEmptyColumn: {
62+
description: 'aria-hidden prop applied to empty column created when has row headers',
63+
type: { name: 'boolean' },
64+
control: { type: 'boolean' },
65+
table: {
66+
type: {
67+
summary: 'boolean',
68+
},
69+
defaultValue: { summary: true },
70+
category: CATEGORY_CONTROL.MODIFIERS,
71+
},
72+
},
4973
values: {
5074
description: 'Content of your table',
5175
type: { name: 'IValue[]', required: true },

src/components/table/types/table.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ export type ConfigType = {
126126
srOnlyHeader?: boolean | SrOnlyHeaderType;
127127
flexWidth?: number | string | FlexWidthType;
128128
backgroundColor?: string;
129+
['aria-hidden']?: boolean;
129130
};
130131

131132
export type ValueFunctionType = (
@@ -173,6 +174,8 @@ type TBodyScrollAriasType = {
173174
*/
174175
export interface ITableStandAlone extends TableAriaAttributes {
175176
styles: TableRowHeaderTypes<string, string>;
177+
ariaHiddenDividerColumn?: boolean;
178+
ariaHiddenEmptyColumn?: boolean;
176179
lineSeparatorLineStyles: LineSeparatorLinePropsStylesType;
177180
lineSeparatorTopOnHeader?: boolean;
178181
lineSeparatorBottomOnHeader?: boolean;

0 commit comments

Comments
 (0)