Skip to content

Commit 0ffcd72

Browse files
authored
Scheduler a11y: remove tables from a11y tree (#28343)
1 parent 7a170c1 commit 0ffcd72

File tree

12 files changed

+42
-20
lines changed

12 files changed

+42
-20
lines changed
-4 Bytes
Loading
10 Bytes
Loading
73 Bytes
Loading
-7 Bytes
Loading
4 Bytes
Loading
140 Bytes
Loading

e2e/testcafe-devextreme/tests/scheduler/a11y/scheduler.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,21 @@ test('Scheduler should have right aria attributes', async (t) => {
2727
currentView: 'month',
2828
});
2929
});
30+
31+
test('Scheduler table elements have right aria attributes', async (t) => {
32+
const scheduler = new Scheduler('#container');
33+
34+
const tables = scheduler.element.find('table');
35+
await t.expect(tables.count).eql(4);
36+
37+
for (let i = 0; i < await tables.count; i += 1) {
38+
await t.expect(
39+
tables.nth(i).getAttribute('aria-hidden'),
40+
).eql('true');
41+
}
42+
}).before(async () => {
43+
await createWidget('dxScheduler', {
44+
dataSource: [],
45+
currentView: 'month',
46+
});
47+
});

packages/devextreme/js/__internal/scheduler/r1/components/base/table.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export class Table extends BaseInfernoComponent<TableProps> {
6262
ref={tableRef}
6363
className={className}
6464
style={normalizeStyles(resultStyles)}
65+
aria-hidden
6566
>
6667
<tbody>
6768
{

packages/devextreme/js/__internal/scheduler/workspaces/m_agenda.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,16 +139,16 @@ class SchedulerAgenda extends WorkSpace {
139139

140140
_initWorkSpaceUnits() {
141141
this._initGroupTable();
142-
this._$timePanel = $('<table>').addClass(TIME_PANEL_CLASS);
143-
this._$dateTable = $('<table>').addClass(DATE_TABLE_CLASS);
142+
this._$timePanel = $('<table>').attr('aria-hidden', true).addClass(TIME_PANEL_CLASS);
143+
this._$dateTable = $('<table>').attr('aria-hidden', true).addClass(DATE_TABLE_CLASS);
144144
this._$dateTableScrollableContent = $('<div>').addClass('dx-scheduler-date-table-scrollable-content');
145145
this._$dateTableContainer = $('<div>').addClass('dx-scheduler-date-table-container');
146146
}
147147

148148
_initGroupTable() {
149149
const groups = this.option('groups');
150150
if (groups && groups.length) {
151-
this._$groupTable = $('<table>').addClass(GROUP_TABLE_CLASS);
151+
this._$groupTable = $('<table>').attr('aria-hidden', true).addClass(GROUP_TABLE_CLASS);
152152
}
153153
}
154154

packages/devextreme/js/__internal/scheduler/workspaces/m_work_space.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,7 @@ class SchedulerWorkSpace extends WidgetObserver {
526526
}
527527

528528
_focusInHandler(e) {
529-
if ($(e.target).is(this._focusTarget() as any) && this._isCellClick !== false) {
529+
if ($(e.target).is(this._focusTarget() as any) && this._isCellClick) {
530530
delete this._isCellClick;
531531
delete this._contextMenuHandled;
532532
// @ts-expect-error
@@ -2536,10 +2536,10 @@ class SchedulerWorkSpace extends WidgetObserver {
25362536
_initWorkSpaceUnits() {
25372537
this._$headerPanelContainer = $('<div>').addClass('dx-scheduler-header-panel-container');
25382538
this._$headerTablesContainer = $('<div>').addClass('dx-scheduler-header-tables-container');
2539-
this._$headerPanel = $('<table>');
2539+
this._$headerPanel = $('<table>').attr('aria-hidden', true);
25402540
this._$thead = $('<thead>').appendTo(this._$headerPanel);
25412541
this._$headerPanelEmptyCell = $('<div>').addClass('dx-scheduler-header-panel-empty-cell');
2542-
this._$allDayTable = $('<table>');
2542+
this._$allDayTable = $('<table>').attr('aria-hidden', true);
25432543

25442544
this._$fixedContainer = $('<div>').addClass(FIXED_CONTAINER_CLASS);
25452545
this._$allDayContainer = $('<div>').addClass(ALL_DAY_CONTAINER_CLASS);
@@ -2554,8 +2554,8 @@ class SchedulerWorkSpace extends WidgetObserver {
25542554
this._createAllDayPanelElements();
25552555
}
25562556

2557-
this._$timePanel = $('<table>').addClass(TIME_PANEL_CLASS);
2558-
this._$dateTable = $('<table>');
2557+
this._$timePanel = $('<table>').addClass(TIME_PANEL_CLASS).attr('aria-hidden', true);
2558+
this._$dateTable = $('<table>').attr('aria-hidden', true);
25592559
this._$dateTableContainer = $('<div>').addClass('dx-scheduler-date-table-container');
25602560
this._$groupTable = $('<div>').addClass(WORKSPACE_VERTICAL_GROUP_TABLE_CLASS);
25612561
}
@@ -2918,7 +2918,7 @@ class SchedulerWorkSpace extends WidgetObserver {
29182918

29192919
this._allDayTitles.push($allDayTitle);
29202920

2921-
this._$allDayTable = $('<table>');
2921+
this._$allDayTable = $('<table>').attr('aria-hidden', true);
29222922
this._allDayTables.push(this._$allDayTable);
29232923

29242924
this._$allDayPanel = $('<div>')
@@ -2933,7 +2933,7 @@ class SchedulerWorkSpace extends WidgetObserver {
29332933
.text(messageLocalization.format('dxScheduler-allDay'))
29342934
.appendTo(this.$element());
29352935

2936-
this._$allDayTable = $('<table>');
2936+
this._$allDayTable = $('<table>').attr('aria-hidden', true);
29372937

29382938
this._$allDayPanel = $('<div>')
29392939
.addClass(ALL_DAY_PANEL_CLASS)

0 commit comments

Comments
 (0)