Skip to content

Commit 98b2a9d

Browse files
authored
DataGrid - Contrast between icons in the Filter Row menu and their background doesn't comply with WCAG accessibility standards (T1257970) (#28564)
1 parent a1fd8f2 commit 98b2a9d

File tree

10 files changed

+65
-16
lines changed

10 files changed

+65
-16
lines changed
110 Bytes
Loading
243 Bytes
Loading
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import { createScreenshotsComparer } from 'devextreme-screenshot-comparer';
2+
import DataGrid from 'devextreme-testcafe-models/dataGrid';
3+
import FilterTextBox from 'devextreme-testcafe-models/dataGrid/editors/filterTextBox';
4+
import url from '../../../helpers/getPageUrl';
5+
import { createWidget } from '../../../helpers/createWidget';
6+
import { getData } from '../helpers/generateDataSourceData';
7+
import { Themes } from '../../../helpers/themes';
8+
import { changeTheme } from '../../../helpers/changeTheme';
9+
10+
fixture.disablePageReloads`DataGrid - contrast`
11+
.page(url(__dirname, '../../container.html'));
12+
13+
// T1257970
14+
[
15+
Themes.genericLight,
16+
Themes.fluentBlue,
17+
Themes.materialBlue,
18+
].forEach((theme) => {
19+
test('DataGrid - Contrast between icons in the Filter Row menu and their background doesn\'t comply with WCAG accessibility standards', async (t) => {
20+
const dataGrid = new DataGrid('#container');
21+
const filterEditor = dataGrid.getFilterEditor(0, FilterTextBox);
22+
const searchButton = filterEditor.menuButton;
23+
const filterMenu = filterEditor.menu;
24+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
25+
26+
await t
27+
.expect(dataGrid.isReady())
28+
.ok();
29+
await t
30+
.click(searchButton)
31+
.expect(filterMenu.element.exists)
32+
.ok();
33+
await t
34+
.expect(await takeScreenshot(`T1257970-datagrid-menu-icon-contrast-${theme}.png`, dataGrid.element))
35+
.ok()
36+
.expect(compareResults.isValid())
37+
.ok(compareResults.errorMessages());
38+
}).before(
39+
async () => {
40+
await changeTheme(theme);
41+
await createWidget('dxDataGrid', {
42+
dataSource: getData(5, 5),
43+
filterRow: {
44+
visible: true,
45+
},
46+
});
47+
},
48+
).after(
49+
async () => {
50+
if (theme === Themes.genericLight) {
51+
return;
52+
}
53+
await changeTheme(Themes.genericLight);
54+
},
55+
);
56+
});
39.7 KB
Loading
33.7 KB
Loading
35.8 KB
Loading

packages/devextreme-scss/scss/widgets/fluent/menu/_colors.scss

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,9 @@ $menu-item-link-color: $base-link-color !default;
2727
$menu-item-focused-selected-bg: null !default;
2828

2929
@if $mode == "light" {
30-
$menu-item-focused-selected-bg: darken($base-bg, 9.8) !default;
30+
$menu-item-focused-selected-bg: darken($base-bg, 9.8) !default;
3131
}
32-
32+
3333
@if $mode == "dark" {
34-
$menu-item-focused-selected-bg: lighten($base-bg, 18.04) !default;
34+
$menu-item-focused-selected-bg: lighten($base-bg, 18.04) !default;
3535
}
36-

packages/devextreme-scss/scss/widgets/generic/gridBase/_colors.scss

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ $datagrid-row-hovered-color: null !default;
9090
* $name 30. Context menu icon color
9191
* $type color
9292
*/
93-
$datagrid-menu-icon-color: null !default;
93+
$datagrid-menu-icon-color: inherit !default;
9494

