From 93331a365bd8a72732f12b8bf05dacdfdf5cc5ec Mon Sep 17 00:00:00 2001 From: Arbaaz Ahmed Date: Sat, 14 Feb 2026 20:48:56 +0530 Subject: [PATCH 1/2] feat(tree): add mat-focus-indicator to tree nodes --- src/material/tree/node.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/material/tree/node.ts b/src/material/tree/node.ts index b303ef2c27b3..c5f2ced66b9e 100644 --- a/src/material/tree/node.ts +++ b/src/material/tree/node.ts @@ -43,7 +43,7 @@ function isNoopTreeKeyManager( outputs: ['activation', 'expandedChange'], providers: [{provide: CdkTreeNode, useExisting: MatTreeNode}], host: { - 'class': 'mat-tree-node', + 'class': 'mat-tree-node mat-focus-indicator', '[attr.aria-expanded]': '_getAriaExpanded()', '[attr.aria-level]': 'level + 1', '[attr.aria-posinset]': '_getPositionInSet()', @@ -151,7 +151,7 @@ export class MatTreeNodeDef extends CdkTreeNodeDef { {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode}, ], host: { - 'class': 'mat-nested-tree-node', + 'class': 'mat-nested-tree-node mat-focus-indicator', }, }) export class MatNestedTreeNode From 2b67a57174e44cc400c4c5bd07e69362a6daf649 Mon Sep 17 00:00:00 2001 From: Arbaaz Ahmed Date: Mon, 16 Feb 2026 17:44:01 +0530 Subject: [PATCH 2/2] fix(tree): load StructuralStylesLoader and apply mat-focus-indicator to nested tree nodes --- src/material/tree/node.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/material/tree/node.ts b/src/material/tree/node.ts index c5f2ced66b9e..9255026d6a7b 100644 --- a/src/material/tree/node.ts +++ b/src/material/tree/node.ts @@ -23,6 +23,8 @@ import { inject, HostAttributeToken, } from '@angular/core'; +import {_CdkPrivateStyleLoader} from '@angular/cdk/private'; +import {_StructuralStylesLoader} from '../core'; import {NoopTreeKeyManager, TreeKeyManagerItem, TreeKeyManagerStrategy} from '@angular/cdk/a11y'; /** @@ -109,6 +111,7 @@ export class MatTreeNode extends CdkTreeNode implements OnInit, constructor() { super(); + inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader); const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true}); this.tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;