Maintenance Release: DHTMLX Spreadsheet 6.0.4, Suite 9.4.1 – 9.4.2, Vault 5.0.8

Ghosts, pumpkins, and other Halloween decorations took over the DHTMLX office last Friday. But even this spooky atmosphere could not scare our team away from finishing the latest patch versions of DHTMLX components. The biggest news comes from DHTMLX Suite and Spreadsheet, which received extensive accessibility enhancements to meet WCAG 2.2 AA, Section 508, and EN 301 549 requirements, as well as massive packs of useful fixes. In addition, we also rolled out a small improvement for DHTMLX Vault.

Let’s review each patch release in more detail.

DHTMLX Spreadsheet 6.0.4

6.0.4 (November 2, 2026)

New functionality

1) Accessibility support that targets WCAG 2.2 AA, Section 508 and EN 301 549: keyboard operation of every part of the Spreadsheet, screen reader support and a visible focus in every theme. Check the Accessibility Guide and the Accessibility Conformance Report
2) The ability to turn the selection of cells off and on:

  • new configuration property: selection
  • new methods of the selection module: enable(), disable(), isDisabled()

3) The announce() method sends a status message to screen readers
4) New commands of the context menu: Column width, Row height and Open filter

Updates

1) Keyboard navigation (check the Hot keys list):

  • the focus stays on the active cell, Tab and Shift + Tab leave the cells from the last and the first cell of the sheet, and Ctrl + F6 moves the focus between the menu, the toolbar, the sheet and the sheet tabs
  • the toolbar, the menu bar and the sheet tabs are single tab stops navigated with the arrow keys
  • new shortcuts are added, for example, Shift + F10 for the context menu and Ctrl (Cmd) + Shift + 9 / Ctrl (Cmd) + Shift + 0 for showing hidden rows and columns
  • the toolbar color and border popups take the focus when they open and close with Esc and Tab

2) The arrow keys stop at the first and last visible row and column instead of moving to the opposite edge, and an arrow key at the edge reduces a selected range to the active cell
3) Text composed with an input method editor (IME) is shown in the active cell and starts the edit through the startEdit() method, so the beforeEditStart and afterEditStart events fire for it
4) The setFocusedCell() method moves the keyboard focus to the cell
5) A link in a cell is rendered as a real link that opens in a new tab, and Alt (Option) + Enter opens the link of the active cell
6) The read-only mode keeps the keyboard navigation, the selection, copying and search, and screen readers announce the refused edits. To turn the selection off, use the selection: false option
7) Removing a row or a column through a merged cell removes all the rows or columns of the merged cell
8) New interface and screen reader strings in the spreadsheet locale, and translation of the built-in widgets
9) The –dhx-spreadsheet-focus-color variable for the keyboard focus, and the formula reference colors with a higher contrast in the light themes
10) React Spreadsheet: the selection prop, the ISelection type, and readonly as an init-only prop

Fixes

  • A merged cell was dropped instead of shifted when a row or column before it was deleted. Now a merged cell left with a single cell becomes an ordinary cell and keeps its value (Done)
  • Deleting a row or column through a merged cell removed only one line of the merge (Fixed)
  • The context menu labels for removing rows and columns didn’t show all the rows or columns of a merged cell that would be removed (Fixed)
  • Rows were not deleted when they covered the whole filtered range (Fixed)
  • The frozen area didn’t shrink when frozen rows or columns were deleted (Fixed)
  • Autofill threw an error when the dragged cells held no plain number (Fixed)
  • The page froze on Home, End, Ctrl (Cmd) + Home, Ctrl (Cmd) + End and Ctrl (Cmd) + Arrow keys when the first or last row or column was hidden (Fixed)
  • The font size was lost when cells were copied to Excel or pasted from Excel or within the Spreadsheet (Fixed)
  • The invalid-value tooltip appeared away from the invalid cell or wasn’t shown (Fixed)
  • Esc and Tab didn’t work in the list editor after the arrow keys were used (Fixed)
  • The search highlighted the second match first and didn’t refresh the results after an edit or a sheet switch (Fixed)
  • A script error occurred on import or export in a browser without WebAssembly (Fixed)
  • Document listeners and inner widgets were left behind after destructor() (Fixed)
  • The keyboard focus was lost after the search bar closed (Fixed)
  • A closed context menu reopened (Fixed)
  • The active cell was scrolled one cell short of the viewport edge during keyboard navigation (Fixed)
  • A formula with an invalid reference showed a broken or repeated #REF! error instead of a single #REF! (Fixed)
  • React Spreadsheet: the event callbacks and onStateChange didn’t fire after the Spreadsheet was recreated by an init-only prop change (Fixed)
  • React Spreadsheet: the event handlers of the wrapper were not removed on unmount (Fixed)
  • React Spreadsheet: the data from loadUrl was loaded twice on mount and again over the kept data after the Spreadsheet was recreated (Fixed)

