In Development
Last Updated: 01 Oct 2026 08:20 by ADMIN
Scheduled for 2026 (Nov)
Created by: Scott
Comments: 2
Category: UI for Blazor
Type: Feature Request
78
This is a feature request for the port of the Image Editor to Blazor.
Completed
Last Updated: 29 Sep 2026 08:28 by ADMIN
Release 2026 Q2

The following exception occurs:

Microsoft.JSInterop.JSDisconnectedException: JavaScript interop calls cannot be issued at this time. This is because the circuit has disconnected and is being disposed.

............

at Telerik.Blazor.Components.Common.Loader.ComponentLoaderContainer.DisposeAsync()

When the user closes the browser and the web page contains any of the below components:

  • DockManager
  • FileManager
  • Grid
  • ListView
  • PdfViewer
  • PivotGrid
  • Scheduler
  • SpreadSheet
  • TreeList

 

Declined
Last Updated: 29 Sep 2026 07:47 by ADMIN
Created by: Nadezhda
Comments: 1
Category: UI for Blazor
Type: Feature Request
1

We'd like to track the community demand for using the Telerik Blazor components as Custom Elements.

Please share example common scenarios for such usage and list the components you want to register as Custom Elements to use in other SPA frameworks such as Angular or React.

Declined
Last Updated: 29 Sep 2026 07:41 by ADMIN
Test Environment: 
OS: Windows 11 Enterprise Insider Preview Version 24H2(OS Build 26100.4061) 
Browser Edge Version: 136.0.3240.76 (Official build) (64-bit)

Observation:
  1. This issue is observed with All three screen readers.
User Impact:
If label name and instructions are not provided for the 'Select files' button, users may struggle to understand the expected input format, leading to errors, confusion, and difficulty in choosing files.

Steps to Repro:
  1. Open URL: https://blazorrepl.telerik.com/QJkQPwlw09eSCmk905?_gl=1%2a1wzzh94%2a_gcl_au%2aODg2NjQ4ODc0LjE3NDMwNjY1NTI.%2a_ga%2aODYwMDgyNjY4LjE3MzI3OTMyMTA.%2a_ga_9JSNBCSF54%2aczE3NDc2MzAyNjkkbzUkZzEkdDE3NDc2MzYwMjYkajE4JGwwJGgwJGRHVjE1OElLdHB0ZXJwc1VOWHNzTWlJTEhVVlVQckU0Ynd3 in latest edge browser.
  2. Press tab key to reach 'Select files button'.
  3. Verify whether screen reader is announcing label and note information for 'Select files' button or not.
Actual Result:
Screen reader is not announcing label and note information for 'Select files' button.

Screen reader is announcing as 'Select files button collapsed'.

Refer Attachment:
1. 
Screen reader is not announcing label and note information for 'Select files' button.png
2. 
Screen reader is not announcing label and note information for 'Select files' button.mp4


Expected Result:
Screen reader should announce label and note information for 'Select files' button.
Screen reader should announce as 'Select only pdf files select files button drag and drop files here.
Declined
Last Updated: 29 Sep 2026 07:41 by ADMIN
So i thought that 
gettting the state x
gridref.rebind()
setting new state x

would re-expand the row automatically - didnt work


added Equal and GetHashCode- still dont work


Declined
Last Updated: 29 Sep 2026 07:40 by ADMIN

I noticed that when the ReadTimeout property of the FileSelect's FileInfoStream is read, the code seem to block completely.

You will find a Blazor Web App project attached to this ticket showcasing the issue.

Declined
Last Updated: 29 Sep 2026 07:39 by ADMIN

When enabling/disabling a form element that is defined in a child component, the element is successfully disabled, however a console error occurs. The error occurs whether the child component makes the update or the parent makes the update through a passed parameter.  The error does not occur for form elements defined in the parent.  The error does not occur for basic html input elements defined in the child. 

Element definition:

<TelerikTextBox 
     Id="ElementMisc" 
     AutoComplete="new-password" 
     @bind-Value="@_searchModel.ElementMisc" 
     Enabled="!_elementSelectMode" 
     class="textbox-75"
     DebounceDelay="0">
 </TelerikTextBox>

Update Code defined in child:

   

 if (results.Data.Count > 1)
 {   
     _elementSelectMode= true;
     StateHasChanged();

 }

 

Console Error:

