Table
<ui5-table> | Since 2.0.0The ui5-table component provides a set of sophisticated features for displaying and dealing with vast amounts of data in a responsive manner.
To render the ui5-table, you need to define the columns and rows. You can use the provided ui5-table-header-row and ui5-table-row components for this purpose.
Features
The ui5-table can be enhanced in its functionalities by applying different features.
Features can be slotted into the features slot, to enable them in the component.
Features need to be imported separately, as they are not enabled by default.
The following features are currently available:
- TableSelectionMulti - adds multi-selection capabilities to the table
- TableSelectionSingle - adds single-selection capabilities to the table
- TableGrowing - provides growing capabilities to load more data
- TableVirtualizer - adds virtualization capabilities to the table
Keyboard Handling
This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].
In order to use this functionality, you need to import the following module:
import "@ui5/webcomponents-base/dist/features/F6Navigation.js"
Furthermore, you can interact with ui5-table via the following keys:
If the focus is on a row, the following keyboard shortcuts are available:
- Down - Navigates down
- Up - Navigates up
- Right - Selects the first cell of the row
- Space - Toggles the selection of the row
- Ctrl/Cmd + A - In multi selection mode, toggles the selection of all rows
- Home - Navigates to the first row, if the focus is on the first row, navigates to the header row
- End - Navigates to the last row, if the focus is on the last row, navigates to the growing button
- Page Up - Navigates one page up, if the focus is on the first row, navigates to the header row
- Page Down - Navigates one page down, if the focus is on the last row, navigates to the growing button
- F2 - Focuses the first tabbable element in the row
- F7 - If focus position is remembered, moves focus to the corresponding focus position row, otherwise to the first tabbable element within the row
- [Shift]Tab - Move focus to the element in the tab chain outside the table
If the focus is on a cell, the following keyboard shortcuts are available:
- Down - Navigates down
- Up - Navigates up
- Right - Navigates right
- Left - Navigates left, if the focus is on the first cell of the row, the focus is moved to the row.
- Home - Navigates to the first cell of the current row, if the focus is on the first cell, navigates to the corresponding row
- End - Navigates to the last cell of the current row, if the focus is on the last cell, navigates to the corresponding row
- Page Up - Navigates one page up while keeping the focus in same column
- Page Down - Navigates one page down while keeping the focus in same column
- F2 - Toggles the focus between the first tabbable cell content and the cell
- Enter - Focuses the first tabbable cell content
- F7 - If the focus is on an interactive element inside a row, moves focus to the corresponding row and remembers the focus position of the element within the row
- [Shift]Tab - Move focus to the element in the tab chain outside the table
If the focus is on an interactive cell content, the following keyboard shortcuts are available:
- Down - Move the focus to the interactive element in the same column of the previous row, unless the focused element prevents the default
- Up - Move the focus to the interactive element in the same column of the next row, unless the focused element prevents the default
- [Shift]Tab - Move the focus to the element in the tab chain
Accessibility
The ui5-table follows the ARIA grid design pattern.
This pattern enables cell-based keyboard navigation and, as explained above, we also support row-based keyboard navigation.
Since the grid design pattern does not inherently provide row-based keyboard behavior, if the focus is on a row, not only the row information but also the corresponding column headers for each cell must be announced.
This can only be achieved through a custom accessibility announcement.
To support this, UI5 Web Components expose its own accessibility metadata via the accessibilityInfo property.
The ui5-table uses this information to create the required custom announcements dynamically.
If you include custom web components inside table cells that are not part of the standard UI5 Web Components set, their accessibility information can be provided using the data-ui5-acc-text attribute.
ES6 Module Import
import "@ui5/webcomponents/dist/Table.js"; (ui5-table)
import "@ui5/webcomponents/dist/TableRow.js"; (ui5-table-row)
import "@ui5/webcomponents/dist/TableCell.js"; (ui5-table-cell)
import "@ui5/webcomponents/dist/TableHeaderRow.js"; (ui5-table-header-row)
import "@ui5/webcomponents/dist/TableHeaderCell.js"; (ui5-table-header-cell)