All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
4.1.7 - 2025-10-26
- Removed a
console.logfrom updateSortableAriaLabel.ts 🤦
4.1.6 - 2025-10-21
- The a11y module no longer marks columns with class="no-sort" as sortable
4.1.5 - 2025-10-16
- Minor improvements, slightly smaller file size and better logic
4.1.4 - 2025-10-15
- Null last had stopped working. Without the test picking it up. 🤨
4.1.3 - 2025-09-27
- Improved sorting logic to handle
<time>,<data>,<meter>,<progress>, and<abbr>tags correctly.
4.1.2 - 2025-09-24
- Trimmed whitespace inside
<td>tags before comparison to prevent mismatches.
4.1.1 - 2025-08-24
- removed
"postinstall": "pnpm exec playwright install --with-deps"from package.json.
4.1.0 - 2025-08-24
- Added the full featured
sortable.auto.jsflavour, which contains accessibility, auto-initialization, and a mutation observer that sorts.sortabletables when they are added to the DOM.
4.0.2 - 2025-05-10
- Handles empty
trby returning an empty string.
4.0.1 - 2025-02-26
- Issue #79 alt/shift+click generates javascript error:
Uncaught TypeError: x is undefined.
4.0.0 - 2024-11-15
- Built files are now located in the
/distdirectory - Update your references from:
sortable.min.jstodist/sortable.min.jssortable.a11y.min.jstodist/sortable.a11y.min.js- etc.
setTimeoutlets double-click "re-sort" the table only oncesort-startandsort-endeventsdist/standalonefolder where all files are inlined, in case you want the functions to be available in the global scope
3.2.3 - 2024-05-08
- Unary(+) instead of
NumberandparseInt
3.2.2 - 2024-02-14
- Correct path for
sassfield inpackage.json.
3.2.1 - 2024-02-14
- Introduced
styleandsassfields inpackage.jsonto enhance compatibility with modern JavaScript tooling and environments.
3.2.0 - 2024-02-14
- Introduced
mainandmodulefields inpackage.jsonto enhance compatibility with modern JavaScript tooling and environments.
3.1.0 - 2023-11-16
- Using
rollupinstead oftscto generate javascript files. src/folder now included in npm package, so thatenhanceSortableAccessibilitycan be used in TypeScript projects.
- Test minified files also.
- Added
focuseventListener toenhanceSortableAccessibility, so that thearia-labelis kept up to date.
3.0.0 - 2023-10-17
aria-sort="ascending|descending"used instead ofclass="dir-d|dir-up"to keep track of direction.
class="dir-d|dir-up"removed.
2.4.0 - 2023-10-17
- Simple accessibility introduced with sortable.a11y.js.
enhanceSortableAccessibilityaddsaria-labelto the headers of an array of tables.
2.3.2 - 2023-08-22
parseFloat()turned time values like 12:11:11 and 12:23:56 into 12, sorting them incorrectly. Enter:Number()! 🦸♂️️
2.3.1 - 2023-08-19
data-sort-altanddata-sortwere ignored if empty. No longer! 🦸♂️️
2.3.0 - 2023-08-13
class="n-last"places empty cells always last, similar to what SQL does with ORDER BY foo NULLS LAST.
2.2.0 - 2023-06-30
thclicks only triggered inthead, not intbodyortfootclass="no-sort"is now part of core JavaScript functionality, not CSS only like before
2.1.3 - 2023-03-24
- sortable-base.* back in npm package
2.1.2 - 2023-03-24
- Code quality bump
2.1.1 - 2023-03-24
- Bugfix tiebreaker column = 0
2.1.0 - 2023-03-23
- Tiebreaker/secondary sort
2.0.1 - 2023-03-21
- Bugfix dataset
2.0.0 - 2023-02-24
- IE9 support dropped
1.80.1 - 2023-02-08
- Bugfix
1.80.0 - 2023-02-07
- Typescript in src
1.70 - 2023-02-06
- First release