Skip to content

Commit f1a10b4

Browse files
authored
Merge pull request #6659 from WoltLab/63-aria-sort
Set `aria-sort` attributes in grid view tables
2 parents 68f4737 + c5228d6 commit f1a10b4

3 files changed

Lines changed: 11 additions & 0 deletions

File tree

com.woltlab.wcf/templates/shared_gridView.tpl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@
3838
class="gridView__headerColumn {$column->getClasses()} {if $view->isSortedBy($column)}active {$view->getSortOrder()}{/if}"
3939
data-id="{$column->getID()}"
4040
data-sortable="{$column->isSortable()}"
41+
{if $column->isSortable()}
42+
{if $view->isSortedBy($column)}
43+
aria-sort="{if $view->getSortOrder() === 'ASC'}ascending{else}descending{/if}"
44+
{else}
45+
aria-sort="none"
46+
{/if}
47+
{/if}
4148
>
4249
{if $column->isSortable()}
4350
<button type="button" class="gridView__headerColumn__button">

ts/WoltLabSuite/Core/Component/GridView/Sorting.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,11 @@ export class Sorting extends EventTarget {
9898
#renderActiveSorting(): void {
9999
this.#table.querySelectorAll<HTMLTableCellElement>('th[data-sortable="1"]').forEach((element) => {
100100
element.classList.remove("active", "ASC", "DESC");
101+
element.setAttribute("aria-sort", "none");
101102

102103
if (element.dataset.id == this.#sortField) {
103104
element.classList.add("active", this.#sortOrder);
105+
element.setAttribute("aria-sort", this.#sortOrder === "ASC" ? "ascending" : "descending");
104106
}
105107
});
106108
}

wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView/Sorting.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)