For screen readers the table header was very verbose and confusing,
as the SR reads out e.g. "sort list by name button FILENAME" for every row / file.
Instead reduce it to "name button FILENAME" and add information about sorting to caption, as recommended by WCAG [1]
[1]: https://www.w3.org/WAI/ARIA/apg/patterns/table/examples/sortable-table/
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
'files-list__column-sort-button--active': sortingMode === mode,
'files-list__column-sort-button--size': sortingMode === 'size',
}]"
- :aria-label="sortAriaLabel"
:alignment="mode === 'size' ? 'end' : 'start-reverse'"
type="tertiary"
@click="toggleSortBy(mode)">
},
},
- computed: {
- sortAriaLabel() {
- return this.t('files', 'Sort list by {column}', {
- column: this.name,
- })
- },
- },
methods: {
t: translate,
},
caption() {
const defaultCaption = t('files', 'List of files and folders.')
const viewCaption = this.currentView.caption || defaultCaption
+ const sortableCaption = t('files', 'Column headers with buttons are sortable.')
const virtualListNote = t('files', 'This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.')
- return viewCaption + '\n' + virtualListNote
+ return `${viewCaption}\n${sortableCaption}\n${virtualListNote}`
},
},