Uncaught (in promise) Error: Assertion failed - heap is currently locked
    at mr (blazor.web.js:1:158963)
    at Object.beginInvokeDotNetFromJS (blazor.web.js:1:157244)
    at w.invokeDotNetMethodAsync (blazor.web.js:1:3978)
    at C.invokeMethodAsync (blazor.web.js:1:5486)
    at r.invokeMethodAsync (telerik-blazor.js:22:1272553)
    at r.onBlur (telerik-blazor.js:22:1463592)
    at ye.setOrRemoveAttributeOrProperty (blazor.web.js:1:28630)
    at ye.applyAttribute (blazor.web.js:1:27574)
    at ye.applyEdits (blazor.web.js:1:24601)
    at ye.updateComponent (blazor.web.js:1:23606)

Declined
Last Updated: 29 Sep 2026 07:13 by ADMIN
# Telerik UI for Blazor — TabStrip bug report

Two related defects in `TelerikTabStrip` when the tab headers wrap onto multiple rows.
Filed for GLS (Governance & Legislative System), the resolution submission form
(`/submit-resolution`), which has 12 tabs.

## Environment

- **Telerik UI for Blazor:** v14 (please fill in the exact build number from your
  `LegislationApplications` package reference before submitting)
- **.NET:** 10.0
- **Render mode:** Blazor **Server** (Interactive Server), no WebAssembly
- **Browser:** reproduced in Chromium-based browsers on a wide (≥1200px) window
- **Component config (abridged):**
  ```razor
  <TelerikTabStrip @bind-ActiveTabId="ActiveTabId"
                   PersistTabContent="true"
                   OverflowMode="TabStripOverflowMode.None"   @* wide screens *@
                   ScrollButtonsPosition="TabStripScrollButtonsPosition.Split"
                   ScrollButtonsVisibility="TabStripScrollButtonsVisibility.Auto">
      @* 12 TabStripTabs; several use Visible="@boolExpr" (conditionally shown);
         most use a <HeaderTemplate> that renders the title plus an optional indicator icon *@
  </TelerikTabStrip>
  ```
- On a wide window with `OverflowMode="None"`, the 12 tab headers **wrap onto two rows**
  (row 1 ends at "Budget Impact"; row 2 begins at "OGR Consultation").

---

## Bug 1 — Wrapped tabs: activating a tab at the wrap boundary shows the WRONG content panel

### Repro
1. Open a form whose tab headers wrap to two rows (wide window, `OverflowMode="None"`, enough
   tabs to force a second row).
2. Activate the tab that sits at the **end of the first row** (its immediate left neighbour is on
   the same row; its right neighbour is on the next row). In our form: activate **External
   Documents**, then click **Budget Impact** (last tab on row 1).

### Expected
Budget Impact’s content panel is displayed.

### Actual
- The Budget Impact **header** receives focus/active styling, but the **content area still shows
  the previous tab’s panel** (External Documents).
- It is **deterministic** from the left-neighbour: a 2-second pause before clicking does **not**
  help.
- **Workarounds that do make it switch:** double-clicking the tab, or first activating a tab on a
  **different row** (e.g. OGR Consultation) and then clicking Budget Impact once.

### Proof the server/binding side is correct (it is a client-side rendering defect)
We instrumented the `ActiveTabId` setter and component renders. On the failing single click:
```
ActiveTabId 'tab-submitter'          -> 'tab-external-documents'   (click External)
RENDER  activeTab=tab-external-documents
ActiveTabId 'tab-external-documents' -> 'tab-budget-impact'        (click Budget Impact)
RENDER  activeTab=tab-budget-impact
(no further activity)
```
So `ActiveTabIdChanged` fires with the correct id, `ActiveTabId` becomes `tab-budget-impact`, and
the component re-renders exactly once with the correct active tab — yet the browser keeps showing
the External Documents content panel. The subsequent “rescue” clicks that fix the display produce
**no** server activity at all, confirming the mismatch is purely in the component’s client-side
content-panel switching.

### Confirmed trigger: the wrapping
Forcing the tab headers onto a **single row** with CSS (no other change) makes the bug disappear
entirely — every tab activates its correct panel on the first click:
```css
.k-tabstrip-items-wrapper { flex-wrap: nowrap; overflow-x: auto; }
.k-tabstrip-items         { flex-wrap: nowrap; }
```
This is not an acceptable final fix for us (the product requires the wrapped, all-tabs-visible
layout), but it isolates the cause: **`TelerikTabStrip` mismaps the active content panel when its
headers wrap to more than one row.**

