There is an inconsistency with the DateRange picker in the way element focus is set when closing the date selection popup by mouse vs keyboard. When using the mouse to close the date range selection popup, element focus becomes lost/reset.
You can simulate this from the example page https://www.telerik.com/kendo-react-ui/components/dateinputs/daterangepicker/
Steps to simulate good behavior (this works correctly):
* click the 'from' input text element (causes the popup to open and the text input to have focus)
* press 'escape' to close the popup (the popup is closed, and the 'from' input element retains focus)
* press 'tab' (focus moves to the 'to' text input element)
Steps to simulate behavior that could be improved:
* click or tab into the 'from' input element (causes the popup to open and the text input to have focus)
* click (with the mouse) outside the popup to close it (the popup is closed, and focus appears to be lost.)
* press 'tab' (focus moves to the 'from' input element again because we are back at the beginning of the tab order list)
This input can lead you into a tab order loop if you mix pressing 'tab' to advance focus, and using the mouse to click to close the date selection popup.
Feature request: when clicking to close the popup, element focus should be retained in the 'from' or 'to' text input; whichever had focus before the popup close, the same as pressing 'escape' to close the popup.
Hi,
I'm using GridColumnMenuCheckboxFilter in column that holds dates, but the dates shown within the GridColumnMenuCheckboxFilter are not formatted.
Is there a way to format the dates like dd/mm/yyyy?
Here is an axample: https://stackblitz.com/edit/react-4cxw2e?file=app/main.jsx
Thank you!
Hi,
The Telerik example for Inline Editing with Custom Editors uses a dropdown list with reference data hardcoded into the custom dropdown cell. This isn't a realistic scenario for for production code with dynamic reference data. If you pass the reference data for the dropdown to the custom cell then the dropdown loses focus every time you change the selected value. This can be seen by shifting the localizedData in the Telerik example referenced earlier from myDropDownCell.tsx to main and passing it as a parameter: https://stackblitz.com/edit/react-9ycz1i?file=app/main.tsx
Is there a workaround for this issue?
Kind regards,
David
Hi Team,
While navigating using keyboard tab key focus is not moving to multiple controls such as Bar graphs and legends in kendo React Charts.
Screen reader should narrate proper name, role and value for the controls.
NVDA Focus is not moving to the bar graphs and legends and it is not narrating proper value for the bar graphs and legends.
which includes following components
Can you please suggest if any,
Thanks & Regards,
Sairoopa.Ch
Hi,
Using KendoReact Scheduler component the functionality to group the events by date, then by resources is not supported. I can only group them by resources first, then by date.
This feature exists in Kendo for jQuery Scheduler component and can be configured by setting the group.date property to true as following:
group: {
date: true,
resources: ["Rooms"]
}
resulting in something similar as in the picture below.
We need the same functionality in KendoReact Scheduler component as well.
Thanks,
Camelia
Hello
Currently, the KendoReact Grid can only select all columns as shown in this demo:
https://www.telerik.com/kendo-react-ui/components/grid/selection/#toc-customizing-the-selection
We wish to be able to select only specific columns programmatically.
According to https://www.telerik.com/kendo-react-ui/components/installation/source-code/#toc-source-repository the repo should be updated nightly. However it does not seem to be.
~/Projects/kendo-react-private (master) git remote -v origin https://kendo.git.progress.com/kendo-react-private.git (fetch) origin https://kendo.git.progress.com/kendo-react-private.git (push) ~/Projects/kendo-react-private (master) git fetch --tags ~/Projects/kendo-react-private (master) git pull origin master From https://kendo.git.progress.com/kendo-react-private * branch master -> FETCH_HEAD Already up to date. ~/Projects/kendo-react-private (master) git tag | grep v5 v5.0.0 v5.0.0-dev.202201182040
~/Projects/kendo-react-private (master) git log
commit 4bf2535e414ba2f342ddbef8daac9ec052f04cc2 (HEAD -> master, tag: v5.0.0, origin/master, origin/HEAD)
Author: kendo-bot <kendouiteam@progress.com>
Date: Tue Jan 18 22:41:34 2022 +0200
chore(release): publish 5.0.0-dev.202201182040
v5.0.0 seems to be the latest tag. Could someone verify that the github repo is actually being updated?
Thanks for any help!
Currently, you cannot specify a custom icon for `MenuItem`, e.g. a Material Design icon, as the `icon` prop only accepts the name of an icon from the Kendo font icons.
So please can you add a `iconClass` prop just like Button so we are able to use an alternative icon set.
Thanks.
The Kendo Form component internally uses a FormContext which is ued by FormElement and Field. However this Context is not exported in @progress/kendo-react-form
Please export this context. It would really help with the usability of the Form component for complex forms. There are things in the FormContext that are not available in the formRenderProps.
Alternatively, put everything from the context into the FormRenderProps. These don't seem like they needed to be 2 different objects.
Specifically with the Context you can see what fields have been `touched`, `visited` and `modified`. But with the render props you only get a boolean if any field has been touched, visited or modified; not the names of the fields.
All of the Kendo components that "hide" content (tab views, collapse panels, etc) don't actually hide any content. They require us to not render any children.
<ExpansionPanel
{expanded === item.id && (
<ExpansionPanelContent>
This just strikes me as an odd design decision. I guess I don't understand the point of these components if they don't do the 1 thing they are supposed to do; hide portions of the content.
Un-rendering the content is usually not desirable. The contents are often still important. Possibly for SEO purposes, A11y, or if they are part of a Form:
<Form
render={() => {
<FormElement>
<ExpansionPanel>
{expanded === item.id && (
<ExpansionPanelContent>
<Field
name={"firstName"}
component={Input}
validator={() => 'always invalid'}
/>
</ExpansionPanelContent>
</ExpansionPanel>
</FormElement>
}}
/>
This makes the Form valid as long as the panel is collapsed.
Can check out how Bootstrap collapse panels work to see how most people would expect these components to behave. The contents is rendered into the DOM and JS and CSS are used to hide it. There should be a way to achieve this same behavior with Kendo.
As a workaround I end up having to do my own CSS/SASS to hide the contents
.k-expander {
.k-expander-content-wrapper {
height: 0;
overflow: hidden;
}
&.k-expanded {
.k-expander-content-wrapper {
height: auto;
}
}
}
A few suggestions for the React Grid (as of v5.0.1) to help devs conform to accessibility compliance...
1) Standard HTML tables can contains a <caption> element, which screenreaders will use as the descriptive name of the table. Kendo Grid does not appear to have any way to name the table.
2) Related to number 1, other ways to assign a descriptive name to a table may be to include a `title`, `aria-label` or `aria-describedby` attributes, but none of these work on <Grid>. They are not rendered into the HTML if passed as props.
3) Allow GridCell and other Cell components to take `children` to render. The current documentation generally advises us to override the `cell={}` prop on a GridColumn for custom cell rendering. What is not listed in the docs is that doing what seems like the obvious thing:
<GridColumn cell={() => <td>myContent</td>} />
actually breaks accessibility. At a minimum the cell MUST get the attributes
role={'gridcell'}
aria-colindex={props.ariaColumnIndex}
to have the table actually be represented correctly in most screen readers. The Kendo <GridCell> component would normally add these, but only renders the field from the dataItem. It can only render custom data if the `render` prop is set, in which case it yet again does not render the `<td role= aria-colindex=` portions on it's own.
What I'm getting at is, everyone who ever wanted to render a custom cell in Keno Grid always had to make their own cell component that added at least the `role` and `aria-colindex` attributes, and if they didn't, they probably unknowingly broke accessibility.
Kendo could make this clearer in the docs (including the accessibility page for the Grid), and could easily alter GridCell to render `children` if they are passed. Then we could do:
<GridColumn cell={<GridCell><button>yay</button></GridCell>} />
and have the rendered HTML:
<td colSpan="1" style="" class="" role="gridcell" aria-colindex="1" aria-selected="false"><button>yay</button></td>
I think in GridCell this would be as easy as changing:
defaultRendering = (
<td
colSpan={props.colSpan}
style={props.style}
className={className}
role={'gridcell'}
aria-colindex={props.ariaColumnIndex}
aria-selected={props.isSelected}
{...{[GRID_COL_INDEX_ATTRIBUTE]: props.columnIndex}}
{...navigationAttributes}
>
{dataAsString}
</td>
defaultRendering = (
<td
colSpan={props.colSpan}
style={props.style}
className={className}
role={'gridcell'}
aria-colindex={props.ariaColumnIndex}
aria-selected={props.isSelected}
{...{[GRID_COL_INDEX_ATTRIBUTE]: props.columnIndex}}
{...navigationAttributes}
>
{children || dataAsString}
</td>
Feature request
I am using the `AutoComplete` component to implement a search input and I want to be notified when the user selects an item (via mouse click or keyboard navigation) from the popup list.
I found an undocumented prop `handleItemSelect` on the `AutoCompleteHandle` ref object, and used it to implement my feature successfully.
Please can you expose `handleItemSelect` as an event on the `AutoCompleteProps` API.
Hello,
I'm trying to implement an accessible table using your Grid React component. The idea is for the users to be able to navigate the table using the keyboard if need be. Because we are a government contractor we have to make our product accessible and, testable using the Government issued tool for testing, ANDI.
When I use a normal table, I can implement scopes in the table header, either for the column or the row and thus create relationships between headers and cells as well as, use the keyboard to navigate the entire table.
When the same table is implemented with the Grid component, there are no scopes in the header then again, both header and body are separate even though they reside inside a div with role=grid on it which in turn, contains two divs, one for the header and one for the body each in turn, implementing a table: one for what would be the headers and one for what would be the body. I'm attaching screenshots even though I'm sure you know the product.
The fact that both the <thead> and the <tbody> reside in different places, even though they are within the grid, makes it impossible to add associations furthermore, we're using a data-table and the grid. I tried using different props but, as long as both the header and the body are separate, the ANDI tools can't find the table.
Question is, is there a way to make this table truly accessible just as a one created using the semantic table tags?
Hi,
Unfortunately, the KendoReact PivotGrid sorting is currently supported only for string values. This means that even if you set the field type to "date", the sorting will still be applied as if the field were a string. You can see that in this example: https://dojo.telerik.com/oZoTuMIC/55
Please extend your sorting mechanism so that the sorting covers types such as dates and numbers too. Please also consider the user's language when implementing this sorting. We receive date fields in the format yyyy-mm-dd and they should then be displayed in the user language in the UI. For example in German dd.mm.yyyy (i.e. 21.11.2021) or in English 11/21/2021. And please offer this feature for local data binding too.
Regards,
Oliver
We are currently on implementing a component for data grids using the Kendo React Grid and virtual scrolling.
The problem is that the "page down" and "page up" is not working correctly, because of the virtualization (We already contacted the support for it).
Here is a stackblitz where the problem can be reproduced: https://stackblitz.com/edit/react-rapzu9?file=app/main.tsx
Reproduction steps:
1. Click inside the grid
2. Press "Page down" - Page changes, but focus goes to the header cell
3. Press "Page down" again - Nothing happens
Another problem which maybe has the same source is navigating with the arrow keys.
Reproduction steps:
1. Scroll somewhere deeper down
2. Use arrow up to scroll up again
3. At some point it scrolls not up anymore but the focus also changes into the header cell - Not okay
In my opinion its a bug, at least for the arrow keys. If you disagree please open a feature request for it, this functionality will be needed by out customers.
Best regards
Yui
Looking at the JSDoc for for `toDataSourceRequestString` and `toDataSourceRequest`, they both appear to have JSDoc above them, showing the parameter as:
* @param {DataRequestState} state - The state that will be serialized.
Should this actually have `@param {DataSourceRequestState}`?
Hi,
The KendoReact NumericTextBox responds to mousewheel events when in focus. It is very easy to focus on the textbox, type in a value, scroll up or down and inadvertently change the value just entered. This behaviour can be seen clearly on any of the Telerik example pages e.g. https://www.telerik.com/kendo-react-ui/components/inputs/numerictextbox/predefined-step/
I think this behaviour should be disabled by default if spinners are set to default, but otherwise I would like a property to disable it. The normal event handlers which could be used to disable this behaviour are not available on the NumericTextBoxProps.
Kind regards,
David
Currently, the Scheduler events are always placed between the beginning and the end of a slot, no matter if the event actually starts or ends at the slot times. So if an event for example starts at 10:10, the event is placed at the 10:00 slot line and not a little further down below, or if it ends at 11:50 the event end is placed at the 12:00 slot line. I'm talking here especially about the WeekView and the DayView.
This is not accurate enough for some events. Like for example in MS Outlook, if a event doesn't start at the full hour, the graphical representation shows it according to the start time and not at the full hour (see screenshots). We would like to request to make it possible to place events on the Scheduler so that the graphical representation of the event reflects the actual start and and time.
While I was able to calculate a margin for the event start to move it to a more accurate position, it was not possible to also set the height of the event to a calculated positition because the Scheduler doesn't allow this. According your support (see here), an event always has to end at a full slot time and can't be placed somewhere else. Calculating these things on our own brings a whole lot of other problems though (like placing overlapping events correctly, etc.) so that it would be great if the Scheduler had a setting to allow exact positioning according to times.
Hello Team,
We have got this requirement to open date range picker using a single button input. Is there any way I can achieve this. I can see there is endDateInput and startDateInput available but it still renders 2 different inputs. But we want single button to control whole thing.
Thanks,
Gaurav