|
7 | 7 | <table id="eventTable" @onkeydown="HandleKeyDown" role="grid"> |
8 | 8 | <thead @oncontextmenu="InvokeTableColumnMenu"> |
9 | 9 | <tr role="row"> |
10 | | - @foreach (ColumnName column in _enabledColumns) |
| 10 | + @for (int columnIndex = 0; columnIndex < _enabledColumns.Length; columnIndex++) |
11 | 11 | { |
12 | | - _headerName = column.ToFullString(); |
| 12 | + var columnHeader = _enabledColumns[columnIndex]; |
| 13 | + _headerName = columnHeader.ToFullString(); |
13 | 14 |
|
14 | | - <th aria-label="@_headerName" class="@column.ToString().ToLower()" role="columnheader"> |
15 | | - @if (column == ColumnName.DateAndTime) |
| 15 | + <th aria-colindex="@(columnIndex + 1)" aria-sort="@(_eventTableState.OrderBy == columnHeader ? (_eventTableState.IsDescending ? "descending" : "ascending") : "none")" |
| 16 | + class="@columnHeader.ToString().ToLower()" role="columnheader"> |
| 17 | + @if (columnHeader == ColumnName.DateAndTime) |
16 | 18 | { |
17 | 19 | <text>@GetDateColumnHeader()</text> |
18 | 20 | } |
19 | 21 | else |
20 | 22 | { |
21 | 23 | @_headerName |
22 | 24 | } |
23 | | - @if (_eventTableState.OrderBy == column) |
| 25 | + @if (_eventTableState.OrderBy == columnHeader) |
24 | 26 | { |
25 | 27 | <span class="menu-toggle" data-rotate="@_eventTableState.IsDescending.ToString().ToLower()" @onclick="ToggleSorting"> |
26 | 28 | <i class="bi bi-caret-up"></i> |
|
29 | 31 | </th> |
30 | 32 | } |
31 | 33 |
|
32 | | - <th class="description">Description</th> |
| 34 | + <th aria-colindex="@(_enabledColumns.Length + 1)" class="description" role="columnheader">Description</th> |
33 | 35 | </tr> |
34 | 36 | </thead> |
35 | 37 | <tbody @oncontextmenu="InvokeContextMenu"> |
36 | 38 | @if (_currentTable is not null) |
37 | 39 | { |
38 | 40 | <Virtualize Context="evt" Items="_currentTable.DisplayedEvents"> |
39 | 41 | @{ _rowIndex = _currentTable.DisplayedEvents.IndexOf(evt); } |
40 | | - <tr aria-selected="@_selectedEventState.Contains(evt)" class="@GetCss(evt)" @key="@($"{evt.OwningLog}_{evt.RecordId}")" |
41 | | - @onmousedown="args => SelectEvent(args, evt)" role="row" tabindex="0"> |
| 42 | + <tr aria-rowindex="@(_rowIndex + 2)" aria-selected="@(_selectedEventState.Contains(evt).ToString().ToLower())" |
| 43 | + class="@GetCss(evt)" @key="@($"{evt.OwningLog}_{evt.RecordId}")" @onmousedown="args => SelectEvent(args, evt)" role="row" tabindex="0"> |
42 | 44 | @for (int i = 0; i < _enabledColumns.Length; i++) |
43 | 45 | { |
44 | | - <td aria-label="Row @(_rowIndex), Column @(i + 1)" role="gridcell"> |
| 46 | + <td aria-colindex="@(i + 1)" role="gridcell"> |
45 | 47 | @switch (_enabledColumns[i]) |
46 | 48 | { |
47 | 49 | case ColumnName.Level: |
|
84 | 86 | </td> |
85 | 87 | } |
86 | 88 |
|
87 | | - <td aria-label="Row @(_rowIndex), Column @(_enabledColumns.Length + 1)" role="gridcell">@evt.Description</td> |
| 89 | + <td aria-colindex="@(_enabledColumns.Length + 1)" role="gridcell">@evt.Description</td> |
88 | 90 | </tr> |
89 | 91 | </Virtualize> |
90 | 92 | } |
|
0 commit comments