---

## Bug 2 — `OverflowMode="Scroll"` throws an exception for this configuration

### Repro
Set `OverflowMode="TabStripOverflowMode.Scroll"` (instead of `None`) on the same TabStrip
(12 tabs, `PersistTabContent="true"`, several tabs with `Visible="@expr"` including one that is
currently `Visible="false"`, and `<HeaderTemplate>`s).

### Actual
The page throws an unhandled exception on load / render (Blazor error UI). Reverting to
`OverflowMode="None"` removes the exception.

> **To complete this section before filing:** capture the exact exception type, message, and the
> top Telerik stack frames from the browser DevTools console or the app’s server log (Aspire
> dashboard → `legislationwebapp` resource) while `OverflowMode="Scroll"` is active. We suspect it
> relates to scroll-width measurement of a `Visible="false"` tab and/or `HeaderTemplate` tabs, but
> the stack trace will confirm.

---

## Why this matters / requested outcome

- Bug 1 forces a poor workaround (users must double-click or approach tabs from a specific
  direction) or a UX compromise (single-row scrolling instead of the required wrapped layout).
- Bug 2 blocks the natural single-row fix (`OverflowMode="Scroll"`).

We would like `TelerikTabStrip` to either (a) correctly map the active content panel when headers
wrap, or (b) provide a supported single-row/wrapping option that does not throw for this
configuration.
Completed
Last Updated: 28 Sep 2026 09:00 by ADMIN
Release 2026 (Oct)
Component: TabStrip
Version: 14.0.0

Description:

Behavior of TabStripTab is inconsistent when working with Mouse vs Keyboard driven workflow. The  OnStateChanged  event documentation states it fires "on any change to the active tab, tab visibility, pinning, or order." In practice, this only holds true for mouse-click tab activation. Keyboard-driven tab activation (arrow keys, Home, End) changes the active tab and raises  ActiveTabIdChanged , but never raises  OnStateChanged .

This creates an inconsistency for anyone using the documented state-persistence pattern ( OnStateInit / OnStateChanged ) to save and restore the TabStrip's state: tabs selected via keyboard navigation render correctly, but are silently never persisted, since the app only listens to  OnStateChanged . On the next reload/restore, the selection reverts to the last mouse-selected tab.

Root cause (from the TabStrip source):

• Click path —  ActivateTab(TabStripTab tab) :
await SetActiveTabAsync(tab);   // raises ActiveTabIdChanged
InvokeOnStateChanged();          // raises OnStateChanged
• Keyboard path —  HandleActiveTabIdNavigationAsync(...) :
await SetActiveTabAsync(nextActiveTab);   // raises ActiveTabIdChanged only — InvokeOnStateChanged() is never called

Steps to reproduce:

1. Add a  TelerikTabStrip  with  OnStateChanged  bound to a handler that logs/persists the received  TabStripState .
2. Add 3+  TabStripTab s.
3. Click into the tab header area to focus it, then use the arrow keys (or Home/End) to move between tabs.
4. Observe: the active tab panel changes visually, but the  OnStateChanged  handler is never invoked.
5. Now click a tab header directly —  OnStateChanged  fires as expected.

Expected:  OnStateChanged  should fire for every active-tab change, regardless of whether it was triggered by mouse click or keyboard navigation, matching the documented behavior.

Actual:  OnStateChanged  only fires for mouse-click tab activation; keyboard navigation only raises  ActiveTabIdChanged .

Workaround used: Also bind  ActiveTabIdChanged  and merge the received tab id into the previously-captured/persisted state object (rather than relying on  OnStateChanged  alone).
Declined
Last Updated: 28 Sep 2026 06:43 by ADMIN
Created by: Andreas
Comments: 1
Category: UI for Blazor
Type: Bug Report
0

If user input should control which pointers that are visible as in this example:

@page "/gauge"

<div>
    <TelerikCheckBox Id="display_second" @bind-Value=_displaySecond></TelerikCheckBox>
    <label for="display_second">Display second pointer</label>
</div>

<TelerikRadialGauge>
    <RadialGaugePointers>
        <RadialGaugePointer Value="55" />
        
        @if (_displaySecond)
        {
            <RadialGaugePointer Value="75" Color="red" />
        }
    </RadialGaugePointers>
</TelerikRadialGauge>

@code {
    bool _displaySecond;
}
The second pointer does not become visible if checking the checkbox...
Declined
Last Updated: 28 Sep 2026 06:40 by ADMIN
Created by: Andreas
Comments: 1
Category: UI for Blazor
Type: Bug Report
0

