@@ -1839,6 +1839,15 @@ export abstract class IgxGridBaseDirective implements GridType,
1839
1839
@HostBinding ( 'class.igx-grid' )
1840
1840
protected baseClass = 'igx-grid' ;
1841
1841
1842
+ @HostBinding ( 'attr.aria-colcount' )
1843
+ protected get ariaColCount ( ) : number {
1844
+ return this . visibleColumns . length ;
1845
+ }
1846
+
1847
+ @HostBinding ( 'attr.aria-rowcount' )
1848
+ protected get ariaRowCount ( ) : number {
1849
+ return this . _rendered ? this . _rowCount : null ;
1850
+ }
1842
1851
1843
1852
/**
1844
1853
* Gets/Sets the resource strings.
@@ -2765,13 +2774,10 @@ export abstract class IgxGridBaseDirective implements GridType,
2765
2774
public get activeDescendant ( ) {
2766
2775
const activeElem = this . navigation . activeNode ;
2767
2776
2768
- if ( ! activeElem || ! Object . keys ( activeElem ) . length ) {
2769
- return this . id ;
2777
+ if ( ! activeElem || ! Object . keys ( activeElem ) . length || activeElem . row < 0 ) {
2778
+ return null ;
2770
2779
}
2771
-
2772
- return activeElem . row < 0 ?
2773
- `${ this . id } _${ activeElem . row } _${ activeElem . mchCache . level } _${ activeElem . column } ` :
2774
- `${ this . id } _${ activeElem . row } _${ activeElem . column } ` ;
2780
+ return `${ this . id } _${ activeElem . row } _${ activeElem . column } ` ;
2775
2781
}
2776
2782
2777
2783
/** @hidden @internal */
@@ -3302,6 +3308,7 @@ export abstract class IgxGridBaseDirective implements GridType,
3302
3308
private _sortDescendingHeaderIconTemplate : TemplateRef < IgxGridHeaderTemplateContext > = null ;
3303
3309
private _gridSize : Size = Size . Large ;
3304
3310
private _defaultRowHeight = 50 ;
3311
+ private _rowCount : number ;
3305
3312
3306
3313
/**
3307
3314
* @hidden @internal
@@ -4123,6 +4130,7 @@ export abstract class IgxGridBaseDirective implements GridType,
4123
4130
if ( this . hasColumnsToAutosize ) {
4124
4131
this . autoSizeColumnsInView ( ) ;
4125
4132
}
4133
+ this . _calculateRowCount ( ) ;
4126
4134
this . _rendered = true ;
4127
4135
} ) ;
4128
4136
Promise . resolve ( ) . then ( ( ) => this . rendered . next ( true ) ) ;
@@ -6765,6 +6773,7 @@ export abstract class IgxGridBaseDirective implements GridType,
6765
6773
6766
6774
this . initColumns ( this . _columns , ( col : IgxColumnComponent ) => this . columnInit . emit ( col ) ) ;
6767
6775
this . columnListDiffer . diff ( this . columnList ) ;
6776
+ this . _calculateRowCount ( ) ;
6768
6777
6769
6778
this . columnList . changes
6770
6779
. pipe ( takeUntil ( this . destroy$ ) )
@@ -7988,4 +7997,15 @@ export abstract class IgxGridBaseDirective implements GridType,
7988
7997
return recreateTreeFromFields ( value , this . _columns ) as IFilteringExpressionsTree ;
7989
7998
}
7990
7999
}
8000
+
8001
+ private _calculateRowCount ( ) : void {
8002
+ if ( this . verticalScrollContainer ?. isRemote ) {
8003
+ this . _rowCount = this . verticalScrollContainer . totalItemCount ?? 0 ;
8004
+ } else if ( this . paginator ) {
8005
+ this . _rowCount = this . totalRecords ?? 0 ;
8006
+ } else {
8007
+ this . _rowCount = this . verticalScrollContainer ?. igxForOf ?. length ?? 0 ;
8008
+ }
8009
+ this . _rowCount += 1 ; // include header row
8010
+ }
7991
8011
}
0 commit comments