@@ -505,6 +505,19 @@ describe('CdkTable', () => {
505
505
] ) ;
506
506
} ) ;
507
507
508
+ it ( 'should apply correct roles for native table elements' , ( ) => {
509
+ const thisFixture = createComponent ( NativeHtmlTableApp ) ;
510
+ const thisTableElement : HTMLTableElement = thisFixture . nativeElement . querySelector ( 'table' ) ;
511
+ thisFixture . detectChanges ( ) ;
512
+
513
+ const rowGroups = Array . from ( thisTableElement . querySelectorAll ( 'thead, tbody, tfoot' ) ) ;
514
+ expect ( rowGroups . length ) . toBe ( 3 , 'Expected table to have a thead, tbody, and tfoot' ) ;
515
+ for ( const group of rowGroups ) {
516
+ expect ( group . getAttribute ( 'role' ) )
517
+ . toBe ( 'rowgroup' , 'Expected thead, tbody, and tfoot to have role="rowgroup"' ) ;
518
+ }
519
+ } ) ;
520
+
508
521
it ( 'should render cells even if row data is falsy' , ( ) => {
509
522
setupTableTestApp ( BooleanRowCdkTableApp ) ;
510
523
expectTableToMatchContent ( tableElement , [
@@ -1591,27 +1604,27 @@ class MultipleHeaderFooterRowsCdkTableApp {
1591
1604
1592
1605
<ng-container cdkColumnDef="index1Column">
1593
1606
<cdk-header-cell *cdkHeaderCellDef> Column C</cdk-header-cell>
1594
- <cdk-cell *cdkCellDef="let row" > index_1_special_row</cdk-cell>
1607
+ <cdk-cell *cdkCellDef> index_1_special_row</cdk-cell>
1595
1608
</ng-container>
1596
1609
1597
1610
<ng-container cdkColumnDef="c3Column">
1598
1611
<cdk-header-cell *cdkHeaderCellDef> Column C</cdk-header-cell>
1599
- <cdk-cell *cdkCellDef="let row" > c3_special_row</cdk-cell>
1612
+ <cdk-cell *cdkCellDef> c3_special_row</cdk-cell>
1600
1613
</ng-container>
1601
1614
1602
1615
<ng-container cdkColumnDef="index">
1603
1616
<cdk-header-cell *cdkHeaderCellDef> Index</cdk-header-cell>
1604
- <cdk-cell *cdkCellDef="let row; let index = index"> {{index}}</cdk-cell>
1617
+ <cdk-cell *cdkCellDef="let index = index"> {{index}}</cdk-cell>
1605
1618
</ng-container>
1606
1619
1607
1620
<ng-container cdkColumnDef="dataIndex">
1608
1621
<cdk-header-cell *cdkHeaderCellDef> Data Index</cdk-header-cell>
1609
- <cdk-cell *cdkCellDef="let row; let dataIndex = dataIndex"> {{dataIndex}}</cdk-cell>
1622
+ <cdk-cell *cdkCellDef="let dataIndex = dataIndex"> {{dataIndex}}</cdk-cell>
1610
1623
</ng-container>
1611
1624
1612
1625
<ng-container cdkColumnDef="renderIndex">
1613
1626
<cdk-header-cell *cdkHeaderCellDef> Render Index</cdk-header-cell>
1614
- <cdk-cell *cdkCellDef="let row; let renderIndex = renderIndex"> {{renderIndex}}</cdk-cell>
1627
+ <cdk-cell *cdkCellDef="let renderIndex = renderIndex"> {{renderIndex}}</cdk-cell>
1615
1628
</ng-container>
1616
1629
1617
1630
<cdk-header-row *cdkHeaderRowDef="columnsToRender"></cdk-header-row>
@@ -1662,12 +1675,12 @@ class WhenRowCdkTableApp {
1662
1675
1663
1676
<ng-container cdkColumnDef="index1Column">
1664
1677
<cdk-header-cell *cdkHeaderCellDef> Column C</cdk-header-cell>
1665
- <cdk-cell *cdkCellDef="let row" > index_1_special_row </cdk-cell>
1678
+ <cdk-cell *cdkCellDef> index_1_special_row </cdk-cell>
1666
1679
</ng-container>
1667
1680
1668
1681
<ng-container cdkColumnDef="c3Column">
1669
1682
<cdk-header-cell *cdkHeaderCellDef> Column C</cdk-header-cell>
1670
- <cdk-cell *cdkCellDef="let row" > c3_special_row </cdk-cell>
1683
+ <cdk-cell *cdkCellDef> c3_special_row </cdk-cell>
1671
1684
</ng-container>
1672
1685
1673
1686
<cdk-header-row *cdkHeaderRowDef="columnsToRender"></cdk-header-row>
@@ -1705,12 +1718,12 @@ class WhenRowWithoutDefaultCdkTableApp {
1705
1718
1706
1719
<ng-container cdkColumnDef="index1Column">
1707
1720
<cdk-header-cell *cdkHeaderCellDef> Column C</cdk-header-cell>
1708
- <cdk-cell *cdkCellDef="let row" > index_1_special_row </cdk-cell>
1721
+ <cdk-cell *cdkCellDef> index_1_special_row </cdk-cell>
1709
1722
</ng-container>
1710
1723
1711
1724
<ng-container cdkColumnDef="c3Column">
1712
1725
<cdk-header-cell *cdkHeaderCellDef> Column C</cdk-header-cell>
1713
- <cdk-cell *cdkCellDef="let row" > c3_special_row </cdk-cell>
1726
+ <cdk-cell *cdkCellDef> c3_special_row </cdk-cell>
1714
1727
</ng-container>
1715
1728
1716
1729
<cdk-header-row *cdkHeaderRowDef="columnsToRender"></cdk-header-row>
@@ -1790,7 +1803,7 @@ class TrackByCdkTableApp {
1790
1803
[sticky]="isStuck(stickyStartColumns, column)"
1791
1804
[stickyEnd]="isStuck(stickyEndColumns, column)">
1792
1805
<cdk-header-cell *cdkHeaderCellDef> Header {{column}} </cdk-header-cell>
1793
- <cdk-cell *cdkCellDef="let row"> {{column}} </cdk-cell>
1806
+ <cdk-cell *cdkCellDef> {{column}}</cdk-cell>
1794
1807
<cdk-footer-cell *cdkFooterCellDef> Footer {{column}} </cdk-footer-cell>
1795
1808
</ng-container>
1796
1809
0 commit comments