The size of the RadialGauge is not set correctly if changing properties from user input.

@page "/gauge"

<div>
    <TelerikCheckBox Id="large" @bind-Value=_large ></TelerikCheckBox>
    <label for="large">Large</label>
</div>


<TelerikRadialGauge Width=@(_large ? "500px" : "200px") Height=@(_large ? "500px" : "200px")>
    <RadialGaugePointers>
        <RadialGaugePointer Value="55" />
    </RadialGaugePointers>
</TelerikRadialGauge>

@code {
    bool _large;
}

Nothing happens with the gauge in the example above, I would expect it to be larger when ticking the checkbox.

If using F12 in the browser I can see that the outer element get the correct size, but not the inner svg...

Completed
Last Updated: 24 Sep 2026 11:58 by ADMIN
Created by: BENAISSA
Comments: 7
Category: UI for Blazor
Type: Feature Request
87
I would like to be able to customize the keyboard shortcuts in all applicable components in the Telerik UI for Blazor

ADMIN EDIT: 
Closing the Feature Request as Completed. We have added keyboard customization capabilities to a few components: Grid, Wizard, ContextMenu. If you are interested in keyboard customization for other components, log separate feature requests for each component, for example: 
https://feedback.telerik.com/blazor/1709097-add-the-ability-to-customize-the-default-keyboard-shortcuts-of-the-grid-component 


Unplanned
Last Updated: 24 Sep 2026 11:31 by ADMIN
Created by: Andreas
Comments: 0
Category: UI for Blazor
Type: Feature Request
3
Can you offer a Pyramid chart as in ASP.NET Ajax, otherwise we cannot upgrade our product to Blazor...
Planned
Last Updated: 24 Sep 2026 11:26 by ADMIN
Scheduled for 2026 (Nov)

I would like a Blazor PropertyGrid with

 

-- that could be bound to an instance of a custom Type that implemented INotifyPropertyChanged

