Hello Simon,
The empty header cells can be easily fixed by setting the TimeLabelRowSpan property to 1, instead of the default 2. If you need to keep the same appearance, you can use the following style in addition:
<telerik:RadScheduler RenderMode="Lightweight" runat="server" ID="RadScheduler1"
Height="600px" SelectedDate="2012-04-16" Font-Size="14px" AccessKey="F" TabIndex="1"
DayStartTime="08:00:00" DayEndTime="18:00:00" OverflowBehavior="Auto" TimeLabelRowSpan="1">
<AdvancedForm Modal="true" />
</telerik:RadScheduler>
<style>
.RadScheduler .rsVerticalHeaderTable tr:nth-child(2n) {
color: transparent;
}
</style>
Then, you can enable the aria support for the embedded Calendar control:
protected void RadScheduler1_PreRender(object sender, EventArgs e)
{
RadCalendar popupCalendar = RadScheduler1.FindControl("SelectedDateCalendar") as RadCalendar;
popupCalendar.EnableAriaSupport = true;
}
Regarding all the other settings, I am afraid that you would need to inspect the generated elements and add the needed attributes.
Then, you might need to probably override or create a custom keyboard navigation if you want to set attributes dynamically. You can see the original one if you download the source code from here:
Then, you can navigate to this file where the original navigation is. Once you obtain it, you can create your own navigation and just add the code that would set the needed attributes and remove the unnecessary ones:
- \Telerik.Web.UI\Scheduler\KeyboardNavigation\KeyboardNavigation.js
Once you update your custom navigation and register it, you can override the _initializeKeyboardNavigation method and initialize your own navigation by placing the following script under the script manager:
Telerik.Web.UI.RadScheduler.prototype._initializeKeyboardNavigation = function () {
var $element = $telerik.$(this.get_element());
var $T = Telerik.Web.UI;
if ($element.attr("tabIndex") >= 0 || $element.attr("accessKey") != undefined) {
this._navigator = new $T.Scheduler.KeyboardNavigation(this);
this._onKeyboardEventNavigationDelegate = Function.createDelegate(this, this._onKeyboardEventNavigation);
$telerik.addHandler(this.get_element(), "keydown", this._onKeyboardEventNavigationDelegate);
}
}
An alternative to all that, I can suggest checking the Kendo UI Scheduler widget which is an entirely client-side widget and is AAA compliant:
Regards,
Peter Milchev
Progress Telerik
Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.