diff --git a/packages/devextreme/js/__internal/grids/data_grid/summary/m_summary.ts b/packages/devextreme/js/__internal/grids/data_grid/summary/m_summary.ts
index eda93e064bcb..8dbc6081f7e6 100644
--- a/packages/devextreme/js/__internal/grids/data_grid/summary/m_summary.ts
+++ b/packages/devextreme/js/__internal/grids/data_grid/summary/m_summary.ts
@@ -44,8 +44,7 @@ export const renderSummaryCell = function (cell, options, setAria) {
const $summaryItems: any = [];
if (!column.command && summaryItems) {
- for (let i = 0; i < summaryItems.length; i++) {
- const summaryItem = summaryItems[i];
+ for (const summaryItem of summaryItems) {
const text = gridCore.getSummaryText(summaryItem, options.summaryTexts);
const $summaryItemElement = $('
')
.css('textAlign', summaryItem.alignment || column.alignment)
@@ -55,7 +54,7 @@ export const renderSummaryCell = function (cell, options, setAria) {
.toggleClass(DATAGRID_GROUP_TEXT_CONTENT_CLASS, options.rowType === 'group')
.text(text);
- setAria('label', `${column.caption} ${text}`, $summaryItemElement);
+ setAria('label', `${column.caption ?? ''} ${text ?? ''}`, $summaryItemElement);
$summaryItems.push($summaryItemElement);
}
$cell.append($summaryItems);
diff --git a/packages/devextreme/js/__internal/grids/grid_core/m_modules.ts b/packages/devextreme/js/__internal/grids/grid_core/m_modules.ts
index 084b7602aff0..5fa9f6f4a6dc 100644
--- a/packages/devextreme/js/__internal/grids/grid_core/m_modules.ts
+++ b/packages/devextreme/js/__internal/grids/grid_core/m_modules.ts
@@ -9,7 +9,7 @@ import Callbacks from '@js/core/utils/callbacks';
// @ts-expect-error
import { grep } from '@js/core/utils/common';
import { each } from '@js/core/utils/iterator';
-import { isFunction } from '@js/core/utils/type';
+import { isDefined, isFunction } from '@js/core/utils/type';
import { hasWindow } from '@js/core/utils/window';
import errors from '@js/ui/widget/ui.errors';
@@ -150,6 +150,10 @@ export class ModuleItem {
value: string | number | boolean | undefined,
$target: dxElementWrapper,
) {
+ if (!isDefined(value)) {
+ return;
+ }
+
const target = $target.get(0);
const prefix = name !== 'role' && name !== 'id' ? 'aria-' : '';
const normalizedValue = String(value).replace(/\s+/g, ' ').trim();
diff --git a/packages/devextreme/js/__internal/grids/grid_core/selection/m_selection.ts b/packages/devextreme/js/__internal/grids/grid_core/selection/m_selection.ts
index da67a32f4c54..503d34b73238 100644
--- a/packages/devextreme/js/__internal/grids/grid_core/selection/m_selection.ts
+++ b/packages/devextreme/js/__internal/grids/grid_core/selection/m_selection.ts
@@ -899,7 +899,7 @@ export const rowsViewSelectionExtenderMixin = (Base: ModuleType) => cl
$row
.toggleClass(ROW_SELECTION_CLASS, isSelected === undefined ? false : isSelected)
.find(`.${SELECT_CHECKBOX_CLASS}`).dxCheckBox('option', 'value', isSelected);
- that.setAria('selected', isSelected, $row);
+ that.setAria('selected', String(isSelected), $row);
}
}
});
@@ -949,7 +949,7 @@ export const rowsViewSelectionExtenderMixin = (Base: ModuleType) => cl
const selectionMode = this.option(SELECTION_MODE);
if (selectionMode !== 'none') {
- this.setAria('selected', isSelected, $row);
+ this.setAria('selected', String(isSelected), $row);
}
}
diff --git a/packages/devextreme/testing/tests/DevExpress.ui.widgets.dataGrid/gridView.tests.js b/packages/devextreme/testing/tests/DevExpress.ui.widgets.dataGrid/gridView.tests.js
index e6d65c183617..65725d04292f 100644
--- a/packages/devextreme/testing/tests/DevExpress.ui.widgets.dataGrid/gridView.tests.js
+++ b/packages/devextreme/testing/tests/DevExpress.ui.widgets.dataGrid/gridView.tests.js
@@ -532,9 +532,9 @@ QUnit.module('Grid view', {
],
totalItem: {
summaryCells: [
- { summaryType: 'count', value: 100 },
- { summaryType: 'min', value: 0 },
- { summaryType: 'max', value: 120001 }
+ [{ summaryType: 'count', value: 100 }],
+ [{ summaryType: 'min', value: 0 }],
+ [{ summaryType: 'max', value: 120001 }]
]
}
})
@@ -592,7 +592,7 @@ QUnit.module('Grid view', {
],
totalItem: {
summaryCells: [
- { summaryType: 'count', value: 100 }
+ [{ summaryType: 'count', value: 100 }]
]
}
})
@@ -1626,9 +1626,9 @@ QUnit.module('Synchronize columns', {
items: [{ values: [''] }],
totalItem: {
summaryCells: [
- { summaryType: 'count', value: 100 },
- { summaryType: 'min', value: 0 },
- { summaryType: 'max', value: 120001 }
+ [{ summaryType: 'count', value: 100 }],
+ [{ summaryType: 'min', value: 0 }],
+ [{ summaryType: 'max', value: 120001 }]
]
}
})
@@ -1663,9 +1663,9 @@ QUnit.module('Synchronize columns', {
items: [{ values: [''] }],
totalItem: {
summaryCells: [
- { summaryType: 'count', value: 100 },
- { summaryType: 'min', value: 0 },
- { summaryType: 'max', value: 120001 }
+ [{ summaryType: 'count', value: 100 }],
+ [{ summaryType: 'min', value: 0 }],
+ [{ summaryType: 'max', value: 120001 }]
]
}
})