-- with expandable/collapsible sections with the ability to prevent a  user from expanding a collapsed section (e.g. the user lacks privileges to see that section's data)

-- would keep track of its UI state including collapsed sections (similar to the excellent implementation in Telerik's  Blazor Grid)

-- that would allow the use of all Telerik Blazor editors as cell-value editors

I am interested in using this component primarily as a data-entry UX in a data-entry-intensive line-of-business application.  Such a grid offers standard navigation on all data-entry screens in the application, eliminating tab-order, thereby greatly simplifying the end-user experience. The expanding/collapsing sections make it very economical in its use of screen real-estate. I have used such a component (from a competitor of Telerik) in a WinForms application with excellent results. 

 

 

Unplanned
Last Updated: 24 Sep 2026 11:21 by ADMIN

For example in DropDownList reflection is used for binding for TextField and ValueField.

As an additional option, I'd instead to be able to do DropDownList<FooBarModel>  and then FooBarModel implements a Telerik interface IDropDownListItem (for example but use your naming conventions)

I agree you shouldn't remove the option of using TextField / ValueField but I'd like to see it as an option.

Doing the same thing in something like DataGrid I agree would be a ton more work and we'd likely require using source generation.

It seems that Microsoft / the industry is consistently recommending to phase out the use of reflection and have invested a bunch in making source generation much less of a pain and developer friendly.

 

Unplanned
Last Updated: 23 Sep 2026 09:59 by ADMIN
The IsEntityFrameworkProvider method in the DataSource package returns false when the provider is Entity Framework Core. 
Completed
Last Updated: 03 Sep 2026 06:14 by ADMIN
Created by: Andreas
Comments: 4
Category: UI for Blazor
Type: Bug Report
3

We have a Blazor project that normally takes 20 seconds to build.

But after upgrading Telerik.Licensing from 1.8.2 to 1.9.0/1 the build takes about 60 seconds.

First we upgraded all telerik references with this effect. Now we downgraded all to the version that is supported by 1.8.2.

In the project, the only change I make is to change the version from 1.8.2 to 1.9.0 or later, then the build goes from 20 seconds to 60 seconds, no other changes made...

I have tried Rebuild, Restarts etc...

In the build detailed output, it is the csc command that takes longer times.

Completed
Last Updated: 28 Aug 2026 14:08 by ADMIN
Release 2026 Q4 (Nov)
Created by: Hannes
Comments: 0
Category: UI for Blazor
Type: Feature Request
1

The documented lazy loading scenario is not compatible with Telerik UI for Blazor 15.0.0, because of the new ITelerikIconService. Unlike the ITelerikStringLocalizer, there is no alternative way to register this icon service outside Program.cs.

Duplicated
Last Updated: 11 Aug 2026 12:48 by ADMIN
Created by: Jeremi
Comments: 0
Category: UI for Blazor
Type: Bug Report
5
# Bug report: Grid `role="grid"` fails Lighthouse `aria-required-children`
 
**Product:** Telerik UI for Blazor
**Component:** Grid
**Version:** 14.0
**Detection tool:** Google Lighthouse — Accessibility audit (Chrome DevTools)
**Related feedback item:** [#1601296 – "[Accessibility] Ensure elements with ARIA roles have all required ARIA attributes"](https://feedback.telerik.com/blazor/1601296-accessibility-ensure-elements-with-aria-roles-have-all-required-aria-attributes) (currently Unplanned)
 
---
 
## Description
 
The Grid renders its accessibility root (`div.k-grid-aria-root`) with
`role="grid"`, but the required child roles (`rowgroup` / `row`) are not reachable
from it. As a result, the **Lighthouse Accessibility audit** reports a failing
`aria-required-children` audit:
 
> "Elements with an ARIA [role] that require children to contain a specific
> [role] are missing some or all of those required children."
 
Lighthouse's Accessibility category is powered by axe-core, so this corresponds
to the axe rule **`aria-required-children`** (WCAG 2.1 SC 1.3.1, Level A).
 
This appears to be the same underlying problem tracked in #1601296. This report
adds a clean, Lighthouse-based reproduction in case it is useful for
prioritization.
 
## Steps to reproduce
 
1. Create a page with a `<TelerikGrid>` bound to any data source (a few rows is
   enough).
2. Open the page in Chrome.
3. Open DevTools → **Lighthouse** tab.
4. Select the **Accessibility** category and click **Analyze page load**.
5. In the report, expand the failing **`aria-required-children`** audit.
## Expected behavior
 
The Lighthouse Accessibility audit passes. The element carrying `role="grid"`
exposes valid `rowgroup` / `row` children (or the intermediate wrapper elements
carry `role="presentation"` so the grid → row ownership chain is preserved).
 
## Actual behavior
 
The `aria-required-children` audit fails. Lighthouse flags the grid root and
cites `div.k-grid-content` as the element interrupting the required-children
chain.
 
**Rendered markup (abridged):**
 
```html
<div class="k-grid-aria-root" role="grid" aria-rowcount="52" aria-label="Data table">
  ...
  <div class="k-grid-content" tabindex="-1">   <!-- no role; sits directly on the <table> -->
    <table class="k-grid-table">
      <tbody>
        <tr role="row"> ... </tr>
      </tbody>
    </table>
  </div>
</div>
```
 
## Analysis
 
`role="grid"` must own `rowgroup` / `row` descendants. In the rendered DOM the
rows live inside a native `<table>` (implicit `role="table"`), and the wrapper
`<div>`s between the grid root and the table (`k-grid-container`,
`k-grid-content`) carry no ARIA role. This breaks the `grid → row` ownership
chain that axe-core (and therefore Lighthouse) requires. `k-grid-content` is
specifically cited because its `tabindex="-1"` makes it a focusable,
non-transparent node sitting directly above the table.
 
Unplanned
Last Updated: 10 Aug 2026 06:29 by Carl
Created by: Carl
Comments: 0
Category: UI for Blazor
Type: Feature Request
1

Please implement

  • Telerik.DataSource.DataSourceRequest
  • Telerik.DataSource.DataSourceResult

with inheritance from a well-defined C# interface because the current Blazor implementation for DataSourceRequest and DataSourceResult do not do so.  However, if they inherit from interfaces, then that makes more clear and explicit what contract must be used to maintain interoperability with the Telerik controls for Blazor while also enabling alternate customized concrete implementations that developers (such as myself) can extend while also adhering to the required Telerik contract specified in the interface.

Furthermore, with specification by interface, then our customized variants can also be instantiated by dependency injection wherever we want in our code libraries.  Keep in mind that C# interfaces support multiple inheritance while C# classes do not.  So please provide interfaces for the most critical and important classes, especially DataSourceRequest and DataSourceResult in your Telerik.DataSource library.


1 2 3 4 5 6