Skip to content

Commit 0af5e05

Browse files
Merge pull request #14718 from IgniteUI/ganastasov/fix-14650-17.2.x
fix(query-builder): prevent aria-hidden error on the edit icon - 17.2.x
2 parents b75e999 + 221de47 commit 0af5e05

File tree

2 files changed

+52
-22
lines changed

2 files changed

+52
-22
lines changed

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

Lines changed: 28 additions & 0 deletions
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.

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)