Skip to content

Commit bff9023

Browse files
committed
change role input to always be treeitem
1 parent ec25023 commit bff9023

File tree

2 files changed

+8
-23
lines changed

2 files changed

+8
-23
lines changed

src/cdk/tree/tree.ts

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ export class CdkTreeNode<T> implements FocusableOption, OnDestroy {
314314
set data(value: T) {
315315
if (value !== this._data) {
316316
this._data = value;
317-
this._setRoleFromData();
317+
this._setRole();
318318
this._dataChanges.next();
319319
}
320320
}
@@ -329,8 +329,7 @@ export class CdkTreeNode<T> implements FocusableOption, OnDestroy {
329329
}
330330

331331
/**
332-
* The role of the node should be 'group' if it's an internal node,
333-
* and 'treeitem' if it's a leaf node.
332+
* The role of the node should always be 'treeitem'.
334333
*/
335334
@Input() role: 'treeitem' | 'group' = 'treeitem';
336335

@@ -356,24 +355,10 @@ export class CdkTreeNode<T> implements FocusableOption, OnDestroy {
356355
this._elementRef.nativeElement.focus();
357356
}
358357

359-
protected _setRoleFromData(): void {
360-
if (this._tree.treeControl.isExpandable) {
361-
this.role = this._tree.treeControl.isExpandable(this._data) ? 'group' : 'treeitem';
362-
} else {
363-
if (!this._tree.treeControl.getChildren) {
364-
throw getTreeControlFunctionsMissingError();
365-
}
366-
const childrenNodes = this._tree.treeControl.getChildren(this._data);
367-
if (Array.isArray(childrenNodes)) {
368-
this._setRoleFromChildren(childrenNodes as T[]);
369-
} else if (childrenNodes instanceof Observable) {
370-
childrenNodes.pipe(takeUntil(this._destroyed))
371-
.subscribe(children => this._setRoleFromChildren(children));
372-
}
358+
protected _setRole(): void {
359+
if (this._tree.treeControl.isExpandable && !this._tree.treeControl.getChildren) {
360+
throw getTreeControlFunctionsMissingError();
373361
}
374-
}
375-
376-
protected _setRoleFromChildren(children: T[]) {
377-
this.role = children && children.length ? 'group' : 'treeitem';
362+
this.role = 'treeitem';
378363
}
379364
}

src/material/tree/node.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ const _MatTreeNodeMixinBase: HasTabIndexCtor & CanDisableCtor & typeof CdkTreeNo
4545
host: {
4646
'[attr.aria-expanded]': 'isExpanded',
4747
'[attr.aria-level]': 'level + 1',
48-
'[attr.role]': `'treeitem'`,
48+
'[attr.role]': 'role',
4949
'class': 'mat-tree-node'
5050
},
5151
providers: [{provide: CdkTreeNode, useExisting: MatTreeNode}]
@@ -87,7 +87,7 @@ export class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {
8787
exportAs: 'matNestedTreeNode',
8888
host: {
8989
'[attr.aria-expanded]': 'isExpanded',
90-
'[attr.role]': `'treeitem'`,
90+
'[attr.role]': 'role',
9191
'class': 'mat-nested-tree-node',
9292
},
9393
providers: [

0 commit comments

Comments
 (0)