12.1.8 - 2026-10-28
Improvements
- DataGrid can be given an accessible name through the new
AriaLabelandAriaLabelledByparameters, rendered on the element with thegridortreegridrole. The role element rendered no name andaria-labeloraria-labelledbysplatted onto the component landed on the role-less wrapper where assistive technology ignores them, so screen readers announced an unnamed grid and axe reported "ARIA grid must have an accessible name". When the parameters are not set a splattedaria-labeloraria-labelledbyis used instead and those two attributes no longer reach the wrapper, because ARIA 1.2 prohibits naming a generic element (#2780).
Fixes
- AppearanceToggle has an accessible name and reports
aria-pressedfor the dark theme. The button rendered no name, becauseRadzenToggleButtonwrote itsAriaLabelparameter after the splatted attributes and removed anaria-labelplaced on the component; the toggle button now falls back to the splattedaria-labeland omits the attribute when neither is given, andRadzenAppearanceTogglegains anAriaLabelparameter that defaults to the localized "Dark theme" text. The pressed state used to mean the light theme was active, so screen readers announced "Dark theme, pressed" in the light theme;aria-pressed, the active state and the toggled style now follow the dark theme while the icons and click behavior are unchanged. When the light and dark names resolve to the same theme the button is rendered disabled instead of flipping a pressed state that changed nothing (#2781). - DataGrid applies
KeyPropertyregardless of where it appears in the markup. The key getter used to match selected, expanded and child-data items by key was created only whenDatachanged, so aKeyPropertyplaced afterDatawas ignored on the first render and aValueitem that was a different instance with the same key was not highlighted; a later change ofKeyPropertywas ignored as well. The getter is now created after the parameters are set and recreated whenKeyPropertychanges. - DataGrid keeps the selection when
Valueis bound beforeDataand both change in the same render.Reset, which runs wheneverDatachanges, emptied theValuebacking field without touching the selected items, so Blazor assignedValuefirst, theDatasetter wiped it and no row was highlighted until the next render whileValuereported no selection. The field is now cleared only together with the selected items whenResetis asked to reset row state. - DataGrid merges a class added through
RowRenderwith the row class instead of replacing it. The consumer class was splatted after the computed row class and removedrz-data-rowand therz-state-highlightselection class, so styled rows lost their selection highlight; the classes are now combined, also when aRowClickhandler adds the row click to the same attributes.