Skip to content

Commit a174951

Browse files
fix(query-builder): prevent aria-hidden error on the edit icon
1 parent b3a7877 commit a174951

File tree

2 files changed

+53
-23
lines changed

2 files changed

+53
-23
lines changed

projects/igniteui-angular/src/lib/grids/grid/grid-filtering-advanced.spec.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2125,6 +2125,34 @@ describe('IgxGrid - Advanced Filtering #grid - ', () => {
21252125
expect(consoleSpy).not.toHaveBeenCalled();
21262126
}));
21272127

2128+
it('should not trigger accessibility errors when interacting with the edit icon in the advanced filtering expression chip', fakeAsync(() => {
2129+
// Apply advanced filter through API to generate chips.
2130+
const tree = new FilteringExpressionsTree(FilteringLogic.Or);
2131+
tree.filteringOperands.push({
2132+
fieldName: 'Downloads', searchVal: 1, condition: IgxNumberFilteringOperand.instance().condition('equals')
2133+
});
2134+
grid.advancedFilteringExpressionsTree = tree;
2135+
fix.detectChanges();
2136+
2137+
// Open Advanced Filtering dialog.
2138+
GridFunctions.clickAdvancedFilteringButton(fix);
2139+
tick(50);
2140+
fix.detectChanges();
2141+
2142+
// Hover over the first visible expression chip to show edit icon.
2143+
const expressionItem = fix.nativeElement.querySelectorAll(`.${ADVANCED_FILTERING_EXPRESSION_ITEM_CLASS}`)[0];
2144+
expressionItem.dispatchEvent(new MouseEvent('mouseenter'));
2145+
tick(50);
2146+
fix.detectChanges();
2147+
2148+
// Click the edit icon on the hovered and focused edit icon.
2149+
const editIcon = GridFunctions.getAdvancedFilteringTreeExpressionEditIcon(fix, [0]);
2150+
tick(50);
2151+
fix.detectChanges();
2152+
expect(editIcon.getAttribute('aria-hidden')).toBe('true');
2153+
expect(editIcon.getAttribute('tabIndex')).toBeFalsy();
2154+
}));
2155+
21282156
describe('Context Menu - ', () => {
21292157
it('Should discard added group when clicking its operator line without having a single expression.', fakeAsync(() => {
21302158
// Open Advanced Filtering dialog.
@@ -3133,7 +3161,7 @@ describe('IgxGrid - Advanced Filtering #grid - ', () => {
31333161
tree.filteringOperands.push({
31343162
fieldName: 'ProductName', searchVal: 'a', condition: IgxStringFilteringOperand.instance().condition('contains')
31353163
});
3136-
3164+
31373165
grid.advancedFilteringExpressionsTree = tree;
31383166
fix.detectChanges();
31393167

projects/igniteui-angular/src/lib/query-builder/query-builder.component.html

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -147,28 +147,30 @@ <h6 class="igx-filter-empty__title">
147147
expressionItem.hovered
148148
"
149149
>
150-
<igx-icon
151-
tabindex="0"
152-
(keydown)="invokeClick($event)"
153-
(click)="enterExpressionEdit(expressionItem)"
154-
>
155-
edit
156-
</igx-icon>
157-
<igx-icon
158-
tabindex="0"
159-
(keydown)="invokeClick($event)"
160-
(click)="enterExpressionAdd(expressionItem)"
161-
*ngIf="
162-
!expressionItem.inAddMode &&
163-
(expressionItem.parent !== currentGroup ||
164-
expressionItem !==
165-
currentGroup.children[
166-
currentGroup.children.length - 1
167-
])
168-
"
169-
>
170-
add
171-
</igx-icon>
150+
<span tabindex="0">
151+
<igx-icon
152+
(keydown)="invokeClick($event)"
153+
(click)="enterExpressionEdit(expressionItem)"
154+
>
155+
edit
156+
</igx-icon>
157+
</span>
158+
<span tabindex="0">
159+
<igx-icon
160+
(keydown)="invokeClick($event)"
161+
(click)="enterExpressionAdd(expressionItem)"
162+
*ngIf="
163+
!expressionItem.inAddMode &&
164+
(expressionItem.parent !== currentGroup ||
165+
expressionItem !==
166+
currentGroup.children[
167+
currentGroup.children.length - 1
168+
])
169+
"
170+
>
171+
add
172+
</igx-icon>
173+
</span>
172174
</div>
173175
</div>
174176

0 commit comments

Comments
 (0)