Check the documentation >

DHTMLX Suite 9.4.1 – 9.4.2

9.4.1 (October 26, 2026)

  • Tabbar. The issue where hiding a nested Layout cell during a tab switch caused a TypeError (Cannot set properties of null) and left the tab blank when reopened (Fixed)

9.4.2 (November 2, 2026)

Updates

1) Calendar. Space selects a date, a month or a year, as Enter does (WCAG 2.1.1).
2) Combobox. While the list is open, the input tells a screen reader which option is highlighted, so the option is announced as the user moves through the list with the arrow keys (WCAG 4.1.2).
3) Form. Accessible names of the form and its controls:

  • Every control is named by one rule: the new ariaLabel property of the control, otherwise the label (also with hiddenLabel), otherwise the visible text of the control (WCAG 1.3.1, WCAG 2.5.3, WCAG 4.1.2).
  • The form is named by the new ariaLabel property, otherwise by its title.
  • Generated names such as “type text” or “select color” are no longer used, and helpMessage is announced as the description of a control, not as its name.
  • A checkbox group and a radio group are announced as named groups.

4) Form. States and errors:

  • A toggle reports its pressed state (WCAG 4.1.2).
  • A control in the error state is reported as invalid, and its error message is announced as its description (WCAG 3.3.1).

5) Form. Colorpicker, Datepicker and Timepicker:

  • The colorpicker field reports that it opens a palette and whether the palette is open (WCAG 4.1.2).
  • → moves focus to the selected color, the selected date or the hour input; after a choice focus returns to the field (WCAG 2.1.1, WCAG 2.4.3).

6) Form. Avatar:

  • The upload and remove controls are reachable from the keyboard and are shown while the field has focus (WCAG 2.1.1).
  • The remove button has a name that can be translated through the locale (WCAG 4.1.2).

7) List. Every option has an element id, so the option can be referenced from outside the list, for example, by the input of a combo box.
8) Toolbar/Sidebar. A menuItem control with nested items is announced as a button that opens a menu, and it reports whether its menu is open. The top-level items of the Menu bar keep the menu item role (WCAG 4.1.2).
9) Toolbar/Sidebar/Ribbon/Menu. Enter and Space on a control that opens a menu move focus to the first item of the menu, and ↑ on a control whose menu opens below it moves focus to the last item (WCAG 2.1.1, WCAG 2.4.3).

Fixes

  • Calendar. A script error (Cannot read properties of undefined) that occurred when a calendar was destroyed right after its value had been set (Fixed)
  • Calendar. The arrow keys scrolling the page while moving between dates (Fixed)
  • Colorpicker. A script error (Cannot read properties of null) that occurred when a colorpicker was destroyed right after its value had been set (Fixed)
  • Combobox. A script error (Cannot read properties of undefined) that occurred when the clear(), focus(), or blur() method was called before the combobox was rendered (Fixed)
  • ContextMenu. An issue where the first menu item got stuck when selected using the mouse (Fixed)
  • Form. A script error that occurred when a form with the Colorpicker, Datepicker, or Timepicker control was destroyed or rebuilt right after the value of the control had been set (Fixed)
  • Form. Enter not working on the buttons inside the popup of the Colorpicker, Datepicker, and Timepicker fields (Fixed)
  • Form. The keyboard focus being lost after a choice in the popup of the Colorpicker, Datepicker, and Timepicker fields (Fixed)
  • Form. Tab leaving the page with the popup of the Colorpicker, Datepicker or Timepicker field still open (Fixed)
  • Form. Enter not applying the value typed in an editable Colorpicker, Datepicker, or Timepicker field (Fixed)
  • Layout. A script error (Cannot set properties of null) that occurred when a layout attached to a popup or to another widget was destroyed before it had been rendered (Fixed)
  • Timepicker. A script error (Cannot read properties of null) that occurred when a timepicker was destroyed right after its value had been set (Fixed)

Check the documentation >

DHTMLX Vault 5.0.8

5.0.8 (October 21, 2026)

  • The issue where the drop area remained visible after dragging a file away when the component’s CSS height was set to “auto” (Fixed)

Check the documentation >

Download the latest versions of our libraries and test them free of charge for 30 days:

For current customers, the updated packages are available in their Client’s Area.

Alongside the latest DHTMLX maintenance releases, the end of October also brought a new addition to our product profile – DHTMLX Planning Engine. This headless library adds advanced scheduling and resource management to business applications while fitting into existing architectures without unnecessary complications. Learn more about the new DHTMLX product in the release article.

Advance your web development with DHTMLX

Gantt chart
Event calendar
Diagram library
30+ other JS components