9595
/**
9696
* $name 40. Modified data border color
@@ -218,7 +218,6 @@ $datagrid-text-stub-background-image-path: null !default;
218218
$datagrid-row-focused-bg: mix($base-bg, $base-accent, 20%) !default;
219219
$datagrid-hover-bg: $base-hover-bg !default;
220220
$datagrid-row-hovered-color: $base-hover-color !default;
221-
$datagrid-menu-icon-color: $base-icon-color !default;
222221
$datagrid-cell-modified-border-color: color.change($base-success, $alpha: 0.5) !default;
223222
$datagrid-nodata-color: $base-label-color !default;
224223
$datagrid-group-row-color: $base-label-color !default;
@@ -302,7 +301,6 @@ $datagrid-text-stub-background-image-path: null !default;
302301
$datagrid-row-focused-bg: mix($base-accent, $base-bg, 20%) !default;
303302
$datagrid-hover-bg: $base-hover-bg !default;
304303
$datagrid-row-hovered-color: $base-hover-color !default;
305-
$datagrid-menu-icon-color: darken($base-icon-color, 33.7%) !default;
306304
$datagrid-cell-modified-border-color: color.change($base-success, $alpha: 0.5) !default;
307305
$datagrid-nodata-color: $datagrid-base-color !default;
308306
$datagrid-group-row-color: lighten($datagrid-base-color, 6.7%) !default;
@@ -344,7 +342,6 @@ $datagrid-text-stub-background-image-path: null !default;
344342
$datagrid-row-focused-bg: mix($base-bg, $base-accent, 20%) !default;
345343
$datagrid-hover-bg: $base-hover-bg !default;
346344
$datagrid-row-hovered-color: $base-hover-color !default;
347-
$datagrid-menu-icon-color: $base-icon-color !default;
348345
$datagrid-cell-modified-border-color: color.change($base-success, $alpha: 0.5) !default;
349346
$datagrid-nodata-color: $base-icon-color !default;
350347
$datagrid-group-row-color: $base-text-color !default;
@@ -386,7 +383,6 @@ $datagrid-text-stub-background-image-path: null !default;
386383
$datagrid-row-focused-bg: mix($base-bg, $base-accent, 15%) !default;
387384
$datagrid-hover-bg: $base-hover-bg !default;
388385
$datagrid-row-hovered-color: $base-hover-color !default;
389-
$datagrid-menu-icon-color: $base-icon-color !default;
390386
$datagrid-cell-modified-border-color: color.change($base-success, $alpha: 0.5) !default;
391387
$datagrid-nodata-color: darken($datagrid-base-color, 40%) !default;
392388
$datagrid-group-row-color: $base-header-color !default;
@@ -428,7 +424,6 @@ $datagrid-text-stub-background-image-path: null !default;
428424
$datagrid-row-focused-bg: mix($base-bg, $base-accent, 20%) !default;
429425
$datagrid-hover-bg: color.change(darken($base-bg, 9%), $alpha: 0.4) !default;
430426
$datagrid-row-hovered-color: $base-hover-color !default;
431-
$datagrid-menu-icon-color: $base-icon-color !default;
432427
$datagrid-cell-modified-border-color: color.change($base-success, $alpha: 0.5) !default;
433428
$datagrid-nodata-color: lighten($datagrid-base-color, 40%) !default;
434429
$datagrid-group-row-color: lighten($datagrid-base-color, 38.5%) !default;
@@ -470,7 +465,6 @@ $datagrid-text-stub-background-image-path: null !default;
470465
$datagrid-row-focused-bg: mix($base-accent, $base-bg, 20%) !default;
471466
$datagrid-hover-bg: $base-hover-bg !default;
472467
$datagrid-row-hovered-color: $base-hover-color !default;
473-
$datagrid-menu-icon-color: lighten($base-icon-color, 33.7%) !default;
474468
$datagrid-cell-modified-border-color: color.change($base-success, $alpha: 0.5) !default;
475469
$datagrid-nodata-color: $datagrid-base-color !default;
476470
$datagrid-group-row-color: darken($datagrid-base-color, 6.7%) !default;
@@ -512,7 +506,6 @@ $datagrid-text-stub-background-image-path: null !default;
512506
$datagrid-row-focused-bg: mix($base-bg, $base-accent, 20%) !default;
513507
$datagrid-hover-bg: $base-webwidget-hover-background !default;
514508
$datagrid-row-hovered-color: $base-hover-color !default;
515-
$datagrid-menu-icon-color: $base-icon-color !default;
516509
$datagrid-cell-modified-border-color: color.change($base-success, $alpha: 0.5) !default;
517510
$datagrid-nodata-color: $base-icon-color !default;
518511
$datagrid-group-row-color: $base-icon-color !default;

packages/devextreme-scss/scss/widgets/material/gridBase/_colors.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ $datagrid-row-hovered-color: $base-hover-color !default;
7777
* $name 30. Context menu icon color
7878
* $type color
7979
*/
80-
$datagrid-menu-icon-color: lighten($base-icon-color, 33.7%) !default;
80+
$datagrid-menu-icon-color: inherit !default;
8181

8282
/**
8383
* $name 40. Modified data background color

packages/devextreme/testing/tests/DevExpress.ui.widgets.dataGrid/filtering.integration.tests.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,9 @@ QUnit.module('Initialization', baseModuleConfig, () => {
7474
assert.notOk(subMenu._isVisible(), 'submenu is hidden');
7575
});
7676

77-
// T860356
78-
QUnit.test('Filter row\'s menu icons and text should have different colors', function(assert) {
77+
// T860356 - Deprecated change
78+
// T1257970 - New change for Contrast Accessibility WCAG Standard
79+
QUnit.test('Filter row\'s menu icons and text should have similar colors', function(assert) {
7980
// arrange
8081
const filterRowWrapper = dataGridWrapper.filterRow;
8182

@@ -104,7 +105,7 @@ QUnit.module('Initialization', baseModuleConfig, () => {
104105
for(let i = 0; i < $items.length; i++) {
105106
$currentItem = $items.eq(i);
106107

107-
assert.notEqual($currentItem.find('.dx-menu-item-text').css('color'), $currentItem.find('.dx-icon').css('color'), 'colors are different');
108+
assert.equal($currentItem.find('.dx-menu-item-text').css('color'), $currentItem.find('.dx-icon').css('color'), 'colors are similar');
108109
}
109110
});
110111

0 commit comments

Comments
 (0)