Good morning,
currently the compatible JQuery versions are only listed in this article: https://docs.telerik.com/kendo-ui/intro/supporting/jquery-support.
Most of the time also with great delay (as of today: 3 versions behind)
Would it be possible to include the compatible versions directly into the Release Notes of new versions?
This way we can safely upgrade JQuery along with new Kendo UI Releases.
When navigating in Grid with default/default-ocean-blue-a11y theme the border is gray, while it should be black
Steps to reproduce the behavior:
1. Open the demos: https://demos.telerik.com/kendo-ui/grid/keyboard-navigation?autoRun=true&theme=default-ocean-blue-a11y or https://www.telerik.com/kendo-angular-ui/components/grid/keyboard-navigation
2. Select the Default theme Ocean Blue A11Y swatch
The border color of the focused elements should be black.
The border color is gray
When adding a command to a column, passing the command options via an array or not makes a difference only for the visible option of the command. See DoJo:
Kendo UI Snippet | Kendo UI Dojo (telerik.com)
All options for command work both with and without the array, except the visible function.
Require an Editor method to provide the cursor position as an integer representing the offset of the current cursor position from the start of the document with respect to the text displayed in the editor.
For example consider an editor displaying 'This is text content'. The underlying html will be <p><span>This is text content</span></p>. When cursor is placed after 'text', I would like to obtain the cursor position as 12 i.e. the offset based on the text displayed irrespective of the underlying html.
A difference between kendo.culture.ar.min.js:
pattern: ["-n %","n %"],
and other Arabic cultures, e.g. kendo.culture.ar-AE.min.js:
pattern: ["-n%","n%"],
A space is present in between the % symbol and the number and the position of the percent symbol differs.
Format consistency.
When a node in the TreeView of a Kendo UI FileManager is selected, then the parent node is collapsed, and re-expanded, the selection is removed.
The selected node within a parent after collapsing and expanding will lose its selection. Here is a screencast of the above in action.
The selection should persist even upon expanding/collapsing parent nodes.
When an image is placed inside an <a> tag resizing the image does not work as expected
The image can not be resized back to the original size (screencast). Its width can not be changed.
In case the image is set to float on the right after resizing its width becomes about 10px and is almost hidden - Dojo
It should be possible to resize the image by increasing/decreasing the size and keeping the width/height ratio.
Hi Team,
I'd like to request that Kendo UI adds Data Matrix codes to the Kendo UI Library.
Thank you!
Kendo grid in version 2026.3.811 moves scroll to start when navigatable: true in RTL. It makes impossible to edit.
Same setting in version 2025.3.812 works well.
Same grid configuration with different kendo version dojo:
dojo with scroll jump 2026.3.811
<!DOCTYPE html>
<html>
<head>
<base href="https://demos.telerik.com/kendo-ui/grid/right-to-left-support">
<style>html { font-size: 14px; font-family: Arial, Helvetica, sans-serif; }</style>
<title></title>
<link href="https://kendo.cdn.telerik.com/themes/14.6.1/meridian/meridian-main.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2026.3.1015/js/kendo.all.min.js"></script>
</head>
<body>
<script src="../content/shared/js/products.js"></script>
<div id="example">
<div class="k-rtl">
<div id="grid"></div>
</div>
<script>
const columns = [
{
"title": " ",
"field": "IS_CHECKED",
"type": "string",
"width": 45
},
{
"title": " ",
"field": "IS_PERIOD_LOCKED",
"type": "string",
"width": 100
},
{
"title": " ",
"field": "HAS_COPY_ROW",
"type": "number",
"width": 45
},
{
"title": "STATUS_VAL",
"field": "STATUS_VAL",
"type": "string",
"width": 45
},
{
"title": "קוד עובד",
"field": "CHANNEL_CODE",
"type": "string",
"width": "155px"
},
{
"title": "שם העובד",
"field": "CHANNEL_NAME",
"type": "string",
"width": "155px"
},
{
"title": "Sales Type",
"field": "FLEX1",
"type": "string",
"width": "135px"
},
{
"title": "Amount",
"field": "QUANTITY",
"type": "number",
"width": "120px"
},
{
"title": "Amount Type",
"field": "FLEX4",
"type": "string",
"width": "145px"
},
{
"title": "FOP",
"field": "FLEX5",
"type": "string",
"width": "120px"
},
{
"title": "Product",
"field": "FLEX6",
"type": "string",
"width": "120px"
},
{
"title": "Customer Type",
"field": "FLEX7",
"type": "string",
"width": "165px"
},
{
"title": "Customer",
"field": "FLEX8",
"type": "string",
"width": "115px"
},
{
"title": "Order Date",
"field": "FLEX9",
"type": "string",
"width": "135px"
},
{
"title": "file row",
"field": "FILE_ROW_NUMBER",
"type": "string",
"width": "115px"
},
{
"title": "file name",
"field": "FILE_NAME",
"type": "string",
"width": "125px"
},
{
"title": "דשגשדג",
"field": "FLEX135",
"type": "string",
"width": "120px"
},
{
"title": "lov search",
"field": "FLEX2",
"type": "string",
"width": "135px"
},
{
"title": "Date field",
"field": "FLEX10",
"type": "date",
"width": "135px"
},
{
"title": "steve",
"field": "FLEX55",
"type": "string",
"width": "120px"
},
{
"title": "My file",
"field": "FLEX15",
"type": "string",
"width": "120px"
},
{
"title": "Approval Description",
"field": "APPROVAL_DESC",
"type": "string",
"width": "235px"
},
{
"title": "Approval Status",
"field": "APPROVAL_STATUS",
"type": "string",
"width": "185px"
},
{
"title": "CheckCFLEX",
"field": "CFLEX116",
"type": "boolean",
"width": "135px"
},
{
"title": "BBBBBBBB123",
"field": "CFLEX117",
"type": "string",
"width": "145px"
},
{
"title": "aaa",
"field": "CFLEX54",
"type": "string",
"width": "120px"
},
{
"title": "AAAAAAA123",
"field": "CFLEX3",
"type": "string",
"width": "135px"
},
{
"title": "Creation date -CF",
"field": "CFLEX26",
"type": "date",
"width": "205px"
}
];
const data = [
{
"IS_PERIOD_LOCKED": "N",
"HAS_COPY_ROW": 7,
"STATUS_VAL": "",
"CHANNEL_CODE": "GS100",
"CHANNEL_NAME": "GS100",
"FLEX1": "",
"QUANTITY": 542.8,
"FLEX4": "454646",
"FLEX5": "",
"FLEX6": "AAAA",
"FLEX7": "",
"FLEX8": "reerwe",
"FLEX9": "g",
"FILE_ROW_NUMBER": "",
"FILE_NAME": "",
"FLEX135": "",
"FLEX2": "",
"FLEX10": null,
"FLEX55": "",
"FLEX15": "245",
"APPROVAL_DESC": "The text for REJECTION 2",
"APPROVAL_STATUS": "N",
"CFLEX116": false,
"CFLEX117": "",
"CFLEX54": "",
"CFLEX3": "",
"CFLEX26": null
},
{
"IS_PERIOD_LOCKED": "N",
"HAS_COPY_ROW": 2,
"STATUS_VAL": "",
"CHANNEL_CODE": "GS105",
"CHANNEL_NAME": "GS105",
"FLEX1": "",
"QUANTITY": 542.8,
"FLEX4": "454646",
"FLEX5": "",
"FLEX6": "AAAA",
"FLEX7": "",
"FLEX8": "reerwe",
"FLEX9": "g",
"FILE_ROW_NUMBER": "",
"FILE_NAME": "",
"FLEX135": "",
"FLEX2": "",
"FLEX10": null,
"FLEX55": "",
"FLEX15": "240",
"APPROVAL_DESC": "The text for approval",
"APPROVAL_STATUS": "Y",
"CFLEX116": false,
"CFLEX117": "",
"CFLEX54": "",
"CFLEX3": "",
"CFLEX26": null
},
{
"IS_PERIOD_LOCKED": "N",
"HAS_COPY_ROW": 6,
"STATUS_VAL": "",
"CHANNEL_CODE": "GS106",
"CHANNEL_NAME": "GS106",
"FLEX1": "",
"QUANTITY": 142.8,
"FLEX4": "454646",
"FLEX5": "",
"FLEX6": "BBBB",
"FLEX7": "",
"FLEX8": "reerwe",
"FLEX9": "g",
"FILE_ROW_NUMBER": "",
"FILE_NAME": "",
"FLEX135": "",
"FLEX2": "",
"FLEX10": null,
"FLEX55": "",
"FLEX15": "242",
"APPROVAL_DESC": "The text for approval",
"APPROVAL_STATUS": "Y",
"CFLEX116": false,
"CFLEX117": "",
"CFLEX54": "",
"CFLEX3": "",
"CFLEX26": null
},
{
"IS_PERIOD_LOCKED": "N",
"HAS_COPY_ROW": 3,
"STATUS_VAL": "",
"CHANNEL_CODE": "GS107",
"CHANNEL_NAME": "GS107",
"FLEX1": "",
"QUANTITY": 542.8,
"FLEX4": "454646",
"FLEX5": "",
"FLEX6": "AAAA",
"FLEX7": "",
"FLEX8": "reerwe",
"FLEX9": "g",
"FILE_ROW_NUMBER": "",
"FILE_NAME": "",
"FLEX135": "",
"FLEX2": "",
"FLEX10": null,
"FLEX55": "",
"FLEX15": "241",
"APPROVAL_DESC": "The text for approval",
"APPROVAL_STATUS": "Y",
"CFLEX116": false,
"CFLEX117": "",
"CFLEX54": "",
"CFLEX3": "",
"CFLEX26": null
},
{
"IS_PERIOD_LOCKED": "N",
"HAS_COPY_ROW": 5,
"STATUS_VAL": "",
"CHANNEL_CODE": "GS100",
"CHANNEL_NAME": "GS100",
"FLEX1": "",
"QUANTITY": 600,
"FLEX4": "454646",
"FLEX5": "",
"FLEX6": "BBBB",
"FLEX7": "",
"FLEX8": "reerwe",
"FLEX9": "g",
"FILE_ROW_NUMBER": "",
"FILE_NAME": "",
"FLEX135": "",
"FLEX2": "",
"FLEX10": null,
"FLEX55": "",
"FLEX15": "240",
"APPROVAL_DESC": "The text for approval 2",
"APPROVAL_STATUS": "Y",
"CFLEX116": false,
"CFLEX117": "",
"CFLEX54": "",
"CFLEX3": "",
"CFLEX26": null
},
{
"IS_PERIOD_LOCKED": "N",
"HAS_COPY_ROW": 2,
"STATUS_VAL": "",
"CHANNEL_CODE": "GS105",
"CHANNEL_NAME": "GS105",
"FLEX1": "",
"QUANTITY": 234,
"FLEX4": "454646",
"FLEX5": "",
"FLEX6": "AAAA",
"FLEX7": "",
"FLEX8": "reerwe",
"FLEX9": "g",
"FILE_ROW_NUMBER": "",
"FILE_NAME": "",
"FLEX135": "",
"FLEX2": "",
"FLEX10": null,
"FLEX55": "",
"FLEX15": "240",
"APPROVAL_DESC": "",
"APPROVAL_STATUS": "",
"CFLEX116": false,
"CFLEX117": "",
"CFLEX54": "",
"CFLEX3": "",
"CFLEX26": null
},
{
"IS_PERIOD_LOCKED": "N",
"HAS_COPY_ROW": 2,
"STATUS_VAL": "",
"CHANNEL_CODE": "GS106",
"CHANNEL_NAME": "GS106",
"FLEX1": "",
"QUANTITY": 255,
"FLEX4": "454646",
"FLEX5": "",
"FLEX6": "AAAA",
"FLEX7": "",
"FLEX8": "reerwe",
"FLEX9": "g",
"FILE_ROW_NUMBER": "",
"FILE_NAME": "",
"FLEX135": "",
"FLEX2": "",
"FLEX10": null,
"FLEX55": "",
"FLEX15": "240",
"APPROVAL_DESC": "",
"APPROVAL_STATUS": "",
"CFLEX116": false,
"CFLEX117": "",
"CFLEX54": "",
"CFLEX3": "",
"CFLEX26": null
},
{
"IS_PERIOD_LOCKED": "N",
"HAS_COPY_ROW": 2,
"STATUS_VAL": "",
"CHANNEL_CODE": "GS107",
"CHANNEL_NAME": "GS107",
"FLEX1": "",
"QUANTITY": 12,
"FLEX4": "454646",
"FLEX5": "",
"FLEX6": "AAAA",
"FLEX7": "",
"FLEX8": "reerwe",
"FLEX9": "g",
"FILE_ROW_NUMBER": "",
"FILE_NAME": "",
"FLEX135": "",
"FLEX2": "",
"FLEX10": null,
"FLEX55": "",
"FLEX15": "240",
"APPROVAL_DESC": "",
"APPROVAL_STATUS": "",
"CFLEX116": false,
"CFLEX117": "",
"CFLEX54": "",
"CFLEX3": "",
"CFLEX26": null
}
];
const fields = {
"IS_CHECKED": {
"type": "",
"hidden": false,
"filterable": false,
"sortable": false
},
"CHANNEL_ID": {
"editable": false,
"type": "number",
"hidden": true,
"defaultValue": -1
},
"ITEM_ID": {
"editable": false,
"type": "number",
"hidden": true,
"defaultValue": -1
},
"IS_PERIOD_LOCKED": {
"editable": false,
"type": "string",
"hidden": false,
"defaultValue": "N",
"sortable": false
},
"HAS_COPY_ROW": {
"editable": false,
"type": "number",
"hidden": false,
"defaultValue": 0,
"sortable": false
},
"ROWID": {
"editable": false,
"type": "string",
"hidden": true,
"defaultValue": "-1"
},
"CHANNEL_CODE": {
"hidden": false,
"type": "string"
},
"CHANNEL_NAME": {
"hidden": false,
"type": "string"
},
"MANUALLY_CHANGED": {
"editable": false,
"type": "string",
"hidden": true,
"defaultValue": "N"
},
"FLEX1": {
"type": "string",
"hidden": false
},
"QUANTITY": {
"type": "number",
"hidden": false
},
"FLEX4": {
"type": "string",
"hidden": false
},
"FLEX5": {
"type": "string",
"hidden": false
},
"FLEX6": {
"type": "string",
"hidden": false
},
"FLEX7": {
"type": "string",
"hidden": false
},
"FLEX8": {
"type": "string",
"hidden": false
},
"FLEX9": {
"type": "string",
"hidden": false
},
"FILE_ROW_NUMBER": {
"type": "string",
"hidden": false
},
"FILE_NAME": {
"type": "string",
"hidden": false
},
"FLEX135": {
"type": "string",
"hidden": false
},
"FLEX2": {
"type": "string",
"hidden": false
},
"FLEX10": {
"type": "date",
"hidden": false
},
"FLEX55": {
"type": "string",
"hidden": false
},
"FLEX15": {
"type": "string",
"hidden": false
},
"APPROVAL_DESC": {
"type": "string",
"hidden": false
},
"APPROVAL_STATUS": {
"type": "string",
"hidden": false
},
"CFLEX116": {
"type": "boolean",
"hidden": false
},
"CFLEX117": {
"type": "string",
"hidden": false
},
"CFLEX54": {
"type": "string",
"hidden": false
},
"CFLEX3": {
"type": "string",
"hidden": false
},
"CFLEX26": {
"type": "date",
"hidden": false
}
};
$(document).ready(function() {
$("#grid").kendoGrid({
dataSource: {
data: data,
schema: {
model: {
fields: fields
}
},
pageSize: 20
},
columns: columns,
height: 550,
navigatable: true,
sortable: true,
groupable: true,
resizable: true,
pageable: true,
});
});
</script>
</div>
</body>
</html>
Product: Kendo UI for jQuery — TreeList (also related Grid issues below)
Version: 2026.2.520 (2026 Q2), jQuery 3.5.1
Browser / AT: Google Chrome 155 (Windows 11) with NVDA (latest)
Severity: Accessibility (WCAG 2.2 SC 1.3.1 Info and Relationships)
Summary
In a TreeList that has a locked column, NVDA announces the locked column's header instead of the current column's header when keyboard focus moves to a cell in the scrollable part.
A Grid with the same layout (locked column + scrollable columns + hidden columns) is announced correctly, so the problem seems specific to how the TreeList builds its accessible table (`role="treegrid"` with rows assembled through `aria-owns`).
Here is a Dojo showing the issue: https://dojo.telerik.com/QYJCWJUj
Steps to reproduce
1. Create a TreeList with `navigatable: true`, one or more locked columns (including a hidden locked column) and several unlocked columns (sample here).
2. Open it in Chrome with NVDA running.
3. Click a cell in the first unlocked column ("April"), or Tab into the TreeList and use the arrow keys to reach it.
Expected
NVDA announces the cell, its row and its own column header, e.g.:
`0 / 8, row 2, April, column 2`
Actual
NVDA announces the locked column's header and wrong column number:
`0 / 8 April row 2 Hierarchy column 4`
<div id="treelist"></div>
<script>
$("#treelist").kendoTreeList({
navigatable: true,
height: 300,
dataSource: {
data: [
{ id: 1, parentId: null, name: "Region A", apr: "0 / 8", may: "1 / 8", jun: "2 / 8", jul: "3 / 8" },
{ id: 2, parentId: 1, name: "Store 1", apr: "0 / 2", may: "1 / 2", jun: "2 / 2", jul: "2 / 2" }
],
schema: { model: { id: "id", parentId: "parentId", expanded: true } }
},
columns: [
{ field: "id", title: "Id", hidden: true, locked: true, width: 80 },
{ field: "name", title: "Hierarchy", locked: true, width: 220 },
{ field: "mar", title: "March", hidden: true, width: 120 },
{ field: "apr", title: "April", width: 120 },
{ field: "may", title: "May", width: 120 },
{ field: "jun", title: "June", width: 120 },
{ field: "jul", title: "July", width: 120 }
]
});
</script>Moving right through the unlocked columns keeps announcing "Hierarchy" as the column header. The correct header is only heard because each cell's `aria-describedby` points to its header cell.
What we checked in the DOM
- The `role="treegrid"` table owns the `thead` and `tbody` row groups (`aria-owns`).
- The header row and every data row each own the same number of cells (locked cells first, then scrollable cells) in the same order. No element is owned twice.
The Kendo TreeList has an incorrect colspan value for the headers when the first column is hidden and the file is exported to Excel.
Dojo:
https://dojo.telerik.com/IFuCutaV/4
The names of the headers are not displayed in the correct positions.
When the content pasted in the Editor contains the 'MsoNormal' class the new lines are not preserved.
The text after the 'MsoNormal' class is pasted on a single line.
The new lines should be preserved.
Currently, when items are reordered or moved from one ListBox to another, the items are present in the dataSource, but not in the position they are displayed. I know about the following solutions:
- https://www.telerik.com/kendo-jquery-ui/documentation/knowledge-base/list-box-reordering-not-working
and - https://dojo.telerik.com/gDwkisQr
However, I would like to have a built-in method for retrieving the items in the order they are displayed.
Currently, when Chrome Translate is activated and the user presses 'Enter' key in the Editor, the text is translated.
Also, when Translate is enabled and the user types fast, some characters disappear, as Chrome rewrites the inner text of elements. I know that this can be controlled by adding a translate attribute.
However, I would like to have the option to control this by the built-in Editor configuration options (for example, translate: false).
When the virtualization is enabled, mapValueTo option is set to dataItem and initial value is set in the ComboBox, the cursor is not set at the end of the item.
The loaded value is 'Hungry Owl All-Night Grocers' but the cursor is not set at the end of the text, but at the fifth position in the item.
The cursor should be set at the end of the text.
In DropDownList when virtualization is enabled and the value of the widget is set through the value method, the cascade event is fired twice.
The cascade event will be triggered twice.
The cascade event should be triggered only once.
Bug report
Group Header appears multiple times on PDF Export if the group is separated onto multiple pages
Reproduction of the problem
Run the following Dojo:
https://dojo.telerik.com/itOpeGON/6
Click on export to PDF
Open the PDF
Scroll down until you reach Venezuela to see there are two headers for the same group
Expected/desired behavior
Only one group header shall be present at the export
Environment
Kendo UI version: all
Browser: all